forked from cerc-io/registry-sdk
Message for creating bond
This commit is contained in:
parent
3f2bdd34f8
commit
4c3a3558d3
@ -17,6 +17,9 @@ Follow these steps to run the tests:
|
|||||||
- Add a second account with the following:
|
- Add a second account with the following:
|
||||||
```bash
|
```bash
|
||||||
ethermintd keys add <KEY_NAME> --keyring-backend test
|
ethermintd keys add <KEY_NAME> --keyring-backend test
|
||||||
|
|
||||||
|
# Example
|
||||||
|
ethermintd keys add key2 --keyring-backend test
|
||||||
```
|
```
|
||||||
|
|
||||||
- Get the account details using:
|
- Get the account details using:
|
||||||
|
@ -7,6 +7,7 @@
|
|||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/jest": "^27.4.1",
|
"@types/jest": "^27.4.1",
|
||||||
"jest": "^27.5.1",
|
"jest": "^27.5.1",
|
||||||
|
"protoc-gen-ts": "^0.8.2",
|
||||||
"ts-jest": "^27.1.3",
|
"ts-jest": "^27.1.3",
|
||||||
"ts-node": "^10.7.0",
|
"ts-node": "^10.7.0",
|
||||||
"typescript": "^4.6.2"
|
"typescript": "^4.6.2"
|
||||||
|
50
proto/cosmos/auth/v1beta1/auth.proto
Normal file
50
proto/cosmos/auth/v1beta1/auth.proto
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.auth.v1beta1;
|
||||||
|
|
||||||
|
import "cosmos_proto/cosmos.proto";
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
import "google/protobuf/any.proto";
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/x/auth/types";
|
||||||
|
|
||||||
|
// BaseAccount defines a base account type. It contains all the necessary fields
|
||||||
|
// for basic account functionality. Any custom account type should extend this
|
||||||
|
// type for additional functionality (e.g. vesting).
|
||||||
|
message BaseAccount {
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
option (gogoproto.goproto_stringer) = false;
|
||||||
|
option (gogoproto.equal) = false;
|
||||||
|
|
||||||
|
option (cosmos_proto.implements_interface) = "AccountI";
|
||||||
|
|
||||||
|
string address = 1;
|
||||||
|
google.protobuf.Any pub_key = 2
|
||||||
|
[(gogoproto.jsontag) = "public_key,omitempty", (gogoproto.moretags) = "yaml:\"public_key\""];
|
||||||
|
uint64 account_number = 3 [(gogoproto.moretags) = "yaml:\"account_number\""];
|
||||||
|
uint64 sequence = 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ModuleAccount defines an account for modules that holds coins on a pool.
|
||||||
|
message ModuleAccount {
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
option (gogoproto.goproto_stringer) = false;
|
||||||
|
option (cosmos_proto.implements_interface) = "ModuleAccountI";
|
||||||
|
|
||||||
|
BaseAccount base_account = 1 [(gogoproto.embed) = true, (gogoproto.moretags) = "yaml:\"base_account\""];
|
||||||
|
string name = 2;
|
||||||
|
repeated string permissions = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Params defines the parameters for the auth module.
|
||||||
|
message Params {
|
||||||
|
option (gogoproto.equal) = true;
|
||||||
|
option (gogoproto.goproto_stringer) = false;
|
||||||
|
|
||||||
|
uint64 max_memo_characters = 1 [(gogoproto.moretags) = "yaml:\"max_memo_characters\""];
|
||||||
|
uint64 tx_sig_limit = 2 [(gogoproto.moretags) = "yaml:\"tx_sig_limit\""];
|
||||||
|
uint64 tx_size_cost_per_byte = 3 [(gogoproto.moretags) = "yaml:\"tx_size_cost_per_byte\""];
|
||||||
|
uint64 sig_verify_cost_ed25519 = 4
|
||||||
|
[(gogoproto.customname) = "SigVerifyCostED25519", (gogoproto.moretags) = "yaml:\"sig_verify_cost_ed25519\""];
|
||||||
|
uint64 sig_verify_cost_secp256k1 = 5
|
||||||
|
[(gogoproto.customname) = "SigVerifyCostSecp256k1", (gogoproto.moretags) = "yaml:\"sig_verify_cost_secp256k1\""];
|
||||||
|
}
|
17
proto/cosmos/auth/v1beta1/genesis.proto
Normal file
17
proto/cosmos/auth/v1beta1/genesis.proto
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.auth.v1beta1;
|
||||||
|
|
||||||
|
import "google/protobuf/any.proto";
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
import "cosmos/auth/v1beta1/auth.proto";
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/x/auth/types";
|
||||||
|
|
||||||
|
// GenesisState defines the auth module's genesis state.
|
||||||
|
message GenesisState {
|
||||||
|
// params defines all the paramaters of the module.
|
||||||
|
Params params = 1 [(gogoproto.nullable) = false];
|
||||||
|
|
||||||
|
// accounts are the accounts present at genesis.
|
||||||
|
repeated google.protobuf.Any accounts = 2;
|
||||||
|
}
|
68
proto/cosmos/auth/v1beta1/query.proto
Normal file
68
proto/cosmos/auth/v1beta1/query.proto
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.auth.v1beta1;
|
||||||
|
|
||||||
|
import "cosmos/base/query/v1beta1/pagination.proto";
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
import "google/protobuf/any.proto";
|
||||||
|
import "google/api/annotations.proto";
|
||||||
|
import "cosmos/auth/v1beta1/auth.proto";
|
||||||
|
import "cosmos_proto/cosmos.proto";
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/x/auth/types";
|
||||||
|
|
||||||
|
// Query defines the gRPC querier service.
|
||||||
|
service Query {
|
||||||
|
// Accounts returns all the existing accounts
|
||||||
|
rpc Accounts(QueryAccountsRequest) returns (QueryAccountsResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/auth/v1beta1/accounts";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Account returns account details based on address.
|
||||||
|
rpc Account(QueryAccountRequest) returns (QueryAccountResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/auth/v1beta1/accounts/{address}";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Params queries all parameters.
|
||||||
|
rpc Params(QueryParamsRequest) returns (QueryParamsResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/auth/v1beta1/params";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryAccountsRequest is the request type for the Query/Accounts RPC method.
|
||||||
|
message QueryAccountsRequest {
|
||||||
|
// pagination defines an optional pagination for the request.
|
||||||
|
cosmos.base.query.v1beta1.PageRequest pagination = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryAccountsResponse is the response type for the Query/Accounts RPC method.
|
||||||
|
message QueryAccountsResponse {
|
||||||
|
// accounts are the existing accounts
|
||||||
|
repeated google.protobuf.Any accounts = 1 [(cosmos_proto.accepts_interface) = "AccountI"];
|
||||||
|
|
||||||
|
// pagination defines the pagination in the response.
|
||||||
|
cosmos.base.query.v1beta1.PageResponse pagination = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryAccountRequest is the request type for the Query/Account RPC method.
|
||||||
|
message QueryAccountRequest {
|
||||||
|
option (gogoproto.equal) = false;
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
|
||||||
|
// address defines the address to query for.
|
||||||
|
string address = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryAccountResponse is the response type for the Query/Account RPC method.
|
||||||
|
message QueryAccountResponse {
|
||||||
|
// account defines the account of the corresponding address.
|
||||||
|
google.protobuf.Any account = 1 [(cosmos_proto.accepts_interface) = "AccountI"];
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryParamsRequest is the request type for the Query/Params RPC method.
|
||||||
|
message QueryParamsRequest {}
|
||||||
|
|
||||||
|
// QueryParamsResponse is the response type for the Query/Params RPC method.
|
||||||
|
message QueryParamsResponse {
|
||||||
|
// params defines the parameters of the module.
|
||||||
|
Params params = 1 [(gogoproto.nullable) = false];
|
||||||
|
}
|
26
proto/cosmos/authz/v1beta1/authz.proto
Normal file
26
proto/cosmos/authz/v1beta1/authz.proto
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.authz.v1beta1;
|
||||||
|
|
||||||
|
import "cosmos_proto/cosmos.proto";
|
||||||
|
import "google/protobuf/timestamp.proto";
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
import "google/protobuf/any.proto";
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/x/authz";
|
||||||
|
option (gogoproto.goproto_getters_all) = false;
|
||||||
|
|
||||||
|
// GenericAuthorization gives the grantee unrestricted permissions to execute
|
||||||
|
// the provided method on behalf of the granter's account.
|
||||||
|
message GenericAuthorization {
|
||||||
|
option (cosmos_proto.implements_interface) = "Authorization";
|
||||||
|
|
||||||
|
// Msg, identified by it's type URL, to grant unrestricted permissions to execute
|
||||||
|
string msg = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Grant gives permissions to execute
|
||||||
|
// the provide method with expiration time.
|
||||||
|
message Grant {
|
||||||
|
google.protobuf.Any authorization = 1 [(cosmos_proto.accepts_interface) = "Authorization"];
|
||||||
|
google.protobuf.Timestamp expiration = 2 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false];
|
||||||
|
}
|
24
proto/cosmos/authz/v1beta1/event.proto
Normal file
24
proto/cosmos/authz/v1beta1/event.proto
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.authz.v1beta1;
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/x/authz";
|
||||||
|
|
||||||
|
// EventGrant is emitted on Msg/Grant
|
||||||
|
message EventGrant {
|
||||||
|
// Msg type URL for which an autorization is granted
|
||||||
|
string msg_type_url = 2;
|
||||||
|
// Granter account address
|
||||||
|
string granter = 3;
|
||||||
|
// Grantee account address
|
||||||
|
string grantee = 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
// EventRevoke is emitted on Msg/Revoke
|
||||||
|
message EventRevoke {
|
||||||
|
// Msg type URL for which an autorization is revoked
|
||||||
|
string msg_type_url = 2;
|
||||||
|
// Granter account address
|
||||||
|
string granter = 3;
|
||||||
|
// Grantee account address
|
||||||
|
string grantee = 4;
|
||||||
|
}
|
23
proto/cosmos/authz/v1beta1/genesis.proto
Normal file
23
proto/cosmos/authz/v1beta1/genesis.proto
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.authz.v1beta1;
|
||||||
|
|
||||||
|
import "google/protobuf/timestamp.proto";
|
||||||
|
import "google/protobuf/any.proto";
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
import "cosmos_proto/cosmos.proto";
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/x/authz";
|
||||||
|
|
||||||
|
// GenesisState defines the authz module's genesis state.
|
||||||
|
message GenesisState {
|
||||||
|
repeated GrantAuthorization authorization = 1 [(gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
// GrantAuthorization defines the GenesisState/GrantAuthorization type.
|
||||||
|
message GrantAuthorization {
|
||||||
|
string granter = 1;
|
||||||
|
string grantee = 2;
|
||||||
|
|
||||||
|
google.protobuf.Any authorization = 3 [(cosmos_proto.accepts_interface) = "Authorization"];
|
||||||
|
google.protobuf.Timestamp expiration = 4 [(gogoproto.nullable) = false, (gogoproto.stdtime) = true];
|
||||||
|
}
|
34
proto/cosmos/authz/v1beta1/query.proto
Normal file
34
proto/cosmos/authz/v1beta1/query.proto
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.authz.v1beta1;
|
||||||
|
|
||||||
|
import "google/api/annotations.proto";
|
||||||
|
import "cosmos/base/query/v1beta1/pagination.proto";
|
||||||
|
import "cosmos/authz/v1beta1/authz.proto";
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/x/authz";
|
||||||
|
|
||||||
|
// Query defines the gRPC querier service.
|
||||||
|
service Query {
|
||||||
|
// Returns list of `Authorization`, granted to the grantee by the granter.
|
||||||
|
rpc Grants(QueryGrantsRequest) returns (QueryGrantsResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/authz/v1beta1/grants";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryGrantsRequest is the request type for the Query/Grants RPC method.
|
||||||
|
message QueryGrantsRequest {
|
||||||
|
string granter = 1;
|
||||||
|
string grantee = 2;
|
||||||
|
// Optional, msg_type_url, when set, will query only grants matching given msg type.
|
||||||
|
string msg_type_url = 3;
|
||||||
|
// pagination defines an pagination for the request.
|
||||||
|
cosmos.base.query.v1beta1.PageRequest pagination = 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryGrantsResponse is the response type for the Query/Authorizations RPC method.
|
||||||
|
message QueryGrantsResponse {
|
||||||
|
// authorizations is a list of grants granted for grantee by granter.
|
||||||
|
repeated cosmos.authz.v1beta1.Grant grants = 1;
|
||||||
|
// pagination defines an pagination for the response.
|
||||||
|
cosmos.base.query.v1beta1.PageResponse pagination = 2;
|
||||||
|
}
|
67
proto/cosmos/authz/v1beta1/tx.proto
Normal file
67
proto/cosmos/authz/v1beta1/tx.proto
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.authz.v1beta1;
|
||||||
|
|
||||||
|
import "cosmos_proto/cosmos.proto";
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
import "google/protobuf/any.proto";
|
||||||
|
import "cosmos/authz/v1beta1/authz.proto";
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/x/authz";
|
||||||
|
option (gogoproto.goproto_getters_all) = false;
|
||||||
|
|
||||||
|
// Msg defines the authz Msg service.
|
||||||
|
service Msg {
|
||||||
|
// Grant grants the provided authorization to the grantee on the granter's
|
||||||
|
// account with the provided expiration time. If there is already a grant
|
||||||
|
// for the given (granter, grantee, Authorization) triple, then the grant
|
||||||
|
// will be overwritten.
|
||||||
|
rpc Grant(MsgGrant) returns (MsgGrantResponse);
|
||||||
|
|
||||||
|
// Exec attempts to execute the provided messages using
|
||||||
|
// authorizations granted to the grantee. Each message should have only
|
||||||
|
// one signer corresponding to the granter of the authorization.
|
||||||
|
rpc Exec(MsgExec) returns (MsgExecResponse);
|
||||||
|
|
||||||
|
// Revoke revokes any authorization corresponding to the provided method name on the
|
||||||
|
// granter's account that has been granted to the grantee.
|
||||||
|
rpc Revoke(MsgRevoke) returns (MsgRevokeResponse);
|
||||||
|
}
|
||||||
|
|
||||||
|
// MsgGrant is a request type for Grant method. It declares authorization to the grantee
|
||||||
|
// on behalf of the granter with the provided expiration time.
|
||||||
|
message MsgGrant {
|
||||||
|
string granter = 1;
|
||||||
|
string grantee = 2;
|
||||||
|
|
||||||
|
cosmos.authz.v1beta1.Grant grant = 3 [(gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
// MsgExecResponse defines the Msg/MsgExecResponse response type.
|
||||||
|
message MsgExecResponse {
|
||||||
|
repeated bytes results = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// MsgExec attempts to execute the provided messages using
|
||||||
|
// authorizations granted to the grantee. Each message should have only
|
||||||
|
// one signer corresponding to the granter of the authorization.
|
||||||
|
message MsgExec {
|
||||||
|
string grantee = 1;
|
||||||
|
// Authorization Msg requests to execute. Each msg must implement Authorization interface
|
||||||
|
// The x/authz will try to find a grant matching (msg.signers[0], grantee, MsgTypeURL(msg))
|
||||||
|
// triple and validate it.
|
||||||
|
repeated google.protobuf.Any msgs = 2 [(cosmos_proto.accepts_interface) = "sdk.Msg, authz.Authorization"];
|
||||||
|
}
|
||||||
|
|
||||||
|
// MsgGrantResponse defines the Msg/MsgGrant response type.
|
||||||
|
message MsgGrantResponse {}
|
||||||
|
|
||||||
|
// MsgRevoke revokes any authorization with the provided sdk.Msg type on the
|
||||||
|
// granter's account with that has been granted to the grantee.
|
||||||
|
message MsgRevoke {
|
||||||
|
string granter = 1;
|
||||||
|
string grantee = 2;
|
||||||
|
string msg_type_url = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
// MsgRevokeResponse defines the Msg/MsgRevokeResponse response type.
|
||||||
|
message MsgRevokeResponse {}
|
17
proto/cosmos/bank/v1beta1/authz.proto
Normal file
17
proto/cosmos/bank/v1beta1/authz.proto
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.bank.v1beta1;
|
||||||
|
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
import "cosmos_proto/cosmos.proto";
|
||||||
|
import "cosmos/base/v1beta1/coin.proto";
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/x/bank/types";
|
||||||
|
|
||||||
|
// SendAuthorization allows the grantee to spend up to spend_limit coins from
|
||||||
|
// the granter's account.
|
||||||
|
message SendAuthorization {
|
||||||
|
option (cosmos_proto.implements_interface) = "Authorization";
|
||||||
|
|
||||||
|
repeated cosmos.base.v1beta1.Coin spend_limit = 1
|
||||||
|
[(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"];
|
||||||
|
}
|
92
proto/cosmos/bank/v1beta1/bank.proto
Normal file
92
proto/cosmos/bank/v1beta1/bank.proto
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.bank.v1beta1;
|
||||||
|
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
import "cosmos_proto/cosmos.proto";
|
||||||
|
import "cosmos/base/v1beta1/coin.proto";
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/x/bank/types";
|
||||||
|
|
||||||
|
// Params defines the parameters for the bank module.
|
||||||
|
message Params {
|
||||||
|
option (gogoproto.goproto_stringer) = false;
|
||||||
|
repeated SendEnabled send_enabled = 1 [(gogoproto.moretags) = "yaml:\"send_enabled,omitempty\""];
|
||||||
|
bool default_send_enabled = 2 [(gogoproto.moretags) = "yaml:\"default_send_enabled,omitempty\""];
|
||||||
|
}
|
||||||
|
|
||||||
|
// SendEnabled maps coin denom to a send_enabled status (whether a denom is
|
||||||
|
// sendable).
|
||||||
|
message SendEnabled {
|
||||||
|
option (gogoproto.equal) = true;
|
||||||
|
option (gogoproto.goproto_stringer) = false;
|
||||||
|
string denom = 1;
|
||||||
|
bool enabled = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Input models transaction input.
|
||||||
|
message Input {
|
||||||
|
option (gogoproto.equal) = false;
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
|
||||||
|
string address = 1;
|
||||||
|
repeated cosmos.base.v1beta1.Coin coins = 2
|
||||||
|
[(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Output models transaction outputs.
|
||||||
|
message Output {
|
||||||
|
option (gogoproto.equal) = false;
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
|
||||||
|
string address = 1;
|
||||||
|
repeated cosmos.base.v1beta1.Coin coins = 2
|
||||||
|
[(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Supply represents a struct that passively keeps track of the total supply
|
||||||
|
// amounts in the network.
|
||||||
|
// This message is deprecated now that supply is indexed by denom.
|
||||||
|
message Supply {
|
||||||
|
option deprecated = true;
|
||||||
|
|
||||||
|
option (gogoproto.equal) = true;
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
|
||||||
|
option (cosmos_proto.implements_interface) = "*github.com/cosmos/cosmos-sdk/x/bank/legacy/v040.SupplyI";
|
||||||
|
|
||||||
|
repeated cosmos.base.v1beta1.Coin total = 1
|
||||||
|
[(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"];
|
||||||
|
}
|
||||||
|
|
||||||
|
// DenomUnit represents a struct that describes a given
|
||||||
|
// denomination unit of the basic token.
|
||||||
|
message DenomUnit {
|
||||||
|
// denom represents the string name of the given denom unit (e.g uatom).
|
||||||
|
string denom = 1;
|
||||||
|
// exponent represents power of 10 exponent that one must
|
||||||
|
// raise the base_denom to in order to equal the given DenomUnit's denom
|
||||||
|
// 1 denom = 1^exponent base_denom
|
||||||
|
// (e.g. with a base_denom of uatom, one can create a DenomUnit of 'atom' with
|
||||||
|
// exponent = 6, thus: 1 atom = 10^6 uatom).
|
||||||
|
uint32 exponent = 2;
|
||||||
|
// aliases is a list of string aliases for the given denom
|
||||||
|
repeated string aliases = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Metadata represents a struct that describes
|
||||||
|
// a basic token.
|
||||||
|
message Metadata {
|
||||||
|
string description = 1;
|
||||||
|
// denom_units represents the list of DenomUnit's for a given coin
|
||||||
|
repeated DenomUnit denom_units = 2;
|
||||||
|
// base represents the base denom (should be the DenomUnit with exponent = 0).
|
||||||
|
string base = 3;
|
||||||
|
// display indicates the suggested denom that should be
|
||||||
|
// displayed in clients.
|
||||||
|
string display = 4;
|
||||||
|
// name defines the name of the token (eg: Cosmos Atom)
|
||||||
|
string name = 5;
|
||||||
|
// symbol is the token symbol usually shown on exchanges (eg: ATOM). This can
|
||||||
|
// be the same as the display.
|
||||||
|
string symbol = 6;
|
||||||
|
}
|
39
proto/cosmos/bank/v1beta1/genesis.proto
Normal file
39
proto/cosmos/bank/v1beta1/genesis.proto
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.bank.v1beta1;
|
||||||
|
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
import "cosmos/base/v1beta1/coin.proto";
|
||||||
|
import "cosmos/bank/v1beta1/bank.proto";
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/x/bank/types";
|
||||||
|
|
||||||
|
// GenesisState defines the bank module's genesis state.
|
||||||
|
message GenesisState {
|
||||||
|
// params defines all the paramaters of the module.
|
||||||
|
Params params = 1 [(gogoproto.nullable) = false];
|
||||||
|
|
||||||
|
// balances is an array containing the balances of all the accounts.
|
||||||
|
repeated Balance balances = 2 [(gogoproto.nullable) = false];
|
||||||
|
|
||||||
|
// supply represents the total supply. If it is left empty, then supply will be calculated based on the provided
|
||||||
|
// balances. Otherwise, it will be used to validate that the sum of the balances equals this amount.
|
||||||
|
repeated cosmos.base.v1beta1.Coin supply = 3
|
||||||
|
[(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins", (gogoproto.nullable) = false];
|
||||||
|
|
||||||
|
// denom_metadata defines the metadata of the differents coins.
|
||||||
|
repeated Metadata denom_metadata = 4 [(gogoproto.moretags) = "yaml:\"denom_metadata\"", (gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Balance defines an account address and balance pair used in the bank module's
|
||||||
|
// genesis state.
|
||||||
|
message Balance {
|
||||||
|
option (gogoproto.equal) = false;
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
|
||||||
|
// address is the address of the balance holder.
|
||||||
|
string address = 1;
|
||||||
|
|
||||||
|
// coins defines the different coins this balance holds.
|
||||||
|
repeated cosmos.base.v1beta1.Coin coins = 2
|
||||||
|
[(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins", (gogoproto.nullable) = false];
|
||||||
|
}
|
159
proto/cosmos/bank/v1beta1/query.proto
Normal file
159
proto/cosmos/bank/v1beta1/query.proto
Normal file
@ -0,0 +1,159 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.bank.v1beta1;
|
||||||
|
|
||||||
|
import "cosmos/base/query/v1beta1/pagination.proto";
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
import "google/api/annotations.proto";
|
||||||
|
import "cosmos/base/v1beta1/coin.proto";
|
||||||
|
import "cosmos/bank/v1beta1/bank.proto";
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/x/bank/types";
|
||||||
|
|
||||||
|
// Query defines the gRPC querier service.
|
||||||
|
service Query {
|
||||||
|
// Balance queries the balance of a single coin for a single account.
|
||||||
|
rpc Balance(QueryBalanceRequest) returns (QueryBalanceResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/bank/v1beta1/balances/{address}/{denom}";
|
||||||
|
}
|
||||||
|
|
||||||
|
// AllBalances queries the balance of all coins for a single account.
|
||||||
|
rpc AllBalances(QueryAllBalancesRequest) returns (QueryAllBalancesResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/bank/v1beta1/balances/{address}";
|
||||||
|
}
|
||||||
|
|
||||||
|
// TotalSupply queries the total supply of all coins.
|
||||||
|
rpc TotalSupply(QueryTotalSupplyRequest) returns (QueryTotalSupplyResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/bank/v1beta1/supply";
|
||||||
|
}
|
||||||
|
|
||||||
|
// SupplyOf queries the supply of a single coin.
|
||||||
|
rpc SupplyOf(QuerySupplyOfRequest) returns (QuerySupplyOfResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/bank/v1beta1/supply/{denom}";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Params queries the parameters of x/bank module.
|
||||||
|
rpc Params(QueryParamsRequest) returns (QueryParamsResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/bank/v1beta1/params";
|
||||||
|
}
|
||||||
|
|
||||||
|
// DenomsMetadata queries the client metadata of a given coin denomination.
|
||||||
|
rpc DenomMetadata(QueryDenomMetadataRequest) returns (QueryDenomMetadataResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/bank/v1beta1/denoms_metadata/{denom}";
|
||||||
|
}
|
||||||
|
|
||||||
|
// DenomsMetadata queries the client metadata for all registered coin denominations.
|
||||||
|
rpc DenomsMetadata(QueryDenomsMetadataRequest) returns (QueryDenomsMetadataResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/bank/v1beta1/denoms_metadata";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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 address to query balances for.
|
||||||
|
string address = 1;
|
||||||
|
|
||||||
|
// denom is the coin denom to query balances for.
|
||||||
|
string denom = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryBalanceResponse is the response type for the Query/Balance RPC method.
|
||||||
|
message QueryBalanceResponse {
|
||||||
|
// balance is the balance of the coin.
|
||||||
|
cosmos.base.v1beta1.Coin balance = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryBalanceRequest is the request type for the Query/AllBalances RPC method.
|
||||||
|
message QueryAllBalancesRequest {
|
||||||
|
option (gogoproto.equal) = false;
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
|
||||||
|
// address is the address to query balances for.
|
||||||
|
string address = 1;
|
||||||
|
|
||||||
|
// pagination defines an optional pagination for the request.
|
||||||
|
cosmos.base.query.v1beta1.PageRequest pagination = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryAllBalancesResponse is the response type for the Query/AllBalances RPC
|
||||||
|
// method.
|
||||||
|
message QueryAllBalancesResponse {
|
||||||
|
// balances is the balances of all the coins.
|
||||||
|
repeated cosmos.base.v1beta1.Coin balances = 1
|
||||||
|
[(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"];
|
||||||
|
|
||||||
|
// pagination defines the pagination in the response.
|
||||||
|
cosmos.base.query.v1beta1.PageResponse pagination = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryTotalSupplyRequest is the request type for the Query/TotalSupply RPC
|
||||||
|
// method.
|
||||||
|
message QueryTotalSupplyRequest {
|
||||||
|
option (gogoproto.equal) = false;
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
|
||||||
|
// pagination defines an optional pagination for the request.
|
||||||
|
cosmos.base.query.v1beta1.PageRequest pagination = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryTotalSupplyResponse is the response type for the Query/TotalSupply RPC
|
||||||
|
// method
|
||||||
|
message QueryTotalSupplyResponse {
|
||||||
|
// supply is the supply of the coins
|
||||||
|
repeated cosmos.base.v1beta1.Coin supply = 1
|
||||||
|
[(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"];
|
||||||
|
|
||||||
|
// pagination defines the pagination in the response.
|
||||||
|
cosmos.base.query.v1beta1.PageResponse pagination = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QuerySupplyOfRequest is the request type for the Query/SupplyOf RPC method.
|
||||||
|
message QuerySupplyOfRequest {
|
||||||
|
// denom is the coin denom to query balances for.
|
||||||
|
string denom = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QuerySupplyOfResponse is the response type for the Query/SupplyOf RPC method.
|
||||||
|
message QuerySupplyOfResponse {
|
||||||
|
// amount is the supply of the coin.
|
||||||
|
cosmos.base.v1beta1.Coin amount = 1 [(gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryParamsRequest defines the request type for querying x/bank parameters.
|
||||||
|
message QueryParamsRequest {}
|
||||||
|
|
||||||
|
// QueryParamsResponse defines the response type for querying x/bank parameters.
|
||||||
|
message QueryParamsResponse {
|
||||||
|
Params params = 1 [(gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryDenomsMetadataRequest is the request type for the Query/DenomsMetadata RPC method.
|
||||||
|
message QueryDenomsMetadataRequest {
|
||||||
|
// pagination defines an optional pagination for the request.
|
||||||
|
cosmos.base.query.v1beta1.PageRequest pagination = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryDenomsMetadataResponse is the response type for the Query/DenomsMetadata RPC
|
||||||
|
// method.
|
||||||
|
message QueryDenomsMetadataResponse {
|
||||||
|
// metadata provides the client information for all the registered tokens.
|
||||||
|
repeated Metadata metadatas = 1 [(gogoproto.nullable) = false];
|
||||||
|
|
||||||
|
// pagination defines the pagination in the response.
|
||||||
|
cosmos.base.query.v1beta1.PageResponse pagination = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryDenomMetadataRequest is the request type for the Query/DenomMetadata RPC method.
|
||||||
|
message QueryDenomMetadataRequest {
|
||||||
|
// denom is the coin denom to query the metadata for.
|
||||||
|
string denom = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryDenomMetadataResponse is the response type for the Query/DenomMetadata RPC
|
||||||
|
// method.
|
||||||
|
message QueryDenomMetadataResponse {
|
||||||
|
// metadata describes and provides all the client information for the requested token.
|
||||||
|
Metadata metadata = 1 [(gogoproto.nullable) = false];
|
||||||
|
}
|
42
proto/cosmos/bank/v1beta1/tx.proto
Normal file
42
proto/cosmos/bank/v1beta1/tx.proto
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.bank.v1beta1;
|
||||||
|
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
import "cosmos/base/v1beta1/coin.proto";
|
||||||
|
import "cosmos/bank/v1beta1/bank.proto";
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/x/bank/types";
|
||||||
|
|
||||||
|
// Msg defines the bank Msg service.
|
||||||
|
service Msg {
|
||||||
|
// Send defines a method for sending coins from one account to another account.
|
||||||
|
rpc Send(MsgSend) returns (MsgSendResponse);
|
||||||
|
|
||||||
|
// MultiSend defines a method for sending coins from some accounts to other accounts.
|
||||||
|
rpc MultiSend(MsgMultiSend) returns (MsgMultiSendResponse);
|
||||||
|
}
|
||||||
|
|
||||||
|
// MsgSend represents a message to send coins from one account to another.
|
||||||
|
message MsgSend {
|
||||||
|
option (gogoproto.equal) = false;
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
|
||||||
|
string from_address = 1 [(gogoproto.moretags) = "yaml:\"from_address\""];
|
||||||
|
string to_address = 2 [(gogoproto.moretags) = "yaml:\"to_address\""];
|
||||||
|
repeated cosmos.base.v1beta1.Coin amount = 3
|
||||||
|
[(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"];
|
||||||
|
}
|
||||||
|
|
||||||
|
// MsgSendResponse defines the Msg/Send response type.
|
||||||
|
message MsgSendResponse {}
|
||||||
|
|
||||||
|
// MsgMultiSend represents an arbitrary multi-in, multi-out send message.
|
||||||
|
message MsgMultiSend {
|
||||||
|
option (gogoproto.equal) = false;
|
||||||
|
|
||||||
|
repeated Input inputs = 1 [(gogoproto.nullable) = false];
|
||||||
|
repeated Output outputs = 2 [(gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
// MsgMultiSendResponse defines the Msg/MultiSend response type.
|
||||||
|
message MsgMultiSendResponse {}
|
137
proto/cosmos/base/abci/v1beta1/abci.proto
Normal file
137
proto/cosmos/base/abci/v1beta1/abci.proto
Normal file
@ -0,0 +1,137 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.base.abci.v1beta1;
|
||||||
|
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
import "tendermint/abci/types.proto";
|
||||||
|
import "google/protobuf/any.proto";
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/types";
|
||||||
|
option (gogoproto.goproto_stringer_all) = false;
|
||||||
|
|
||||||
|
// TxResponse defines a structure containing relevant tx data and metadata. The
|
||||||
|
// tags are stringified and the log is JSON decoded.
|
||||||
|
message TxResponse {
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
// The block height
|
||||||
|
int64 height = 1;
|
||||||
|
// The transaction hash.
|
||||||
|
string txhash = 2 [(gogoproto.customname) = "TxHash"];
|
||||||
|
// Namespace for the Code
|
||||||
|
string codespace = 3;
|
||||||
|
// Response code.
|
||||||
|
uint32 code = 4;
|
||||||
|
// Result bytes, if any.
|
||||||
|
string data = 5;
|
||||||
|
// The output of the application's logger (raw string). May be
|
||||||
|
// non-deterministic.
|
||||||
|
string raw_log = 6;
|
||||||
|
// The output of the application's logger (typed). May be non-deterministic.
|
||||||
|
repeated ABCIMessageLog logs = 7 [(gogoproto.castrepeated) = "ABCIMessageLogs", (gogoproto.nullable) = false];
|
||||||
|
// Additional information. May be non-deterministic.
|
||||||
|
string info = 8;
|
||||||
|
// Amount of gas requested for transaction.
|
||||||
|
int64 gas_wanted = 9;
|
||||||
|
// Amount of gas consumed by transaction.
|
||||||
|
int64 gas_used = 10;
|
||||||
|
// The request transaction bytes.
|
||||||
|
google.protobuf.Any tx = 11;
|
||||||
|
// Time of the previous block. For heights > 1, it's the weighted median of
|
||||||
|
// the timestamps of the valid votes in the block.LastCommit. For height == 1,
|
||||||
|
// it's genesis time.
|
||||||
|
string timestamp = 12;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ABCIMessageLog defines a structure containing an indexed tx ABCI message log.
|
||||||
|
message ABCIMessageLog {
|
||||||
|
option (gogoproto.stringer) = true;
|
||||||
|
|
||||||
|
uint32 msg_index = 1;
|
||||||
|
string log = 2;
|
||||||
|
|
||||||
|
// Events contains a slice of Event objects that were emitted during some
|
||||||
|
// execution.
|
||||||
|
repeated StringEvent events = 3 [(gogoproto.castrepeated) = "StringEvents", (gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
// StringEvent defines en Event object wrapper where all the attributes
|
||||||
|
// contain key/value pairs that are strings instead of raw bytes.
|
||||||
|
message StringEvent {
|
||||||
|
option (gogoproto.stringer) = true;
|
||||||
|
|
||||||
|
string type = 1;
|
||||||
|
repeated Attribute attributes = 2 [(gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Attribute defines an attribute wrapper where the key and value are
|
||||||
|
// strings instead of raw bytes.
|
||||||
|
message Attribute {
|
||||||
|
string key = 1;
|
||||||
|
string value = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// GasInfo defines tx execution gas context.
|
||||||
|
message GasInfo {
|
||||||
|
// GasWanted is the maximum units of work we allow this tx to perform.
|
||||||
|
uint64 gas_wanted = 1 [(gogoproto.moretags) = "yaml:\"gas_wanted\""];
|
||||||
|
|
||||||
|
// GasUsed is the amount of gas actually consumed.
|
||||||
|
uint64 gas_used = 2 [(gogoproto.moretags) = "yaml:\"gas_used\""];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Result is the union of ResponseFormat and ResponseCheckTx.
|
||||||
|
message Result {
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
|
||||||
|
// Data is any data returned from message or handler execution. It MUST be
|
||||||
|
// length prefixed in order to separate data from multiple message executions.
|
||||||
|
bytes data = 1;
|
||||||
|
|
||||||
|
// Log contains the log information from message or handler execution.
|
||||||
|
string log = 2;
|
||||||
|
|
||||||
|
// Events contains a slice of Event objects that were emitted during message
|
||||||
|
// or handler execution.
|
||||||
|
repeated tendermint.abci.Event events = 3 [(gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
// SimulationResponse defines the response generated when a transaction is
|
||||||
|
// successfully simulated.
|
||||||
|
message SimulationResponse {
|
||||||
|
GasInfo gas_info = 1 [(gogoproto.embed) = true, (gogoproto.nullable) = false];
|
||||||
|
Result result = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// MsgData defines the data returned in a Result object during message
|
||||||
|
// execution.
|
||||||
|
message MsgData {
|
||||||
|
option (gogoproto.stringer) = true;
|
||||||
|
|
||||||
|
string msg_type = 1;
|
||||||
|
bytes data = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// TxMsgData defines a list of MsgData. A transaction will have a MsgData object
|
||||||
|
// for each message.
|
||||||
|
message TxMsgData {
|
||||||
|
option (gogoproto.stringer) = true;
|
||||||
|
|
||||||
|
repeated MsgData data = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// SearchTxsResult defines a structure for querying txs pageable
|
||||||
|
message SearchTxsResult {
|
||||||
|
option (gogoproto.stringer) = true;
|
||||||
|
|
||||||
|
// Count of all txs
|
||||||
|
uint64 total_count = 1 [(gogoproto.moretags) = "yaml:\"total_count\"", (gogoproto.jsontag) = "total_count"];
|
||||||
|
// Count of txs in current page
|
||||||
|
uint64 count = 2;
|
||||||
|
// Index of current page, start from 1
|
||||||
|
uint64 page_number = 3 [(gogoproto.moretags) = "yaml:\"page_number\"", (gogoproto.jsontag) = "page_number"];
|
||||||
|
// Count of total pages
|
||||||
|
uint64 page_total = 4 [(gogoproto.moretags) = "yaml:\"page_total\"", (gogoproto.jsontag) = "page_total"];
|
||||||
|
// Max count txs per page
|
||||||
|
uint64 limit = 5;
|
||||||
|
// List of txs in current page
|
||||||
|
repeated TxResponse txs = 6;
|
||||||
|
}
|
17
proto/cosmos/base/kv/v1beta1/kv.proto
Normal file
17
proto/cosmos/base/kv/v1beta1/kv.proto
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.base.kv.v1beta1;
|
||||||
|
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/types/kv";
|
||||||
|
|
||||||
|
// Pairs defines a repeated slice of Pair objects.
|
||||||
|
message Pairs {
|
||||||
|
repeated Pair pairs = 1 [(gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Pair defines a key/value bytes tuple.
|
||||||
|
message Pair {
|
||||||
|
bytes key = 1;
|
||||||
|
bytes value = 2;
|
||||||
|
}
|
53
proto/cosmos/base/query/v1beta1/pagination.proto
Normal file
53
proto/cosmos/base/query/v1beta1/pagination.proto
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.base.query.v1beta1;
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/types/query";
|
||||||
|
|
||||||
|
// PageRequest is to be embedded in gRPC request messages for efficient
|
||||||
|
// pagination. Ex:
|
||||||
|
//
|
||||||
|
// message SomeRequest {
|
||||||
|
// Foo some_parameter = 1;
|
||||||
|
// PageRequest pagination = 2;
|
||||||
|
// }
|
||||||
|
message PageRequest {
|
||||||
|
// key is a value returned in PageResponse.next_key to begin
|
||||||
|
// querying the next page most efficiently. Only one of offset or key
|
||||||
|
// should be set.
|
||||||
|
bytes key = 1;
|
||||||
|
|
||||||
|
// offset is a numeric offset that can be used when key is unavailable.
|
||||||
|
// It is less efficient than using key. Only one of offset or key should
|
||||||
|
// be set.
|
||||||
|
uint64 offset = 2;
|
||||||
|
|
||||||
|
// limit is the total number of results to be returned in the result page.
|
||||||
|
// If left empty it will default to a value to be set by each app.
|
||||||
|
uint64 limit = 3;
|
||||||
|
|
||||||
|
// count_total is set to true to indicate that the result set should include
|
||||||
|
// a count of the total number of items available for pagination in UIs.
|
||||||
|
// count_total is only respected when offset is used. It is ignored when key
|
||||||
|
// is set.
|
||||||
|
bool count_total = 4;
|
||||||
|
|
||||||
|
// reverse is set to true if results are to be returned in the descending order.
|
||||||
|
bool reverse = 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
// PageResponse is to be embedded in gRPC response messages where the
|
||||||
|
// corresponding request message has used PageRequest.
|
||||||
|
//
|
||||||
|
// message SomeResponse {
|
||||||
|
// repeated Bar results = 1;
|
||||||
|
// PageResponse page = 2;
|
||||||
|
// }
|
||||||
|
message PageResponse {
|
||||||
|
// next_key is the key to be passed to PageRequest.key to
|
||||||
|
// query the next page most efficiently
|
||||||
|
bytes next_key = 1;
|
||||||
|
|
||||||
|
// total is total number of results available if PageRequest.count_total
|
||||||
|
// was set, its value is undefined otherwise
|
||||||
|
uint64 total = 2;
|
||||||
|
}
|
44
proto/cosmos/base/reflection/v1beta1/reflection.proto
Normal file
44
proto/cosmos/base/reflection/v1beta1/reflection.proto
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.base.reflection.v1beta1;
|
||||||
|
|
||||||
|
import "google/api/annotations.proto";
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/client/grpc/reflection";
|
||||||
|
|
||||||
|
// ReflectionService defines a service for interface reflection.
|
||||||
|
service ReflectionService {
|
||||||
|
// ListAllInterfaces lists all the interfaces registered in the interface
|
||||||
|
// registry.
|
||||||
|
rpc ListAllInterfaces(ListAllInterfacesRequest) returns (ListAllInterfacesResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/base/reflection/v1beta1/interfaces";
|
||||||
|
};
|
||||||
|
|
||||||
|
// ListImplementations list all the concrete types that implement a given
|
||||||
|
// interface.
|
||||||
|
rpc ListImplementations(ListImplementationsRequest) returns (ListImplementationsResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/base/reflection/v1beta1/interfaces/"
|
||||||
|
"{interface_name}/implementations";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
// ListAllInterfacesRequest is the request type of the ListAllInterfaces RPC.
|
||||||
|
message ListAllInterfacesRequest {}
|
||||||
|
|
||||||
|
// ListAllInterfacesResponse is the response type of the ListAllInterfaces RPC.
|
||||||
|
message ListAllInterfacesResponse {
|
||||||
|
// interface_names is an array of all the registered interfaces.
|
||||||
|
repeated string interface_names = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ListImplementationsRequest is the request type of the ListImplementations
|
||||||
|
// RPC.
|
||||||
|
message ListImplementationsRequest {
|
||||||
|
// interface_name defines the interface to query the implementations for.
|
||||||
|
string interface_name = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ListImplementationsResponse is the response type of the ListImplementations
|
||||||
|
// RPC.
|
||||||
|
message ListImplementationsResponse {
|
||||||
|
repeated string implementation_message_names = 1;
|
||||||
|
}
|
217
proto/cosmos/base/reflection/v2alpha1/reflection.proto
Normal file
217
proto/cosmos/base/reflection/v2alpha1/reflection.proto
Normal file
@ -0,0 +1,217 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.base.reflection.v2alpha1;
|
||||||
|
|
||||||
|
import "google/api/annotations.proto";
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/server/grpc/reflection/v2alpha1";
|
||||||
|
|
||||||
|
// AppDescriptor describes a cosmos-sdk based application
|
||||||
|
message AppDescriptor {
|
||||||
|
// AuthnDescriptor provides information on how to authenticate transactions on the application
|
||||||
|
// NOTE: experimental and subject to change in future releases.
|
||||||
|
AuthnDescriptor authn = 1;
|
||||||
|
// chain provides the chain descriptor
|
||||||
|
ChainDescriptor chain = 2;
|
||||||
|
// codec provides metadata information regarding codec related types
|
||||||
|
CodecDescriptor codec = 3;
|
||||||
|
// configuration provides metadata information regarding the sdk.Config type
|
||||||
|
ConfigurationDescriptor configuration = 4;
|
||||||
|
// query_services provides metadata information regarding the available queriable endpoints
|
||||||
|
QueryServicesDescriptor query_services = 5;
|
||||||
|
// tx provides metadata information regarding how to send transactions to the given application
|
||||||
|
TxDescriptor tx = 6;
|
||||||
|
}
|
||||||
|
|
||||||
|
// TxDescriptor describes the accepted transaction type
|
||||||
|
message TxDescriptor {
|
||||||
|
// fullname is the protobuf fullname of the raw transaction type (for instance the tx.Tx type)
|
||||||
|
// it is not meant to support polymorphism of transaction types, it is supposed to be used by
|
||||||
|
// reflection clients to understand if they can handle a specific transaction type in an application.
|
||||||
|
string fullname = 1;
|
||||||
|
// msgs lists the accepted application messages (sdk.Msg)
|
||||||
|
repeated MsgDescriptor msgs = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// AuthnDescriptor provides information on how to sign transactions without relying
|
||||||
|
// on the online RPCs GetTxMetadata and CombineUnsignedTxAndSignatures
|
||||||
|
message AuthnDescriptor {
|
||||||
|
// sign_modes defines the supported signature algorithm
|
||||||
|
repeated SigningModeDescriptor sign_modes = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// SigningModeDescriptor provides information on a signing flow of the application
|
||||||
|
// NOTE(fdymylja): here we could go as far as providing an entire flow on how
|
||||||
|
// to sign a message given a SigningModeDescriptor, but it's better to think about
|
||||||
|
// this another time
|
||||||
|
message SigningModeDescriptor {
|
||||||
|
// name defines the unique name of the signing mode
|
||||||
|
string name = 1;
|
||||||
|
// number is the unique int32 identifier for the sign_mode enum
|
||||||
|
int32 number = 2;
|
||||||
|
// authn_info_provider_method_fullname defines the fullname of the method to call to get
|
||||||
|
// the metadata required to authenticate using the provided sign_modes
|
||||||
|
string authn_info_provider_method_fullname = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ChainDescriptor describes chain information of the application
|
||||||
|
message ChainDescriptor {
|
||||||
|
// id is the chain id
|
||||||
|
string id = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// CodecDescriptor describes the registered interfaces and provides metadata information on the types
|
||||||
|
message CodecDescriptor {
|
||||||
|
// interfaces is a list of the registerted interfaces descriptors
|
||||||
|
repeated InterfaceDescriptor interfaces = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// InterfaceDescriptor describes the implementation of an interface
|
||||||
|
message InterfaceDescriptor {
|
||||||
|
// fullname is the name of the interface
|
||||||
|
string fullname = 1;
|
||||||
|
// interface_accepting_messages contains information regarding the proto messages which contain the interface as
|
||||||
|
// google.protobuf.Any field
|
||||||
|
repeated InterfaceAcceptingMessageDescriptor interface_accepting_messages = 2;
|
||||||
|
// interface_implementers is a list of the descriptors of the interface implementers
|
||||||
|
repeated InterfaceImplementerDescriptor interface_implementers = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
// InterfaceImplementerDescriptor describes an interface implementer
|
||||||
|
message InterfaceImplementerDescriptor {
|
||||||
|
// fullname is the protobuf queryable name of the interface implementer
|
||||||
|
string fullname = 1;
|
||||||
|
// type_url defines the type URL used when marshalling the type as any
|
||||||
|
// this is required so we can provide type safe google.protobuf.Any marshalling and
|
||||||
|
// unmarshalling, making sure that we don't accept just 'any' type
|
||||||
|
// in our interface fields
|
||||||
|
string type_url = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// InterfaceAcceptingMessageDescriptor describes a protobuf message which contains
|
||||||
|
// an interface represented as a google.protobuf.Any
|
||||||
|
message InterfaceAcceptingMessageDescriptor {
|
||||||
|
// fullname is the protobuf fullname of the type containing the interface
|
||||||
|
string fullname = 1;
|
||||||
|
// field_descriptor_names is a list of the protobuf name (not fullname) of the field
|
||||||
|
// which contains the interface as google.protobuf.Any (the interface is the same, but
|
||||||
|
// it can be in multiple fields of the same proto message)
|
||||||
|
repeated string field_descriptor_names = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ConfigurationDescriptor contains metadata information on the sdk.Config
|
||||||
|
message ConfigurationDescriptor {
|
||||||
|
// bech32_account_address_prefix is the account address prefix
|
||||||
|
string bech32_account_address_prefix = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// MsgDescriptor describes a cosmos-sdk message that can be delivered with a transaction
|
||||||
|
message MsgDescriptor {
|
||||||
|
// msg_type_url contains the TypeURL of a sdk.Msg.
|
||||||
|
string msg_type_url = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ReflectionService defines a service for application reflection.
|
||||||
|
service ReflectionService {
|
||||||
|
// GetAuthnDescriptor returns information on how to authenticate transactions in the application
|
||||||
|
// NOTE: this RPC is still experimental and might be subject to breaking changes or removal in
|
||||||
|
// future releases of the cosmos-sdk.
|
||||||
|
rpc GetAuthnDescriptor(GetAuthnDescriptorRequest) returns (GetAuthnDescriptorResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/base/reflection/v1beta1/app_descriptor/authn";
|
||||||
|
}
|
||||||
|
// GetChainDescriptor returns the description of the chain
|
||||||
|
rpc GetChainDescriptor(GetChainDescriptorRequest) returns (GetChainDescriptorResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/base/reflection/v1beta1/app_descriptor/chain";
|
||||||
|
};
|
||||||
|
// GetCodecDescriptor returns the descriptor of the codec of the application
|
||||||
|
rpc GetCodecDescriptor(GetCodecDescriptorRequest) returns (GetCodecDescriptorResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/base/reflection/v1beta1/app_descriptor/codec";
|
||||||
|
}
|
||||||
|
// GetConfigurationDescriptor returns the descriptor for the sdk.Config of the application
|
||||||
|
rpc GetConfigurationDescriptor(GetConfigurationDescriptorRequest) returns (GetConfigurationDescriptorResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/base/reflection/v1beta1/app_descriptor/configuration";
|
||||||
|
}
|
||||||
|
// GetQueryServicesDescriptor returns the available gRPC queryable services of the application
|
||||||
|
rpc GetQueryServicesDescriptor(GetQueryServicesDescriptorRequest) returns (GetQueryServicesDescriptorResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/base/reflection/v1beta1/app_descriptor/query_services";
|
||||||
|
}
|
||||||
|
// GetTxDescriptor returns information on the used transaction object and available msgs that can be used
|
||||||
|
rpc GetTxDescriptor(GetTxDescriptorRequest) returns (GetTxDescriptorResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/base/reflection/v1beta1/app_descriptor/tx_descriptor";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetAuthnDescriptorRequest is the request used for the GetAuthnDescriptor RPC
|
||||||
|
message GetAuthnDescriptorRequest {}
|
||||||
|
// GetAuthnDescriptorResponse is the response returned by the GetAuthnDescriptor RPC
|
||||||
|
message GetAuthnDescriptorResponse {
|
||||||
|
// authn describes how to authenticate to the application when sending transactions
|
||||||
|
AuthnDescriptor authn = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetChainDescriptorRequest is the request used for the GetChainDescriptor RPC
|
||||||
|
message GetChainDescriptorRequest {}
|
||||||
|
// GetChainDescriptorResponse is the response returned by the GetChainDescriptor RPC
|
||||||
|
message GetChainDescriptorResponse {
|
||||||
|
// chain describes application chain information
|
||||||
|
ChainDescriptor chain = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetCodecDescriptorRequest is the request used for the GetCodecDescriptor RPC
|
||||||
|
message GetCodecDescriptorRequest {}
|
||||||
|
// GetCodecDescriptorResponse is the response returned by the GetCodecDescriptor RPC
|
||||||
|
message GetCodecDescriptorResponse {
|
||||||
|
// codec describes the application codec such as registered interfaces and implementations
|
||||||
|
CodecDescriptor codec = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetConfigurationDescriptorRequest is the request used for the GetConfigurationDescriptor RPC
|
||||||
|
message GetConfigurationDescriptorRequest {}
|
||||||
|
// GetConfigurationDescriptorResponse is the response returned by the GetConfigurationDescriptor RPC
|
||||||
|
message GetConfigurationDescriptorResponse {
|
||||||
|
// config describes the application's sdk.Config
|
||||||
|
ConfigurationDescriptor config = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetQueryServicesDescriptorRequest is the request used for the GetQueryServicesDescriptor RPC
|
||||||
|
message GetQueryServicesDescriptorRequest {}
|
||||||
|
// GetQueryServicesDescriptorResponse is the response returned by the GetQueryServicesDescriptor RPC
|
||||||
|
message GetQueryServicesDescriptorResponse {
|
||||||
|
// queries provides information on the available queryable services
|
||||||
|
QueryServicesDescriptor queries = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetTxDescriptorRequest is the request used for the GetTxDescriptor RPC
|
||||||
|
message GetTxDescriptorRequest {}
|
||||||
|
// GetTxDescriptorResponse is the response returned by the GetTxDescriptor RPC
|
||||||
|
message GetTxDescriptorResponse {
|
||||||
|
// tx provides information on msgs that can be forwarded to the application
|
||||||
|
// alongside the accepted transaction protobuf type
|
||||||
|
TxDescriptor tx = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryServicesDescriptor contains the list of cosmos-sdk queriable services
|
||||||
|
message QueryServicesDescriptor {
|
||||||
|
// query_services is a list of cosmos-sdk QueryServiceDescriptor
|
||||||
|
repeated QueryServiceDescriptor query_services = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryServiceDescriptor describes a cosmos-sdk queryable service
|
||||||
|
message QueryServiceDescriptor {
|
||||||
|
// fullname is the protobuf fullname of the service descriptor
|
||||||
|
string fullname = 1;
|
||||||
|
// is_module describes if this service is actually exposed by an application's module
|
||||||
|
bool is_module = 2;
|
||||||
|
// methods provides a list of query service methods
|
||||||
|
repeated QueryMethodDescriptor methods = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryMethodDescriptor describes a queryable method of a query service
|
||||||
|
// no other info is provided beside method name and tendermint queryable path
|
||||||
|
// because it would be redundant with the grpc reflection service
|
||||||
|
message QueryMethodDescriptor {
|
||||||
|
// name is the protobuf name (not fullname) of the method
|
||||||
|
string name = 1;
|
||||||
|
// full_query_path is the path that can be used to query
|
||||||
|
// this method via tendermint abci.Query
|
||||||
|
string full_query_path = 2;
|
||||||
|
}
|
20
proto/cosmos/base/snapshots/v1beta1/snapshot.proto
Normal file
20
proto/cosmos/base/snapshots/v1beta1/snapshot.proto
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.base.snapshots.v1beta1;
|
||||||
|
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/snapshots/types";
|
||||||
|
|
||||||
|
// Snapshot contains Tendermint state sync snapshot info.
|
||||||
|
message Snapshot {
|
||||||
|
uint64 height = 1;
|
||||||
|
uint32 format = 2;
|
||||||
|
uint32 chunks = 3;
|
||||||
|
bytes hash = 4;
|
||||||
|
Metadata metadata = 5 [(gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Metadata contains SDK-specific snapshot metadata.
|
||||||
|
message Metadata {
|
||||||
|
repeated bytes chunk_hashes = 1; // SHA-256 chunk hashes
|
||||||
|
}
|
29
proto/cosmos/base/store/v1beta1/commit_info.proto
Normal file
29
proto/cosmos/base/store/v1beta1/commit_info.proto
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.base.store.v1beta1;
|
||||||
|
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/store/types";
|
||||||
|
|
||||||
|
// CommitInfo defines commit information used by the multi-store when committing
|
||||||
|
// a version/height.
|
||||||
|
message CommitInfo {
|
||||||
|
int64 version = 1;
|
||||||
|
repeated StoreInfo store_infos = 2 [(gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
// StoreInfo defines store-specific commit information. It contains a reference
|
||||||
|
// between a store name and the commit ID.
|
||||||
|
message StoreInfo {
|
||||||
|
string name = 1;
|
||||||
|
CommitID commit_id = 2 [(gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
// CommitID defines the committment information when a specific store is
|
||||||
|
// committed.
|
||||||
|
message CommitID {
|
||||||
|
option (gogoproto.goproto_stringer) = false;
|
||||||
|
|
||||||
|
int64 version = 1;
|
||||||
|
bytes hash = 2;
|
||||||
|
}
|
14
proto/cosmos/base/store/v1beta1/listening.proto
Normal file
14
proto/cosmos/base/store/v1beta1/listening.proto
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.base.store.v1beta1;
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/store/types";
|
||||||
|
|
||||||
|
// StoreKVPair is a KVStore KVPair used for listening to state changes (Sets and Deletes)
|
||||||
|
// It optionally includes the StoreKey for the originating KVStore and a Boolean flag to distinguish between Sets and
|
||||||
|
// Deletes
|
||||||
|
message StoreKVPair {
|
||||||
|
string store_key = 1; // the store key for the KVStore this pair originates from
|
||||||
|
bool delete = 2; // true indicates a delete operation, false indicates a set operation
|
||||||
|
bytes key = 3;
|
||||||
|
bytes value = 4;
|
||||||
|
}
|
28
proto/cosmos/base/store/v1beta1/snapshot.proto
Normal file
28
proto/cosmos/base/store/v1beta1/snapshot.proto
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.base.store.v1beta1;
|
||||||
|
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/store/types";
|
||||||
|
|
||||||
|
// SnapshotItem is an item contained in a rootmulti.Store snapshot.
|
||||||
|
message SnapshotItem {
|
||||||
|
// item is the specific type of snapshot item.
|
||||||
|
oneof item {
|
||||||
|
SnapshotStoreItem store = 1;
|
||||||
|
SnapshotIAVLItem iavl = 2 [(gogoproto.customname) = "IAVL"];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// SnapshotStoreItem contains metadata about a snapshotted store.
|
||||||
|
message SnapshotStoreItem {
|
||||||
|
string name = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// SnapshotIAVLItem is an exported IAVL node.
|
||||||
|
message SnapshotIAVLItem {
|
||||||
|
bytes key = 1;
|
||||||
|
bytes value = 2;
|
||||||
|
int64 version = 3;
|
||||||
|
int32 height = 4;
|
||||||
|
}
|
136
proto/cosmos/base/tendermint/v1beta1/query.proto
Normal file
136
proto/cosmos/base/tendermint/v1beta1/query.proto
Normal file
@ -0,0 +1,136 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.base.tendermint.v1beta1;
|
||||||
|
|
||||||
|
import "google/protobuf/any.proto";
|
||||||
|
import "google/api/annotations.proto";
|
||||||
|
import "tendermint/p2p/types.proto";
|
||||||
|
import "tendermint/types/block.proto";
|
||||||
|
import "tendermint/types/types.proto";
|
||||||
|
import "cosmos/base/query/v1beta1/pagination.proto";
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/client/grpc/tmservice";
|
||||||
|
|
||||||
|
// Service defines the gRPC querier service for tendermint queries.
|
||||||
|
service Service {
|
||||||
|
// GetNodeInfo queries the current node info.
|
||||||
|
rpc GetNodeInfo(GetNodeInfoRequest) returns (GetNodeInfoResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/base/tendermint/v1beta1/node_info";
|
||||||
|
}
|
||||||
|
// GetSyncing queries node syncing.
|
||||||
|
rpc GetSyncing(GetSyncingRequest) returns (GetSyncingResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/base/tendermint/v1beta1/syncing";
|
||||||
|
}
|
||||||
|
// GetLatestBlock returns the latest block.
|
||||||
|
rpc GetLatestBlock(GetLatestBlockRequest) returns (GetLatestBlockResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/base/tendermint/v1beta1/blocks/latest";
|
||||||
|
}
|
||||||
|
// GetBlockByHeight queries block for given height.
|
||||||
|
rpc GetBlockByHeight(GetBlockByHeightRequest) returns (GetBlockByHeightResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/base/tendermint/v1beta1/blocks/{height}";
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetLatestValidatorSet queries latest validator-set.
|
||||||
|
rpc GetLatestValidatorSet(GetLatestValidatorSetRequest) returns (GetLatestValidatorSetResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/base/tendermint/v1beta1/validatorsets/latest";
|
||||||
|
}
|
||||||
|
// GetValidatorSetByHeight queries validator-set at a given height.
|
||||||
|
rpc GetValidatorSetByHeight(GetValidatorSetByHeightRequest) returns (GetValidatorSetByHeightResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/base/tendermint/v1beta1/validatorsets/{height}";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetValidatorSetByHeightRequest is the request type for the Query/GetValidatorSetByHeight RPC method.
|
||||||
|
message GetValidatorSetByHeightRequest {
|
||||||
|
int64 height = 1;
|
||||||
|
// pagination defines an pagination for the request.
|
||||||
|
cosmos.base.query.v1beta1.PageRequest pagination = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetValidatorSetByHeightResponse is the response type for the Query/GetValidatorSetByHeight RPC method.
|
||||||
|
message GetValidatorSetByHeightResponse {
|
||||||
|
int64 block_height = 1;
|
||||||
|
repeated Validator validators = 2;
|
||||||
|
// pagination defines an pagination for the response.
|
||||||
|
cosmos.base.query.v1beta1.PageResponse pagination = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetLatestValidatorSetRequest is the request type for the Query/GetValidatorSetByHeight RPC method.
|
||||||
|
message GetLatestValidatorSetRequest {
|
||||||
|
// pagination defines an pagination for the request.
|
||||||
|
cosmos.base.query.v1beta1.PageRequest pagination = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetLatestValidatorSetResponse is the response type for the Query/GetValidatorSetByHeight RPC method.
|
||||||
|
message GetLatestValidatorSetResponse {
|
||||||
|
int64 block_height = 1;
|
||||||
|
repeated Validator validators = 2;
|
||||||
|
// pagination defines an pagination for the response.
|
||||||
|
cosmos.base.query.v1beta1.PageResponse pagination = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validator is the type for the validator-set.
|
||||||
|
message Validator {
|
||||||
|
string address = 1;
|
||||||
|
google.protobuf.Any pub_key = 2;
|
||||||
|
int64 voting_power = 3;
|
||||||
|
int64 proposer_priority = 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetBlockByHeightRequest is the request type for the Query/GetBlockByHeight RPC method.
|
||||||
|
message GetBlockByHeightRequest {
|
||||||
|
int64 height = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetBlockByHeightResponse is the response type for the Query/GetBlockByHeight RPC method.
|
||||||
|
message GetBlockByHeightResponse {
|
||||||
|
.tendermint.types.BlockID block_id = 1;
|
||||||
|
.tendermint.types.Block block = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetLatestBlockRequest is the request type for the Query/GetLatestBlock RPC method.
|
||||||
|
message GetLatestBlockRequest {}
|
||||||
|
|
||||||
|
// GetLatestBlockResponse is the response type for the Query/GetLatestBlock RPC method.
|
||||||
|
message GetLatestBlockResponse {
|
||||||
|
.tendermint.types.BlockID block_id = 1;
|
||||||
|
.tendermint.types.Block block = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetSyncingRequest is the request type for the Query/GetSyncing RPC method.
|
||||||
|
message GetSyncingRequest {}
|
||||||
|
|
||||||
|
// GetSyncingResponse is the response type for the Query/GetSyncing RPC method.
|
||||||
|
message GetSyncingResponse {
|
||||||
|
bool syncing = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetNodeInfoRequest is the request type for the Query/GetNodeInfo RPC method.
|
||||||
|
message GetNodeInfoRequest {}
|
||||||
|
|
||||||
|
// GetNodeInfoResponse is the request type for the Query/GetNodeInfo RPC method.
|
||||||
|
message GetNodeInfoResponse {
|
||||||
|
.tendermint.p2p.DefaultNodeInfo default_node_info = 1;
|
||||||
|
VersionInfo application_version = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// VersionInfo is the type for the GetNodeInfoResponse message.
|
||||||
|
message VersionInfo {
|
||||||
|
string name = 1;
|
||||||
|
string app_name = 2;
|
||||||
|
string version = 3;
|
||||||
|
string git_commit = 4;
|
||||||
|
string build_tags = 5;
|
||||||
|
string go_version = 6;
|
||||||
|
repeated Module build_deps = 7;
|
||||||
|
string cosmos_sdk_version = 8;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Module is the type for VersionInfo
|
||||||
|
message Module {
|
||||||
|
// module path
|
||||||
|
string path = 1;
|
||||||
|
// module version
|
||||||
|
string version = 2;
|
||||||
|
// checksum
|
||||||
|
string sum = 3;
|
||||||
|
}
|
40
proto/cosmos/base/v1beta1/coin.proto
Normal file
40
proto/cosmos/base/v1beta1/coin.proto
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.base.v1beta1;
|
||||||
|
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/types";
|
||||||
|
option (gogoproto.goproto_stringer_all) = false;
|
||||||
|
option (gogoproto.stringer_all) = false;
|
||||||
|
|
||||||
|
// Coin defines a token with a denomination and an amount.
|
||||||
|
//
|
||||||
|
// NOTE: The amount field is an Int which implements the custom method
|
||||||
|
// signatures required by gogoproto.
|
||||||
|
message Coin {
|
||||||
|
option (gogoproto.equal) = true;
|
||||||
|
|
||||||
|
string denom = 1;
|
||||||
|
string amount = 2 [(gogoproto.customtype) = "Int", (gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
// DecCoin defines a token with a denomination and a decimal amount.
|
||||||
|
//
|
||||||
|
// NOTE: The amount field is an Dec which implements the custom method
|
||||||
|
// signatures required by gogoproto.
|
||||||
|
message DecCoin {
|
||||||
|
option (gogoproto.equal) = true;
|
||||||
|
|
||||||
|
string denom = 1;
|
||||||
|
string amount = 2 [(gogoproto.customtype) = "Dec", (gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
// IntProto defines a Protobuf wrapper around an Int object.
|
||||||
|
message IntProto {
|
||||||
|
string int = 1 [(gogoproto.customtype) = "Int", (gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
// DecProto defines a Protobuf wrapper around a Dec object.
|
||||||
|
message DecProto {
|
||||||
|
string dec = 1 [(gogoproto.customtype) = "Dec", (gogoproto.nullable) = false];
|
||||||
|
}
|
30
proto/cosmos/capability/v1beta1/capability.proto
Normal file
30
proto/cosmos/capability/v1beta1/capability.proto
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.capability.v1beta1;
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/x/capability/types";
|
||||||
|
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
|
||||||
|
// Capability defines an implementation of an object capability. The index
|
||||||
|
// provided to a Capability must be globally unique.
|
||||||
|
message Capability {
|
||||||
|
option (gogoproto.goproto_stringer) = false;
|
||||||
|
|
||||||
|
uint64 index = 1 [(gogoproto.moretags) = "yaml:\"index\""];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Owner defines a single capability owner. An owner is defined by the name of
|
||||||
|
// capability and the module name.
|
||||||
|
message Owner {
|
||||||
|
option (gogoproto.goproto_stringer) = false;
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
|
||||||
|
string module = 1 [(gogoproto.moretags) = "yaml:\"module\""];
|
||||||
|
string name = 2 [(gogoproto.moretags) = "yaml:\"name\""];
|
||||||
|
}
|
||||||
|
|
||||||
|
// CapabilityOwners defines a set of owners of a single Capability. The set of
|
||||||
|
// owners must be unique.
|
||||||
|
message CapabilityOwners {
|
||||||
|
repeated Owner owners = 1 [(gogoproto.nullable) = false];
|
||||||
|
}
|
26
proto/cosmos/capability/v1beta1/genesis.proto
Normal file
26
proto/cosmos/capability/v1beta1/genesis.proto
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.capability.v1beta1;
|
||||||
|
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
import "cosmos/capability/v1beta1/capability.proto";
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/x/capability/types";
|
||||||
|
|
||||||
|
// GenesisOwners defines the capability owners with their corresponding index.
|
||||||
|
message GenesisOwners {
|
||||||
|
// index is the index of the capability owner.
|
||||||
|
uint64 index = 1;
|
||||||
|
|
||||||
|
// index_owners are the owners at the given index.
|
||||||
|
CapabilityOwners index_owners = 2 [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"index_owners\""];
|
||||||
|
}
|
||||||
|
|
||||||
|
// GenesisState defines the capability module's genesis state.
|
||||||
|
message GenesisState {
|
||||||
|
// index is the capability global index.
|
||||||
|
uint64 index = 1;
|
||||||
|
|
||||||
|
// owners represents a map from index to owners of the capability index
|
||||||
|
// index key is string to allow amino marshalling.
|
||||||
|
repeated GenesisOwners owners = 2 [(gogoproto.nullable) = false];
|
||||||
|
}
|
15
proto/cosmos/crisis/v1beta1/genesis.proto
Normal file
15
proto/cosmos/crisis/v1beta1/genesis.proto
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.crisis.v1beta1;
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/x/crisis/types";
|
||||||
|
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
import "cosmos/base/v1beta1/coin.proto";
|
||||||
|
|
||||||
|
// GenesisState defines the crisis module's genesis state.
|
||||||
|
message GenesisState {
|
||||||
|
// constant_fee is the fee used to verify the invariant in the crisis
|
||||||
|
// module.
|
||||||
|
cosmos.base.v1beta1.Coin constant_fee = 3
|
||||||
|
[(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"constant_fee\""];
|
||||||
|
}
|
25
proto/cosmos/crisis/v1beta1/tx.proto
Normal file
25
proto/cosmos/crisis/v1beta1/tx.proto
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.crisis.v1beta1;
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/x/crisis/types";
|
||||||
|
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
|
||||||
|
// Msg defines the bank Msg service.
|
||||||
|
service Msg {
|
||||||
|
// VerifyInvariant defines a method to verify a particular invariance.
|
||||||
|
rpc VerifyInvariant(MsgVerifyInvariant) returns (MsgVerifyInvariantResponse);
|
||||||
|
}
|
||||||
|
|
||||||
|
// MsgVerifyInvariant represents a message to verify a particular invariance.
|
||||||
|
message MsgVerifyInvariant {
|
||||||
|
option (gogoproto.equal) = false;
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
|
||||||
|
string sender = 1;
|
||||||
|
string invariant_module_name = 2 [(gogoproto.moretags) = "yaml:\"invariant_module_name\""];
|
||||||
|
string invariant_route = 3 [(gogoproto.moretags) = "yaml:\"invariant_route\""];
|
||||||
|
}
|
||||||
|
|
||||||
|
// MsgVerifyInvariantResponse defines the Msg/VerifyInvariant response type.
|
||||||
|
message MsgVerifyInvariantResponse {}
|
23
proto/cosmos/crypto/ed25519/keys.proto
Normal file
23
proto/cosmos/crypto/ed25519/keys.proto
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.crypto.ed25519;
|
||||||
|
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/crypto/keys/ed25519";
|
||||||
|
|
||||||
|
// PubKey is an ed25519 public key for handling Tendermint keys in SDK.
|
||||||
|
// It's needed for Any serialization and SDK compatibility.
|
||||||
|
// It must not be used in a non Tendermint key context because it doesn't implement
|
||||||
|
// ADR-28. Nevertheless, you will like to use ed25519 in app user level
|
||||||
|
// then you must create a new proto message and follow ADR-28 for Address construction.
|
||||||
|
message PubKey {
|
||||||
|
option (gogoproto.goproto_stringer) = false;
|
||||||
|
|
||||||
|
bytes key = 1 [(gogoproto.casttype) = "crypto/ed25519.PublicKey"];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deprecated: PrivKey defines a ed25519 private key.
|
||||||
|
// NOTE: ed25519 keys must not be used in SDK apps except in a tendermint validator context.
|
||||||
|
message PrivKey {
|
||||||
|
bytes key = 1 [(gogoproto.casttype) = "crypto/ed25519.PrivateKey"];
|
||||||
|
}
|
18
proto/cosmos/crypto/multisig/keys.proto
Normal file
18
proto/cosmos/crypto/multisig/keys.proto
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.crypto.multisig;
|
||||||
|
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
import "google/protobuf/any.proto";
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/crypto/keys/multisig";
|
||||||
|
|
||||||
|
// LegacyAminoPubKey specifies a public key type
|
||||||
|
// which nests multiple public keys and a threshold,
|
||||||
|
// it uses legacy amino address rules.
|
||||||
|
message LegacyAminoPubKey {
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
|
||||||
|
uint32 threshold = 1 [(gogoproto.moretags) = "yaml:\"threshold\""];
|
||||||
|
repeated google.protobuf.Any public_keys = 2
|
||||||
|
[(gogoproto.customname) = "PubKeys", (gogoproto.moretags) = "yaml:\"pubkeys\""];
|
||||||
|
}
|
25
proto/cosmos/crypto/multisig/v1beta1/multisig.proto
Normal file
25
proto/cosmos/crypto/multisig/v1beta1/multisig.proto
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.crypto.multisig.v1beta1;
|
||||||
|
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/crypto/types";
|
||||||
|
|
||||||
|
// MultiSignature wraps the signatures from a multisig.LegacyAminoPubKey.
|
||||||
|
// See cosmos.tx.v1betata1.ModeInfo.Multi for how to specify which signers
|
||||||
|
// signed and with which modes.
|
||||||
|
message MultiSignature {
|
||||||
|
option (gogoproto.goproto_unrecognized) = true;
|
||||||
|
repeated bytes signatures = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// CompactBitArray is an implementation of a space efficient bit array.
|
||||||
|
// This is used to ensure that the encoded data takes up a minimal amount of
|
||||||
|
// space after proto encoding.
|
||||||
|
// This is not thread safe, and is not intended for concurrent usage.
|
||||||
|
message CompactBitArray {
|
||||||
|
option (gogoproto.goproto_stringer) = false;
|
||||||
|
|
||||||
|
uint32 extra_bits_stored = 1;
|
||||||
|
bytes elems = 2;
|
||||||
|
}
|
22
proto/cosmos/crypto/secp256k1/keys.proto
Normal file
22
proto/cosmos/crypto/secp256k1/keys.proto
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.crypto.secp256k1;
|
||||||
|
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/crypto/keys/secp256k1";
|
||||||
|
|
||||||
|
// PubKey defines a secp256k1 public key
|
||||||
|
// Key is the compressed form of the pubkey. The first byte depends is a 0x02 byte
|
||||||
|
// if the y-coordinate is the lexicographically largest of the two associated with
|
||||||
|
// the x-coordinate. Otherwise the first byte is a 0x03.
|
||||||
|
// This prefix is followed with the x-coordinate.
|
||||||
|
message PubKey {
|
||||||
|
option (gogoproto.goproto_stringer) = false;
|
||||||
|
|
||||||
|
bytes key = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// PrivKey defines a secp256k1 private key.
|
||||||
|
message PrivKey {
|
||||||
|
bytes key = 1;
|
||||||
|
}
|
22
proto/cosmos/crypto/secp256r1/keys.proto
Normal file
22
proto/cosmos/crypto/secp256r1/keys.proto
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.crypto.secp256r1;
|
||||||
|
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/crypto/keys/secp256r1";
|
||||||
|
option (gogoproto.messagename_all) = true;
|
||||||
|
option (gogoproto.goproto_stringer_all) = false;
|
||||||
|
option (gogoproto.goproto_getters_all) = false;
|
||||||
|
|
||||||
|
// PubKey defines a secp256r1 ECDSA public key.
|
||||||
|
message PubKey {
|
||||||
|
// Point on secp256r1 curve in a compressed representation as specified in section
|
||||||
|
// 4.3.6 of ANSI X9.62: https://webstore.ansi.org/standards/ascx9/ansix9621998
|
||||||
|
bytes key = 1 [(gogoproto.customtype) = "ecdsaPK"];
|
||||||
|
}
|
||||||
|
|
||||||
|
// PrivKey defines a secp256r1 ECDSA private key.
|
||||||
|
message PrivKey {
|
||||||
|
// secret number serialized using big-endian encoding
|
||||||
|
bytes secret = 1 [(gogoproto.customtype) = "ecdsaSK"];
|
||||||
|
}
|
157
proto/cosmos/distribution/v1beta1/distribution.proto
Normal file
157
proto/cosmos/distribution/v1beta1/distribution.proto
Normal file
@ -0,0 +1,157 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.distribution.v1beta1;
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/x/distribution/types";
|
||||||
|
option (gogoproto.equal_all) = true;
|
||||||
|
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
import "cosmos/base/v1beta1/coin.proto";
|
||||||
|
|
||||||
|
// Params defines the set of params for the distribution module.
|
||||||
|
message Params {
|
||||||
|
option (gogoproto.goproto_stringer) = false;
|
||||||
|
string community_tax = 1 [
|
||||||
|
(gogoproto.moretags) = "yaml:\"community_tax\"",
|
||||||
|
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec",
|
||||||
|
(gogoproto.nullable) = false
|
||||||
|
];
|
||||||
|
string base_proposer_reward = 2 [
|
||||||
|
(gogoproto.moretags) = "yaml:\"base_proposer_reward\"",
|
||||||
|
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec",
|
||||||
|
(gogoproto.nullable) = false
|
||||||
|
];
|
||||||
|
string bonus_proposer_reward = 3 [
|
||||||
|
(gogoproto.moretags) = "yaml:\"bonus_proposer_reward\"",
|
||||||
|
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec",
|
||||||
|
(gogoproto.nullable) = false
|
||||||
|
];
|
||||||
|
bool withdraw_addr_enabled = 4 [(gogoproto.moretags) = "yaml:\"withdraw_addr_enabled\""];
|
||||||
|
}
|
||||||
|
|
||||||
|
// ValidatorHistoricalRewards represents historical rewards for a validator.
|
||||||
|
// Height is implicit within the store key.
|
||||||
|
// Cumulative reward ratio is the sum from the zeroeth period
|
||||||
|
// until this period of rewards / tokens, per the spec.
|
||||||
|
// The reference count indicates the number of objects
|
||||||
|
// which might need to reference this historical entry at any point.
|
||||||
|
// ReferenceCount =
|
||||||
|
// number of outstanding delegations which ended the associated period (and
|
||||||
|
// might need to read that record)
|
||||||
|
// + number of slashes which ended the associated period (and might need to
|
||||||
|
// read that record)
|
||||||
|
// + one per validator for the zeroeth period, set on initialization
|
||||||
|
message ValidatorHistoricalRewards {
|
||||||
|
repeated cosmos.base.v1beta1.DecCoin cumulative_reward_ratio = 1 [
|
||||||
|
(gogoproto.moretags) = "yaml:\"cumulative_reward_ratio\"",
|
||||||
|
(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.DecCoins",
|
||||||
|
(gogoproto.nullable) = false
|
||||||
|
];
|
||||||
|
uint32 reference_count = 2 [(gogoproto.moretags) = "yaml:\"reference_count\""];
|
||||||
|
}
|
||||||
|
|
||||||
|
// ValidatorCurrentRewards represents current rewards and current
|
||||||
|
// period for a validator kept as a running counter and incremented
|
||||||
|
// each block as long as the validator's tokens remain constant.
|
||||||
|
message ValidatorCurrentRewards {
|
||||||
|
repeated cosmos.base.v1beta1.DecCoin rewards = 1
|
||||||
|
[(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.DecCoins", (gogoproto.nullable) = false];
|
||||||
|
uint64 period = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ValidatorAccumulatedCommission represents accumulated commission
|
||||||
|
// for a validator kept as a running counter, can be withdrawn at any time.
|
||||||
|
message ValidatorAccumulatedCommission {
|
||||||
|
repeated cosmos.base.v1beta1.DecCoin commission = 1
|
||||||
|
[(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.DecCoins", (gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
// ValidatorOutstandingRewards represents outstanding (un-withdrawn) rewards
|
||||||
|
// for a validator inexpensive to track, allows simple sanity checks.
|
||||||
|
message ValidatorOutstandingRewards {
|
||||||
|
repeated cosmos.base.v1beta1.DecCoin rewards = 1 [
|
||||||
|
(gogoproto.moretags) = "yaml:\"rewards\"",
|
||||||
|
(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.DecCoins",
|
||||||
|
(gogoproto.nullable) = false
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
// ValidatorSlashEvent represents a validator slash event.
|
||||||
|
// Height is implicit within the store key.
|
||||||
|
// This is needed to calculate appropriate amount of staking tokens
|
||||||
|
// for delegations which are withdrawn after a slash has occurred.
|
||||||
|
message ValidatorSlashEvent {
|
||||||
|
uint64 validator_period = 1 [(gogoproto.moretags) = "yaml:\"validator_period\""];
|
||||||
|
string fraction = 2 [(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", (gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
// ValidatorSlashEvents is a collection of ValidatorSlashEvent messages.
|
||||||
|
message ValidatorSlashEvents {
|
||||||
|
option (gogoproto.goproto_stringer) = false;
|
||||||
|
repeated ValidatorSlashEvent validator_slash_events = 1
|
||||||
|
[(gogoproto.moretags) = "yaml:\"validator_slash_events\"", (gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
// FeePool is the global fee pool for distribution.
|
||||||
|
message FeePool {
|
||||||
|
repeated cosmos.base.v1beta1.DecCoin community_pool = 1 [
|
||||||
|
(gogoproto.nullable) = false,
|
||||||
|
(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.DecCoins",
|
||||||
|
(gogoproto.moretags) = "yaml:\"community_pool\""
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
// CommunityPoolSpendProposal details a proposal for use of community funds,
|
||||||
|
// together with how many coins are proposed to be spent, and to which
|
||||||
|
// recipient account.
|
||||||
|
message CommunityPoolSpendProposal {
|
||||||
|
option (gogoproto.equal) = false;
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
option (gogoproto.goproto_stringer) = false;
|
||||||
|
|
||||||
|
string title = 1;
|
||||||
|
string description = 2;
|
||||||
|
string recipient = 3;
|
||||||
|
repeated cosmos.base.v1beta1.Coin amount = 4
|
||||||
|
[(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"];
|
||||||
|
}
|
||||||
|
|
||||||
|
// DelegatorStartingInfo represents the starting info for a delegator reward
|
||||||
|
// period. It tracks the previous validator period, the delegation's amount of
|
||||||
|
// staking token, and the creation height (to check later on if any slashes have
|
||||||
|
// occurred). NOTE: Even though validators are slashed to whole staking tokens,
|
||||||
|
// the delegators within the validator may be left with less than a full token,
|
||||||
|
// thus sdk.Dec is used.
|
||||||
|
message DelegatorStartingInfo {
|
||||||
|
uint64 previous_period = 1 [(gogoproto.moretags) = "yaml:\"previous_period\""];
|
||||||
|
string stake = 2 [
|
||||||
|
(gogoproto.moretags) = "yaml:\"stake\"",
|
||||||
|
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec",
|
||||||
|
(gogoproto.nullable) = false
|
||||||
|
];
|
||||||
|
uint64 height = 3 [(gogoproto.moretags) = "yaml:\"creation_height\"", (gogoproto.jsontag) = "creation_height"];
|
||||||
|
}
|
||||||
|
|
||||||
|
// DelegationDelegatorReward represents the properties
|
||||||
|
// of a delegator's delegation reward.
|
||||||
|
message DelegationDelegatorReward {
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
option (gogoproto.goproto_stringer) = true;
|
||||||
|
|
||||||
|
string validator_address = 1 [(gogoproto.moretags) = "yaml:\"validator_address\""];
|
||||||
|
|
||||||
|
repeated cosmos.base.v1beta1.DecCoin reward = 2
|
||||||
|
[(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.DecCoins", (gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
// CommunityPoolSpendProposalWithDeposit defines a CommunityPoolSpendProposal
|
||||||
|
// with a deposit
|
||||||
|
message CommunityPoolSpendProposalWithDeposit {
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
option (gogoproto.goproto_stringer) = true;
|
||||||
|
|
||||||
|
string title = 1 [(gogoproto.moretags) = "yaml:\"title\""];
|
||||||
|
string description = 2 [(gogoproto.moretags) = "yaml:\"description\""];
|
||||||
|
string recipient = 3 [(gogoproto.moretags) = "yaml:\"recipient\""];
|
||||||
|
string amount = 4 [(gogoproto.moretags) = "yaml:\"amount\""];
|
||||||
|
string deposit = 5 [(gogoproto.moretags) = "yaml:\"deposit\""];
|
||||||
|
}
|
155
proto/cosmos/distribution/v1beta1/genesis.proto
Normal file
155
proto/cosmos/distribution/v1beta1/genesis.proto
Normal file
@ -0,0 +1,155 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.distribution.v1beta1;
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/x/distribution/types";
|
||||||
|
option (gogoproto.equal_all) = true;
|
||||||
|
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
import "cosmos/base/v1beta1/coin.proto";
|
||||||
|
import "cosmos/distribution/v1beta1/distribution.proto";
|
||||||
|
|
||||||
|
// DelegatorWithdrawInfo is the address for where distributions rewards are
|
||||||
|
// withdrawn to by default this struct is only used at genesis to feed in
|
||||||
|
// default withdraw addresses.
|
||||||
|
message DelegatorWithdrawInfo {
|
||||||
|
option (gogoproto.equal) = false;
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
|
||||||
|
// delegator_address is the address of the delegator.
|
||||||
|
string delegator_address = 1 [(gogoproto.moretags) = "yaml:\"delegator_address\""];
|
||||||
|
|
||||||
|
// withdraw_address is the address to withdraw the delegation rewards to.
|
||||||
|
string withdraw_address = 2 [(gogoproto.moretags) = "yaml:\"withdraw_address\""];
|
||||||
|
}
|
||||||
|
|
||||||
|
// ValidatorOutstandingRewardsRecord is used for import/export via genesis json.
|
||||||
|
message ValidatorOutstandingRewardsRecord {
|
||||||
|
option (gogoproto.equal) = false;
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
|
||||||
|
// validator_address is the address of the validator.
|
||||||
|
string validator_address = 1 [(gogoproto.moretags) = "yaml:\"validator_address\""];
|
||||||
|
|
||||||
|
// outstanding_rewards represents the oustanding rewards of a validator.
|
||||||
|
repeated cosmos.base.v1beta1.DecCoin outstanding_rewards = 2 [
|
||||||
|
(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.DecCoins",
|
||||||
|
(gogoproto.nullable) = false,
|
||||||
|
(gogoproto.moretags) = "yaml:\"outstanding_rewards\""
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
// ValidatorAccumulatedCommissionRecord is used for import / export via genesis
|
||||||
|
// json.
|
||||||
|
message ValidatorAccumulatedCommissionRecord {
|
||||||
|
option (gogoproto.equal) = false;
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
|
||||||
|
// validator_address is the address of the validator.
|
||||||
|
string validator_address = 1 [(gogoproto.moretags) = "yaml:\"validator_address\""];
|
||||||
|
|
||||||
|
// accumulated is the accumulated commission of a validator.
|
||||||
|
ValidatorAccumulatedCommission accumulated = 2
|
||||||
|
[(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"accumulated\""];
|
||||||
|
}
|
||||||
|
|
||||||
|
// ValidatorHistoricalRewardsRecord is used for import / export via genesis
|
||||||
|
// json.
|
||||||
|
message ValidatorHistoricalRewardsRecord {
|
||||||
|
option (gogoproto.equal) = false;
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
|
||||||
|
// validator_address is the address of the validator.
|
||||||
|
string validator_address = 1 [(gogoproto.moretags) = "yaml:\"validator_address\""];
|
||||||
|
|
||||||
|
// period defines the period the historical rewards apply to.
|
||||||
|
uint64 period = 2;
|
||||||
|
|
||||||
|
// rewards defines the historical rewards of a validator.
|
||||||
|
ValidatorHistoricalRewards rewards = 3 [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"rewards\""];
|
||||||
|
}
|
||||||
|
|
||||||
|
// ValidatorCurrentRewardsRecord is used for import / export via genesis json.
|
||||||
|
message ValidatorCurrentRewardsRecord {
|
||||||
|
option (gogoproto.equal) = false;
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
|
||||||
|
// validator_address is the address of the validator.
|
||||||
|
string validator_address = 1 [(gogoproto.moretags) = "yaml:\"validator_address\""];
|
||||||
|
|
||||||
|
// rewards defines the current rewards of a validator.
|
||||||
|
ValidatorCurrentRewards rewards = 2 [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"rewards\""];
|
||||||
|
}
|
||||||
|
|
||||||
|
// DelegatorStartingInfoRecord used for import / export via genesis json.
|
||||||
|
message DelegatorStartingInfoRecord {
|
||||||
|
option (gogoproto.equal) = false;
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
|
||||||
|
// delegator_address is the address of the delegator.
|
||||||
|
string delegator_address = 1 [(gogoproto.moretags) = "yaml:\"delegator_address\""];
|
||||||
|
|
||||||
|
// validator_address is the address of the validator.
|
||||||
|
string validator_address = 2 [(gogoproto.moretags) = "yaml:\"validator_address\""];
|
||||||
|
|
||||||
|
// starting_info defines the starting info of a delegator.
|
||||||
|
DelegatorStartingInfo starting_info = 3
|
||||||
|
[(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"starting_info\""];
|
||||||
|
}
|
||||||
|
|
||||||
|
// ValidatorSlashEventRecord is used for import / export via genesis json.
|
||||||
|
message ValidatorSlashEventRecord {
|
||||||
|
option (gogoproto.equal) = false;
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
|
||||||
|
// validator_address is the address of the validator.
|
||||||
|
string validator_address = 1 [(gogoproto.moretags) = "yaml:\"validator_address\""];
|
||||||
|
// height defines the block height at which the slash event occured.
|
||||||
|
uint64 height = 2;
|
||||||
|
// period is the period of the slash event.
|
||||||
|
uint64 period = 3;
|
||||||
|
// validator_slash_event describes the slash event.
|
||||||
|
ValidatorSlashEvent validator_slash_event = 4 [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"event\""];
|
||||||
|
}
|
||||||
|
|
||||||
|
// GenesisState defines the distribution module's genesis state.
|
||||||
|
message GenesisState {
|
||||||
|
option (gogoproto.equal) = false;
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
|
||||||
|
// params defines all the paramaters of the module.
|
||||||
|
Params params = 1 [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"params\""];
|
||||||
|
|
||||||
|
// fee_pool defines the fee pool at genesis.
|
||||||
|
FeePool fee_pool = 2 [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"fee_pool\""];
|
||||||
|
|
||||||
|
// fee_pool defines the delegator withdraw infos at genesis.
|
||||||
|
repeated DelegatorWithdrawInfo delegator_withdraw_infos = 3
|
||||||
|
[(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"delegator_withdraw_infos\""];
|
||||||
|
|
||||||
|
// fee_pool defines the previous proposer at genesis.
|
||||||
|
string previous_proposer = 4 [(gogoproto.moretags) = "yaml:\"previous_proposer\""];
|
||||||
|
|
||||||
|
// fee_pool defines the outstanding rewards of all validators at genesis.
|
||||||
|
repeated ValidatorOutstandingRewardsRecord outstanding_rewards = 5
|
||||||
|
[(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"outstanding_rewards\""];
|
||||||
|
|
||||||
|
// fee_pool defines the accumulated commisions of all validators at genesis.
|
||||||
|
repeated ValidatorAccumulatedCommissionRecord validator_accumulated_commissions = 6
|
||||||
|
[(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"validator_accumulated_commissions\""];
|
||||||
|
|
||||||
|
// fee_pool defines the historical rewards of all validators at genesis.
|
||||||
|
repeated ValidatorHistoricalRewardsRecord validator_historical_rewards = 7
|
||||||
|
[(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"validator_historical_rewards\""];
|
||||||
|
|
||||||
|
// fee_pool defines the current rewards of all validators at genesis.
|
||||||
|
repeated ValidatorCurrentRewardsRecord validator_current_rewards = 8
|
||||||
|
[(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"validator_current_rewards\""];
|
||||||
|
|
||||||
|
// fee_pool defines the delegator starting infos at genesis.
|
||||||
|
repeated DelegatorStartingInfoRecord delegator_starting_infos = 9
|
||||||
|
[(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"delegator_starting_infos\""];
|
||||||
|
|
||||||
|
// fee_pool defines the validator slash events at genesis.
|
||||||
|
repeated ValidatorSlashEventRecord validator_slash_events = 10
|
||||||
|
[(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"validator_slash_events\""];
|
||||||
|
}
|
218
proto/cosmos/distribution/v1beta1/query.proto
Normal file
218
proto/cosmos/distribution/v1beta1/query.proto
Normal file
@ -0,0 +1,218 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.distribution.v1beta1;
|
||||||
|
|
||||||
|
import "cosmos/base/query/v1beta1/pagination.proto";
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
import "google/api/annotations.proto";
|
||||||
|
import "cosmos/base/v1beta1/coin.proto";
|
||||||
|
import "cosmos/distribution/v1beta1/distribution.proto";
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/x/distribution/types";
|
||||||
|
|
||||||
|
// Query defines the gRPC querier service for distribution module.
|
||||||
|
service Query {
|
||||||
|
// Params queries params of the distribution module.
|
||||||
|
rpc Params(QueryParamsRequest) returns (QueryParamsResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/distribution/v1beta1/params";
|
||||||
|
}
|
||||||
|
|
||||||
|
// ValidatorOutstandingRewards queries rewards of a validator address.
|
||||||
|
rpc ValidatorOutstandingRewards(QueryValidatorOutstandingRewardsRequest)
|
||||||
|
returns (QueryValidatorOutstandingRewardsResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/distribution/v1beta1/validators/"
|
||||||
|
"{validator_address}/outstanding_rewards";
|
||||||
|
}
|
||||||
|
|
||||||
|
// ValidatorCommission queries accumulated commission for a validator.
|
||||||
|
rpc ValidatorCommission(QueryValidatorCommissionRequest) returns (QueryValidatorCommissionResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/distribution/v1beta1/validators/"
|
||||||
|
"{validator_address}/commission";
|
||||||
|
}
|
||||||
|
|
||||||
|
// ValidatorSlashes queries slash events of a validator.
|
||||||
|
rpc ValidatorSlashes(QueryValidatorSlashesRequest) returns (QueryValidatorSlashesResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/distribution/v1beta1/validators/{validator_address}/slashes";
|
||||||
|
}
|
||||||
|
|
||||||
|
// DelegationRewards queries the total rewards accrued by a delegation.
|
||||||
|
rpc DelegationRewards(QueryDelegationRewardsRequest) returns (QueryDelegationRewardsResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/distribution/v1beta1/delegators/{delegator_address}/rewards/"
|
||||||
|
"{validator_address}";
|
||||||
|
}
|
||||||
|
|
||||||
|
// DelegationTotalRewards queries the total rewards accrued by a each
|
||||||
|
// validator.
|
||||||
|
rpc DelegationTotalRewards(QueryDelegationTotalRewardsRequest) returns (QueryDelegationTotalRewardsResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/distribution/v1beta1/delegators/{delegator_address}/rewards";
|
||||||
|
}
|
||||||
|
|
||||||
|
// DelegatorValidators queries the validators of a delegator.
|
||||||
|
rpc DelegatorValidators(QueryDelegatorValidatorsRequest) returns (QueryDelegatorValidatorsResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/distribution/v1beta1/delegators/"
|
||||||
|
"{delegator_address}/validators";
|
||||||
|
}
|
||||||
|
|
||||||
|
// DelegatorWithdrawAddress queries withdraw address of a delegator.
|
||||||
|
rpc DelegatorWithdrawAddress(QueryDelegatorWithdrawAddressRequest) returns (QueryDelegatorWithdrawAddressResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/distribution/v1beta1/delegators/"
|
||||||
|
"{delegator_address}/withdraw_address";
|
||||||
|
}
|
||||||
|
|
||||||
|
// CommunityPool queries the community pool coins.
|
||||||
|
rpc CommunityPool(QueryCommunityPoolRequest) returns (QueryCommunityPoolResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/distribution/v1beta1/community_pool";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryParamsRequest is the request type for the Query/Params RPC method.
|
||||||
|
message QueryParamsRequest {}
|
||||||
|
|
||||||
|
// QueryParamsResponse is the response type for the Query/Params RPC method.
|
||||||
|
message QueryParamsResponse {
|
||||||
|
// params defines the parameters of the module.
|
||||||
|
Params params = 1 [(gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryValidatorOutstandingRewardsRequest is the request type for the
|
||||||
|
// Query/ValidatorOutstandingRewards RPC method.
|
||||||
|
message QueryValidatorOutstandingRewardsRequest {
|
||||||
|
// validator_address defines the validator address to query for.
|
||||||
|
string validator_address = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryValidatorOutstandingRewardsResponse is the response type for the
|
||||||
|
// Query/ValidatorOutstandingRewards RPC method.
|
||||||
|
message QueryValidatorOutstandingRewardsResponse {
|
||||||
|
ValidatorOutstandingRewards rewards = 1 [(gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryValidatorCommissionRequest is the request type for the
|
||||||
|
// Query/ValidatorCommission RPC method
|
||||||
|
message QueryValidatorCommissionRequest {
|
||||||
|
// validator_address defines the validator address to query for.
|
||||||
|
string validator_address = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryValidatorCommissionResponse is the response type for the
|
||||||
|
// Query/ValidatorCommission RPC method
|
||||||
|
message QueryValidatorCommissionResponse {
|
||||||
|
// commission defines the commision the validator received.
|
||||||
|
ValidatorAccumulatedCommission commission = 1 [(gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryValidatorSlashesRequest is the request type for the
|
||||||
|
// Query/ValidatorSlashes RPC method
|
||||||
|
message QueryValidatorSlashesRequest {
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
option (gogoproto.goproto_stringer) = true;
|
||||||
|
|
||||||
|
// validator_address defines the validator address to query for.
|
||||||
|
string validator_address = 1;
|
||||||
|
// starting_height defines the optional starting height to query the slashes.
|
||||||
|
uint64 starting_height = 2;
|
||||||
|
// starting_height defines the optional ending height to query the slashes.
|
||||||
|
uint64 ending_height = 3;
|
||||||
|
// pagination defines an optional pagination for the request.
|
||||||
|
cosmos.base.query.v1beta1.PageRequest pagination = 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryValidatorSlashesResponse is the response type for the
|
||||||
|
// Query/ValidatorSlashes RPC method.
|
||||||
|
message QueryValidatorSlashesResponse {
|
||||||
|
// slashes defines the slashes the validator received.
|
||||||
|
repeated ValidatorSlashEvent slashes = 1 [(gogoproto.nullable) = false];
|
||||||
|
|
||||||
|
// pagination defines the pagination in the response.
|
||||||
|
cosmos.base.query.v1beta1.PageResponse pagination = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryDelegationRewardsRequest is the request type for the
|
||||||
|
// Query/DelegationRewards RPC method.
|
||||||
|
message QueryDelegationRewardsRequest {
|
||||||
|
option (gogoproto.equal) = false;
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
|
||||||
|
// delegator_address defines the delegator address to query for.
|
||||||
|
string delegator_address = 1;
|
||||||
|
// validator_address defines the validator address to query for.
|
||||||
|
string validator_address = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryDelegationRewardsResponse is the response type for the
|
||||||
|
// Query/DelegationRewards RPC method.
|
||||||
|
message QueryDelegationRewardsResponse {
|
||||||
|
// rewards defines the rewards accrued by a delegation.
|
||||||
|
repeated cosmos.base.v1beta1.DecCoin rewards = 1
|
||||||
|
[(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.DecCoins"];
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryDelegationTotalRewardsRequest is the request type for the
|
||||||
|
// Query/DelegationTotalRewards RPC method.
|
||||||
|
message QueryDelegationTotalRewardsRequest {
|
||||||
|
option (gogoproto.equal) = false;
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
// delegator_address defines the delegator address to query for.
|
||||||
|
string delegator_address = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryDelegationTotalRewardsResponse is the response type for the
|
||||||
|
// Query/DelegationTotalRewards RPC method.
|
||||||
|
message QueryDelegationTotalRewardsResponse {
|
||||||
|
// rewards defines all the rewards accrued by a delegator.
|
||||||
|
repeated DelegationDelegatorReward rewards = 1 [(gogoproto.nullable) = false];
|
||||||
|
// total defines the sum of all the rewards.
|
||||||
|
repeated cosmos.base.v1beta1.DecCoin total = 2
|
||||||
|
[(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.DecCoins"];
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryDelegatorValidatorsRequest is the request type for the
|
||||||
|
// Query/DelegatorValidators RPC method.
|
||||||
|
message QueryDelegatorValidatorsRequest {
|
||||||
|
option (gogoproto.equal) = false;
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
|
||||||
|
// delegator_address defines the delegator address to query for.
|
||||||
|
string delegator_address = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryDelegatorValidatorsResponse is the response type for the
|
||||||
|
// Query/DelegatorValidators RPC method.
|
||||||
|
message QueryDelegatorValidatorsResponse {
|
||||||
|
option (gogoproto.equal) = false;
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
|
||||||
|
// validators defines the validators a delegator is delegating for.
|
||||||
|
repeated string validators = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryDelegatorWithdrawAddressRequest is the request type for the
|
||||||
|
// Query/DelegatorWithdrawAddress RPC method.
|
||||||
|
message QueryDelegatorWithdrawAddressRequest {
|
||||||
|
option (gogoproto.equal) = false;
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
|
||||||
|
// delegator_address defines the delegator address to query for.
|
||||||
|
string delegator_address = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryDelegatorWithdrawAddressResponse is the response type for the
|
||||||
|
// Query/DelegatorWithdrawAddress RPC method.
|
||||||
|
message QueryDelegatorWithdrawAddressResponse {
|
||||||
|
option (gogoproto.equal) = false;
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
|
||||||
|
// withdraw_address defines the delegator address to query for.
|
||||||
|
string withdraw_address = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryCommunityPoolRequest is the request type for the Query/CommunityPool RPC
|
||||||
|
// method.
|
||||||
|
message QueryCommunityPoolRequest {}
|
||||||
|
|
||||||
|
// QueryCommunityPoolResponse is the response type for the Query/CommunityPool
|
||||||
|
// RPC method.
|
||||||
|
message QueryCommunityPoolResponse {
|
||||||
|
// pool defines community pool's coins.
|
||||||
|
repeated cosmos.base.v1beta1.DecCoin pool = 1
|
||||||
|
[(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.DecCoins", (gogoproto.nullable) = false];
|
||||||
|
}
|
79
proto/cosmos/distribution/v1beta1/tx.proto
Normal file
79
proto/cosmos/distribution/v1beta1/tx.proto
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.distribution.v1beta1;
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/x/distribution/types";
|
||||||
|
option (gogoproto.equal_all) = true;
|
||||||
|
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
import "cosmos/base/v1beta1/coin.proto";
|
||||||
|
|
||||||
|
// Msg defines the distribution Msg service.
|
||||||
|
service Msg {
|
||||||
|
// SetWithdrawAddress defines a method to change the withdraw address
|
||||||
|
// for a delegator (or validator self-delegation).
|
||||||
|
rpc SetWithdrawAddress(MsgSetWithdrawAddress) returns (MsgSetWithdrawAddressResponse);
|
||||||
|
|
||||||
|
// WithdrawDelegatorReward defines a method to withdraw rewards of delegator
|
||||||
|
// from a single validator.
|
||||||
|
rpc WithdrawDelegatorReward(MsgWithdrawDelegatorReward) returns (MsgWithdrawDelegatorRewardResponse);
|
||||||
|
|
||||||
|
// WithdrawValidatorCommission defines a method to withdraw the
|
||||||
|
// full commission to the validator address.
|
||||||
|
rpc WithdrawValidatorCommission(MsgWithdrawValidatorCommission) returns (MsgWithdrawValidatorCommissionResponse);
|
||||||
|
|
||||||
|
// FundCommunityPool defines a method to allow an account to directly
|
||||||
|
// fund the community pool.
|
||||||
|
rpc FundCommunityPool(MsgFundCommunityPool) returns (MsgFundCommunityPoolResponse);
|
||||||
|
}
|
||||||
|
|
||||||
|
// MsgSetWithdrawAddress sets the withdraw address for
|
||||||
|
// a delegator (or validator self-delegation).
|
||||||
|
message MsgSetWithdrawAddress {
|
||||||
|
option (gogoproto.equal) = false;
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
|
||||||
|
string delegator_address = 1 [(gogoproto.moretags) = "yaml:\"delegator_address\""];
|
||||||
|
string withdraw_address = 2 [(gogoproto.moretags) = "yaml:\"withdraw_address\""];
|
||||||
|
}
|
||||||
|
|
||||||
|
// MsgSetWithdrawAddressResponse defines the Msg/SetWithdrawAddress response type.
|
||||||
|
message MsgSetWithdrawAddressResponse {}
|
||||||
|
|
||||||
|
// MsgWithdrawDelegatorReward represents delegation withdrawal to a delegator
|
||||||
|
// from a single validator.
|
||||||
|
message MsgWithdrawDelegatorReward {
|
||||||
|
option (gogoproto.equal) = false;
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
|
||||||
|
string delegator_address = 1 [(gogoproto.moretags) = "yaml:\"delegator_address\""];
|
||||||
|
string validator_address = 2 [(gogoproto.moretags) = "yaml:\"validator_address\""];
|
||||||
|
}
|
||||||
|
|
||||||
|
// MsgWithdrawDelegatorRewardResponse defines the Msg/WithdrawDelegatorReward response type.
|
||||||
|
message MsgWithdrawDelegatorRewardResponse {}
|
||||||
|
|
||||||
|
// MsgWithdrawValidatorCommission withdraws the full commission to the validator
|
||||||
|
// address.
|
||||||
|
message MsgWithdrawValidatorCommission {
|
||||||
|
option (gogoproto.equal) = false;
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
|
||||||
|
string validator_address = 1 [(gogoproto.moretags) = "yaml:\"validator_address\""];
|
||||||
|
}
|
||||||
|
|
||||||
|
// MsgWithdrawValidatorCommissionResponse defines the Msg/WithdrawValidatorCommission response type.
|
||||||
|
message MsgWithdrawValidatorCommissionResponse {}
|
||||||
|
|
||||||
|
// MsgFundCommunityPool allows an account to directly
|
||||||
|
// fund the community pool.
|
||||||
|
message MsgFundCommunityPool {
|
||||||
|
option (gogoproto.equal) = false;
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
|
||||||
|
repeated cosmos.base.v1beta1.Coin amount = 1
|
||||||
|
[(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"];
|
||||||
|
string depositor = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// MsgFundCommunityPoolResponse defines the Msg/FundCommunityPool response type.
|
||||||
|
message MsgFundCommunityPoolResponse {}
|
21
proto/cosmos/evidence/v1beta1/evidence.proto
Normal file
21
proto/cosmos/evidence/v1beta1/evidence.proto
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.evidence.v1beta1;
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/x/evidence/types";
|
||||||
|
option (gogoproto.equal_all) = true;
|
||||||
|
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
import "google/protobuf/timestamp.proto";
|
||||||
|
|
||||||
|
// Equivocation implements the Evidence interface and defines evidence of double
|
||||||
|
// signing misbehavior.
|
||||||
|
message Equivocation {
|
||||||
|
option (gogoproto.goproto_stringer) = false;
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
option (gogoproto.equal) = false;
|
||||||
|
|
||||||
|
int64 height = 1;
|
||||||
|
google.protobuf.Timestamp time = 2 [(gogoproto.nullable) = false, (gogoproto.stdtime) = true];
|
||||||
|
int64 power = 3;
|
||||||
|
string consensus_address = 4 [(gogoproto.moretags) = "yaml:\"consensus_address\""];
|
||||||
|
}
|
12
proto/cosmos/evidence/v1beta1/genesis.proto
Normal file
12
proto/cosmos/evidence/v1beta1/genesis.proto
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.evidence.v1beta1;
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/x/evidence/types";
|
||||||
|
|
||||||
|
import "google/protobuf/any.proto";
|
||||||
|
|
||||||
|
// GenesisState defines the evidence module's genesis state.
|
||||||
|
message GenesisState {
|
||||||
|
// evidence defines all the evidence at genesis.
|
||||||
|
repeated google.protobuf.Any evidence = 1;
|
||||||
|
}
|
51
proto/cosmos/evidence/v1beta1/query.proto
Normal file
51
proto/cosmos/evidence/v1beta1/query.proto
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.evidence.v1beta1;
|
||||||
|
|
||||||
|
import "cosmos/base/query/v1beta1/pagination.proto";
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
import "google/protobuf/any.proto";
|
||||||
|
import "google/api/annotations.proto";
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/x/evidence/types";
|
||||||
|
|
||||||
|
// Query defines the gRPC querier service.
|
||||||
|
service Query {
|
||||||
|
// Evidence queries evidence based on evidence hash.
|
||||||
|
rpc Evidence(QueryEvidenceRequest) returns (QueryEvidenceResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/evidence/v1beta1/evidence/{evidence_hash}";
|
||||||
|
}
|
||||||
|
|
||||||
|
// AllEvidence queries all evidence.
|
||||||
|
rpc AllEvidence(QueryAllEvidenceRequest) returns (QueryAllEvidenceResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/evidence/v1beta1/evidence";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryEvidenceRequest is the request type for the Query/Evidence RPC method.
|
||||||
|
message QueryEvidenceRequest {
|
||||||
|
// evidence_hash defines the hash of the requested evidence.
|
||||||
|
bytes evidence_hash = 1 [(gogoproto.casttype) = "github.com/tendermint/tendermint/libs/bytes.HexBytes"];
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryEvidenceResponse is the response type for the Query/Evidence RPC method.
|
||||||
|
message QueryEvidenceResponse {
|
||||||
|
// evidence returns the requested evidence.
|
||||||
|
google.protobuf.Any evidence = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryEvidenceRequest is the request type for the Query/AllEvidence RPC
|
||||||
|
// method.
|
||||||
|
message QueryAllEvidenceRequest {
|
||||||
|
// pagination defines an optional pagination for the request.
|
||||||
|
cosmos.base.query.v1beta1.PageRequest pagination = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryAllEvidenceResponse is the response type for the Query/AllEvidence RPC
|
||||||
|
// method.
|
||||||
|
message QueryAllEvidenceResponse {
|
||||||
|
// evidence returns all evidences.
|
||||||
|
repeated google.protobuf.Any evidence = 1;
|
||||||
|
|
||||||
|
// pagination defines the pagination in the response.
|
||||||
|
cosmos.base.query.v1beta1.PageResponse pagination = 2;
|
||||||
|
}
|
32
proto/cosmos/evidence/v1beta1/tx.proto
Normal file
32
proto/cosmos/evidence/v1beta1/tx.proto
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.evidence.v1beta1;
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/x/evidence/types";
|
||||||
|
option (gogoproto.equal_all) = true;
|
||||||
|
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
import "google/protobuf/any.proto";
|
||||||
|
import "cosmos_proto/cosmos.proto";
|
||||||
|
|
||||||
|
// Msg defines the evidence Msg service.
|
||||||
|
service Msg {
|
||||||
|
// SubmitEvidence submits an arbitrary Evidence of misbehavior such as equivocation or
|
||||||
|
// counterfactual signing.
|
||||||
|
rpc SubmitEvidence(MsgSubmitEvidence) returns (MsgSubmitEvidenceResponse);
|
||||||
|
}
|
||||||
|
|
||||||
|
// MsgSubmitEvidence represents a message that supports submitting arbitrary
|
||||||
|
// Evidence of misbehavior such as equivocation or counterfactual signing.
|
||||||
|
message MsgSubmitEvidence {
|
||||||
|
option (gogoproto.equal) = false;
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
|
||||||
|
string submitter = 1;
|
||||||
|
google.protobuf.Any evidence = 2 [(cosmos_proto.accepts_interface) = "Evidence"];
|
||||||
|
}
|
||||||
|
|
||||||
|
// MsgSubmitEvidenceResponse defines the Msg/SubmitEvidence response type.
|
||||||
|
message MsgSubmitEvidenceResponse {
|
||||||
|
// hash defines the hash of the evidence.
|
||||||
|
bytes hash = 4;
|
||||||
|
}
|
77
proto/cosmos/feegrant/v1beta1/feegrant.proto
Normal file
77
proto/cosmos/feegrant/v1beta1/feegrant.proto
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.feegrant.v1beta1;
|
||||||
|
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
import "google/protobuf/any.proto";
|
||||||
|
import "cosmos_proto/cosmos.proto";
|
||||||
|
import "cosmos/base/v1beta1/coin.proto";
|
||||||
|
import "google/protobuf/timestamp.proto";
|
||||||
|
import "google/protobuf/duration.proto";
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/x/feegrant";
|
||||||
|
|
||||||
|
// BasicAllowance implements Allowance with a one-time grant of tokens
|
||||||
|
// that optionally expires. The grantee can use up to SpendLimit to cover fees.
|
||||||
|
message BasicAllowance {
|
||||||
|
option (cosmos_proto.implements_interface) = "FeeAllowanceI";
|
||||||
|
|
||||||
|
// spend_limit specifies the maximum amount of tokens that can be spent
|
||||||
|
// by this allowance and will be updated as tokens are spent. If it is
|
||||||
|
// empty, there is no spend limit and any amount of coins can be spent.
|
||||||
|
repeated cosmos.base.v1beta1.Coin spend_limit = 1
|
||||||
|
[(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"];
|
||||||
|
|
||||||
|
// expiration specifies an optional time when this allowance expires
|
||||||
|
google.protobuf.Timestamp expiration = 2 [(gogoproto.stdtime) = true];
|
||||||
|
}
|
||||||
|
|
||||||
|
// PeriodicAllowance extends Allowance to allow for both a maximum cap,
|
||||||
|
// as well as a limit per time period.
|
||||||
|
message PeriodicAllowance {
|
||||||
|
option (cosmos_proto.implements_interface) = "FeeAllowanceI";
|
||||||
|
|
||||||
|
// basic specifies a struct of `BasicAllowance`
|
||||||
|
BasicAllowance basic = 1 [(gogoproto.nullable) = false];
|
||||||
|
|
||||||
|
// period specifies the time duration in which period_spend_limit coins can
|
||||||
|
// be spent before that allowance is reset
|
||||||
|
google.protobuf.Duration period = 2 [(gogoproto.stdduration) = true, (gogoproto.nullable) = false];
|
||||||
|
|
||||||
|
// period_spend_limit specifies the maximum number of coins that can be spent
|
||||||
|
// in the period
|
||||||
|
repeated cosmos.base.v1beta1.Coin period_spend_limit = 3
|
||||||
|
[(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"];
|
||||||
|
|
||||||
|
// period_can_spend is the number of coins left to be spent before the period_reset time
|
||||||
|
repeated cosmos.base.v1beta1.Coin period_can_spend = 4
|
||||||
|
[(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"];
|
||||||
|
|
||||||
|
// period_reset is the time at which this period resets and a new one begins,
|
||||||
|
// it is calculated from the start time of the first transaction after the
|
||||||
|
// last period ended
|
||||||
|
google.protobuf.Timestamp period_reset = 5 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
// AllowedMsgAllowance creates allowance only for specified message types.
|
||||||
|
message AllowedMsgAllowance {
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
option (cosmos_proto.implements_interface) = "FeeAllowanceI";
|
||||||
|
|
||||||
|
// allowance can be any of basic and filtered fee allowance.
|
||||||
|
google.protobuf.Any allowance = 1 [(cosmos_proto.accepts_interface) = "FeeAllowanceI"];
|
||||||
|
|
||||||
|
// allowed_messages are the messages for which the grantee has the access.
|
||||||
|
repeated string allowed_messages = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Grant is stored in the KVStore to record a grant with full context
|
||||||
|
message Grant {
|
||||||
|
// granter is the address of the user granting an allowance of their funds.
|
||||||
|
string granter = 1;
|
||||||
|
|
||||||
|
// grantee is the address of the user being granted an allowance of another user's funds.
|
||||||
|
string grantee = 2;
|
||||||
|
|
||||||
|
// allowance can be any of basic and filtered fee allowance.
|
||||||
|
google.protobuf.Any allowance = 3 [(cosmos_proto.accepts_interface) = "FeeAllowanceI"];
|
||||||
|
}
|
12
proto/cosmos/feegrant/v1beta1/genesis.proto
Normal file
12
proto/cosmos/feegrant/v1beta1/genesis.proto
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.feegrant.v1beta1;
|
||||||
|
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
import "cosmos/feegrant/v1beta1/feegrant.proto";
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/x/feegrant";
|
||||||
|
|
||||||
|
// GenesisState contains a set of fee allowances, persisted from the store
|
||||||
|
message GenesisState {
|
||||||
|
repeated Grant allowances = 1 [(gogoproto.nullable) = false];
|
||||||
|
}
|
54
proto/cosmos/feegrant/v1beta1/query.proto
Normal file
54
proto/cosmos/feegrant/v1beta1/query.proto
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.feegrant.v1beta1;
|
||||||
|
|
||||||
|
import "cosmos/feegrant/v1beta1/feegrant.proto";
|
||||||
|
import "cosmos/base/query/v1beta1/pagination.proto";
|
||||||
|
import "google/api/annotations.proto";
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/x/feegrant";
|
||||||
|
|
||||||
|
// Query defines the gRPC querier service.
|
||||||
|
service Query {
|
||||||
|
|
||||||
|
// Allowance returns fee granted to the grantee by the granter.
|
||||||
|
rpc Allowance(QueryAllowanceRequest) returns (QueryAllowanceResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/feegrant/v1beta1/allowance/{granter}/{grantee}";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Allowances returns all the grants for address.
|
||||||
|
rpc Allowances(QueryAllowancesRequest) returns (QueryAllowancesResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/feegrant/v1beta1/allowances/{grantee}";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryAllowanceRequest is the request type for the Query/Allowance RPC method.
|
||||||
|
message QueryAllowanceRequest {
|
||||||
|
// granter is the address of the user granting an allowance of their funds.
|
||||||
|
string granter = 1;
|
||||||
|
|
||||||
|
// grantee is the address of the user being granted an allowance of another user's funds.
|
||||||
|
string grantee = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryAllowanceResponse is the response type for the Query/Allowance RPC method.
|
||||||
|
message QueryAllowanceResponse {
|
||||||
|
// allowance is a allowance granted for grantee by granter.
|
||||||
|
cosmos.feegrant.v1beta1.Grant allowance = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryAllowancesRequest is the request type for the Query/Allowances RPC method.
|
||||||
|
message QueryAllowancesRequest {
|
||||||
|
string grantee = 1;
|
||||||
|
|
||||||
|
// pagination defines an pagination for the request.
|
||||||
|
cosmos.base.query.v1beta1.PageRequest pagination = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryAllowancesResponse is the response type for the Query/Allowances RPC method.
|
||||||
|
message QueryAllowancesResponse {
|
||||||
|
// allowances are allowance's granted for grantee by granter.
|
||||||
|
repeated cosmos.feegrant.v1beta1.Grant allowances = 1;
|
||||||
|
|
||||||
|
// pagination defines an pagination for the response.
|
||||||
|
cosmos.base.query.v1beta1.PageResponse pagination = 2;
|
||||||
|
}
|
47
proto/cosmos/feegrant/v1beta1/tx.proto
Normal file
47
proto/cosmos/feegrant/v1beta1/tx.proto
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.feegrant.v1beta1;
|
||||||
|
|
||||||
|
import "google/protobuf/any.proto";
|
||||||
|
import "cosmos_proto/cosmos.proto";
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/x/feegrant";
|
||||||
|
|
||||||
|
// Msg defines the feegrant msg service.
|
||||||
|
service Msg {
|
||||||
|
|
||||||
|
// GrantAllowance grants fee allowance to the grantee on the granter's
|
||||||
|
// account with the provided expiration time.
|
||||||
|
rpc GrantAllowance(MsgGrantAllowance) returns (MsgGrantAllowanceResponse);
|
||||||
|
|
||||||
|
// RevokeAllowance revokes any fee allowance of granter's account that
|
||||||
|
// has been granted to the grantee.
|
||||||
|
rpc RevokeAllowance(MsgRevokeAllowance) returns (MsgRevokeAllowanceResponse);
|
||||||
|
}
|
||||||
|
|
||||||
|
// MsgGrantAllowance adds permission for Grantee to spend up to Allowance
|
||||||
|
// of fees from the account of Granter.
|
||||||
|
message MsgGrantAllowance {
|
||||||
|
// granter is the address of the user granting an allowance of their funds.
|
||||||
|
string granter = 1;
|
||||||
|
|
||||||
|
// grantee is the address of the user being granted an allowance of another user's funds.
|
||||||
|
string grantee = 2;
|
||||||
|
|
||||||
|
// allowance can be any of basic and filtered fee allowance.
|
||||||
|
google.protobuf.Any allowance = 3 [(cosmos_proto.accepts_interface) = "FeeAllowanceI"];
|
||||||
|
}
|
||||||
|
|
||||||
|
// MsgGrantAllowanceResponse defines the Msg/GrantAllowanceResponse response type.
|
||||||
|
message MsgGrantAllowanceResponse {}
|
||||||
|
|
||||||
|
// MsgRevokeAllowance removes any existing Allowance from Granter to Grantee.
|
||||||
|
message MsgRevokeAllowance {
|
||||||
|
// granter is the address of the user granting an allowance of their funds.
|
||||||
|
string granter = 1;
|
||||||
|
|
||||||
|
// grantee is the address of the user being granted an allowance of another user's funds.
|
||||||
|
string grantee = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// MsgRevokeAllowanceResponse defines the Msg/RevokeAllowanceResponse response type.
|
||||||
|
message MsgRevokeAllowanceResponse {}
|
16
proto/cosmos/genutil/v1beta1/genesis.proto
Normal file
16
proto/cosmos/genutil/v1beta1/genesis.proto
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.genutil.v1beta1;
|
||||||
|
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/x/genutil/types";
|
||||||
|
|
||||||
|
// GenesisState defines the raw genesis transaction in JSON.
|
||||||
|
message GenesisState {
|
||||||
|
// gen_txs defines the genesis transactions.
|
||||||
|
repeated bytes gen_txs = 1 [
|
||||||
|
(gogoproto.casttype) = "encoding/json.RawMessage",
|
||||||
|
(gogoproto.jsontag) = "gentxs",
|
||||||
|
(gogoproto.moretags) = "yaml:\"gentxs\""
|
||||||
|
];
|
||||||
|
}
|
26
proto/cosmos/gov/v1beta1/genesis.proto
Normal file
26
proto/cosmos/gov/v1beta1/genesis.proto
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
|
||||||
|
package cosmos.gov.v1beta1;
|
||||||
|
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
import "cosmos/gov/v1beta1/gov.proto";
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/x/gov/types";
|
||||||
|
|
||||||
|
// GenesisState defines the gov module's genesis state.
|
||||||
|
message GenesisState {
|
||||||
|
// starting_proposal_id is the ID of the starting proposal.
|
||||||
|
uint64 starting_proposal_id = 1 [(gogoproto.moretags) = "yaml:\"starting_proposal_id\""];
|
||||||
|
// deposits defines all the deposits present at genesis.
|
||||||
|
repeated Deposit deposits = 2 [(gogoproto.castrepeated) = "Deposits", (gogoproto.nullable) = false];
|
||||||
|
// votes defines all the votes present at genesis.
|
||||||
|
repeated Vote votes = 3 [(gogoproto.castrepeated) = "Votes", (gogoproto.nullable) = false];
|
||||||
|
// proposals defines all the proposals present at genesis.
|
||||||
|
repeated Proposal proposals = 4 [(gogoproto.castrepeated) = "Proposals", (gogoproto.nullable) = false];
|
||||||
|
// params defines all the paramaters of related to deposit.
|
||||||
|
DepositParams deposit_params = 5 [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"deposit_params\""];
|
||||||
|
// params defines all the paramaters of related to voting.
|
||||||
|
VotingParams voting_params = 6 [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"voting_params\""];
|
||||||
|
// params defines all the paramaters of related to tally.
|
||||||
|
TallyParams tally_params = 7 [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"tally_params\""];
|
||||||
|
}
|
197
proto/cosmos/gov/v1beta1/gov.proto
Normal file
197
proto/cosmos/gov/v1beta1/gov.proto
Normal file
@ -0,0 +1,197 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.gov.v1beta1;
|
||||||
|
|
||||||
|
import "cosmos/base/v1beta1/coin.proto";
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
import "cosmos_proto/cosmos.proto";
|
||||||
|
import "google/protobuf/timestamp.proto";
|
||||||
|
import "google/protobuf/any.proto";
|
||||||
|
import "google/protobuf/duration.proto";
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/x/gov/types";
|
||||||
|
option (gogoproto.goproto_stringer_all) = false;
|
||||||
|
option (gogoproto.stringer_all) = false;
|
||||||
|
option (gogoproto.goproto_getters_all) = false;
|
||||||
|
|
||||||
|
// VoteOption enumerates the valid vote options for a given governance proposal.
|
||||||
|
enum VoteOption {
|
||||||
|
option (gogoproto.goproto_enum_prefix) = false;
|
||||||
|
|
||||||
|
// VOTE_OPTION_UNSPECIFIED defines a no-op vote option.
|
||||||
|
VOTE_OPTION_UNSPECIFIED = 0 [(gogoproto.enumvalue_customname) = "OptionEmpty"];
|
||||||
|
// VOTE_OPTION_YES defines a yes vote option.
|
||||||
|
VOTE_OPTION_YES = 1 [(gogoproto.enumvalue_customname) = "OptionYes"];
|
||||||
|
// VOTE_OPTION_ABSTAIN defines an abstain vote option.
|
||||||
|
VOTE_OPTION_ABSTAIN = 2 [(gogoproto.enumvalue_customname) = "OptionAbstain"];
|
||||||
|
// VOTE_OPTION_NO defines a no vote option.
|
||||||
|
VOTE_OPTION_NO = 3 [(gogoproto.enumvalue_customname) = "OptionNo"];
|
||||||
|
// VOTE_OPTION_NO_WITH_VETO defines a no with veto vote option.
|
||||||
|
VOTE_OPTION_NO_WITH_VETO = 4 [(gogoproto.enumvalue_customname) = "OptionNoWithVeto"];
|
||||||
|
}
|
||||||
|
|
||||||
|
// WeightedVoteOption defines a unit of vote for vote split.
|
||||||
|
message WeightedVoteOption {
|
||||||
|
VoteOption option = 1;
|
||||||
|
string weight = 2 [
|
||||||
|
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec",
|
||||||
|
(gogoproto.nullable) = false,
|
||||||
|
(gogoproto.moretags) = "yaml:\"weight\""
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
// TextProposal defines a standard text proposal whose changes need to be
|
||||||
|
// manually updated in case of approval.
|
||||||
|
message TextProposal {
|
||||||
|
option (cosmos_proto.implements_interface) = "Content";
|
||||||
|
|
||||||
|
option (gogoproto.equal) = true;
|
||||||
|
|
||||||
|
string title = 1;
|
||||||
|
string description = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deposit defines an amount deposited by an account address to an active
|
||||||
|
// proposal.
|
||||||
|
message Deposit {
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
option (gogoproto.equal) = false;
|
||||||
|
|
||||||
|
uint64 proposal_id = 1 [(gogoproto.moretags) = "yaml:\"proposal_id\""];
|
||||||
|
string depositor = 2;
|
||||||
|
repeated cosmos.base.v1beta1.Coin amount = 3
|
||||||
|
[(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Proposal defines the core field members of a governance proposal.
|
||||||
|
message Proposal {
|
||||||
|
option (gogoproto.equal) = true;
|
||||||
|
|
||||||
|
uint64 proposal_id = 1 [(gogoproto.jsontag) = "id", (gogoproto.moretags) = "yaml:\"id\""];
|
||||||
|
google.protobuf.Any content = 2 [(cosmos_proto.accepts_interface) = "Content"];
|
||||||
|
ProposalStatus status = 3 [(gogoproto.moretags) = "yaml:\"proposal_status\""];
|
||||||
|
TallyResult final_tally_result = 4
|
||||||
|
[(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"final_tally_result\""];
|
||||||
|
google.protobuf.Timestamp submit_time = 5
|
||||||
|
[(gogoproto.stdtime) = true, (gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"submit_time\""];
|
||||||
|
google.protobuf.Timestamp deposit_end_time = 6
|
||||||
|
[(gogoproto.stdtime) = true, (gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"deposit_end_time\""];
|
||||||
|
repeated cosmos.base.v1beta1.Coin total_deposit = 7 [
|
||||||
|
(gogoproto.nullable) = false,
|
||||||
|
(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins",
|
||||||
|
(gogoproto.moretags) = "yaml:\"total_deposit\""
|
||||||
|
];
|
||||||
|
google.protobuf.Timestamp voting_start_time = 8
|
||||||
|
[(gogoproto.stdtime) = true, (gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"voting_start_time\""];
|
||||||
|
google.protobuf.Timestamp voting_end_time = 9
|
||||||
|
[(gogoproto.stdtime) = true, (gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"voting_end_time\""];
|
||||||
|
}
|
||||||
|
|
||||||
|
// ProposalStatus enumerates the valid statuses of a proposal.
|
||||||
|
enum ProposalStatus {
|
||||||
|
option (gogoproto.goproto_enum_prefix) = false;
|
||||||
|
|
||||||
|
// PROPOSAL_STATUS_UNSPECIFIED defines the default propopsal status.
|
||||||
|
PROPOSAL_STATUS_UNSPECIFIED = 0 [(gogoproto.enumvalue_customname) = "StatusNil"];
|
||||||
|
// PROPOSAL_STATUS_DEPOSIT_PERIOD defines a proposal status during the deposit
|
||||||
|
// period.
|
||||||
|
PROPOSAL_STATUS_DEPOSIT_PERIOD = 1 [(gogoproto.enumvalue_customname) = "StatusDepositPeriod"];
|
||||||
|
// PROPOSAL_STATUS_VOTING_PERIOD defines a proposal status during the voting
|
||||||
|
// period.
|
||||||
|
PROPOSAL_STATUS_VOTING_PERIOD = 2 [(gogoproto.enumvalue_customname) = "StatusVotingPeriod"];
|
||||||
|
// PROPOSAL_STATUS_PASSED defines a proposal status of a proposal that has
|
||||||
|
// passed.
|
||||||
|
PROPOSAL_STATUS_PASSED = 3 [(gogoproto.enumvalue_customname) = "StatusPassed"];
|
||||||
|
// PROPOSAL_STATUS_REJECTED defines a proposal status of a proposal that has
|
||||||
|
// been rejected.
|
||||||
|
PROPOSAL_STATUS_REJECTED = 4 [(gogoproto.enumvalue_customname) = "StatusRejected"];
|
||||||
|
// PROPOSAL_STATUS_FAILED defines a proposal status of a proposal that has
|
||||||
|
// failed.
|
||||||
|
PROPOSAL_STATUS_FAILED = 5 [(gogoproto.enumvalue_customname) = "StatusFailed"];
|
||||||
|
}
|
||||||
|
|
||||||
|
// TallyResult defines a standard tally for a governance proposal.
|
||||||
|
message TallyResult {
|
||||||
|
option (gogoproto.equal) = true;
|
||||||
|
|
||||||
|
string yes = 1 [(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.nullable) = false];
|
||||||
|
string abstain = 2 [(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.nullable) = false];
|
||||||
|
string no = 3 [(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.nullable) = false];
|
||||||
|
string no_with_veto = 4 [
|
||||||
|
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
|
||||||
|
(gogoproto.nullable) = false,
|
||||||
|
(gogoproto.moretags) = "yaml:\"no_with_veto\""
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Vote defines a vote on a governance proposal.
|
||||||
|
// A Vote consists of a proposal ID, the voter, and the vote option.
|
||||||
|
message Vote {
|
||||||
|
option (gogoproto.goproto_stringer) = false;
|
||||||
|
option (gogoproto.equal) = false;
|
||||||
|
|
||||||
|
uint64 proposal_id = 1 [(gogoproto.moretags) = "yaml:\"proposal_id\""];
|
||||||
|
string voter = 2;
|
||||||
|
// Deprecated: Prefer to use `options` instead. This field is set in queries
|
||||||
|
// if and only if `len(options) == 1` and that option has weight 1. In all
|
||||||
|
// other cases, this field will default to VOTE_OPTION_UNSPECIFIED.
|
||||||
|
VoteOption option = 3 [deprecated = true];
|
||||||
|
repeated WeightedVoteOption options = 4 [(gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
// DepositParams defines the params for deposits on governance proposals.
|
||||||
|
message DepositParams {
|
||||||
|
// Minimum deposit for a proposal to enter voting period.
|
||||||
|
repeated cosmos.base.v1beta1.Coin min_deposit = 1 [
|
||||||
|
(gogoproto.nullable) = false,
|
||||||
|
(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins",
|
||||||
|
(gogoproto.moretags) = "yaml:\"min_deposit\"",
|
||||||
|
(gogoproto.jsontag) = "min_deposit,omitempty"
|
||||||
|
];
|
||||||
|
|
||||||
|
// Maximum period for Atom holders to deposit on a proposal. Initial value: 2
|
||||||
|
// months.
|
||||||
|
google.protobuf.Duration max_deposit_period = 2 [
|
||||||
|
(gogoproto.nullable) = false,
|
||||||
|
(gogoproto.stdduration) = true,
|
||||||
|
(gogoproto.jsontag) = "max_deposit_period,omitempty",
|
||||||
|
(gogoproto.moretags) = "yaml:\"max_deposit_period\""
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
// VotingParams defines the params for voting on governance proposals.
|
||||||
|
message VotingParams {
|
||||||
|
// Length of the voting period.
|
||||||
|
google.protobuf.Duration voting_period = 1 [
|
||||||
|
(gogoproto.nullable) = false,
|
||||||
|
(gogoproto.stdduration) = true,
|
||||||
|
(gogoproto.jsontag) = "voting_period,omitempty",
|
||||||
|
(gogoproto.moretags) = "yaml:\"voting_period\""
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
// TallyParams defines the params for tallying votes on governance proposals.
|
||||||
|
message TallyParams {
|
||||||
|
// Minimum percentage of total stake needed to vote for a result to be
|
||||||
|
// considered valid.
|
||||||
|
bytes quorum = 1 [
|
||||||
|
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec",
|
||||||
|
(gogoproto.nullable) = false,
|
||||||
|
(gogoproto.jsontag) = "quorum,omitempty"
|
||||||
|
];
|
||||||
|
|
||||||
|
// Minimum proportion of Yes votes for proposal to pass. Default value: 0.5.
|
||||||
|
bytes threshold = 2 [
|
||||||
|
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec",
|
||||||
|
(gogoproto.nullable) = false,
|
||||||
|
(gogoproto.jsontag) = "threshold,omitempty"
|
||||||
|
];
|
||||||
|
|
||||||
|
// Minimum value of Veto votes to Total votes ratio for proposal to be
|
||||||
|
// vetoed. Default value: 1/3.
|
||||||
|
bytes veto_threshold = 3 [
|
||||||
|
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec",
|
||||||
|
(gogoproto.nullable) = false,
|
||||||
|
(gogoproto.jsontag) = "veto_threshold,omitempty",
|
||||||
|
(gogoproto.moretags) = "yaml:\"veto_threshold\""
|
||||||
|
];
|
||||||
|
}
|
190
proto/cosmos/gov/v1beta1/query.proto
Normal file
190
proto/cosmos/gov/v1beta1/query.proto
Normal file
@ -0,0 +1,190 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.gov.v1beta1;
|
||||||
|
|
||||||
|
import "cosmos/base/query/v1beta1/pagination.proto";
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
import "google/api/annotations.proto";
|
||||||
|
import "cosmos/gov/v1beta1/gov.proto";
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/x/gov/types";
|
||||||
|
|
||||||
|
// Query defines the gRPC querier service for gov module
|
||||||
|
service Query {
|
||||||
|
// Proposal queries proposal details based on ProposalID.
|
||||||
|
rpc Proposal(QueryProposalRequest) returns (QueryProposalResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/gov/v1beta1/proposals/{proposal_id}";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Proposals queries all proposals based on given status.
|
||||||
|
rpc Proposals(QueryProposalsRequest) returns (QueryProposalsResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/gov/v1beta1/proposals";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Vote queries voted information based on proposalID, voterAddr.
|
||||||
|
rpc Vote(QueryVoteRequest) returns (QueryVoteResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/gov/v1beta1/proposals/{proposal_id}/votes/{voter}";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Votes queries votes of a given proposal.
|
||||||
|
rpc Votes(QueryVotesRequest) returns (QueryVotesResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/gov/v1beta1/proposals/{proposal_id}/votes";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Params queries all parameters of the gov module.
|
||||||
|
rpc Params(QueryParamsRequest) returns (QueryParamsResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/gov/v1beta1/params/{params_type}";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deposit queries single deposit information based proposalID, depositAddr.
|
||||||
|
rpc Deposit(QueryDepositRequest) returns (QueryDepositResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/gov/v1beta1/proposals/{proposal_id}/deposits/{depositor}";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deposits queries all deposits of a single proposal.
|
||||||
|
rpc Deposits(QueryDepositsRequest) returns (QueryDepositsResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/gov/v1beta1/proposals/{proposal_id}/deposits";
|
||||||
|
}
|
||||||
|
|
||||||
|
// TallyResult queries the tally of a proposal vote.
|
||||||
|
rpc TallyResult(QueryTallyResultRequest) returns (QueryTallyResultResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/gov/v1beta1/proposals/{proposal_id}/tally";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryProposalRequest is the request type for the Query/Proposal RPC method.
|
||||||
|
message QueryProposalRequest {
|
||||||
|
// proposal_id defines the unique id of the proposal.
|
||||||
|
uint64 proposal_id = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryProposalResponse is the response type for the Query/Proposal RPC method.
|
||||||
|
message QueryProposalResponse {
|
||||||
|
Proposal proposal = 1 [(gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryProposalsRequest is the request type for the Query/Proposals RPC method.
|
||||||
|
message QueryProposalsRequest {
|
||||||
|
option (gogoproto.equal) = false;
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
|
||||||
|
// proposal_status defines the status of the proposals.
|
||||||
|
ProposalStatus proposal_status = 1;
|
||||||
|
|
||||||
|
// voter defines the voter address for the proposals.
|
||||||
|
string voter = 2;
|
||||||
|
|
||||||
|
// depositor defines the deposit addresses from the proposals.
|
||||||
|
string depositor = 3;
|
||||||
|
|
||||||
|
// pagination defines an optional pagination for the request.
|
||||||
|
cosmos.base.query.v1beta1.PageRequest pagination = 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryProposalsResponse is the response type for the Query/Proposals RPC
|
||||||
|
// method.
|
||||||
|
message QueryProposalsResponse {
|
||||||
|
repeated Proposal proposals = 1 [(gogoproto.nullable) = false];
|
||||||
|
|
||||||
|
// pagination defines the pagination in the response.
|
||||||
|
cosmos.base.query.v1beta1.PageResponse pagination = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryVoteRequest is the request type for the Query/Vote RPC method.
|
||||||
|
message QueryVoteRequest {
|
||||||
|
option (gogoproto.equal) = false;
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
|
||||||
|
// proposal_id defines the unique id of the proposal.
|
||||||
|
uint64 proposal_id = 1;
|
||||||
|
|
||||||
|
// voter defines the oter address for the proposals.
|
||||||
|
string voter = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryVoteResponse is the response type for the Query/Vote RPC method.
|
||||||
|
message QueryVoteResponse {
|
||||||
|
// vote defined the queried vote.
|
||||||
|
Vote vote = 1 [(gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryVotesRequest is the request type for the Query/Votes RPC method.
|
||||||
|
message QueryVotesRequest {
|
||||||
|
// proposal_id defines the unique id of the proposal.
|
||||||
|
uint64 proposal_id = 1;
|
||||||
|
|
||||||
|
// pagination defines an optional pagination for the request.
|
||||||
|
cosmos.base.query.v1beta1.PageRequest pagination = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryVotesResponse is the response type for the Query/Votes RPC method.
|
||||||
|
message QueryVotesResponse {
|
||||||
|
// votes defined the queried votes.
|
||||||
|
repeated Vote votes = 1 [(gogoproto.nullable) = false];
|
||||||
|
|
||||||
|
// pagination defines the pagination in the response.
|
||||||
|
cosmos.base.query.v1beta1.PageResponse pagination = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryParamsRequest is the request type for the Query/Params RPC method.
|
||||||
|
message QueryParamsRequest {
|
||||||
|
// params_type defines which parameters to query for, can be one of "voting",
|
||||||
|
// "tallying" or "deposit".
|
||||||
|
string params_type = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryParamsResponse is the response type for the Query/Params RPC method.
|
||||||
|
message QueryParamsResponse {
|
||||||
|
// voting_params defines the parameters related to voting.
|
||||||
|
VotingParams voting_params = 1 [(gogoproto.nullable) = false];
|
||||||
|
// deposit_params defines the parameters related to deposit.
|
||||||
|
DepositParams deposit_params = 2 [(gogoproto.nullable) = false];
|
||||||
|
// tally_params defines the parameters related to tally.
|
||||||
|
TallyParams tally_params = 3 [(gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryDepositRequest is the request type for the Query/Deposit RPC method.
|
||||||
|
message QueryDepositRequest {
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
option (gogoproto.equal) = false;
|
||||||
|
|
||||||
|
// proposal_id defines the unique id of the proposal.
|
||||||
|
uint64 proposal_id = 1;
|
||||||
|
|
||||||
|
// depositor defines the deposit addresses from the proposals.
|
||||||
|
string depositor = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryDepositResponse is the response type for the Query/Deposit RPC method.
|
||||||
|
message QueryDepositResponse {
|
||||||
|
// deposit defines the requested deposit.
|
||||||
|
Deposit deposit = 1 [(gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryDepositsRequest is the request type for the Query/Deposits RPC method.
|
||||||
|
message QueryDepositsRequest {
|
||||||
|
// proposal_id defines the unique id of the proposal.
|
||||||
|
uint64 proposal_id = 1;
|
||||||
|
|
||||||
|
// pagination defines an optional pagination for the request.
|
||||||
|
cosmos.base.query.v1beta1.PageRequest pagination = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryDepositsResponse is the response type for the Query/Deposits RPC method.
|
||||||
|
message QueryDepositsResponse {
|
||||||
|
repeated Deposit deposits = 1 [(gogoproto.nullable) = false];
|
||||||
|
|
||||||
|
// pagination defines the pagination in the response.
|
||||||
|
cosmos.base.query.v1beta1.PageResponse pagination = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryTallyResultRequest is the request type for the Query/Tally RPC method.
|
||||||
|
message QueryTallyResultRequest {
|
||||||
|
// proposal_id defines the unique id of the proposal.
|
||||||
|
uint64 proposal_id = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryTallyResultResponse is the response type for the Query/Tally RPC method.
|
||||||
|
message QueryTallyResultResponse {
|
||||||
|
// tally defines the requested tally.
|
||||||
|
TallyResult tally = 1 [(gogoproto.nullable) = false];
|
||||||
|
}
|
93
proto/cosmos/gov/v1beta1/tx.proto
Normal file
93
proto/cosmos/gov/v1beta1/tx.proto
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.gov.v1beta1;
|
||||||
|
|
||||||
|
import "cosmos/base/v1beta1/coin.proto";
|
||||||
|
import "cosmos/gov/v1beta1/gov.proto";
|
||||||
|
import "cosmos_proto/cosmos.proto";
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
import "google/protobuf/any.proto";
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/x/gov/types";
|
||||||
|
|
||||||
|
// Msg defines the bank Msg service.
|
||||||
|
service Msg {
|
||||||
|
// SubmitProposal defines a method to create new proposal given a content.
|
||||||
|
rpc SubmitProposal(MsgSubmitProposal) returns (MsgSubmitProposalResponse);
|
||||||
|
|
||||||
|
// Vote defines a method to add a vote on a specific proposal.
|
||||||
|
rpc Vote(MsgVote) returns (MsgVoteResponse);
|
||||||
|
|
||||||
|
// VoteWeighted defines a method to add a weighted vote on a specific proposal.
|
||||||
|
rpc VoteWeighted(MsgVoteWeighted) returns (MsgVoteWeightedResponse);
|
||||||
|
|
||||||
|
// Deposit defines a method to add deposit on a specific proposal.
|
||||||
|
rpc Deposit(MsgDeposit) returns (MsgDepositResponse);
|
||||||
|
}
|
||||||
|
|
||||||
|
// MsgSubmitProposal defines an sdk.Msg type that supports submitting arbitrary
|
||||||
|
// proposal Content.
|
||||||
|
message MsgSubmitProposal {
|
||||||
|
option (gogoproto.equal) = false;
|
||||||
|
option (gogoproto.goproto_stringer) = false;
|
||||||
|
option (gogoproto.stringer) = false;
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
|
||||||
|
google.protobuf.Any content = 1 [(cosmos_proto.accepts_interface) = "Content"];
|
||||||
|
repeated cosmos.base.v1beta1.Coin initial_deposit = 2 [
|
||||||
|
(gogoproto.nullable) = false,
|
||||||
|
(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins",
|
||||||
|
(gogoproto.moretags) = "yaml:\"initial_deposit\""
|
||||||
|
];
|
||||||
|
string proposer = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
// MsgSubmitProposalResponse defines the Msg/SubmitProposal response type.
|
||||||
|
message MsgSubmitProposalResponse {
|
||||||
|
uint64 proposal_id = 1 [(gogoproto.jsontag) = "proposal_id", (gogoproto.moretags) = "yaml:\"proposal_id\""];
|
||||||
|
}
|
||||||
|
|
||||||
|
// MsgVote defines a message to cast a vote.
|
||||||
|
message MsgVote {
|
||||||
|
option (gogoproto.equal) = false;
|
||||||
|
option (gogoproto.goproto_stringer) = false;
|
||||||
|
option (gogoproto.stringer) = false;
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
|
||||||
|
uint64 proposal_id = 1 [(gogoproto.jsontag) = "proposal_id", (gogoproto.moretags) = "yaml:\"proposal_id\""];
|
||||||
|
string voter = 2;
|
||||||
|
VoteOption option = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
// MsgVoteResponse defines the Msg/Vote response type.
|
||||||
|
message MsgVoteResponse {}
|
||||||
|
|
||||||
|
// MsgVoteWeighted defines a message to cast a vote.
|
||||||
|
message MsgVoteWeighted {
|
||||||
|
option (gogoproto.equal) = false;
|
||||||
|
option (gogoproto.goproto_stringer) = false;
|
||||||
|
option (gogoproto.stringer) = false;
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
|
||||||
|
uint64 proposal_id = 1 [(gogoproto.moretags) = "yaml:\"proposal_id\""];
|
||||||
|
string voter = 2;
|
||||||
|
repeated WeightedVoteOption options = 3 [(gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
// MsgVoteWeightedResponse defines the Msg/VoteWeighted response type.
|
||||||
|
message MsgVoteWeightedResponse {}
|
||||||
|
|
||||||
|
// MsgDeposit defines a message to submit a deposit to an existing proposal.
|
||||||
|
message MsgDeposit {
|
||||||
|
option (gogoproto.equal) = false;
|
||||||
|
option (gogoproto.goproto_stringer) = false;
|
||||||
|
option (gogoproto.stringer) = false;
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
|
||||||
|
uint64 proposal_id = 1 [(gogoproto.jsontag) = "proposal_id", (gogoproto.moretags) = "yaml:\"proposal_id\""];
|
||||||
|
string depositor = 2;
|
||||||
|
repeated cosmos.base.v1beta1.Coin amount = 3
|
||||||
|
[(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"];
|
||||||
|
}
|
||||||
|
|
||||||
|
// MsgDepositResponse defines the Msg/Deposit response type.
|
||||||
|
message MsgDepositResponse {}
|
16
proto/cosmos/mint/v1beta1/genesis.proto
Normal file
16
proto/cosmos/mint/v1beta1/genesis.proto
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.mint.v1beta1;
|
||||||
|
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
import "cosmos/mint/v1beta1/mint.proto";
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/x/mint/types";
|
||||||
|
|
||||||
|
// GenesisState defines the mint module's genesis state.
|
||||||
|
message GenesisState {
|
||||||
|
// minter is a space for holding current inflation information.
|
||||||
|
Minter minter = 1 [(gogoproto.nullable) = false];
|
||||||
|
|
||||||
|
// params defines all the paramaters of the module.
|
||||||
|
Params params = 2 [(gogoproto.nullable) = false];
|
||||||
|
}
|
53
proto/cosmos/mint/v1beta1/mint.proto
Normal file
53
proto/cosmos/mint/v1beta1/mint.proto
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.mint.v1beta1;
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/x/mint/types";
|
||||||
|
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
|
||||||
|
// Minter represents the minting state.
|
||||||
|
message Minter {
|
||||||
|
// current annual inflation rate
|
||||||
|
string inflation = 1
|
||||||
|
[(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", (gogoproto.nullable) = false];
|
||||||
|
// current annual expected provisions
|
||||||
|
string annual_provisions = 2 [
|
||||||
|
(gogoproto.moretags) = "yaml:\"annual_provisions\"",
|
||||||
|
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec",
|
||||||
|
(gogoproto.nullable) = false
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Params holds parameters for the mint module.
|
||||||
|
message Params {
|
||||||
|
option (gogoproto.goproto_stringer) = false;
|
||||||
|
|
||||||
|
// type of coin to mint
|
||||||
|
string mint_denom = 1;
|
||||||
|
// maximum annual change in inflation rate
|
||||||
|
string inflation_rate_change = 2 [
|
||||||
|
(gogoproto.moretags) = "yaml:\"inflation_rate_change\"",
|
||||||
|
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec",
|
||||||
|
(gogoproto.nullable) = false
|
||||||
|
];
|
||||||
|
// maximum inflation rate
|
||||||
|
string inflation_max = 3 [
|
||||||
|
(gogoproto.moretags) = "yaml:\"inflation_max\"",
|
||||||
|
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec",
|
||||||
|
(gogoproto.nullable) = false
|
||||||
|
];
|
||||||
|
// minimum inflation rate
|
||||||
|
string inflation_min = 4 [
|
||||||
|
(gogoproto.moretags) = "yaml:\"inflation_min\"",
|
||||||
|
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec",
|
||||||
|
(gogoproto.nullable) = false
|
||||||
|
];
|
||||||
|
// goal of percent bonded atoms
|
||||||
|
string goal_bonded = 5 [
|
||||||
|
(gogoproto.moretags) = "yaml:\"goal_bonded\"",
|
||||||
|
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec",
|
||||||
|
(gogoproto.nullable) = false
|
||||||
|
];
|
||||||
|
// expected blocks per year
|
||||||
|
uint64 blocks_per_year = 6 [(gogoproto.moretags) = "yaml:\"blocks_per_year\""];
|
||||||
|
}
|
57
proto/cosmos/mint/v1beta1/query.proto
Normal file
57
proto/cosmos/mint/v1beta1/query.proto
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.mint.v1beta1;
|
||||||
|
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
import "google/api/annotations.proto";
|
||||||
|
import "cosmos/mint/v1beta1/mint.proto";
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/x/mint/types";
|
||||||
|
|
||||||
|
// Query provides defines the gRPC querier service.
|
||||||
|
service Query {
|
||||||
|
// Params returns the total set of minting parameters.
|
||||||
|
rpc Params(QueryParamsRequest) returns (QueryParamsResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/mint/v1beta1/params";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Inflation returns the current minting inflation value.
|
||||||
|
rpc Inflation(QueryInflationRequest) returns (QueryInflationResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/mint/v1beta1/inflation";
|
||||||
|
}
|
||||||
|
|
||||||
|
// AnnualProvisions current minting annual provisions value.
|
||||||
|
rpc AnnualProvisions(QueryAnnualProvisionsRequest) returns (QueryAnnualProvisionsResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/mint/v1beta1/annual_provisions";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryParamsRequest is the request type for the Query/Params RPC method.
|
||||||
|
message QueryParamsRequest {}
|
||||||
|
|
||||||
|
// QueryParamsResponse is the response type for the Query/Params RPC method.
|
||||||
|
message QueryParamsResponse {
|
||||||
|
// params defines the parameters of the module.
|
||||||
|
Params params = 1 [(gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryInflationRequest is the request type for the Query/Inflation RPC method.
|
||||||
|
message QueryInflationRequest {}
|
||||||
|
|
||||||
|
// QueryInflationResponse is the response type for the Query/Inflation RPC
|
||||||
|
// method.
|
||||||
|
message QueryInflationResponse {
|
||||||
|
// inflation is the current minting inflation value.
|
||||||
|
bytes inflation = 1 [(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", (gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryAnnualProvisionsRequest is the request type for the
|
||||||
|
// Query/AnnualProvisions RPC method.
|
||||||
|
message QueryAnnualProvisionsRequest {}
|
||||||
|
|
||||||
|
// QueryAnnualProvisionsResponse is the response type for the
|
||||||
|
// Query/AnnualProvisions RPC method.
|
||||||
|
message QueryAnnualProvisionsResponse {
|
||||||
|
// annual_provisions is the current minting annual provisions value.
|
||||||
|
bytes annual_provisions = 1
|
||||||
|
[(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", (gogoproto.nullable) = false];
|
||||||
|
}
|
27
proto/cosmos/params/v1beta1/params.proto
Normal file
27
proto/cosmos/params/v1beta1/params.proto
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.params.v1beta1;
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/x/params/types/proposal";
|
||||||
|
option (gogoproto.equal_all) = true;
|
||||||
|
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
|
||||||
|
// ParameterChangeProposal defines a proposal to change one or more parameters.
|
||||||
|
message ParameterChangeProposal {
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
option (gogoproto.goproto_stringer) = false;
|
||||||
|
|
||||||
|
string title = 1;
|
||||||
|
string description = 2;
|
||||||
|
repeated ParamChange changes = 3 [(gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
// ParamChange defines an individual parameter change, for use in
|
||||||
|
// ParameterChangeProposal.
|
||||||
|
message ParamChange {
|
||||||
|
option (gogoproto.goproto_stringer) = false;
|
||||||
|
|
||||||
|
string subspace = 1;
|
||||||
|
string key = 2;
|
||||||
|
string value = 3;
|
||||||
|
}
|
32
proto/cosmos/params/v1beta1/query.proto
Normal file
32
proto/cosmos/params/v1beta1/query.proto
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.params.v1beta1;
|
||||||
|
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
import "google/api/annotations.proto";
|
||||||
|
import "cosmos/params/v1beta1/params.proto";
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/x/params/types/proposal";
|
||||||
|
|
||||||
|
// Query defines the gRPC querier service.
|
||||||
|
service Query {
|
||||||
|
// Params queries a specific parameter of a module, given its subspace and
|
||||||
|
// key.
|
||||||
|
rpc Params(QueryParamsRequest) returns (QueryParamsResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/params/v1beta1/params";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryParamsRequest is request type for the Query/Params RPC method.
|
||||||
|
message QueryParamsRequest {
|
||||||
|
// subspace defines the module to query the parameter for.
|
||||||
|
string subspace = 1;
|
||||||
|
|
||||||
|
// key defines the key of the parameter in the subspace.
|
||||||
|
string key = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryParamsResponse is response type for the Query/Params RPC method.
|
||||||
|
message QueryParamsResponse {
|
||||||
|
// param defines the queried parameter.
|
||||||
|
ParamChange param = 1 [(gogoproto.nullable) = false];
|
||||||
|
}
|
50
proto/cosmos/slashing/v1beta1/genesis.proto
Normal file
50
proto/cosmos/slashing/v1beta1/genesis.proto
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.slashing.v1beta1;
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/x/slashing/types";
|
||||||
|
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
import "cosmos/slashing/v1beta1/slashing.proto";
|
||||||
|
|
||||||
|
// GenesisState defines the slashing module's genesis state.
|
||||||
|
message GenesisState {
|
||||||
|
// params defines all the paramaters of related to deposit.
|
||||||
|
Params params = 1 [(gogoproto.nullable) = false];
|
||||||
|
|
||||||
|
// signing_infos represents a map between validator addresses and their
|
||||||
|
// signing infos.
|
||||||
|
repeated SigningInfo signing_infos = 2
|
||||||
|
[(gogoproto.moretags) = "yaml:\"signing_infos\"", (gogoproto.nullable) = false];
|
||||||
|
|
||||||
|
// missed_blocks represents a map between validator addresses and their
|
||||||
|
// missed blocks.
|
||||||
|
repeated ValidatorMissedBlocks missed_blocks = 3
|
||||||
|
[(gogoproto.moretags) = "yaml:\"missed_blocks\"", (gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
// SigningInfo stores validator signing info of corresponding address.
|
||||||
|
message SigningInfo {
|
||||||
|
// address is the validator address.
|
||||||
|
string address = 1;
|
||||||
|
// validator_signing_info represents the signing info of this validator.
|
||||||
|
ValidatorSigningInfo validator_signing_info = 2
|
||||||
|
[(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"validator_signing_info\""];
|
||||||
|
}
|
||||||
|
|
||||||
|
// ValidatorMissedBlocks contains array of missed blocks of corresponding
|
||||||
|
// address.
|
||||||
|
message ValidatorMissedBlocks {
|
||||||
|
// address is the validator address.
|
||||||
|
string address = 1;
|
||||||
|
// missed_blocks is an array of missed blocks by the validator.
|
||||||
|
repeated MissedBlock missed_blocks = 2
|
||||||
|
[(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"missed_blocks\""];
|
||||||
|
}
|
||||||
|
|
||||||
|
// MissedBlock contains height and missed status as boolean.
|
||||||
|
message MissedBlock {
|
||||||
|
// index is the height at which the block was missed.
|
||||||
|
int64 index = 1;
|
||||||
|
// missed is the missed status.
|
||||||
|
bool missed = 2;
|
||||||
|
}
|
63
proto/cosmos/slashing/v1beta1/query.proto
Normal file
63
proto/cosmos/slashing/v1beta1/query.proto
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.slashing.v1beta1;
|
||||||
|
|
||||||
|
import "cosmos/base/query/v1beta1/pagination.proto";
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
import "google/api/annotations.proto";
|
||||||
|
import "cosmos/slashing/v1beta1/slashing.proto";
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/x/slashing/types";
|
||||||
|
|
||||||
|
// Query provides defines the gRPC querier service
|
||||||
|
service Query {
|
||||||
|
// Params queries the parameters of slashing module
|
||||||
|
rpc Params(QueryParamsRequest) returns (QueryParamsResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/slashing/v1beta1/params";
|
||||||
|
}
|
||||||
|
|
||||||
|
// SigningInfo queries the signing info of given cons address
|
||||||
|
rpc SigningInfo(QuerySigningInfoRequest) returns (QuerySigningInfoResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/slashing/v1beta1/signing_infos/{cons_address}";
|
||||||
|
}
|
||||||
|
|
||||||
|
// SigningInfos queries signing info of all validators
|
||||||
|
rpc SigningInfos(QuerySigningInfosRequest) returns (QuerySigningInfosResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/slashing/v1beta1/signing_infos";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryParamsRequest is the request type for the Query/Params RPC method
|
||||||
|
message QueryParamsRequest {}
|
||||||
|
|
||||||
|
// QueryParamsResponse is the response type for the Query/Params RPC method
|
||||||
|
message QueryParamsResponse {
|
||||||
|
Params params = 1 [(gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
// QuerySigningInfoRequest is the request type for the Query/SigningInfo RPC
|
||||||
|
// method
|
||||||
|
message QuerySigningInfoRequest {
|
||||||
|
// cons_address is the address to query signing info of
|
||||||
|
string cons_address = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QuerySigningInfoResponse is the response type for the Query/SigningInfo RPC
|
||||||
|
// method
|
||||||
|
message QuerySigningInfoResponse {
|
||||||
|
// val_signing_info is the signing info of requested val cons address
|
||||||
|
ValidatorSigningInfo val_signing_info = 1 [(gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
// QuerySigningInfosRequest is the request type for the Query/SigningInfos RPC
|
||||||
|
// method
|
||||||
|
message QuerySigningInfosRequest {
|
||||||
|
cosmos.base.query.v1beta1.PageRequest pagination = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QuerySigningInfosResponse is the response type for the Query/SigningInfos RPC
|
||||||
|
// method
|
||||||
|
message QuerySigningInfosResponse {
|
||||||
|
// info is the signing info of all validators
|
||||||
|
repeated cosmos.slashing.v1beta1.ValidatorSigningInfo info = 1 [(gogoproto.nullable) = false];
|
||||||
|
cosmos.base.query.v1beta1.PageResponse pagination = 2;
|
||||||
|
}
|
58
proto/cosmos/slashing/v1beta1/slashing.proto
Normal file
58
proto/cosmos/slashing/v1beta1/slashing.proto
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.slashing.v1beta1;
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/x/slashing/types";
|
||||||
|
option (gogoproto.equal_all) = true;
|
||||||
|
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
import "google/protobuf/duration.proto";
|
||||||
|
import "google/protobuf/timestamp.proto";
|
||||||
|
|
||||||
|
// ValidatorSigningInfo defines a validator's signing info for monitoring their
|
||||||
|
// liveness activity.
|
||||||
|
message ValidatorSigningInfo {
|
||||||
|
option (gogoproto.equal) = true;
|
||||||
|
option (gogoproto.goproto_stringer) = false;
|
||||||
|
|
||||||
|
string address = 1;
|
||||||
|
// Height at which validator was first a candidate OR was unjailed
|
||||||
|
int64 start_height = 2 [(gogoproto.moretags) = "yaml:\"start_height\""];
|
||||||
|
// Index which is incremented each time the validator was a bonded
|
||||||
|
// in a block and may have signed a precommit or not. This in conjunction with the
|
||||||
|
// `SignedBlocksWindow` param determines the index in the `MissedBlocksBitArray`.
|
||||||
|
int64 index_offset = 3 [(gogoproto.moretags) = "yaml:\"index_offset\""];
|
||||||
|
// Timestamp until which the validator is jailed due to liveness downtime.
|
||||||
|
google.protobuf.Timestamp jailed_until = 4
|
||||||
|
[(gogoproto.moretags) = "yaml:\"jailed_until\"", (gogoproto.stdtime) = true, (gogoproto.nullable) = false];
|
||||||
|
// Whether or not a validator has been tombstoned (killed out of validator set). It is set
|
||||||
|
// once the validator commits an equivocation or for any other configured misbehiavor.
|
||||||
|
bool tombstoned = 5;
|
||||||
|
// A counter kept to avoid unnecessary array reads.
|
||||||
|
// Note that `Sum(MissedBlocksBitArray)` always equals `MissedBlocksCounter`.
|
||||||
|
int64 missed_blocks_counter = 6 [(gogoproto.moretags) = "yaml:\"missed_blocks_counter\""];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Params represents the parameters used for by the slashing module.
|
||||||
|
message Params {
|
||||||
|
int64 signed_blocks_window = 1 [(gogoproto.moretags) = "yaml:\"signed_blocks_window\""];
|
||||||
|
bytes min_signed_per_window = 2 [
|
||||||
|
(gogoproto.moretags) = "yaml:\"min_signed_per_window\"",
|
||||||
|
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec",
|
||||||
|
(gogoproto.nullable) = false
|
||||||
|
];
|
||||||
|
google.protobuf.Duration downtime_jail_duration = 3 [
|
||||||
|
(gogoproto.nullable) = false,
|
||||||
|
(gogoproto.stdduration) = true,
|
||||||
|
(gogoproto.moretags) = "yaml:\"downtime_jail_duration\""
|
||||||
|
];
|
||||||
|
bytes slash_fraction_double_sign = 4 [
|
||||||
|
(gogoproto.moretags) = "yaml:\"slash_fraction_double_sign\"",
|
||||||
|
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec",
|
||||||
|
(gogoproto.nullable) = false
|
||||||
|
];
|
||||||
|
bytes slash_fraction_downtime = 5 [
|
||||||
|
(gogoproto.moretags) = "yaml:\"slash_fraction_downtime\"",
|
||||||
|
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec",
|
||||||
|
(gogoproto.nullable) = false
|
||||||
|
];
|
||||||
|
}
|
26
proto/cosmos/slashing/v1beta1/tx.proto
Normal file
26
proto/cosmos/slashing/v1beta1/tx.proto
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.slashing.v1beta1;
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/x/slashing/types";
|
||||||
|
option (gogoproto.equal_all) = true;
|
||||||
|
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
|
||||||
|
// Msg defines the slashing Msg service.
|
||||||
|
service Msg {
|
||||||
|
// Unjail defines a method for unjailing a jailed validator, thus returning
|
||||||
|
// them into the bonded validator set, so they can begin receiving provisions
|
||||||
|
// and rewards again.
|
||||||
|
rpc Unjail(MsgUnjail) returns (MsgUnjailResponse);
|
||||||
|
}
|
||||||
|
|
||||||
|
// MsgUnjail defines the Msg/Unjail request type
|
||||||
|
message MsgUnjail {
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
option (gogoproto.goproto_stringer) = true;
|
||||||
|
|
||||||
|
string validator_addr = 1 [(gogoproto.moretags) = "yaml:\"address\"", (gogoproto.jsontag) = "address"];
|
||||||
|
}
|
||||||
|
|
||||||
|
// MsgUnjailResponse defines the Msg/Unjail response type
|
||||||
|
message MsgUnjailResponse {}
|
43
proto/cosmos/staking/v1beta1/authz.proto
Normal file
43
proto/cosmos/staking/v1beta1/authz.proto
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.staking.v1beta1;
|
||||||
|
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
import "cosmos_proto/cosmos.proto";
|
||||||
|
import "cosmos/base/v1beta1/coin.proto";
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/x/staking/types";
|
||||||
|
|
||||||
|
// StakeAuthorization defines authorization for delegate/undelegate/redelegate.
|
||||||
|
message StakeAuthorization {
|
||||||
|
option (cosmos_proto.implements_interface) = "Authorization";
|
||||||
|
|
||||||
|
// max_tokens specifies the maximum amount of tokens can be delegate to a validator. If it is
|
||||||
|
// empty, there is no spend limit and any amount of coins can be delegated.
|
||||||
|
cosmos.base.v1beta1.Coin max_tokens = 1 [(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coin"];
|
||||||
|
// validators is the oneof that represents either allow_list or deny_list
|
||||||
|
oneof validators {
|
||||||
|
// allow_list specifies list of validator addresses to whom grantee can delegate tokens on behalf of granter's
|
||||||
|
// account.
|
||||||
|
Validators allow_list = 2;
|
||||||
|
// deny_list specifies list of validator addresses to whom grantee can not delegate tokens.
|
||||||
|
Validators deny_list = 3;
|
||||||
|
}
|
||||||
|
// Validators defines list of validator addresses.
|
||||||
|
message Validators {
|
||||||
|
repeated string address = 1;
|
||||||
|
}
|
||||||
|
// authorization_type defines one of AuthorizationType.
|
||||||
|
AuthorizationType authorization_type = 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
// AuthorizationType defines the type of staking module authorization type
|
||||||
|
enum AuthorizationType {
|
||||||
|
// AUTHORIZATION_TYPE_UNSPECIFIED specifies an unknown authorization type
|
||||||
|
AUTHORIZATION_TYPE_UNSPECIFIED = 0;
|
||||||
|
// AUTHORIZATION_TYPE_DELEGATE defines an authorization type for Msg/Delegate
|
||||||
|
AUTHORIZATION_TYPE_DELEGATE = 1;
|
||||||
|
// AUTHORIZATION_TYPE_UNDELEGATE defines an authorization type for Msg/Undelegate
|
||||||
|
AUTHORIZATION_TYPE_UNDELEGATE = 2;
|
||||||
|
// AUTHORIZATION_TYPE_REDELEGATE defines an authorization type for Msg/BeginRedelegate
|
||||||
|
AUTHORIZATION_TYPE_REDELEGATE = 3;
|
||||||
|
}
|
53
proto/cosmos/staking/v1beta1/genesis.proto
Normal file
53
proto/cosmos/staking/v1beta1/genesis.proto
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.staking.v1beta1;
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/x/staking/types";
|
||||||
|
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
import "cosmos/staking/v1beta1/staking.proto";
|
||||||
|
|
||||||
|
// GenesisState defines the staking module's genesis state.
|
||||||
|
message GenesisState {
|
||||||
|
// params defines all the paramaters of related to deposit.
|
||||||
|
Params params = 1 [(gogoproto.nullable) = false];
|
||||||
|
|
||||||
|
// last_total_power tracks the total amounts of bonded tokens recorded during
|
||||||
|
// the previous end block.
|
||||||
|
bytes last_total_power = 2 [
|
||||||
|
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
|
||||||
|
(gogoproto.moretags) = "yaml:\"last_total_power\"",
|
||||||
|
(gogoproto.nullable) = false
|
||||||
|
];
|
||||||
|
|
||||||
|
// last_validator_powers is a special index that provides a historical list
|
||||||
|
// of the last-block's bonded validators.
|
||||||
|
repeated LastValidatorPower last_validator_powers = 3
|
||||||
|
[(gogoproto.moretags) = "yaml:\"last_validator_powers\"", (gogoproto.nullable) = false];
|
||||||
|
|
||||||
|
// delegations defines the validator set at genesis.
|
||||||
|
repeated Validator validators = 4 [(gogoproto.nullable) = false];
|
||||||
|
|
||||||
|
// delegations defines the delegations active at genesis.
|
||||||
|
repeated Delegation delegations = 5 [(gogoproto.nullable) = false];
|
||||||
|
|
||||||
|
// unbonding_delegations defines the unbonding delegations active at genesis.
|
||||||
|
repeated UnbondingDelegation unbonding_delegations = 6
|
||||||
|
[(gogoproto.moretags) = "yaml:\"unbonding_delegations\"", (gogoproto.nullable) = false];
|
||||||
|
|
||||||
|
// redelegations defines the redelegations active at genesis.
|
||||||
|
repeated Redelegation redelegations = 7 [(gogoproto.nullable) = false];
|
||||||
|
|
||||||
|
bool exported = 8;
|
||||||
|
}
|
||||||
|
|
||||||
|
// LastValidatorPower required for validator set update logic.
|
||||||
|
message LastValidatorPower {
|
||||||
|
option (gogoproto.equal) = false;
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
|
||||||
|
// address is the address of the validator.
|
||||||
|
string address = 1;
|
||||||
|
|
||||||
|
// power defines the power of the validator.
|
||||||
|
int64 power = 2;
|
||||||
|
}
|
348
proto/cosmos/staking/v1beta1/query.proto
Normal file
348
proto/cosmos/staking/v1beta1/query.proto
Normal file
@ -0,0 +1,348 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.staking.v1beta1;
|
||||||
|
|
||||||
|
import "cosmos/base/query/v1beta1/pagination.proto";
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
import "google/api/annotations.proto";
|
||||||
|
import "cosmos/staking/v1beta1/staking.proto";
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/x/staking/types";
|
||||||
|
|
||||||
|
// Query defines the gRPC querier service.
|
||||||
|
service Query {
|
||||||
|
// Validators queries all validators that match the given status.
|
||||||
|
rpc Validators(QueryValidatorsRequest) returns (QueryValidatorsResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/staking/v1beta1/validators";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validator queries validator info for given validator address.
|
||||||
|
rpc Validator(QueryValidatorRequest) returns (QueryValidatorResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/staking/v1beta1/validators/{validator_addr}";
|
||||||
|
}
|
||||||
|
|
||||||
|
// ValidatorDelegations queries delegate info for given validator.
|
||||||
|
rpc ValidatorDelegations(QueryValidatorDelegationsRequest) returns (QueryValidatorDelegationsResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/staking/v1beta1/validators/{validator_addr}/delegations";
|
||||||
|
}
|
||||||
|
|
||||||
|
// ValidatorUnbondingDelegations queries unbonding delegations of a validator.
|
||||||
|
rpc ValidatorUnbondingDelegations(QueryValidatorUnbondingDelegationsRequest)
|
||||||
|
returns (QueryValidatorUnbondingDelegationsResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/staking/v1beta1/validators/"
|
||||||
|
"{validator_addr}/unbonding_delegations";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Delegation queries delegate info for given validator delegator pair.
|
||||||
|
rpc Delegation(QueryDelegationRequest) returns (QueryDelegationResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/staking/v1beta1/validators/{validator_addr}/delegations/"
|
||||||
|
"{delegator_addr}";
|
||||||
|
}
|
||||||
|
|
||||||
|
// UnbondingDelegation queries unbonding info for given validator delegator
|
||||||
|
// pair.
|
||||||
|
rpc UnbondingDelegation(QueryUnbondingDelegationRequest) returns (QueryUnbondingDelegationResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/staking/v1beta1/validators/{validator_addr}/delegations/"
|
||||||
|
"{delegator_addr}/unbonding_delegation";
|
||||||
|
}
|
||||||
|
|
||||||
|
// DelegatorDelegations queries all delegations of a given delegator address.
|
||||||
|
rpc DelegatorDelegations(QueryDelegatorDelegationsRequest) returns (QueryDelegatorDelegationsResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/staking/v1beta1/delegations/{delegator_addr}";
|
||||||
|
}
|
||||||
|
|
||||||
|
// DelegatorUnbondingDelegations queries all unbonding delegations of a given
|
||||||
|
// delegator address.
|
||||||
|
rpc DelegatorUnbondingDelegations(QueryDelegatorUnbondingDelegationsRequest)
|
||||||
|
returns (QueryDelegatorUnbondingDelegationsResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/staking/v1beta1/delegators/"
|
||||||
|
"{delegator_addr}/unbonding_delegations";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Redelegations queries redelegations of given address.
|
||||||
|
rpc Redelegations(QueryRedelegationsRequest) returns (QueryRedelegationsResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/staking/v1beta1/delegators/{delegator_addr}/redelegations";
|
||||||
|
}
|
||||||
|
|
||||||
|
// DelegatorValidators queries all validators info for given delegator
|
||||||
|
// address.
|
||||||
|
rpc DelegatorValidators(QueryDelegatorValidatorsRequest) returns (QueryDelegatorValidatorsResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/staking/v1beta1/delegators/{delegator_addr}/validators";
|
||||||
|
}
|
||||||
|
|
||||||
|
// DelegatorValidator queries validator info for given delegator validator
|
||||||
|
// pair.
|
||||||
|
rpc DelegatorValidator(QueryDelegatorValidatorRequest) returns (QueryDelegatorValidatorResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/staking/v1beta1/delegators/{delegator_addr}/validators/"
|
||||||
|
"{validator_addr}";
|
||||||
|
}
|
||||||
|
|
||||||
|
// HistoricalInfo queries the historical info for given height.
|
||||||
|
rpc HistoricalInfo(QueryHistoricalInfoRequest) returns (QueryHistoricalInfoResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/staking/v1beta1/historical_info/{height}";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Pool queries the pool info.
|
||||||
|
rpc Pool(QueryPoolRequest) returns (QueryPoolResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/staking/v1beta1/pool";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Parameters queries the staking parameters.
|
||||||
|
rpc Params(QueryParamsRequest) returns (QueryParamsResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/staking/v1beta1/params";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryValidatorsRequest is request type for Query/Validators RPC method.
|
||||||
|
message QueryValidatorsRequest {
|
||||||
|
// status enables to query for validators matching a given status.
|
||||||
|
string status = 1;
|
||||||
|
|
||||||
|
// pagination defines an optional pagination for the request.
|
||||||
|
cosmos.base.query.v1beta1.PageRequest pagination = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryValidatorsResponse is response type for the Query/Validators RPC method
|
||||||
|
message QueryValidatorsResponse {
|
||||||
|
// validators contains all the queried validators.
|
||||||
|
repeated Validator validators = 1 [(gogoproto.nullable) = false];
|
||||||
|
|
||||||
|
// pagination defines the pagination in the response.
|
||||||
|
cosmos.base.query.v1beta1.PageResponse pagination = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryValidatorRequest is response type for the Query/Validator RPC method
|
||||||
|
message QueryValidatorRequest {
|
||||||
|
// validator_addr defines the validator address to query for.
|
||||||
|
string validator_addr = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryValidatorResponse is response type for the Query/Validator RPC method
|
||||||
|
message QueryValidatorResponse {
|
||||||
|
// validator defines the the validator info.
|
||||||
|
Validator validator = 1 [(gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryValidatorDelegationsRequest is request type for the
|
||||||
|
// Query/ValidatorDelegations RPC method
|
||||||
|
message QueryValidatorDelegationsRequest {
|
||||||
|
// validator_addr defines the validator address to query for.
|
||||||
|
string validator_addr = 1;
|
||||||
|
|
||||||
|
// pagination defines an optional pagination for the request.
|
||||||
|
cosmos.base.query.v1beta1.PageRequest pagination = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryValidatorDelegationsResponse is response type for the
|
||||||
|
// Query/ValidatorDelegations RPC method
|
||||||
|
message QueryValidatorDelegationsResponse {
|
||||||
|
repeated DelegationResponse delegation_responses = 1
|
||||||
|
[(gogoproto.nullable) = false, (gogoproto.castrepeated) = "DelegationResponses"];
|
||||||
|
|
||||||
|
// pagination defines the pagination in the response.
|
||||||
|
cosmos.base.query.v1beta1.PageResponse pagination = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryValidatorUnbondingDelegationsRequest is required type for the
|
||||||
|
// Query/ValidatorUnbondingDelegations RPC method
|
||||||
|
message QueryValidatorUnbondingDelegationsRequest {
|
||||||
|
// validator_addr defines the validator address to query for.
|
||||||
|
string validator_addr = 1;
|
||||||
|
|
||||||
|
// pagination defines an optional pagination for the request.
|
||||||
|
cosmos.base.query.v1beta1.PageRequest pagination = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryValidatorUnbondingDelegationsResponse is response type for the
|
||||||
|
// Query/ValidatorUnbondingDelegations RPC method.
|
||||||
|
message QueryValidatorUnbondingDelegationsResponse {
|
||||||
|
repeated UnbondingDelegation unbonding_responses = 1 [(gogoproto.nullable) = false];
|
||||||
|
|
||||||
|
// pagination defines the pagination in the response.
|
||||||
|
cosmos.base.query.v1beta1.PageResponse pagination = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryDelegationRequest is request type for the Query/Delegation RPC method.
|
||||||
|
message QueryDelegationRequest {
|
||||||
|
option (gogoproto.equal) = false;
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
|
||||||
|
// delegator_addr defines the delegator address to query for.
|
||||||
|
string delegator_addr = 1;
|
||||||
|
|
||||||
|
// validator_addr defines the validator address to query for.
|
||||||
|
string validator_addr = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryDelegationResponse is response type for the Query/Delegation RPC method.
|
||||||
|
message QueryDelegationResponse {
|
||||||
|
// delegation_responses defines the delegation info of a delegation.
|
||||||
|
DelegationResponse delegation_response = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryUnbondingDelegationRequest is request type for the
|
||||||
|
// Query/UnbondingDelegation RPC method.
|
||||||
|
message QueryUnbondingDelegationRequest {
|
||||||
|
option (gogoproto.equal) = false;
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
|
||||||
|
// delegator_addr defines the delegator address to query for.
|
||||||
|
string delegator_addr = 1;
|
||||||
|
|
||||||
|
// validator_addr defines the validator address to query for.
|
||||||
|
string validator_addr = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryDelegationResponse is response type for the Query/UnbondingDelegation
|
||||||
|
// RPC method.
|
||||||
|
message QueryUnbondingDelegationResponse {
|
||||||
|
// unbond defines the unbonding information of a delegation.
|
||||||
|
UnbondingDelegation unbond = 1 [(gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryDelegatorDelegationsRequest is request type for the
|
||||||
|
// Query/DelegatorDelegations RPC method.
|
||||||
|
message QueryDelegatorDelegationsRequest {
|
||||||
|
option (gogoproto.equal) = false;
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
|
||||||
|
// delegator_addr defines the delegator address to query for.
|
||||||
|
string delegator_addr = 1;
|
||||||
|
|
||||||
|
// pagination defines an optional pagination for the request.
|
||||||
|
cosmos.base.query.v1beta1.PageRequest pagination = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryDelegatorDelegationsResponse is response type for the
|
||||||
|
// Query/DelegatorDelegations RPC method.
|
||||||
|
message QueryDelegatorDelegationsResponse {
|
||||||
|
// delegation_responses defines all the delegations' info of a delegator.
|
||||||
|
repeated DelegationResponse delegation_responses = 1 [(gogoproto.nullable) = false];
|
||||||
|
|
||||||
|
// pagination defines the pagination in the response.
|
||||||
|
cosmos.base.query.v1beta1.PageResponse pagination = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryDelegatorUnbondingDelegationsRequest is request type for the
|
||||||
|
// Query/DelegatorUnbondingDelegations RPC method.
|
||||||
|
message QueryDelegatorUnbondingDelegationsRequest {
|
||||||
|
option (gogoproto.equal) = false;
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
|
||||||
|
// delegator_addr defines the delegator address to query for.
|
||||||
|
string delegator_addr = 1;
|
||||||
|
|
||||||
|
// pagination defines an optional pagination for the request.
|
||||||
|
cosmos.base.query.v1beta1.PageRequest pagination = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryUnbondingDelegatorDelegationsResponse is response type for the
|
||||||
|
// Query/UnbondingDelegatorDelegations RPC method.
|
||||||
|
message QueryDelegatorUnbondingDelegationsResponse {
|
||||||
|
repeated UnbondingDelegation unbonding_responses = 1 [(gogoproto.nullable) = false];
|
||||||
|
|
||||||
|
// pagination defines the pagination in the response.
|
||||||
|
cosmos.base.query.v1beta1.PageResponse pagination = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryRedelegationsRequest is request type for the Query/Redelegations RPC
|
||||||
|
// method.
|
||||||
|
message QueryRedelegationsRequest {
|
||||||
|
option (gogoproto.equal) = false;
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
|
||||||
|
// delegator_addr defines the delegator address to query for.
|
||||||
|
string delegator_addr = 1;
|
||||||
|
|
||||||
|
// src_validator_addr defines the validator address to redelegate from.
|
||||||
|
string src_validator_addr = 2;
|
||||||
|
|
||||||
|
// dst_validator_addr defines the validator address to redelegate to.
|
||||||
|
string dst_validator_addr = 3;
|
||||||
|
|
||||||
|
// pagination defines an optional pagination for the request.
|
||||||
|
cosmos.base.query.v1beta1.PageRequest pagination = 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryRedelegationsResponse is response type for the Query/Redelegations RPC
|
||||||
|
// method.
|
||||||
|
message QueryRedelegationsResponse {
|
||||||
|
repeated RedelegationResponse redelegation_responses = 1 [(gogoproto.nullable) = false];
|
||||||
|
|
||||||
|
// pagination defines the pagination in the response.
|
||||||
|
cosmos.base.query.v1beta1.PageResponse pagination = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryDelegatorValidatorsRequest is request type for the
|
||||||
|
// Query/DelegatorValidators RPC method.
|
||||||
|
message QueryDelegatorValidatorsRequest {
|
||||||
|
option (gogoproto.equal) = false;
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
|
||||||
|
// delegator_addr defines the delegator address to query for.
|
||||||
|
string delegator_addr = 1;
|
||||||
|
|
||||||
|
// pagination defines an optional pagination for the request.
|
||||||
|
cosmos.base.query.v1beta1.PageRequest pagination = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryDelegatorValidatorsResponse is response type for the
|
||||||
|
// Query/DelegatorValidators RPC method.
|
||||||
|
message QueryDelegatorValidatorsResponse {
|
||||||
|
// validators defines the the validators' info of a delegator.
|
||||||
|
repeated Validator validators = 1 [(gogoproto.nullable) = false];
|
||||||
|
|
||||||
|
// pagination defines the pagination in the response.
|
||||||
|
cosmos.base.query.v1beta1.PageResponse pagination = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryDelegatorValidatorRequest is request type for the
|
||||||
|
// Query/DelegatorValidator RPC method.
|
||||||
|
message QueryDelegatorValidatorRequest {
|
||||||
|
option (gogoproto.equal) = false;
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
|
||||||
|
// delegator_addr defines the delegator address to query for.
|
||||||
|
string delegator_addr = 1;
|
||||||
|
|
||||||
|
// validator_addr defines the validator address to query for.
|
||||||
|
string validator_addr = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryDelegatorValidatorResponse response type for the
|
||||||
|
// Query/DelegatorValidator RPC method.
|
||||||
|
message QueryDelegatorValidatorResponse {
|
||||||
|
// validator defines the the validator info.
|
||||||
|
Validator validator = 1 [(gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryHistoricalInfoRequest is request type for the Query/HistoricalInfo RPC
|
||||||
|
// method.
|
||||||
|
message QueryHistoricalInfoRequest {
|
||||||
|
// height defines at which height to query the historical info.
|
||||||
|
int64 height = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryHistoricalInfoResponse is response type for the Query/HistoricalInfo RPC
|
||||||
|
// method.
|
||||||
|
message QueryHistoricalInfoResponse {
|
||||||
|
// hist defines the historical info at the given height.
|
||||||
|
HistoricalInfo hist = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryPoolRequest is request type for the Query/Pool RPC method.
|
||||||
|
message QueryPoolRequest {}
|
||||||
|
|
||||||
|
// QueryPoolResponse is response type for the Query/Pool RPC method.
|
||||||
|
message QueryPoolResponse {
|
||||||
|
// pool defines the pool info.
|
||||||
|
Pool pool = 1 [(gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryParamsRequest is request type for the Query/Params RPC method.
|
||||||
|
message QueryParamsRequest {}
|
||||||
|
|
||||||
|
// QueryParamsResponse is response type for the Query/Params RPC method.
|
||||||
|
message QueryParamsResponse {
|
||||||
|
// params holds all the parameters of this module.
|
||||||
|
Params params = 1 [(gogoproto.nullable) = false];
|
||||||
|
}
|
334
proto/cosmos/staking/v1beta1/staking.proto
Normal file
334
proto/cosmos/staking/v1beta1/staking.proto
Normal file
@ -0,0 +1,334 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.staking.v1beta1;
|
||||||
|
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
import "google/protobuf/any.proto";
|
||||||
|
import "google/protobuf/duration.proto";
|
||||||
|
import "google/protobuf/timestamp.proto";
|
||||||
|
|
||||||
|
import "cosmos_proto/cosmos.proto";
|
||||||
|
import "cosmos/base/v1beta1/coin.proto";
|
||||||
|
import "tendermint/types/types.proto";
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/x/staking/types";
|
||||||
|
|
||||||
|
// HistoricalInfo contains header and validator information for a given block.
|
||||||
|
// It is stored as part of staking module's state, which persists the `n` most
|
||||||
|
// recent HistoricalInfo
|
||||||
|
// (`n` is set by the staking module's `historical_entries` parameter).
|
||||||
|
message HistoricalInfo {
|
||||||
|
tendermint.types.Header header = 1 [(gogoproto.nullable) = false];
|
||||||
|
repeated Validator valset = 2 [(gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
// CommissionRates defines the initial commission rates to be used for creating
|
||||||
|
// a validator.
|
||||||
|
message CommissionRates {
|
||||||
|
option (gogoproto.equal) = true;
|
||||||
|
option (gogoproto.goproto_stringer) = false;
|
||||||
|
|
||||||
|
// rate is the commission rate charged to delegators, as a fraction.
|
||||||
|
string rate = 1 [(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", (gogoproto.nullable) = false];
|
||||||
|
// max_rate defines the maximum commission rate which validator can ever charge, as a fraction.
|
||||||
|
string max_rate = 2 [
|
||||||
|
(gogoproto.moretags) = "yaml:\"max_rate\"",
|
||||||
|
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec",
|
||||||
|
(gogoproto.nullable) = false
|
||||||
|
];
|
||||||
|
// max_change_rate defines the maximum daily increase of the validator commission, as a fraction.
|
||||||
|
string max_change_rate = 3 [
|
||||||
|
(gogoproto.moretags) = "yaml:\"max_change_rate\"",
|
||||||
|
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec",
|
||||||
|
(gogoproto.nullable) = false
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Commission defines commission parameters for a given validator.
|
||||||
|
message Commission {
|
||||||
|
option (gogoproto.equal) = true;
|
||||||
|
option (gogoproto.goproto_stringer) = false;
|
||||||
|
|
||||||
|
// commission_rates defines the initial commission rates to be used for creating a validator.
|
||||||
|
CommissionRates commission_rates = 1 [(gogoproto.embed) = true, (gogoproto.nullable) = false];
|
||||||
|
// update_time is the last time the commission rate was changed.
|
||||||
|
google.protobuf.Timestamp update_time = 2
|
||||||
|
[(gogoproto.nullable) = false, (gogoproto.stdtime) = true, (gogoproto.moretags) = "yaml:\"update_time\""];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Description defines a validator description.
|
||||||
|
message Description {
|
||||||
|
option (gogoproto.equal) = true;
|
||||||
|
option (gogoproto.goproto_stringer) = false;
|
||||||
|
|
||||||
|
// moniker defines a human-readable name for the validator.
|
||||||
|
string moniker = 1;
|
||||||
|
// identity defines an optional identity signature (ex. UPort or Keybase).
|
||||||
|
string identity = 2;
|
||||||
|
// website defines an optional website link.
|
||||||
|
string website = 3;
|
||||||
|
// security_contact defines an optional email for security contact.
|
||||||
|
string security_contact = 4 [(gogoproto.moretags) = "yaml:\"security_contact\""];
|
||||||
|
// details define other optional details.
|
||||||
|
string details = 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validator defines a validator, together with the total amount of the
|
||||||
|
// Validator's bond shares and their exchange rate to coins. Slashing results in
|
||||||
|
// a decrease in the exchange rate, allowing correct calculation of future
|
||||||
|
// undelegations without iterating over delegators. When coins are delegated to
|
||||||
|
// this validator, the validator is credited with a delegation whose number of
|
||||||
|
// bond shares is based on the amount of coins delegated divided by the current
|
||||||
|
// exchange rate. Voting power can be calculated as total bonded shares
|
||||||
|
// multiplied by exchange rate.
|
||||||
|
message Validator {
|
||||||
|
option (gogoproto.equal) = false;
|
||||||
|
option (gogoproto.goproto_stringer) = false;
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
|
||||||
|
// operator_address defines the address of the validator's operator; bech encoded in JSON.
|
||||||
|
string operator_address = 1 [(gogoproto.moretags) = "yaml:\"operator_address\""];
|
||||||
|
// consensus_pubkey is the consensus public key of the validator, as a Protobuf Any.
|
||||||
|
google.protobuf.Any consensus_pubkey = 2
|
||||||
|
[(cosmos_proto.accepts_interface) = "cosmos.crypto.PubKey", (gogoproto.moretags) = "yaml:\"consensus_pubkey\""];
|
||||||
|
// jailed defined whether the validator has been jailed from bonded status or not.
|
||||||
|
bool jailed = 3;
|
||||||
|
// status is the validator status (bonded/unbonding/unbonded).
|
||||||
|
BondStatus status = 4;
|
||||||
|
// tokens define the delegated tokens (incl. self-delegation).
|
||||||
|
string tokens = 5 [(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.nullable) = false];
|
||||||
|
// delegator_shares defines total shares issued to a validator's delegators.
|
||||||
|
string delegator_shares = 6 [
|
||||||
|
(gogoproto.moretags) = "yaml:\"delegator_shares\"",
|
||||||
|
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec",
|
||||||
|
(gogoproto.nullable) = false
|
||||||
|
];
|
||||||
|
// description defines the description terms for the validator.
|
||||||
|
Description description = 7 [(gogoproto.nullable) = false];
|
||||||
|
// unbonding_height defines, if unbonding, the height at which this validator has begun unbonding.
|
||||||
|
int64 unbonding_height = 8 [(gogoproto.moretags) = "yaml:\"unbonding_height\""];
|
||||||
|
// unbonding_time defines, if unbonding, the min time for the validator to complete unbonding.
|
||||||
|
google.protobuf.Timestamp unbonding_time = 9
|
||||||
|
[(gogoproto.nullable) = false, (gogoproto.stdtime) = true, (gogoproto.moretags) = "yaml:\"unbonding_time\""];
|
||||||
|
// commission defines the commission parameters.
|
||||||
|
Commission commission = 10 [(gogoproto.nullable) = false];
|
||||||
|
// min_self_delegation is the validator's self declared minimum self delegation.
|
||||||
|
string min_self_delegation = 11 [
|
||||||
|
(gogoproto.moretags) = "yaml:\"min_self_delegation\"",
|
||||||
|
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
|
||||||
|
(gogoproto.nullable) = false
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
// BondStatus is the status of a validator.
|
||||||
|
enum BondStatus {
|
||||||
|
option (gogoproto.goproto_enum_prefix) = false;
|
||||||
|
|
||||||
|
// UNSPECIFIED defines an invalid validator status.
|
||||||
|
BOND_STATUS_UNSPECIFIED = 0 [(gogoproto.enumvalue_customname) = "Unspecified"];
|
||||||
|
// UNBONDED defines a validator that is not bonded.
|
||||||
|
BOND_STATUS_UNBONDED = 1 [(gogoproto.enumvalue_customname) = "Unbonded"];
|
||||||
|
// UNBONDING defines a validator that is unbonding.
|
||||||
|
BOND_STATUS_UNBONDING = 2 [(gogoproto.enumvalue_customname) = "Unbonding"];
|
||||||
|
// BONDED defines a validator that is bonded.
|
||||||
|
BOND_STATUS_BONDED = 3 [(gogoproto.enumvalue_customname) = "Bonded"];
|
||||||
|
}
|
||||||
|
|
||||||
|
// ValAddresses defines a repeated set of validator addresses.
|
||||||
|
message ValAddresses {
|
||||||
|
option (gogoproto.goproto_stringer) = false;
|
||||||
|
option (gogoproto.stringer) = true;
|
||||||
|
|
||||||
|
repeated string addresses = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// DVPair is struct that just has a delegator-validator pair with no other data.
|
||||||
|
// It is intended to be used as a marshalable pointer. For example, a DVPair can
|
||||||
|
// be used to construct the key to getting an UnbondingDelegation from state.
|
||||||
|
message DVPair {
|
||||||
|
option (gogoproto.equal) = false;
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
option (gogoproto.goproto_stringer) = false;
|
||||||
|
|
||||||
|
string delegator_address = 1 [(gogoproto.moretags) = "yaml:\"delegator_address\""];
|
||||||
|
string validator_address = 2 [(gogoproto.moretags) = "yaml:\"validator_address\""];
|
||||||
|
}
|
||||||
|
|
||||||
|
// DVPairs defines an array of DVPair objects.
|
||||||
|
message DVPairs {
|
||||||
|
repeated DVPair pairs = 1 [(gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
// DVVTriplet is struct that just has a delegator-validator-validator triplet
|
||||||
|
// with no other data. It is intended to be used as a marshalable pointer. For
|
||||||
|
// example, a DVVTriplet can be used to construct the key to getting a
|
||||||
|
// Redelegation from state.
|
||||||
|
message DVVTriplet {
|
||||||
|
option (gogoproto.equal) = false;
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
option (gogoproto.goproto_stringer) = false;
|
||||||
|
|
||||||
|
string delegator_address = 1 [(gogoproto.moretags) = "yaml:\"delegator_address\""];
|
||||||
|
string validator_src_address = 2 [(gogoproto.moretags) = "yaml:\"validator_src_address\""];
|
||||||
|
string validator_dst_address = 3 [(gogoproto.moretags) = "yaml:\"validator_dst_address\""];
|
||||||
|
}
|
||||||
|
|
||||||
|
// DVVTriplets defines an array of DVVTriplet objects.
|
||||||
|
message DVVTriplets {
|
||||||
|
repeated DVVTriplet triplets = 1 [(gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Delegation represents the bond with tokens held by an account. It is
|
||||||
|
// owned by one delegator, and is associated with the voting power of one
|
||||||
|
// validator.
|
||||||
|
message Delegation {
|
||||||
|
option (gogoproto.equal) = false;
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
option (gogoproto.goproto_stringer) = false;
|
||||||
|
|
||||||
|
// delegator_address is the bech32-encoded address of the delegator.
|
||||||
|
string delegator_address = 1 [(gogoproto.moretags) = "yaml:\"delegator_address\""];
|
||||||
|
// validator_address is the bech32-encoded address of the validator.
|
||||||
|
string validator_address = 2 [(gogoproto.moretags) = "yaml:\"validator_address\""];
|
||||||
|
// shares define the delegation shares received.
|
||||||
|
string shares = 3 [(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", (gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
// UnbondingDelegation stores all of a single delegator's unbonding bonds
|
||||||
|
// for a single validator in an time-ordered list.
|
||||||
|
message UnbondingDelegation {
|
||||||
|
option (gogoproto.equal) = false;
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
option (gogoproto.goproto_stringer) = false;
|
||||||
|
|
||||||
|
// delegator_address is the bech32-encoded address of the delegator.
|
||||||
|
string delegator_address = 1 [(gogoproto.moretags) = "yaml:\"delegator_address\""];
|
||||||
|
// validator_address is the bech32-encoded address of the validator.
|
||||||
|
string validator_address = 2 [(gogoproto.moretags) = "yaml:\"validator_address\""];
|
||||||
|
// entries are the unbonding delegation entries.
|
||||||
|
repeated UnbondingDelegationEntry entries = 3 [(gogoproto.nullable) = false]; // unbonding delegation entries
|
||||||
|
}
|
||||||
|
|
||||||
|
// UnbondingDelegationEntry defines an unbonding object with relevant metadata.
|
||||||
|
message UnbondingDelegationEntry {
|
||||||
|
option (gogoproto.equal) = true;
|
||||||
|
option (gogoproto.goproto_stringer) = false;
|
||||||
|
|
||||||
|
// creation_height is the height which the unbonding took place.
|
||||||
|
int64 creation_height = 1 [(gogoproto.moretags) = "yaml:\"creation_height\""];
|
||||||
|
// completion_time is the unix time for unbonding completion.
|
||||||
|
google.protobuf.Timestamp completion_time = 2
|
||||||
|
[(gogoproto.nullable) = false, (gogoproto.stdtime) = true, (gogoproto.moretags) = "yaml:\"completion_time\""];
|
||||||
|
// initial_balance defines the tokens initially scheduled to receive at completion.
|
||||||
|
string initial_balance = 3 [
|
||||||
|
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
|
||||||
|
(gogoproto.nullable) = false,
|
||||||
|
(gogoproto.moretags) = "yaml:\"initial_balance\""
|
||||||
|
];
|
||||||
|
// balance defines the tokens to receive at completion.
|
||||||
|
string balance = 4 [(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
// RedelegationEntry defines a redelegation object with relevant metadata.
|
||||||
|
message RedelegationEntry {
|
||||||
|
option (gogoproto.equal) = true;
|
||||||
|
option (gogoproto.goproto_stringer) = false;
|
||||||
|
|
||||||
|
// creation_height defines the height which the redelegation took place.
|
||||||
|
int64 creation_height = 1 [(gogoproto.moretags) = "yaml:\"creation_height\""];
|
||||||
|
// completion_time defines the unix time for redelegation completion.
|
||||||
|
google.protobuf.Timestamp completion_time = 2
|
||||||
|
[(gogoproto.nullable) = false, (gogoproto.stdtime) = true, (gogoproto.moretags) = "yaml:\"completion_time\""];
|
||||||
|
// initial_balance defines the initial balance when redelegation started.
|
||||||
|
string initial_balance = 3 [
|
||||||
|
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
|
||||||
|
(gogoproto.nullable) = false,
|
||||||
|
(gogoproto.moretags) = "yaml:\"initial_balance\""
|
||||||
|
];
|
||||||
|
// shares_dst is the amount of destination-validator shares created by redelegation.
|
||||||
|
string shares_dst = 4
|
||||||
|
[(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", (gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Redelegation contains the list of a particular delegator's redelegating bonds
|
||||||
|
// from a particular source validator to a particular destination validator.
|
||||||
|
message Redelegation {
|
||||||
|
option (gogoproto.equal) = false;
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
option (gogoproto.goproto_stringer) = false;
|
||||||
|
|
||||||
|
// delegator_address is the bech32-encoded address of the delegator.
|
||||||
|
string delegator_address = 1 [(gogoproto.moretags) = "yaml:\"delegator_address\""];
|
||||||
|
// validator_src_address is the validator redelegation source operator address.
|
||||||
|
string validator_src_address = 2 [(gogoproto.moretags) = "yaml:\"validator_src_address\""];
|
||||||
|
// validator_dst_address is the validator redelegation destination operator address.
|
||||||
|
string validator_dst_address = 3 [(gogoproto.moretags) = "yaml:\"validator_dst_address\""];
|
||||||
|
// entries are the redelegation entries.
|
||||||
|
repeated RedelegationEntry entries = 4 [(gogoproto.nullable) = false]; // redelegation entries
|
||||||
|
}
|
||||||
|
|
||||||
|
// Params defines the parameters for the staking module.
|
||||||
|
message Params {
|
||||||
|
option (gogoproto.equal) = true;
|
||||||
|
option (gogoproto.goproto_stringer) = false;
|
||||||
|
|
||||||
|
// unbonding_time is the time duration of unbonding.
|
||||||
|
google.protobuf.Duration unbonding_time = 1
|
||||||
|
[(gogoproto.nullable) = false, (gogoproto.stdduration) = true, (gogoproto.moretags) = "yaml:\"unbonding_time\""];
|
||||||
|
// max_validators is the maximum number of validators.
|
||||||
|
uint32 max_validators = 2 [(gogoproto.moretags) = "yaml:\"max_validators\""];
|
||||||
|
// max_entries is the max entries for either unbonding delegation or redelegation (per pair/trio).
|
||||||
|
uint32 max_entries = 3 [(gogoproto.moretags) = "yaml:\"max_entries\""];
|
||||||
|
// historical_entries is the number of historical entries to persist.
|
||||||
|
uint32 historical_entries = 4 [(gogoproto.moretags) = "yaml:\"historical_entries\""];
|
||||||
|
// bond_denom defines the bondable coin denomination.
|
||||||
|
string bond_denom = 5 [(gogoproto.moretags) = "yaml:\"bond_denom\""];
|
||||||
|
}
|
||||||
|
|
||||||
|
// DelegationResponse is equivalent to Delegation except that it contains a
|
||||||
|
// balance in addition to shares which is more suitable for client responses.
|
||||||
|
message DelegationResponse {
|
||||||
|
option (gogoproto.equal) = false;
|
||||||
|
option (gogoproto.goproto_stringer) = false;
|
||||||
|
|
||||||
|
Delegation delegation = 1 [(gogoproto.nullable) = false];
|
||||||
|
|
||||||
|
cosmos.base.v1beta1.Coin balance = 2 [(gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
// RedelegationEntryResponse is equivalent to a RedelegationEntry except that it
|
||||||
|
// contains a balance in addition to shares which is more suitable for client
|
||||||
|
// responses.
|
||||||
|
message RedelegationEntryResponse {
|
||||||
|
option (gogoproto.equal) = true;
|
||||||
|
|
||||||
|
RedelegationEntry redelegation_entry = 1 [(gogoproto.nullable) = false];
|
||||||
|
string balance = 4 [(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
// RedelegationResponse is equivalent to a Redelegation except that its entries
|
||||||
|
// contain a balance in addition to shares which is more suitable for client
|
||||||
|
// responses.
|
||||||
|
message RedelegationResponse {
|
||||||
|
option (gogoproto.equal) = false;
|
||||||
|
|
||||||
|
Redelegation redelegation = 1 [(gogoproto.nullable) = false];
|
||||||
|
repeated RedelegationEntryResponse entries = 2 [(gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Pool is used for tracking bonded and not-bonded token supply of the bond
|
||||||
|
// denomination.
|
||||||
|
message Pool {
|
||||||
|
option (gogoproto.description) = true;
|
||||||
|
option (gogoproto.equal) = true;
|
||||||
|
string not_bonded_tokens = 1 [
|
||||||
|
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
|
||||||
|
(gogoproto.jsontag) = "not_bonded_tokens",
|
||||||
|
(gogoproto.nullable) = false
|
||||||
|
];
|
||||||
|
string bonded_tokens = 2 [
|
||||||
|
(gogoproto.jsontag) = "bonded_tokens",
|
||||||
|
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
|
||||||
|
(gogoproto.nullable) = false,
|
||||||
|
(gogoproto.moretags) = "yaml:\"bonded_tokens\""
|
||||||
|
];
|
||||||
|
}
|
126
proto/cosmos/staking/v1beta1/tx.proto
Normal file
126
proto/cosmos/staking/v1beta1/tx.proto
Normal file
@ -0,0 +1,126 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.staking.v1beta1;
|
||||||
|
|
||||||
|
import "google/protobuf/any.proto";
|
||||||
|
import "google/protobuf/timestamp.proto";
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
|
||||||
|
import "cosmos_proto/cosmos.proto";
|
||||||
|
import "cosmos/base/v1beta1/coin.proto";
|
||||||
|
import "cosmos/staking/v1beta1/staking.proto";
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/x/staking/types";
|
||||||
|
|
||||||
|
// Msg defines the staking Msg service.
|
||||||
|
service Msg {
|
||||||
|
// CreateValidator defines a method for creating a new validator.
|
||||||
|
rpc CreateValidator(MsgCreateValidator) returns (MsgCreateValidatorResponse);
|
||||||
|
|
||||||
|
// EditValidator defines a method for editing an existing validator.
|
||||||
|
rpc EditValidator(MsgEditValidator) returns (MsgEditValidatorResponse);
|
||||||
|
|
||||||
|
// Delegate defines a method for performing a delegation of coins
|
||||||
|
// from a delegator to a validator.
|
||||||
|
rpc Delegate(MsgDelegate) returns (MsgDelegateResponse);
|
||||||
|
|
||||||
|
// BeginRedelegate defines a method for performing a redelegation
|
||||||
|
// of coins from a delegator and source validator to a destination validator.
|
||||||
|
rpc BeginRedelegate(MsgBeginRedelegate) returns (MsgBeginRedelegateResponse);
|
||||||
|
|
||||||
|
// Undelegate defines a method for performing an undelegation from a
|
||||||
|
// delegate and a validator.
|
||||||
|
rpc Undelegate(MsgUndelegate) returns (MsgUndelegateResponse);
|
||||||
|
}
|
||||||
|
|
||||||
|
// MsgCreateValidator defines a SDK message for creating a new validator.
|
||||||
|
message MsgCreateValidator {
|
||||||
|
option (gogoproto.equal) = false;
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
|
||||||
|
Description description = 1 [(gogoproto.nullable) = false];
|
||||||
|
CommissionRates commission = 2 [(gogoproto.nullable) = false];
|
||||||
|
string min_self_delegation = 3 [
|
||||||
|
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
|
||||||
|
(gogoproto.moretags) = "yaml:\"min_self_delegation\"",
|
||||||
|
(gogoproto.nullable) = false
|
||||||
|
];
|
||||||
|
string delegator_address = 4 [(gogoproto.moretags) = "yaml:\"delegator_address\""];
|
||||||
|
string validator_address = 5 [(gogoproto.moretags) = "yaml:\"validator_address\""];
|
||||||
|
google.protobuf.Any pubkey = 6 [(cosmos_proto.accepts_interface) = "cosmos.crypto.PubKey"];
|
||||||
|
cosmos.base.v1beta1.Coin value = 7 [(gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
// MsgCreateValidatorResponse defines the Msg/CreateValidator response type.
|
||||||
|
message MsgCreateValidatorResponse {}
|
||||||
|
|
||||||
|
// MsgEditValidator defines a SDK message for editing an existing validator.
|
||||||
|
message MsgEditValidator {
|
||||||
|
option (gogoproto.equal) = false;
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
|
||||||
|
Description description = 1 [(gogoproto.nullable) = false];
|
||||||
|
string validator_address = 2 [(gogoproto.moretags) = "yaml:\"address\""];
|
||||||
|
|
||||||
|
// We pass a reference to the new commission rate and min self delegation as
|
||||||
|
// it's not mandatory to update. If not updated, the deserialized rate will be
|
||||||
|
// zero with no way to distinguish if an update was intended.
|
||||||
|
// REF: #2373
|
||||||
|
string commission_rate = 3 [
|
||||||
|
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec",
|
||||||
|
(gogoproto.moretags) = "yaml:\"commission_rate\""
|
||||||
|
];
|
||||||
|
string min_self_delegation = 4 [
|
||||||
|
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
|
||||||
|
(gogoproto.moretags) = "yaml:\"min_self_delegation\""
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
// MsgEditValidatorResponse defines the Msg/EditValidator response type.
|
||||||
|
message MsgEditValidatorResponse {}
|
||||||
|
|
||||||
|
// MsgDelegate defines a SDK message for performing a delegation of coins
|
||||||
|
// from a delegator to a validator.
|
||||||
|
message MsgDelegate {
|
||||||
|
option (gogoproto.equal) = false;
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
|
||||||
|
string delegator_address = 1 [(gogoproto.moretags) = "yaml:\"delegator_address\""];
|
||||||
|
string validator_address = 2 [(gogoproto.moretags) = "yaml:\"validator_address\""];
|
||||||
|
cosmos.base.v1beta1.Coin amount = 3 [(gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
// MsgDelegateResponse defines the Msg/Delegate response type.
|
||||||
|
message MsgDelegateResponse {}
|
||||||
|
|
||||||
|
// MsgBeginRedelegate defines a SDK message for performing a redelegation
|
||||||
|
// of coins from a delegator and source validator to a destination validator.
|
||||||
|
message MsgBeginRedelegate {
|
||||||
|
option (gogoproto.equal) = false;
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
|
||||||
|
string delegator_address = 1 [(gogoproto.moretags) = "yaml:\"delegator_address\""];
|
||||||
|
string validator_src_address = 2 [(gogoproto.moretags) = "yaml:\"validator_src_address\""];
|
||||||
|
string validator_dst_address = 3 [(gogoproto.moretags) = "yaml:\"validator_dst_address\""];
|
||||||
|
cosmos.base.v1beta1.Coin amount = 4 [(gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
// MsgBeginRedelegateResponse defines the Msg/BeginRedelegate response type.
|
||||||
|
message MsgBeginRedelegateResponse {
|
||||||
|
google.protobuf.Timestamp completion_time = 1 [(gogoproto.nullable) = false, (gogoproto.stdtime) = true];
|
||||||
|
}
|
||||||
|
|
||||||
|
// MsgUndelegate defines a SDK message for performing an undelegation from a
|
||||||
|
// delegate and a validator.
|
||||||
|
message MsgUndelegate {
|
||||||
|
option (gogoproto.equal) = false;
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
|
||||||
|
string delegator_address = 1 [(gogoproto.moretags) = "yaml:\"delegator_address\""];
|
||||||
|
string validator_address = 2 [(gogoproto.moretags) = "yaml:\"validator_address\""];
|
||||||
|
cosmos.base.v1beta1.Coin amount = 3 [(gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
// MsgUndelegateResponse defines the Msg/Undelegate response type.
|
||||||
|
message MsgUndelegateResponse {
|
||||||
|
google.protobuf.Timestamp completion_time = 1 [(gogoproto.nullable) = false, (gogoproto.stdtime) = true];
|
||||||
|
}
|
79
proto/cosmos/tx/signing/v1beta1/signing.proto
Normal file
79
proto/cosmos/tx/signing/v1beta1/signing.proto
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.tx.signing.v1beta1;
|
||||||
|
|
||||||
|
import "cosmos/crypto/multisig/v1beta1/multisig.proto";
|
||||||
|
import "google/protobuf/any.proto";
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/types/tx/signing";
|
||||||
|
|
||||||
|
// SignMode represents a signing mode with its own security guarantees.
|
||||||
|
enum SignMode {
|
||||||
|
// SIGN_MODE_UNSPECIFIED specifies an unknown signing mode and will be
|
||||||
|
// rejected
|
||||||
|
SIGN_MODE_UNSPECIFIED = 0;
|
||||||
|
|
||||||
|
// SIGN_MODE_DIRECT specifies a signing mode which uses SignDoc and is
|
||||||
|
// verified with raw bytes from Tx
|
||||||
|
SIGN_MODE_DIRECT = 1;
|
||||||
|
|
||||||
|
// SIGN_MODE_TEXTUAL is a future signing mode that will verify some
|
||||||
|
// human-readable textual representation on top of the binary representation
|
||||||
|
// from SIGN_MODE_DIRECT
|
||||||
|
SIGN_MODE_TEXTUAL = 2;
|
||||||
|
|
||||||
|
// SIGN_MODE_LEGACY_AMINO_JSON is a backwards compatibility mode which uses
|
||||||
|
// Amino JSON and will be removed in the future
|
||||||
|
SIGN_MODE_LEGACY_AMINO_JSON = 127;
|
||||||
|
}
|
||||||
|
|
||||||
|
// SignatureDescriptors wraps multiple SignatureDescriptor's.
|
||||||
|
message SignatureDescriptors {
|
||||||
|
// signatures are the signature descriptors
|
||||||
|
repeated SignatureDescriptor signatures = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// SignatureDescriptor is a convenience type which represents the full data for
|
||||||
|
// a signature including the public key of the signer, signing modes and the
|
||||||
|
// signature itself. It is primarily used for coordinating signatures between
|
||||||
|
// clients.
|
||||||
|
message SignatureDescriptor {
|
||||||
|
// public_key is the public key of the signer
|
||||||
|
google.protobuf.Any public_key = 1;
|
||||||
|
|
||||||
|
Data data = 2;
|
||||||
|
|
||||||
|
// sequence is the sequence of the account, which describes the
|
||||||
|
// number of committed transactions signed by a given address. It is used to prevent
|
||||||
|
// replay attacks.
|
||||||
|
uint64 sequence = 3;
|
||||||
|
|
||||||
|
// Data represents signature data
|
||||||
|
message Data {
|
||||||
|
// sum is the oneof that specifies whether this represents single or multi-signature data
|
||||||
|
oneof sum {
|
||||||
|
// single represents a single signer
|
||||||
|
Single single = 1;
|
||||||
|
|
||||||
|
// multi represents a multisig signer
|
||||||
|
Multi multi = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Single is the signature data for a single signer
|
||||||
|
message Single {
|
||||||
|
// mode is the signing mode of the single signer
|
||||||
|
SignMode mode = 1;
|
||||||
|
|
||||||
|
// signature is the raw signature bytes
|
||||||
|
bytes signature = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Multi is the signature data for a multisig public key
|
||||||
|
message Multi {
|
||||||
|
// bitarray specifies which keys within the multisig are signing
|
||||||
|
cosmos.crypto.multisig.v1beta1.CompactBitArray bitarray = 1;
|
||||||
|
|
||||||
|
// signatures is the signatures of the multi-signature
|
||||||
|
repeated Data signatures = 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
132
proto/cosmos/tx/v1beta1/service.proto
Normal file
132
proto/cosmos/tx/v1beta1/service.proto
Normal file
@ -0,0 +1,132 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.tx.v1beta1;
|
||||||
|
|
||||||
|
import "google/api/annotations.proto";
|
||||||
|
import "cosmos/base/abci/v1beta1/abci.proto";
|
||||||
|
import "cosmos/tx/v1beta1/tx.proto";
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
import "cosmos/base/query/v1beta1/pagination.proto";
|
||||||
|
|
||||||
|
option (gogoproto.goproto_registration) = true;
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/types/tx";
|
||||||
|
|
||||||
|
// Service defines a gRPC service for interacting with transactions.
|
||||||
|
service Service {
|
||||||
|
// Simulate simulates executing a transaction for estimating gas usage.
|
||||||
|
rpc Simulate(SimulateRequest) returns (SimulateResponse) {
|
||||||
|
option (google.api.http) = {
|
||||||
|
post: "/cosmos/tx/v1beta1/simulate"
|
||||||
|
body: "*"
|
||||||
|
};
|
||||||
|
}
|
||||||
|
// GetTx fetches a tx by hash.
|
||||||
|
rpc GetTx(GetTxRequest) returns (GetTxResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/tx/v1beta1/txs/{hash}";
|
||||||
|
}
|
||||||
|
// BroadcastTx broadcast transaction.
|
||||||
|
rpc BroadcastTx(BroadcastTxRequest) returns (BroadcastTxResponse) {
|
||||||
|
option (google.api.http) = {
|
||||||
|
post: "/cosmos/tx/v1beta1/txs"
|
||||||
|
body: "*"
|
||||||
|
};
|
||||||
|
}
|
||||||
|
// GetTxsEvent fetches txs by event.
|
||||||
|
rpc GetTxsEvent(GetTxsEventRequest) returns (GetTxsEventResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/tx/v1beta1/txs";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetTxsEventRequest is the request type for the Service.TxsByEvents
|
||||||
|
// RPC method.
|
||||||
|
message GetTxsEventRequest {
|
||||||
|
// events is the list of transaction event type.
|
||||||
|
repeated string events = 1;
|
||||||
|
// pagination defines an pagination for the request.
|
||||||
|
cosmos.base.query.v1beta1.PageRequest pagination = 2;
|
||||||
|
OrderBy order_by = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
// OrderBy defines the sorting order
|
||||||
|
enum OrderBy {
|
||||||
|
// ORDER_BY_UNSPECIFIED specifies an unknown sorting order. OrderBy defaults to ASC in this case.
|
||||||
|
ORDER_BY_UNSPECIFIED = 0;
|
||||||
|
// ORDER_BY_ASC defines ascending order
|
||||||
|
ORDER_BY_ASC = 1;
|
||||||
|
// ORDER_BY_DESC defines descending order
|
||||||
|
ORDER_BY_DESC = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetTxsEventResponse is the response type for the Service.TxsByEvents
|
||||||
|
// RPC method.
|
||||||
|
message GetTxsEventResponse {
|
||||||
|
// txs is the list of queried transactions.
|
||||||
|
repeated cosmos.tx.v1beta1.Tx txs = 1;
|
||||||
|
// tx_responses is the list of queried TxResponses.
|
||||||
|
repeated cosmos.base.abci.v1beta1.TxResponse tx_responses = 2;
|
||||||
|
// pagination defines an pagination for the response.
|
||||||
|
cosmos.base.query.v1beta1.PageResponse pagination = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
// BroadcastTxRequest is the request type for the Service.BroadcastTxRequest
|
||||||
|
// RPC method.
|
||||||
|
message BroadcastTxRequest {
|
||||||
|
// tx_bytes is the raw transaction.
|
||||||
|
bytes tx_bytes = 1;
|
||||||
|
BroadcastMode mode = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// BroadcastMode specifies the broadcast mode for the TxService.Broadcast RPC method.
|
||||||
|
enum BroadcastMode {
|
||||||
|
// zero-value for mode ordering
|
||||||
|
BROADCAST_MODE_UNSPECIFIED = 0;
|
||||||
|
// BROADCAST_MODE_BLOCK defines a tx broadcasting mode where the client waits for
|
||||||
|
// the tx to be committed in a block.
|
||||||
|
BROADCAST_MODE_BLOCK = 1;
|
||||||
|
// BROADCAST_MODE_SYNC defines a tx broadcasting mode where the client waits for
|
||||||
|
// a CheckTx execution response only.
|
||||||
|
BROADCAST_MODE_SYNC = 2;
|
||||||
|
// BROADCAST_MODE_ASYNC defines a tx broadcasting mode where the client returns
|
||||||
|
// immediately.
|
||||||
|
BROADCAST_MODE_ASYNC = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
// BroadcastTxResponse is the response type for the
|
||||||
|
// Service.BroadcastTx method.
|
||||||
|
message BroadcastTxResponse {
|
||||||
|
// tx_response is the queried TxResponses.
|
||||||
|
cosmos.base.abci.v1beta1.TxResponse tx_response = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// SimulateRequest is the request type for the Service.Simulate
|
||||||
|
// RPC method.
|
||||||
|
message SimulateRequest {
|
||||||
|
// tx is the transaction to simulate.
|
||||||
|
// Deprecated. Send raw tx bytes instead.
|
||||||
|
cosmos.tx.v1beta1.Tx tx = 1 [deprecated = true];
|
||||||
|
// tx_bytes is the raw transaction.
|
||||||
|
bytes tx_bytes = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// SimulateResponse is the response type for the
|
||||||
|
// Service.SimulateRPC method.
|
||||||
|
message SimulateResponse {
|
||||||
|
// gas_info is the information about gas used in the simulation.
|
||||||
|
cosmos.base.abci.v1beta1.GasInfo gas_info = 1;
|
||||||
|
// result is the result of the simulation.
|
||||||
|
cosmos.base.abci.v1beta1.Result result = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetTxRequest is the request type for the Service.GetTx
|
||||||
|
// RPC method.
|
||||||
|
message GetTxRequest {
|
||||||
|
// hash is the tx hash to query, encoded as a hex string.
|
||||||
|
string hash = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetTxResponse is the response type for the Service.GetTx method.
|
||||||
|
message GetTxResponse {
|
||||||
|
// tx is the queried transaction.
|
||||||
|
cosmos.tx.v1beta1.Tx tx = 1;
|
||||||
|
// tx_response is the queried TxResponses.
|
||||||
|
cosmos.base.abci.v1beta1.TxResponse tx_response = 2;
|
||||||
|
}
|
183
proto/cosmos/tx/v1beta1/tx.proto
Normal file
183
proto/cosmos/tx/v1beta1/tx.proto
Normal file
@ -0,0 +1,183 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.tx.v1beta1;
|
||||||
|
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
import "cosmos/crypto/multisig/v1beta1/multisig.proto";
|
||||||
|
import "cosmos/base/v1beta1/coin.proto";
|
||||||
|
import "cosmos/tx/signing/v1beta1/signing.proto";
|
||||||
|
import "google/protobuf/any.proto";
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/types/tx";
|
||||||
|
|
||||||
|
// Tx is the standard type used for broadcasting transactions.
|
||||||
|
message Tx {
|
||||||
|
// body is the processable content of the transaction
|
||||||
|
TxBody body = 1;
|
||||||
|
|
||||||
|
// auth_info is the authorization related content of the transaction,
|
||||||
|
// specifically signers, signer modes and fee
|
||||||
|
AuthInfo auth_info = 2;
|
||||||
|
|
||||||
|
// signatures is a list of signatures that matches the length and order of
|
||||||
|
// AuthInfo's signer_infos to allow connecting signature meta information like
|
||||||
|
// public key and signing mode by position.
|
||||||
|
repeated bytes signatures = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
// TxRaw is a variant of Tx that pins the signer's exact binary representation
|
||||||
|
// of body and auth_info. This is used for signing, broadcasting and
|
||||||
|
// verification. The binary `serialize(tx: TxRaw)` is stored in Tendermint and
|
||||||
|
// the hash `sha256(serialize(tx: TxRaw))` becomes the "txhash", commonly used
|
||||||
|
// as the transaction ID.
|
||||||
|
message TxRaw {
|
||||||
|
// body_bytes is a protobuf serialization of a TxBody that matches the
|
||||||
|
// representation in SignDoc.
|
||||||
|
bytes body_bytes = 1;
|
||||||
|
|
||||||
|
// auth_info_bytes is a protobuf serialization of an AuthInfo that matches the
|
||||||
|
// representation in SignDoc.
|
||||||
|
bytes auth_info_bytes = 2;
|
||||||
|
|
||||||
|
// signatures is a list of signatures that matches the length and order of
|
||||||
|
// AuthInfo's signer_infos to allow connecting signature meta information like
|
||||||
|
// public key and signing mode by position.
|
||||||
|
repeated bytes signatures = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
// SignDoc is the type used for generating sign bytes for SIGN_MODE_DIRECT.
|
||||||
|
message SignDoc {
|
||||||
|
// body_bytes is protobuf serialization of a TxBody that matches the
|
||||||
|
// representation in TxRaw.
|
||||||
|
bytes body_bytes = 1;
|
||||||
|
|
||||||
|
// auth_info_bytes is a protobuf serialization of an AuthInfo that matches the
|
||||||
|
// representation in TxRaw.
|
||||||
|
bytes auth_info_bytes = 2;
|
||||||
|
|
||||||
|
// chain_id is the unique identifier of the chain this transaction targets.
|
||||||
|
// It prevents signed transactions from being used on another chain by an
|
||||||
|
// attacker
|
||||||
|
string chain_id = 3;
|
||||||
|
|
||||||
|
// account_number is the account number of the account in state
|
||||||
|
uint64 account_number = 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
// TxBody is the body of a transaction that all signers sign over.
|
||||||
|
message TxBody {
|
||||||
|
// messages is a list of messages to be executed. The required signers of
|
||||||
|
// those messages define the number and order of elements in AuthInfo's
|
||||||
|
// signer_infos and Tx's signatures. Each required signer address is added to
|
||||||
|
// the list only the first time it occurs.
|
||||||
|
// By convention, the first required signer (usually from the first message)
|
||||||
|
// is referred to as the primary signer and pays the fee for the whole
|
||||||
|
// transaction.
|
||||||
|
repeated google.protobuf.Any messages = 1;
|
||||||
|
|
||||||
|
// memo is any arbitrary note/comment to be added to the transaction.
|
||||||
|
// WARNING: in clients, any publicly exposed text should not be called memo,
|
||||||
|
// but should be called `note` instead (see https://github.com/cosmos/cosmos-sdk/issues/9122).
|
||||||
|
string memo = 2;
|
||||||
|
|
||||||
|
// timeout is the block height after which this transaction will not
|
||||||
|
// be processed by the chain
|
||||||
|
uint64 timeout_height = 3;
|
||||||
|
|
||||||
|
// extension_options are arbitrary options that can be added by chains
|
||||||
|
// when the default options are not sufficient. If any of these are present
|
||||||
|
// and can't be handled, the transaction will be rejected
|
||||||
|
repeated google.protobuf.Any extension_options = 1023;
|
||||||
|
|
||||||
|
// extension_options are arbitrary options that can be added by chains
|
||||||
|
// when the default options are not sufficient. If any of these are present
|
||||||
|
// and can't be handled, they will be ignored
|
||||||
|
repeated google.protobuf.Any non_critical_extension_options = 2047;
|
||||||
|
}
|
||||||
|
|
||||||
|
// AuthInfo describes the fee and signer modes that are used to sign a
|
||||||
|
// transaction.
|
||||||
|
message AuthInfo {
|
||||||
|
// signer_infos defines the signing modes for the required signers. The number
|
||||||
|
// and order of elements must match the required signers from TxBody's
|
||||||
|
// messages. The first element is the primary signer and the one which pays
|
||||||
|
// the fee.
|
||||||
|
repeated SignerInfo signer_infos = 1;
|
||||||
|
|
||||||
|
// Fee is the fee and gas limit for the transaction. The first signer is the
|
||||||
|
// primary signer and the one which pays the fee. The fee can be calculated
|
||||||
|
// based on the cost of evaluating the body and doing signature verification
|
||||||
|
// of the signers. This can be estimated via simulation.
|
||||||
|
Fee fee = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// SignerInfo describes the public key and signing mode of a single top-level
|
||||||
|
// signer.
|
||||||
|
message SignerInfo {
|
||||||
|
// public_key is the public key of the signer. It is optional for accounts
|
||||||
|
// that already exist in state. If unset, the verifier can use the required \
|
||||||
|
// signer address for this position and lookup the public key.
|
||||||
|
google.protobuf.Any public_key = 1;
|
||||||
|
|
||||||
|
// mode_info describes the signing mode of the signer and is a nested
|
||||||
|
// structure to support nested multisig pubkey's
|
||||||
|
ModeInfo mode_info = 2;
|
||||||
|
|
||||||
|
// sequence is the sequence of the account, which describes the
|
||||||
|
// number of committed transactions signed by a given address. It is used to
|
||||||
|
// prevent replay attacks.
|
||||||
|
uint64 sequence = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ModeInfo describes the signing mode of a single or nested multisig signer.
|
||||||
|
message ModeInfo {
|
||||||
|
// sum is the oneof that specifies whether this represents a single or nested
|
||||||
|
// multisig signer
|
||||||
|
oneof sum {
|
||||||
|
// single represents a single signer
|
||||||
|
Single single = 1;
|
||||||
|
|
||||||
|
// multi represents a nested multisig signer
|
||||||
|
Multi multi = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Single is the mode info for a single signer. It is structured as a message
|
||||||
|
// to allow for additional fields such as locale for SIGN_MODE_TEXTUAL in the
|
||||||
|
// future
|
||||||
|
message Single {
|
||||||
|
// mode is the signing mode of the single signer
|
||||||
|
cosmos.tx.signing.v1beta1.SignMode mode = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Multi is the mode info for a multisig public key
|
||||||
|
message Multi {
|
||||||
|
// bitarray specifies which keys within the multisig are signing
|
||||||
|
cosmos.crypto.multisig.v1beta1.CompactBitArray bitarray = 1;
|
||||||
|
|
||||||
|
// mode_infos is the corresponding modes of the signers of the multisig
|
||||||
|
// which could include nested multisig public keys
|
||||||
|
repeated ModeInfo mode_infos = 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fee includes the amount of coins paid in fees and the maximum
|
||||||
|
// gas to be used by the transaction. The ratio yields an effective "gasprice",
|
||||||
|
// which must be above some miminum to be accepted into the mempool.
|
||||||
|
message Fee {
|
||||||
|
// amount is the amount of coins to be paid as a fee
|
||||||
|
repeated cosmos.base.v1beta1.Coin amount = 1
|
||||||
|
[(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"];
|
||||||
|
|
||||||
|
// gas_limit is the maximum gas that can be used in transaction processing
|
||||||
|
// before an out of gas error occurs
|
||||||
|
uint64 gas_limit = 2;
|
||||||
|
|
||||||
|
// if unset, the first signer is responsible for paying the fees. If set, the specified account must pay the fees.
|
||||||
|
// the payer must be a tx signer (and thus have signed this field in AuthInfo).
|
||||||
|
// setting this field does *not* change the ordering of required signers for the transaction.
|
||||||
|
string payer = 3;
|
||||||
|
|
||||||
|
// if set, the fee payer (either the first signer or the value of the payer field) requests that a fee grant be used
|
||||||
|
// to pay fees instead of the fee payer's own balance. If an appropriate fee grant does not exist or the chain does
|
||||||
|
// not support fee grants, this will fail
|
||||||
|
string granter = 4;
|
||||||
|
}
|
90
proto/cosmos/upgrade/v1beta1/query.proto
Normal file
90
proto/cosmos/upgrade/v1beta1/query.proto
Normal file
@ -0,0 +1,90 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.upgrade.v1beta1;
|
||||||
|
|
||||||
|
import "google/api/annotations.proto";
|
||||||
|
import "cosmos/upgrade/v1beta1/upgrade.proto";
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/x/upgrade/types";
|
||||||
|
|
||||||
|
// Query defines the gRPC upgrade querier service.
|
||||||
|
service Query {
|
||||||
|
// CurrentPlan queries the current upgrade plan.
|
||||||
|
rpc CurrentPlan(QueryCurrentPlanRequest) returns (QueryCurrentPlanResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/upgrade/v1beta1/current_plan";
|
||||||
|
}
|
||||||
|
|
||||||
|
// AppliedPlan queries a previously applied upgrade plan by its name.
|
||||||
|
rpc AppliedPlan(QueryAppliedPlanRequest) returns (QueryAppliedPlanResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/upgrade/v1beta1/applied_plan/{name}";
|
||||||
|
}
|
||||||
|
|
||||||
|
// UpgradedConsensusState queries the consensus state that will serve
|
||||||
|
// as a trusted kernel for the next version of this chain. It will only be
|
||||||
|
// stored at the last height of this chain.
|
||||||
|
// UpgradedConsensusState RPC not supported with legacy querier
|
||||||
|
rpc UpgradedConsensusState(QueryUpgradedConsensusStateRequest) returns (QueryUpgradedConsensusStateResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/upgrade/v1beta1/upgraded_consensus_state/{last_height}";
|
||||||
|
}
|
||||||
|
|
||||||
|
// ModuleVersions queries the list of module versions from state.
|
||||||
|
rpc ModuleVersions(QueryModuleVersionsRequest) returns (QueryModuleVersionsResponse) {
|
||||||
|
option (google.api.http).get = "/cosmos/upgrade/v1beta1/module_versions";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryCurrentPlanRequest is the request type for the Query/CurrentPlan RPC
|
||||||
|
// method.
|
||||||
|
message QueryCurrentPlanRequest {}
|
||||||
|
|
||||||
|
// QueryCurrentPlanResponse is the response type for the Query/CurrentPlan RPC
|
||||||
|
// method.
|
||||||
|
message QueryCurrentPlanResponse {
|
||||||
|
// plan is the current upgrade plan.
|
||||||
|
Plan plan = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryCurrentPlanRequest is the request type for the Query/AppliedPlan RPC
|
||||||
|
// method.
|
||||||
|
message QueryAppliedPlanRequest {
|
||||||
|
// name is the name of the applied plan to query for.
|
||||||
|
string name = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryAppliedPlanResponse is the response type for the Query/AppliedPlan RPC
|
||||||
|
// method.
|
||||||
|
message QueryAppliedPlanResponse {
|
||||||
|
// height is the block height at which the plan was applied.
|
||||||
|
int64 height = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryUpgradedConsensusStateRequest is the request type for the Query/UpgradedConsensusState
|
||||||
|
// RPC method.
|
||||||
|
message QueryUpgradedConsensusStateRequest {
|
||||||
|
// last height of the current chain must be sent in request
|
||||||
|
// as this is the height under which next consensus state is stored
|
||||||
|
int64 last_height = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryUpgradedConsensusStateResponse is the response type for the Query/UpgradedConsensusState
|
||||||
|
// RPC method.
|
||||||
|
message QueryUpgradedConsensusStateResponse {
|
||||||
|
reserved 1;
|
||||||
|
|
||||||
|
bytes upgraded_consensus_state = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryModuleVersionsRequest is the request type for the Query/ModuleVersions
|
||||||
|
// RPC method.
|
||||||
|
message QueryModuleVersionsRequest {
|
||||||
|
// module_name is a field to query a specific module
|
||||||
|
// consensus version from state. Leaving this empty will
|
||||||
|
// fetch the full list of module versions from state
|
||||||
|
string module_name = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryModuleVersionsResponse is the response type for the Query/ModuleVersions
|
||||||
|
// RPC method.
|
||||||
|
message QueryModuleVersionsResponse {
|
||||||
|
// module_versions is a list of module names with their consensus versions.
|
||||||
|
repeated ModuleVersion module_versions = 1;
|
||||||
|
}
|
76
proto/cosmos/upgrade/v1beta1/upgrade.proto
Normal file
76
proto/cosmos/upgrade/v1beta1/upgrade.proto
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.upgrade.v1beta1;
|
||||||
|
|
||||||
|
import "google/protobuf/any.proto";
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
import "google/protobuf/timestamp.proto";
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/x/upgrade/types";
|
||||||
|
option (gogoproto.goproto_getters_all) = false;
|
||||||
|
|
||||||
|
// Plan specifies information about a planned upgrade and when it should occur.
|
||||||
|
message Plan {
|
||||||
|
option (gogoproto.equal) = true;
|
||||||
|
option (gogoproto.goproto_stringer) = false;
|
||||||
|
|
||||||
|
// Sets the name for the upgrade. This name will be used by the upgraded
|
||||||
|
// version of the software to apply any special "on-upgrade" commands during
|
||||||
|
// the first BeginBlock method after the upgrade is applied. It is also used
|
||||||
|
// to detect whether a software version can handle a given upgrade. If no
|
||||||
|
// upgrade handler with this name has been set in the software, it will be
|
||||||
|
// assumed that the software is out-of-date when the upgrade Time or Height is
|
||||||
|
// reached and the software will exit.
|
||||||
|
string name = 1;
|
||||||
|
|
||||||
|
// Deprecated: Time based upgrades have been deprecated. Time based upgrade logic
|
||||||
|
// has been removed from the SDK.
|
||||||
|
// If this field is not empty, an error will be thrown.
|
||||||
|
google.protobuf.Timestamp time = 2 [deprecated = true, (gogoproto.stdtime) = true, (gogoproto.nullable) = false];
|
||||||
|
|
||||||
|
// The height at which the upgrade must be performed.
|
||||||
|
// Only used if Time is not set.
|
||||||
|
int64 height = 3;
|
||||||
|
|
||||||
|
// Any application specific upgrade info to be included on-chain
|
||||||
|
// such as a git commit that validators could automatically upgrade to
|
||||||
|
string info = 4;
|
||||||
|
|
||||||
|
// Deprecated: UpgradedClientState field has been deprecated. IBC upgrade logic has been
|
||||||
|
// moved to the IBC module in the sub module 02-client.
|
||||||
|
// If this field is not empty, an error will be thrown.
|
||||||
|
google.protobuf.Any upgraded_client_state = 5
|
||||||
|
[deprecated = true, (gogoproto.moretags) = "yaml:\"upgraded_client_state\""];
|
||||||
|
}
|
||||||
|
|
||||||
|
// SoftwareUpgradeProposal is a gov Content type for initiating a software
|
||||||
|
// upgrade.
|
||||||
|
message SoftwareUpgradeProposal {
|
||||||
|
option (gogoproto.equal) = true;
|
||||||
|
option (gogoproto.goproto_stringer) = false;
|
||||||
|
|
||||||
|
string title = 1;
|
||||||
|
string description = 2;
|
||||||
|
Plan plan = 3 [(gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
// CancelSoftwareUpgradeProposal is a gov Content type for cancelling a software
|
||||||
|
// upgrade.
|
||||||
|
message CancelSoftwareUpgradeProposal {
|
||||||
|
option (gogoproto.equal) = true;
|
||||||
|
option (gogoproto.goproto_stringer) = false;
|
||||||
|
|
||||||
|
string title = 1;
|
||||||
|
string description = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ModuleVersion specifies a module and its consensus version.
|
||||||
|
message ModuleVersion {
|
||||||
|
option (gogoproto.equal) = true;
|
||||||
|
option (gogoproto.goproto_stringer) = true;
|
||||||
|
|
||||||
|
// name of the app module
|
||||||
|
string name = 1;
|
||||||
|
|
||||||
|
// consensus version of the app module
|
||||||
|
uint64 version = 2;
|
||||||
|
}
|
31
proto/cosmos/vesting/v1beta1/tx.proto
Normal file
31
proto/cosmos/vesting/v1beta1/tx.proto
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.vesting.v1beta1;
|
||||||
|
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
import "cosmos/base/v1beta1/coin.proto";
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/x/auth/vesting/types";
|
||||||
|
|
||||||
|
// Msg defines the bank Msg service.
|
||||||
|
service Msg {
|
||||||
|
// CreateVestingAccount defines a method that enables creating a vesting
|
||||||
|
// account.
|
||||||
|
rpc CreateVestingAccount(MsgCreateVestingAccount) returns (MsgCreateVestingAccountResponse);
|
||||||
|
}
|
||||||
|
|
||||||
|
// MsgCreateVestingAccount defines a message that enables creating a vesting
|
||||||
|
// account.
|
||||||
|
message MsgCreateVestingAccount {
|
||||||
|
option (gogoproto.equal) = true;
|
||||||
|
|
||||||
|
string from_address = 1 [(gogoproto.moretags) = "yaml:\"from_address\""];
|
||||||
|
string to_address = 2 [(gogoproto.moretags) = "yaml:\"to_address\""];
|
||||||
|
repeated cosmos.base.v1beta1.Coin amount = 3
|
||||||
|
[(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"];
|
||||||
|
|
||||||
|
int64 end_time = 4 [(gogoproto.moretags) = "yaml:\"end_time\""];
|
||||||
|
bool delayed = 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
// MsgCreateVestingAccountResponse defines the Msg/CreateVestingAccount response type.
|
||||||
|
message MsgCreateVestingAccountResponse {}
|
83
proto/cosmos/vesting/v1beta1/vesting.proto
Normal file
83
proto/cosmos/vesting/v1beta1/vesting.proto
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos.vesting.v1beta1;
|
||||||
|
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
import "cosmos/base/v1beta1/coin.proto";
|
||||||
|
import "cosmos/auth/v1beta1/auth.proto";
|
||||||
|
|
||||||
|
option go_package = "github.com/cosmos/cosmos-sdk/x/auth/vesting/types";
|
||||||
|
|
||||||
|
// BaseVestingAccount implements the VestingAccount interface. It contains all
|
||||||
|
// the necessary fields needed for any vesting account implementation.
|
||||||
|
message BaseVestingAccount {
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
option (gogoproto.goproto_stringer) = false;
|
||||||
|
|
||||||
|
cosmos.auth.v1beta1.BaseAccount base_account = 1 [(gogoproto.embed) = true];
|
||||||
|
repeated cosmos.base.v1beta1.Coin original_vesting = 2 [
|
||||||
|
(gogoproto.nullable) = false,
|
||||||
|
(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins",
|
||||||
|
(gogoproto.moretags) = "yaml:\"original_vesting\""
|
||||||
|
];
|
||||||
|
repeated cosmos.base.v1beta1.Coin delegated_free = 3 [
|
||||||
|
(gogoproto.nullable) = false,
|
||||||
|
(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins",
|
||||||
|
(gogoproto.moretags) = "yaml:\"delegated_free\""
|
||||||
|
];
|
||||||
|
repeated cosmos.base.v1beta1.Coin delegated_vesting = 4 [
|
||||||
|
(gogoproto.nullable) = false,
|
||||||
|
(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins",
|
||||||
|
(gogoproto.moretags) = "yaml:\"delegated_vesting\""
|
||||||
|
];
|
||||||
|
int64 end_time = 5 [(gogoproto.moretags) = "yaml:\"end_time\""];
|
||||||
|
}
|
||||||
|
|
||||||
|
// ContinuousVestingAccount implements the VestingAccount interface. It
|
||||||
|
// continuously vests by unlocking coins linearly with respect to time.
|
||||||
|
message ContinuousVestingAccount {
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
option (gogoproto.goproto_stringer) = false;
|
||||||
|
|
||||||
|
BaseVestingAccount base_vesting_account = 1 [(gogoproto.embed) = true];
|
||||||
|
int64 start_time = 2 [(gogoproto.moretags) = "yaml:\"start_time\""];
|
||||||
|
}
|
||||||
|
|
||||||
|
// DelayedVestingAccount implements the VestingAccount interface. It vests all
|
||||||
|
// coins after a specific time, but non prior. In other words, it keeps them
|
||||||
|
// locked until a specified time.
|
||||||
|
message DelayedVestingAccount {
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
option (gogoproto.goproto_stringer) = false;
|
||||||
|
|
||||||
|
BaseVestingAccount base_vesting_account = 1 [(gogoproto.embed) = true];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Period defines a length of time and amount of coins that will vest.
|
||||||
|
message Period {
|
||||||
|
option (gogoproto.goproto_stringer) = false;
|
||||||
|
|
||||||
|
int64 length = 1;
|
||||||
|
repeated cosmos.base.v1beta1.Coin amount = 2
|
||||||
|
[(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"];
|
||||||
|
}
|
||||||
|
|
||||||
|
// PeriodicVestingAccount implements the VestingAccount interface. It
|
||||||
|
// periodically vests by unlocking coins during each specified period.
|
||||||
|
message PeriodicVestingAccount {
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
option (gogoproto.goproto_stringer) = false;
|
||||||
|
|
||||||
|
BaseVestingAccount base_vesting_account = 1 [(gogoproto.embed) = true];
|
||||||
|
int64 start_time = 2 [(gogoproto.moretags) = "yaml:\"start_time\""];
|
||||||
|
repeated Period vesting_periods = 3 [(gogoproto.moretags) = "yaml:\"vesting_periods\"", (gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
// PermanentLockedAccount implements the VestingAccount interface. It does
|
||||||
|
// not ever release coins, locking them indefinitely. Coins in this account can
|
||||||
|
// still be used for delegating and for governance votes even while locked.
|
||||||
|
message PermanentLockedAccount {
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
option (gogoproto.goproto_stringer) = false;
|
||||||
|
|
||||||
|
BaseVestingAccount base_vesting_account = 1 [(gogoproto.embed) = true];
|
||||||
|
}
|
16
proto/cosmos_proto/cosmos.proto
Normal file
16
proto/cosmos_proto/cosmos.proto
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package cosmos_proto;
|
||||||
|
|
||||||
|
import "google/protobuf/descriptor.proto";
|
||||||
|
|
||||||
|
option go_package = "github.com/regen-network/cosmos-proto";
|
||||||
|
|
||||||
|
extend google.protobuf.MessageOptions {
|
||||||
|
string interface_type = 93001;
|
||||||
|
|
||||||
|
string implements_interface = 93002;
|
||||||
|
}
|
||||||
|
|
||||||
|
extend google.protobuf.FieldOptions {
|
||||||
|
string accepts_interface = 93001;
|
||||||
|
}
|
145
proto/gogoproto/gogo.proto
Normal file
145
proto/gogoproto/gogo.proto
Normal file
@ -0,0 +1,145 @@
|
|||||||
|
// Protocol Buffers for Go with Gadgets
|
||||||
|
//
|
||||||
|
// Copyright (c) 2013, The GoGo Authors. All rights reserved.
|
||||||
|
// http://github.com/gogo/protobuf
|
||||||
|
//
|
||||||
|
// Redistribution and use in source and binary forms, with or without
|
||||||
|
// modification, are permitted provided that the following conditions are
|
||||||
|
// met:
|
||||||
|
//
|
||||||
|
// * Redistributions of source code must retain the above copyright
|
||||||
|
// notice, this list of conditions and the following disclaimer.
|
||||||
|
// * Redistributions in binary form must reproduce the above
|
||||||
|
// copyright notice, this list of conditions and the following disclaimer
|
||||||
|
// in the documentation and/or other materials provided with the
|
||||||
|
// distribution.
|
||||||
|
//
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
syntax = "proto2";
|
||||||
|
package gogoproto;
|
||||||
|
|
||||||
|
import "google/protobuf/descriptor.proto";
|
||||||
|
|
||||||
|
option java_package = "com.google.protobuf";
|
||||||
|
option java_outer_classname = "GoGoProtos";
|
||||||
|
option go_package = "github.com/gogo/protobuf/gogoproto";
|
||||||
|
|
||||||
|
extend google.protobuf.EnumOptions {
|
||||||
|
optional bool goproto_enum_prefix = 62001;
|
||||||
|
optional bool goproto_enum_stringer = 62021;
|
||||||
|
optional bool enum_stringer = 62022;
|
||||||
|
optional string enum_customname = 62023;
|
||||||
|
optional bool enumdecl = 62024;
|
||||||
|
}
|
||||||
|
|
||||||
|
extend google.protobuf.EnumValueOptions {
|
||||||
|
optional string enumvalue_customname = 66001;
|
||||||
|
}
|
||||||
|
|
||||||
|
extend google.protobuf.FileOptions {
|
||||||
|
optional bool goproto_getters_all = 63001;
|
||||||
|
optional bool goproto_enum_prefix_all = 63002;
|
||||||
|
optional bool goproto_stringer_all = 63003;
|
||||||
|
optional bool verbose_equal_all = 63004;
|
||||||
|
optional bool face_all = 63005;
|
||||||
|
optional bool gostring_all = 63006;
|
||||||
|
optional bool populate_all = 63007;
|
||||||
|
optional bool stringer_all = 63008;
|
||||||
|
optional bool onlyone_all = 63009;
|
||||||
|
|
||||||
|
optional bool equal_all = 63013;
|
||||||
|
optional bool description_all = 63014;
|
||||||
|
optional bool testgen_all = 63015;
|
||||||
|
optional bool benchgen_all = 63016;
|
||||||
|
optional bool marshaler_all = 63017;
|
||||||
|
optional bool unmarshaler_all = 63018;
|
||||||
|
optional bool stable_marshaler_all = 63019;
|
||||||
|
|
||||||
|
optional bool sizer_all = 63020;
|
||||||
|
|
||||||
|
optional bool goproto_enum_stringer_all = 63021;
|
||||||
|
optional bool enum_stringer_all = 63022;
|
||||||
|
|
||||||
|
optional bool unsafe_marshaler_all = 63023;
|
||||||
|
optional bool unsafe_unmarshaler_all = 63024;
|
||||||
|
|
||||||
|
optional bool goproto_extensions_map_all = 63025;
|
||||||
|
optional bool goproto_unrecognized_all = 63026;
|
||||||
|
optional bool gogoproto_import = 63027;
|
||||||
|
optional bool protosizer_all = 63028;
|
||||||
|
optional bool compare_all = 63029;
|
||||||
|
optional bool typedecl_all = 63030;
|
||||||
|
optional bool enumdecl_all = 63031;
|
||||||
|
|
||||||
|
optional bool goproto_registration = 63032;
|
||||||
|
optional bool messagename_all = 63033;
|
||||||
|
|
||||||
|
optional bool goproto_sizecache_all = 63034;
|
||||||
|
optional bool goproto_unkeyed_all = 63035;
|
||||||
|
}
|
||||||
|
|
||||||
|
extend google.protobuf.MessageOptions {
|
||||||
|
optional bool goproto_getters = 64001;
|
||||||
|
optional bool goproto_stringer = 64003;
|
||||||
|
optional bool verbose_equal = 64004;
|
||||||
|
optional bool face = 64005;
|
||||||
|
optional bool gostring = 64006;
|
||||||
|
optional bool populate = 64007;
|
||||||
|
optional bool stringer = 67008;
|
||||||
|
optional bool onlyone = 64009;
|
||||||
|
|
||||||
|
optional bool equal = 64013;
|
||||||
|
optional bool description = 64014;
|
||||||
|
optional bool testgen = 64015;
|
||||||
|
optional bool benchgen = 64016;
|
||||||
|
optional bool marshaler = 64017;
|
||||||
|
optional bool unmarshaler = 64018;
|
||||||
|
optional bool stable_marshaler = 64019;
|
||||||
|
|
||||||
|
optional bool sizer = 64020;
|
||||||
|
|
||||||
|
optional bool unsafe_marshaler = 64023;
|
||||||
|
optional bool unsafe_unmarshaler = 64024;
|
||||||
|
|
||||||
|
optional bool goproto_extensions_map = 64025;
|
||||||
|
optional bool goproto_unrecognized = 64026;
|
||||||
|
|
||||||
|
optional bool protosizer = 64028;
|
||||||
|
optional bool compare = 64029;
|
||||||
|
|
||||||
|
optional bool typedecl = 64030;
|
||||||
|
|
||||||
|
optional bool messagename = 64033;
|
||||||
|
|
||||||
|
optional bool goproto_sizecache = 64034;
|
||||||
|
optional bool goproto_unkeyed = 64035;
|
||||||
|
}
|
||||||
|
|
||||||
|
extend google.protobuf.FieldOptions {
|
||||||
|
optional bool nullable = 65001;
|
||||||
|
optional bool embed = 65002;
|
||||||
|
optional string customtype = 65003;
|
||||||
|
optional string customname = 65004;
|
||||||
|
optional string jsontag = 65005;
|
||||||
|
optional string moretags = 65006;
|
||||||
|
optional string casttype = 65007;
|
||||||
|
optional string castkey = 65008;
|
||||||
|
optional string castvalue = 65009;
|
||||||
|
|
||||||
|
optional bool stdtime = 65010;
|
||||||
|
optional bool stdduration = 65011;
|
||||||
|
optional bool wktpointer = 65012;
|
||||||
|
|
||||||
|
optional string castrepeated = 65013;
|
||||||
|
}
|
31
proto/google/api/annotations.proto
Normal file
31
proto/google/api/annotations.proto
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
// Copyright (c) 2015, Google Inc.
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
syntax = "proto3";
|
||||||
|
|
||||||
|
package google.api;
|
||||||
|
|
||||||
|
import "google/api/http.proto";
|
||||||
|
import "google/protobuf/descriptor.proto";
|
||||||
|
|
||||||
|
option go_package = "google.golang.org/genproto/googleapis/api/annotations;annotations";
|
||||||
|
option java_multiple_files = true;
|
||||||
|
option java_outer_classname = "AnnotationsProto";
|
||||||
|
option java_package = "com.google.api";
|
||||||
|
option objc_class_prefix = "GAPI";
|
||||||
|
|
||||||
|
extend google.protobuf.MethodOptions {
|
||||||
|
// See `HttpRule`.
|
||||||
|
HttpRule http = 72295728;
|
||||||
|
}
|
325
proto/google/api/http.proto
Normal file
325
proto/google/api/http.proto
Normal file
@ -0,0 +1,325 @@
|
|||||||
|
// Copyright 2018 Google LLC
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
syntax = "proto3";
|
||||||
|
|
||||||
|
package google.api;
|
||||||
|
|
||||||
|
option cc_enable_arenas = true;
|
||||||
|
option go_package = "google.golang.org/genproto/googleapis/api/annotations;annotations";
|
||||||
|
option java_multiple_files = true;
|
||||||
|
option java_outer_classname = "HttpProto";
|
||||||
|
option java_package = "com.google.api";
|
||||||
|
option objc_class_prefix = "GAPI";
|
||||||
|
|
||||||
|
// Defines the HTTP configuration for an API service. It contains a list of
|
||||||
|
// [HttpRule][google.api.HttpRule], each specifying the mapping of an RPC method
|
||||||
|
// to one or more HTTP REST API methods.
|
||||||
|
message Http {
|
||||||
|
// A list of HTTP configuration rules that apply to individual API methods.
|
||||||
|
//
|
||||||
|
// **NOTE:** All service configuration rules follow "last one wins" order.
|
||||||
|
repeated HttpRule rules = 1;
|
||||||
|
|
||||||
|
// When set to true, URL path parmeters will be fully URI-decoded except in
|
||||||
|
// cases of single segment matches in reserved expansion, where "%2F" will be
|
||||||
|
// left encoded.
|
||||||
|
//
|
||||||
|
// The default behavior is to not decode RFC 6570 reserved characters in multi
|
||||||
|
// segment matches.
|
||||||
|
bool fully_decode_reserved_expansion = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// `HttpRule` defines the mapping of an RPC method to one or more HTTP
|
||||||
|
// REST API methods. The mapping specifies how different portions of the RPC
|
||||||
|
// request message are mapped to URL path, URL query parameters, and
|
||||||
|
// HTTP request body. The mapping is typically specified as an
|
||||||
|
// `google.api.http` annotation on the RPC method,
|
||||||
|
// see "google/api/annotations.proto" for details.
|
||||||
|
//
|
||||||
|
// The mapping consists of a field specifying the path template and
|
||||||
|
// method kind. The path template can refer to fields in the request
|
||||||
|
// message, as in the example below which describes a REST GET
|
||||||
|
// operation on a resource collection of messages:
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// service Messaging {
|
||||||
|
// rpc GetMessage(GetMessageRequest) returns (Message) {
|
||||||
|
// option (google.api.http).get =
|
||||||
|
// "/v1/messages/{message_id}/{sub.subfield}";
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// message GetMessageRequest {
|
||||||
|
// message SubMessage {
|
||||||
|
// string subfield = 1;
|
||||||
|
// }
|
||||||
|
// string message_id = 1; // mapped to the URL
|
||||||
|
// SubMessage sub = 2; // `sub.subfield` is url-mapped
|
||||||
|
// }
|
||||||
|
// message Message {
|
||||||
|
// string text = 1; // content of the resource
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// The same http annotation can alternatively be expressed inside the
|
||||||
|
// `GRPC API Configuration` YAML file.
|
||||||
|
//
|
||||||
|
// http:
|
||||||
|
// rules:
|
||||||
|
// - selector: <proto_package_name>.Messaging.GetMessage
|
||||||
|
// get: /v1/messages/{message_id}/{sub.subfield}
|
||||||
|
//
|
||||||
|
// This definition enables an automatic, bidrectional mapping of HTTP
|
||||||
|
// JSON to RPC. Example:
|
||||||
|
//
|
||||||
|
// HTTP | RPC
|
||||||
|
// -----|-----
|
||||||
|
// `GET /v1/messages/123456/foo` | `GetMessage(message_id: "123456" sub:
|
||||||
|
// SubMessage(subfield: "foo"))`
|
||||||
|
//
|
||||||
|
// In general, not only fields but also field paths can be referenced
|
||||||
|
// from a path pattern. Fields mapped to the path pattern cannot be
|
||||||
|
// repeated and must have a primitive (non-message) type.
|
||||||
|
//
|
||||||
|
// Any fields in the request message which are not bound by the path
|
||||||
|
// pattern automatically become (optional) HTTP query
|
||||||
|
// parameters. Assume the following definition of the request message:
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// service Messaging {
|
||||||
|
// rpc GetMessage(GetMessageRequest) returns (Message) {
|
||||||
|
// option (google.api.http).get = "/v1/messages/{message_id}";
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// message GetMessageRequest {
|
||||||
|
// message SubMessage {
|
||||||
|
// string subfield = 1;
|
||||||
|
// }
|
||||||
|
// string message_id = 1; // mapped to the URL
|
||||||
|
// int64 revision = 2; // becomes a parameter
|
||||||
|
// SubMessage sub = 3; // `sub.subfield` becomes a parameter
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// This enables a HTTP JSON to RPC mapping as below:
|
||||||
|
//
|
||||||
|
// HTTP | RPC
|
||||||
|
// -----|-----
|
||||||
|
// `GET /v1/messages/123456?revision=2&sub.subfield=foo` |
|
||||||
|
// `GetMessage(message_id: "123456" revision: 2 sub: SubMessage(subfield:
|
||||||
|
// "foo"))`
|
||||||
|
//
|
||||||
|
// Note that fields which are mapped to HTTP parameters must have a
|
||||||
|
// primitive type or a repeated primitive type. Message types are not
|
||||||
|
// allowed. In the case of a repeated type, the parameter can be
|
||||||
|
// repeated in the URL, as in `...?param=A¶m=B`.
|
||||||
|
//
|
||||||
|
// For HTTP method kinds which allow a request body, the `body` field
|
||||||
|
// specifies the mapping. Consider a REST update method on the
|
||||||
|
// message resource collection:
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// service Messaging {
|
||||||
|
// rpc UpdateMessage(UpdateMessageRequest) returns (Message) {
|
||||||
|
// option (google.api.http) = {
|
||||||
|
// put: "/v1/messages/{message_id}"
|
||||||
|
// body: "message"
|
||||||
|
// };
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// message UpdateMessageRequest {
|
||||||
|
// string message_id = 1; // mapped to the URL
|
||||||
|
// Message message = 2; // mapped to the body
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// The following HTTP JSON to RPC mapping is enabled, where the
|
||||||
|
// representation of the JSON in the request body is determined by
|
||||||
|
// protos JSON encoding:
|
||||||
|
//
|
||||||
|
// HTTP | RPC
|
||||||
|
// -----|-----
|
||||||
|
// `PUT /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id:
|
||||||
|
// "123456" message { text: "Hi!" })`
|
||||||
|
//
|
||||||
|
// The special name `*` can be used in the body mapping to define that
|
||||||
|
// every field not bound by the path template should be mapped to the
|
||||||
|
// request body. This enables the following alternative definition of
|
||||||
|
// the update method:
|
||||||
|
//
|
||||||
|
// service Messaging {
|
||||||
|
// rpc UpdateMessage(Message) returns (Message) {
|
||||||
|
// option (google.api.http) = {
|
||||||
|
// put: "/v1/messages/{message_id}"
|
||||||
|
// body: "*"
|
||||||
|
// };
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// message Message {
|
||||||
|
// string message_id = 1;
|
||||||
|
// string text = 2;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// The following HTTP JSON to RPC mapping is enabled:
|
||||||
|
//
|
||||||
|
// HTTP | RPC
|
||||||
|
// -----|-----
|
||||||
|
// `PUT /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id:
|
||||||
|
// "123456" text: "Hi!")`
|
||||||
|
//
|
||||||
|
// Note that when using `*` in the body mapping, it is not possible to
|
||||||
|
// have HTTP parameters, as all fields not bound by the path end in
|
||||||
|
// the body. This makes this option more rarely used in practice of
|
||||||
|
// defining REST APIs. The common usage of `*` is in custom methods
|
||||||
|
// which don't use the URL at all for transferring data.
|
||||||
|
//
|
||||||
|
// It is possible to define multiple HTTP methods for one RPC by using
|
||||||
|
// the `additional_bindings` option. Example:
|
||||||
|
//
|
||||||
|
// service Messaging {
|
||||||
|
// rpc GetMessage(GetMessageRequest) returns (Message) {
|
||||||
|
// option (google.api.http) = {
|
||||||
|
// get: "/v1/messages/{message_id}"
|
||||||
|
// additional_bindings {
|
||||||
|
// get: "/v1/users/{user_id}/messages/{message_id}"
|
||||||
|
// }
|
||||||
|
// };
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// message GetMessageRequest {
|
||||||
|
// string message_id = 1;
|
||||||
|
// string user_id = 2;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// This enables the following two alternative HTTP JSON to RPC
|
||||||
|
// mappings:
|
||||||
|
//
|
||||||
|
// HTTP | RPC
|
||||||
|
// -----|-----
|
||||||
|
// `GET /v1/messages/123456` | `GetMessage(message_id: "123456")`
|
||||||
|
// `GET /v1/users/me/messages/123456` | `GetMessage(user_id: "me" message_id:
|
||||||
|
// "123456")`
|
||||||
|
//
|
||||||
|
// # Rules for HTTP mapping
|
||||||
|
//
|
||||||
|
// The rules for mapping HTTP path, query parameters, and body fields
|
||||||
|
// to the request message are as follows:
|
||||||
|
//
|
||||||
|
// 1. The `body` field specifies either `*` or a field path, or is
|
||||||
|
// omitted. If omitted, it indicates there is no HTTP request body.
|
||||||
|
// 2. Leaf fields (recursive expansion of nested messages in the
|
||||||
|
// request) can be classified into three types:
|
||||||
|
// (a) Matched in the URL template.
|
||||||
|
// (b) Covered by body (if body is `*`, everything except (a) fields;
|
||||||
|
// else everything under the body field)
|
||||||
|
// (c) All other fields.
|
||||||
|
// 3. URL query parameters found in the HTTP request are mapped to (c) fields.
|
||||||
|
// 4. Any body sent with an HTTP request can contain only (b) fields.
|
||||||
|
//
|
||||||
|
// The syntax of the path template is as follows:
|
||||||
|
//
|
||||||
|
// Template = "/" Segments [ Verb ] ;
|
||||||
|
// Segments = Segment { "/" Segment } ;
|
||||||
|
// Segment = "*" | "**" | LITERAL | Variable ;
|
||||||
|
// Variable = "{" FieldPath [ "=" Segments ] "}" ;
|
||||||
|
// FieldPath = IDENT { "." IDENT } ;
|
||||||
|
// Verb = ":" LITERAL ;
|
||||||
|
//
|
||||||
|
// The syntax `*` matches a single path segment. The syntax `**` matches zero
|
||||||
|
// or more path segments, which must be the last part of the path except the
|
||||||
|
// `Verb`. The syntax `LITERAL` matches literal text in the path.
|
||||||
|
//
|
||||||
|
// The syntax `Variable` matches part of the URL path as specified by its
|
||||||
|
// template. A variable template must not contain other variables. If a variable
|
||||||
|
// matches a single path segment, its template may be omitted, e.g. `{var}`
|
||||||
|
// is equivalent to `{var=*}`.
|
||||||
|
//
|
||||||
|
// If a variable contains exactly one path segment, such as `"{var}"` or
|
||||||
|
// `"{var=*}"`, when such a variable is expanded into a URL path, all characters
|
||||||
|
// except `[-_.~0-9a-zA-Z]` are percent-encoded. Such variables show up in the
|
||||||
|
// Discovery Document as `{var}`.
|
||||||
|
//
|
||||||
|
// If a variable contains one or more path segments, such as `"{var=foo/*}"`
|
||||||
|
// or `"{var=**}"`, when such a variable is expanded into a URL path, all
|
||||||
|
// characters except `[-_.~/0-9a-zA-Z]` are percent-encoded. Such variables
|
||||||
|
// show up in the Discovery Document as `{+var}`.
|
||||||
|
//
|
||||||
|
// NOTE: While the single segment variable matches the semantics of
|
||||||
|
// [RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.2
|
||||||
|
// Simple String Expansion, the multi segment variable **does not** match
|
||||||
|
// RFC 6570 Reserved Expansion. The reason is that the Reserved Expansion
|
||||||
|
// does not expand special characters like `?` and `#`, which would lead
|
||||||
|
// to invalid URLs.
|
||||||
|
//
|
||||||
|
// NOTE: the field paths in variables and in the `body` must not refer to
|
||||||
|
// repeated fields or map fields.
|
||||||
|
message HttpRule {
|
||||||
|
// Selects methods to which this rule applies.
|
||||||
|
//
|
||||||
|
// Refer to [selector][google.api.DocumentationRule.selector] for syntax
|
||||||
|
// details.
|
||||||
|
string selector = 1;
|
||||||
|
|
||||||
|
// Determines the URL pattern is matched by this rules. This pattern can be
|
||||||
|
// used with any of the {get|put|post|delete|patch} methods. A custom method
|
||||||
|
// can be defined using the 'custom' field.
|
||||||
|
oneof pattern {
|
||||||
|
// Used for listing and getting information about resources.
|
||||||
|
string get = 2;
|
||||||
|
|
||||||
|
// Used for updating a resource.
|
||||||
|
string put = 3;
|
||||||
|
|
||||||
|
// Used for creating a resource.
|
||||||
|
string post = 4;
|
||||||
|
|
||||||
|
// Used for deleting a resource.
|
||||||
|
string delete = 5;
|
||||||
|
|
||||||
|
// Used for updating a resource.
|
||||||
|
string patch = 6;
|
||||||
|
|
||||||
|
// The custom pattern is used for specifying an HTTP method that is not
|
||||||
|
// included in the `pattern` field, such as HEAD, or "*" to leave the
|
||||||
|
// HTTP method unspecified for this rule. The wild-card rule is useful
|
||||||
|
// for services that provide content to Web (HTML) clients.
|
||||||
|
CustomHttpPattern custom = 8;
|
||||||
|
}
|
||||||
|
|
||||||
|
// The name of the request field whose value is mapped to the HTTP body, or
|
||||||
|
// `*` for mapping all fields not captured by the path pattern to the HTTP
|
||||||
|
// body. NOTE: the referred field must not be a repeated field and must be
|
||||||
|
// present at the top-level of request message type.
|
||||||
|
string body = 7;
|
||||||
|
|
||||||
|
// Optional. The name of the response field whose value is mapped to the HTTP
|
||||||
|
// body of response. Other response fields are ignored. When
|
||||||
|
// not set, the response message will be used as HTTP body of response.
|
||||||
|
string response_body = 12;
|
||||||
|
|
||||||
|
// Additional HTTP bindings for the selector. Nested bindings must
|
||||||
|
// not contain an `additional_bindings` field themselves (that is,
|
||||||
|
// the nesting may only be one level deep).
|
||||||
|
repeated HttpRule additional_bindings = 11;
|
||||||
|
}
|
||||||
|
|
||||||
|
// A custom pattern is used for defining custom HTTP verb.
|
||||||
|
message CustomHttpPattern {
|
||||||
|
// The name of this custom HTTP verb.
|
||||||
|
string kind = 1;
|
||||||
|
|
||||||
|
// The path matched by this custom verb.
|
||||||
|
string path = 2;
|
||||||
|
}
|
78
proto/google/api/httpbody.proto
Normal file
78
proto/google/api/httpbody.proto
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
// Copyright 2018 Google LLC.
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
//
|
||||||
|
|
||||||
|
syntax = "proto3";
|
||||||
|
|
||||||
|
package google.api;
|
||||||
|
|
||||||
|
import "google/protobuf/any.proto";
|
||||||
|
|
||||||
|
option cc_enable_arenas = true;
|
||||||
|
option go_package = "google.golang.org/genproto/googleapis/api/httpbody;httpbody";
|
||||||
|
option java_multiple_files = true;
|
||||||
|
option java_outer_classname = "HttpBodyProto";
|
||||||
|
option java_package = "com.google.api";
|
||||||
|
option objc_class_prefix = "GAPI";
|
||||||
|
|
||||||
|
// Message that represents an arbitrary HTTP body. It should only be used for
|
||||||
|
// payload formats that can't be represented as JSON, such as raw binary or
|
||||||
|
// an HTML page.
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// This message can be used both in streaming and non-streaming API methods in
|
||||||
|
// the request as well as the response.
|
||||||
|
//
|
||||||
|
// It can be used as a top-level request field, which is convenient if one
|
||||||
|
// wants to extract parameters from either the URL or HTTP template into the
|
||||||
|
// request fields and also want access to the raw HTTP body.
|
||||||
|
//
|
||||||
|
// Example:
|
||||||
|
//
|
||||||
|
// message GetResourceRequest {
|
||||||
|
// // A unique request id.
|
||||||
|
// string request_id = 1;
|
||||||
|
//
|
||||||
|
// // The raw HTTP body is bound to this field.
|
||||||
|
// google.api.HttpBody http_body = 2;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// service ResourceService {
|
||||||
|
// rpc GetResource(GetResourceRequest) returns (google.api.HttpBody);
|
||||||
|
// rpc UpdateResource(google.api.HttpBody) returns
|
||||||
|
// (google.protobuf.Empty);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// Example with streaming methods:
|
||||||
|
//
|
||||||
|
// service CaldavService {
|
||||||
|
// rpc GetCalendar(stream google.api.HttpBody)
|
||||||
|
// returns (stream google.api.HttpBody);
|
||||||
|
// rpc UpdateCalendar(stream google.api.HttpBody)
|
||||||
|
// returns (stream google.api.HttpBody);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// Use of this type only changes how the request and response bodies are
|
||||||
|
// handled, all other features will continue to work unchanged.
|
||||||
|
message HttpBody {
|
||||||
|
// The HTTP Content-Type header value specifying the content type of the body.
|
||||||
|
string content_type = 1;
|
||||||
|
|
||||||
|
// The HTTP request/response body as raw binary.
|
||||||
|
bytes data = 2;
|
||||||
|
|
||||||
|
// Application specific response metadata. Must be set in the first response
|
||||||
|
// for streaming APIs.
|
||||||
|
repeated google.protobuf.Any extensions = 3;
|
||||||
|
}
|
161
proto/google/protobuf/any.proto
Normal file
161
proto/google/protobuf/any.proto
Normal file
@ -0,0 +1,161 @@
|
|||||||
|
// Protocol Buffers - Google's data interchange format
|
||||||
|
// Copyright 2008 Google Inc. All rights reserved.
|
||||||
|
// https://developers.google.com/protocol-buffers/
|
||||||
|
//
|
||||||
|
// Redistribution and use in source and binary forms, with or without
|
||||||
|
// modification, are permitted provided that the following conditions are
|
||||||
|
// met:
|
||||||
|
//
|
||||||
|
// * Redistributions of source code must retain the above copyright
|
||||||
|
// notice, this list of conditions and the following disclaimer.
|
||||||
|
// * Redistributions in binary form must reproduce the above
|
||||||
|
// copyright notice, this list of conditions and the following disclaimer
|
||||||
|
// in the documentation and/or other materials provided with the
|
||||||
|
// distribution.
|
||||||
|
// * Neither the name of Google Inc. nor the names of its
|
||||||
|
// contributors may be used to endorse or promote products derived from
|
||||||
|
// this software without specific prior written permission.
|
||||||
|
//
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
syntax = "proto3";
|
||||||
|
|
||||||
|
package google.protobuf;
|
||||||
|
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
|
||||||
|
option csharp_namespace = "Google.Protobuf.WellKnownTypes";
|
||||||
|
option go_package = "types";
|
||||||
|
option java_package = "com.google.protobuf";
|
||||||
|
option java_outer_classname = "AnyProto";
|
||||||
|
option java_multiple_files = true;
|
||||||
|
option objc_class_prefix = "GPB";
|
||||||
|
|
||||||
|
// `Any` contains an arbitrary serialized protocol buffer message along with a
|
||||||
|
// URL that describes the type of the serialized message.
|
||||||
|
//
|
||||||
|
// Protobuf library provides support to pack/unpack Any values in the form
|
||||||
|
// of utility functions or additional generated methods of the Any type.
|
||||||
|
//
|
||||||
|
// Example 1: Pack and unpack a message in C++.
|
||||||
|
//
|
||||||
|
// Foo foo = ...;
|
||||||
|
// Any any;
|
||||||
|
// any.PackFrom(foo);
|
||||||
|
// ...
|
||||||
|
// if (any.UnpackTo(&foo)) {
|
||||||
|
// ...
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// Example 2: Pack and unpack a message in Java.
|
||||||
|
//
|
||||||
|
// Foo foo = ...;
|
||||||
|
// Any any = Any.pack(foo);
|
||||||
|
// ...
|
||||||
|
// if (any.is(Foo.class)) {
|
||||||
|
// foo = any.unpack(Foo.class);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// Example 3: Pack and unpack a message in Python.
|
||||||
|
//
|
||||||
|
// foo = Foo(...)
|
||||||
|
// any = Any()
|
||||||
|
// any.Pack(foo)
|
||||||
|
// ...
|
||||||
|
// if any.Is(Foo.DESCRIPTOR):
|
||||||
|
// any.Unpack(foo)
|
||||||
|
// ...
|
||||||
|
//
|
||||||
|
// Example 4: Pack and unpack a message in Go
|
||||||
|
//
|
||||||
|
// foo := &pb.Foo{...}
|
||||||
|
// any, err := ptypes.MarshalAny(foo)
|
||||||
|
// ...
|
||||||
|
// foo := &pb.Foo{}
|
||||||
|
// if err := ptypes.UnmarshalAny(any, foo); err != nil {
|
||||||
|
// ...
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// The pack methods provided by protobuf library will by default use
|
||||||
|
// 'type.googleapis.com/full.type.name' as the type URL and the unpack
|
||||||
|
// methods only use the fully qualified type name after the last '/'
|
||||||
|
// in the type URL, for example "foo.bar.com/x/y.z" will yield type
|
||||||
|
// name "y.z".
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// JSON
|
||||||
|
// ====
|
||||||
|
// The JSON representation of an `Any` value uses the regular
|
||||||
|
// representation of the deserialized, embedded message, with an
|
||||||
|
// additional field `@type` which contains the type URL. Example:
|
||||||
|
//
|
||||||
|
// package google.profile;
|
||||||
|
// message Person {
|
||||||
|
// string first_name = 1;
|
||||||
|
// string last_name = 2;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// {
|
||||||
|
// "@type": "type.googleapis.com/google.profile.Person",
|
||||||
|
// "firstName": <string>,
|
||||||
|
// "lastName": <string>
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// If the embedded message type is well-known and has a custom JSON
|
||||||
|
// representation, that representation will be embedded adding a field
|
||||||
|
// `value` which holds the custom JSON in addition to the `@type`
|
||||||
|
// field. Example (for message [google.protobuf.Duration][]):
|
||||||
|
//
|
||||||
|
// {
|
||||||
|
// "@type": "type.googleapis.com/google.protobuf.Duration",
|
||||||
|
// "value": "1.212s"
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
message Any {
|
||||||
|
// A URL/resource name that uniquely identifies the type of the serialized
|
||||||
|
// protocol buffer message. This string must contain at least
|
||||||
|
// one "/" character. The last segment of the URL's path must represent
|
||||||
|
// the fully qualified name of the type (as in
|
||||||
|
// `path/google.protobuf.Duration`). The name should be in a canonical form
|
||||||
|
// (e.g., leading "." is not accepted).
|
||||||
|
//
|
||||||
|
// In practice, teams usually precompile into the binary all types that they
|
||||||
|
// expect it to use in the context of Any. However, for URLs which use the
|
||||||
|
// scheme `http`, `https`, or no scheme, one can optionally set up a type
|
||||||
|
// server that maps type URLs to message definitions as follows:
|
||||||
|
//
|
||||||
|
// * If no scheme is provided, `https` is assumed.
|
||||||
|
// * An HTTP GET on the URL must yield a [google.protobuf.Type][]
|
||||||
|
// value in binary format, or produce an error.
|
||||||
|
// * Applications are allowed to cache lookup results based on the
|
||||||
|
// URL, or have them precompiled into a binary to avoid any
|
||||||
|
// lookup. Therefore, binary compatibility needs to be preserved
|
||||||
|
// on changes to types. (Use versioned type names to manage
|
||||||
|
// breaking changes.)
|
||||||
|
//
|
||||||
|
// Note: this functionality is not currently available in the official
|
||||||
|
// protobuf release, and it is not used for type URLs beginning with
|
||||||
|
// type.googleapis.com.
|
||||||
|
//
|
||||||
|
// Schemes other than `http`, `https` (or the empty scheme) might be
|
||||||
|
// used with implementation specific semantics.
|
||||||
|
//
|
||||||
|
string type_url = 1;
|
||||||
|
|
||||||
|
// Must be a valid serialized protocol buffer of the above specified type.
|
||||||
|
bytes value = 2;
|
||||||
|
|
||||||
|
option (gogoproto.typedecl) = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
option (gogoproto.goproto_registration) = false;
|
895
proto/google/protobuf/descriptor.proto
Normal file
895
proto/google/protobuf/descriptor.proto
Normal file
@ -0,0 +1,895 @@
|
|||||||
|
// Protocol Buffers - Google's data interchange format
|
||||||
|
// Copyright 2008 Google Inc. All rights reserved.
|
||||||
|
// https://developers.google.com/protocol-buffers/
|
||||||
|
//
|
||||||
|
// Redistribution and use in source and binary forms, with or without
|
||||||
|
// modification, are permitted provided that the following conditions are
|
||||||
|
// met:
|
||||||
|
//
|
||||||
|
// * Redistributions of source code must retain the above copyright
|
||||||
|
// notice, this list of conditions and the following disclaimer.
|
||||||
|
// * Redistributions in binary form must reproduce the above
|
||||||
|
// copyright notice, this list of conditions and the following disclaimer
|
||||||
|
// in the documentation and/or other materials provided with the
|
||||||
|
// distribution.
|
||||||
|
// * Neither the name of Google Inc. nor the names of its
|
||||||
|
// contributors may be used to endorse or promote products derived from
|
||||||
|
// this software without specific prior written permission.
|
||||||
|
//
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
// Author: kenton@google.com (Kenton Varda)
|
||||||
|
// Based on original Protocol Buffers design by
|
||||||
|
// Sanjay Ghemawat, Jeff Dean, and others.
|
||||||
|
//
|
||||||
|
// The messages in this file describe the definitions found in .proto files.
|
||||||
|
// A valid .proto file can be translated directly to a FileDescriptorProto
|
||||||
|
// without any other information (e.g. without reading its imports).
|
||||||
|
|
||||||
|
syntax = "proto2";
|
||||||
|
|
||||||
|
package google.protobuf;
|
||||||
|
|
||||||
|
option go_package = "google.golang.org/protobuf/types/descriptorpb";
|
||||||
|
option java_package = "com.google.protobuf";
|
||||||
|
option java_outer_classname = "DescriptorProtos";
|
||||||
|
option csharp_namespace = "Google.Protobuf.Reflection";
|
||||||
|
option objc_class_prefix = "GPB";
|
||||||
|
option cc_enable_arenas = true;
|
||||||
|
|
||||||
|
// descriptor.proto must be optimized for speed because reflection-based
|
||||||
|
// algorithms don't work during bootstrapping.
|
||||||
|
option optimize_for = SPEED;
|
||||||
|
|
||||||
|
// The protocol compiler can output a FileDescriptorSet containing the .proto
|
||||||
|
// files it parses.
|
||||||
|
message FileDescriptorSet {
|
||||||
|
repeated FileDescriptorProto file = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Describes a complete .proto file.
|
||||||
|
message FileDescriptorProto {
|
||||||
|
optional string name = 1; // file name, relative to root of source tree
|
||||||
|
optional string package = 2; // e.g. "foo", "foo.bar", etc.
|
||||||
|
|
||||||
|
// Names of files imported by this file.
|
||||||
|
repeated string dependency = 3;
|
||||||
|
// Indexes of the public imported files in the dependency list above.
|
||||||
|
repeated int32 public_dependency = 10;
|
||||||
|
// Indexes of the weak imported files in the dependency list.
|
||||||
|
// For Google-internal migration only. Do not use.
|
||||||
|
repeated int32 weak_dependency = 11;
|
||||||
|
|
||||||
|
// All top-level definitions in this file.
|
||||||
|
repeated DescriptorProto message_type = 4;
|
||||||
|
repeated EnumDescriptorProto enum_type = 5;
|
||||||
|
repeated ServiceDescriptorProto service = 6;
|
||||||
|
repeated FieldDescriptorProto extension = 7;
|
||||||
|
|
||||||
|
optional FileOptions options = 8;
|
||||||
|
|
||||||
|
// This field contains optional information about the original source code.
|
||||||
|
// You may safely remove this entire field without harming runtime
|
||||||
|
// functionality of the descriptors -- the information is needed only by
|
||||||
|
// development tools.
|
||||||
|
optional SourceCodeInfo source_code_info = 9;
|
||||||
|
|
||||||
|
// The syntax of the proto file.
|
||||||
|
// The supported values are "proto2" and "proto3".
|
||||||
|
optional string syntax = 12;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Describes a message type.
|
||||||
|
message DescriptorProto {
|
||||||
|
optional string name = 1;
|
||||||
|
|
||||||
|
repeated FieldDescriptorProto field = 2;
|
||||||
|
repeated FieldDescriptorProto extension = 6;
|
||||||
|
|
||||||
|
repeated DescriptorProto nested_type = 3;
|
||||||
|
repeated EnumDescriptorProto enum_type = 4;
|
||||||
|
|
||||||
|
message ExtensionRange {
|
||||||
|
optional int32 start = 1; // Inclusive.
|
||||||
|
optional int32 end = 2; // Exclusive.
|
||||||
|
|
||||||
|
optional ExtensionRangeOptions options = 3;
|
||||||
|
}
|
||||||
|
repeated ExtensionRange extension_range = 5;
|
||||||
|
|
||||||
|
repeated OneofDescriptorProto oneof_decl = 8;
|
||||||
|
|
||||||
|
optional MessageOptions options = 7;
|
||||||
|
|
||||||
|
// Range of reserved tag numbers. Reserved tag numbers may not be used by
|
||||||
|
// fields or extension ranges in the same message. Reserved ranges may
|
||||||
|
// not overlap.
|
||||||
|
message ReservedRange {
|
||||||
|
optional int32 start = 1; // Inclusive.
|
||||||
|
optional int32 end = 2; // Exclusive.
|
||||||
|
}
|
||||||
|
repeated ReservedRange reserved_range = 9;
|
||||||
|
// Reserved field names, which may not be used by fields in the same message.
|
||||||
|
// A given name may only be reserved once.
|
||||||
|
repeated string reserved_name = 10;
|
||||||
|
}
|
||||||
|
|
||||||
|
message ExtensionRangeOptions {
|
||||||
|
// The parser stores options it doesn't recognize here. See above.
|
||||||
|
repeated UninterpretedOption uninterpreted_option = 999;
|
||||||
|
|
||||||
|
// Clients can define custom options in extensions of this message. See above.
|
||||||
|
extensions 1000 to max;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Describes a field within a message.
|
||||||
|
message FieldDescriptorProto {
|
||||||
|
enum Type {
|
||||||
|
// 0 is reserved for errors.
|
||||||
|
// Order is weird for historical reasons.
|
||||||
|
TYPE_DOUBLE = 1;
|
||||||
|
TYPE_FLOAT = 2;
|
||||||
|
// Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if
|
||||||
|
// negative values are likely.
|
||||||
|
TYPE_INT64 = 3;
|
||||||
|
TYPE_UINT64 = 4;
|
||||||
|
// Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if
|
||||||
|
// negative values are likely.
|
||||||
|
TYPE_INT32 = 5;
|
||||||
|
TYPE_FIXED64 = 6;
|
||||||
|
TYPE_FIXED32 = 7;
|
||||||
|
TYPE_BOOL = 8;
|
||||||
|
TYPE_STRING = 9;
|
||||||
|
// Tag-delimited aggregate.
|
||||||
|
// Group type is deprecated and not supported in proto3. However, Proto3
|
||||||
|
// implementations should still be able to parse the group wire format and
|
||||||
|
// treat group fields as unknown fields.
|
||||||
|
TYPE_GROUP = 10;
|
||||||
|
TYPE_MESSAGE = 11; // Length-delimited aggregate.
|
||||||
|
|
||||||
|
// New in version 2.
|
||||||
|
TYPE_BYTES = 12;
|
||||||
|
TYPE_UINT32 = 13;
|
||||||
|
TYPE_ENUM = 14;
|
||||||
|
TYPE_SFIXED32 = 15;
|
||||||
|
TYPE_SFIXED64 = 16;
|
||||||
|
TYPE_SINT32 = 17; // Uses ZigZag encoding.
|
||||||
|
TYPE_SINT64 = 18; // Uses ZigZag encoding.
|
||||||
|
}
|
||||||
|
|
||||||
|
enum Label {
|
||||||
|
// 0 is reserved for errors
|
||||||
|
LABEL_OPTIONAL = 1;
|
||||||
|
LABEL_REQUIRED = 2;
|
||||||
|
LABEL_REPEATED = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
optional string name = 1;
|
||||||
|
optional int32 number = 3;
|
||||||
|
optional Label label = 4;
|
||||||
|
|
||||||
|
// If type_name is set, this need not be set. If both this and type_name
|
||||||
|
// are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP.
|
||||||
|
optional Type type = 5;
|
||||||
|
|
||||||
|
// For message and enum types, this is the name of the type. If the name
|
||||||
|
// starts with a '.', it is fully-qualified. Otherwise, C++-like scoping
|
||||||
|
// rules are used to find the type (i.e. first the nested types within this
|
||||||
|
// message are searched, then within the parent, on up to the root
|
||||||
|
// namespace).
|
||||||
|
optional string type_name = 6;
|
||||||
|
|
||||||
|
// For extensions, this is the name of the type being extended. It is
|
||||||
|
// resolved in the same manner as type_name.
|
||||||
|
optional string extendee = 2;
|
||||||
|
|
||||||
|
// For numeric types, contains the original text representation of the value.
|
||||||
|
// For booleans, "true" or "false".
|
||||||
|
// For strings, contains the default text contents (not escaped in any way).
|
||||||
|
// For bytes, contains the C escaped value. All bytes >= 128 are escaped.
|
||||||
|
// TODO(kenton): Base-64 encode?
|
||||||
|
optional string default_value = 7;
|
||||||
|
|
||||||
|
// If set, gives the index of a oneof in the containing type's oneof_decl
|
||||||
|
// list. This field is a member of that oneof.
|
||||||
|
optional int32 oneof_index = 9;
|
||||||
|
|
||||||
|
// JSON name of this field. The value is set by protocol compiler. If the
|
||||||
|
// user has set a "json_name" option on this field, that option's value
|
||||||
|
// will be used. Otherwise, it's deduced from the field's name by converting
|
||||||
|
// it to camelCase.
|
||||||
|
optional string json_name = 10;
|
||||||
|
|
||||||
|
optional FieldOptions options = 8;
|
||||||
|
|
||||||
|
// If true, this is a proto3 "optional". When a proto3 field is optional, it
|
||||||
|
// tracks presence regardless of field type.
|
||||||
|
//
|
||||||
|
// When proto3_optional is true, this field must be belong to a oneof to
|
||||||
|
// signal to old proto3 clients that presence is tracked for this field. This
|
||||||
|
// oneof is known as a "synthetic" oneof, and this field must be its sole
|
||||||
|
// member (each proto3 optional field gets its own synthetic oneof). Synthetic
|
||||||
|
// oneofs exist in the descriptor only, and do not generate any API. Synthetic
|
||||||
|
// oneofs must be ordered after all "real" oneofs.
|
||||||
|
//
|
||||||
|
// For message fields, proto3_optional doesn't create any semantic change,
|
||||||
|
// since non-repeated message fields always track presence. However it still
|
||||||
|
// indicates the semantic detail of whether the user wrote "optional" or not.
|
||||||
|
// This can be useful for round-tripping the .proto file. For consistency we
|
||||||
|
// give message fields a synthetic oneof also, even though it is not required
|
||||||
|
// to track presence. This is especially important because the parser can't
|
||||||
|
// tell if a field is a message or an enum, so it must always create a
|
||||||
|
// synthetic oneof.
|
||||||
|
//
|
||||||
|
// Proto2 optional fields do not set this flag, because they already indicate
|
||||||
|
// optional with `LABEL_OPTIONAL`.
|
||||||
|
optional bool proto3_optional = 17;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Describes a oneof.
|
||||||
|
message OneofDescriptorProto {
|
||||||
|
optional string name = 1;
|
||||||
|
optional OneofOptions options = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Describes an enum type.
|
||||||
|
message EnumDescriptorProto {
|
||||||
|
optional string name = 1;
|
||||||
|
|
||||||
|
repeated EnumValueDescriptorProto value = 2;
|
||||||
|
|
||||||
|
optional EnumOptions options = 3;
|
||||||
|
|
||||||
|
// Range of reserved numeric values. Reserved values may not be used by
|
||||||
|
// entries in the same enum. Reserved ranges may not overlap.
|
||||||
|
//
|
||||||
|
// Note that this is distinct from DescriptorProto.ReservedRange in that it
|
||||||
|
// is inclusive such that it can appropriately represent the entire int32
|
||||||
|
// domain.
|
||||||
|
message EnumReservedRange {
|
||||||
|
optional int32 start = 1; // Inclusive.
|
||||||
|
optional int32 end = 2; // Inclusive.
|
||||||
|
}
|
||||||
|
|
||||||
|
// Range of reserved numeric values. Reserved numeric values may not be used
|
||||||
|
// by enum values in the same enum declaration. Reserved ranges may not
|
||||||
|
// overlap.
|
||||||
|
repeated EnumReservedRange reserved_range = 4;
|
||||||
|
|
||||||
|
// Reserved enum value names, which may not be reused. A given name may only
|
||||||
|
// be reserved once.
|
||||||
|
repeated string reserved_name = 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Describes a value within an enum.
|
||||||
|
message EnumValueDescriptorProto {
|
||||||
|
optional string name = 1;
|
||||||
|
optional int32 number = 2;
|
||||||
|
|
||||||
|
optional EnumValueOptions options = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Describes a service.
|
||||||
|
message ServiceDescriptorProto {
|
||||||
|
optional string name = 1;
|
||||||
|
repeated MethodDescriptorProto method = 2;
|
||||||
|
|
||||||
|
optional ServiceOptions options = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Describes a method of a service.
|
||||||
|
message MethodDescriptorProto {
|
||||||
|
optional string name = 1;
|
||||||
|
|
||||||
|
// Input and output type names. These are resolved in the same way as
|
||||||
|
// FieldDescriptorProto.type_name, but must refer to a message type.
|
||||||
|
optional string input_type = 2;
|
||||||
|
optional string output_type = 3;
|
||||||
|
|
||||||
|
optional MethodOptions options = 4;
|
||||||
|
|
||||||
|
// Identifies if client streams multiple client messages
|
||||||
|
optional bool client_streaming = 5 [default = false];
|
||||||
|
// Identifies if server streams multiple server messages
|
||||||
|
optional bool server_streaming = 6 [default = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
// ===================================================================
|
||||||
|
// Options
|
||||||
|
|
||||||
|
// Each of the definitions above may have "options" attached. These are
|
||||||
|
// just annotations which may cause code to be generated slightly differently
|
||||||
|
// or may contain hints for code that manipulates protocol messages.
|
||||||
|
//
|
||||||
|
// Clients may define custom options as extensions of the *Options messages.
|
||||||
|
// These extensions may not yet be known at parsing time, so the parser cannot
|
||||||
|
// store the values in them. Instead it stores them in a field in the *Options
|
||||||
|
// message called uninterpreted_option. This field must have the same name
|
||||||
|
// across all *Options messages. We then use this field to populate the
|
||||||
|
// extensions when we build a descriptor, at which point all protos have been
|
||||||
|
// parsed and so all extensions are known.
|
||||||
|
//
|
||||||
|
// Extension numbers for custom options may be chosen as follows:
|
||||||
|
// * For options which will only be used within a single application or
|
||||||
|
// organization, or for experimental options, use field numbers 50000
|
||||||
|
// through 99999. It is up to you to ensure that you do not use the
|
||||||
|
// same number for multiple options.
|
||||||
|
// * For options which will be published and used publicly by multiple
|
||||||
|
// independent entities, e-mail protobuf-global-extension-registry@google.com
|
||||||
|
// to reserve extension numbers. Simply provide your project name (e.g.
|
||||||
|
// Objective-C plugin) and your project website (if available) -- there's no
|
||||||
|
// need to explain how you intend to use them. Usually you only need one
|
||||||
|
// extension number. You can declare multiple options with only one extension
|
||||||
|
// number by putting them in a sub-message. See the Custom Options section of
|
||||||
|
// the docs for examples:
|
||||||
|
// https://developers.google.com/protocol-buffers/docs/proto#options
|
||||||
|
// If this turns out to be popular, a web service will be set up
|
||||||
|
// to automatically assign option numbers.
|
||||||
|
|
||||||
|
message FileOptions {
|
||||||
|
|
||||||
|
// Sets the Java package where classes generated from this .proto will be
|
||||||
|
// placed. By default, the proto package is used, but this is often
|
||||||
|
// inappropriate because proto packages do not normally start with backwards
|
||||||
|
// domain names.
|
||||||
|
optional string java_package = 1;
|
||||||
|
|
||||||
|
// If set, all the classes from the .proto file are wrapped in a single
|
||||||
|
// outer class with the given name. This applies to both Proto1
|
||||||
|
// (equivalent to the old "--one_java_file" option) and Proto2 (where
|
||||||
|
// a .proto always translates to a single class, but you may want to
|
||||||
|
// explicitly choose the class name).
|
||||||
|
optional string java_outer_classname = 8;
|
||||||
|
|
||||||
|
// If set true, then the Java code generator will generate a separate .java
|
||||||
|
// file for each top-level message, enum, and service defined in the .proto
|
||||||
|
// file. Thus, these types will *not* be nested inside the outer class
|
||||||
|
// named by java_outer_classname. However, the outer class will still be
|
||||||
|
// generated to contain the file's getDescriptor() method as well as any
|
||||||
|
// top-level extensions defined in the file.
|
||||||
|
optional bool java_multiple_files = 10 [default = false];
|
||||||
|
|
||||||
|
// This option does nothing.
|
||||||
|
optional bool java_generate_equals_and_hash = 20 [deprecated = true];
|
||||||
|
|
||||||
|
// If set true, then the Java2 code generator will generate code that
|
||||||
|
// throws an exception whenever an attempt is made to assign a non-UTF-8
|
||||||
|
// byte sequence to a string field.
|
||||||
|
// Message reflection will do the same.
|
||||||
|
// However, an extension field still accepts non-UTF-8 byte sequences.
|
||||||
|
// This option has no effect on when used with the lite runtime.
|
||||||
|
optional bool java_string_check_utf8 = 27 [default = false];
|
||||||
|
|
||||||
|
// Generated classes can be optimized for speed or code size.
|
||||||
|
enum OptimizeMode {
|
||||||
|
SPEED = 1; // Generate complete code for parsing, serialization,
|
||||||
|
// etc.
|
||||||
|
CODE_SIZE = 2; // Use ReflectionOps to implement these methods.
|
||||||
|
LITE_RUNTIME = 3; // Generate code using MessageLite and the lite runtime.
|
||||||
|
}
|
||||||
|
optional OptimizeMode optimize_for = 9 [default = SPEED];
|
||||||
|
|
||||||
|
// Sets the Go package where structs generated from this .proto will be
|
||||||
|
// placed. If omitted, the Go package will be derived from the following:
|
||||||
|
// - The basename of the package import path, if provided.
|
||||||
|
// - Otherwise, the package statement in the .proto file, if present.
|
||||||
|
// - Otherwise, the basename of the .proto file, without extension.
|
||||||
|
optional string go_package = 11;
|
||||||
|
|
||||||
|
// Should generic services be generated in each language? "Generic" services
|
||||||
|
// are not specific to any particular RPC system. They are generated by the
|
||||||
|
// main code generators in each language (without additional plugins).
|
||||||
|
// Generic services were the only kind of service generation supported by
|
||||||
|
// early versions of google.protobuf.
|
||||||
|
//
|
||||||
|
// Generic services are now considered deprecated in favor of using plugins
|
||||||
|
// that generate code specific to your particular RPC system. Therefore,
|
||||||
|
// these default to false. Old code which depends on generic services should
|
||||||
|
// explicitly set them to true.
|
||||||
|
optional bool cc_generic_services = 16 [default = false];
|
||||||
|
optional bool java_generic_services = 17 [default = false];
|
||||||
|
optional bool py_generic_services = 18 [default = false];
|
||||||
|
optional bool php_generic_services = 42 [default = false];
|
||||||
|
|
||||||
|
// Is this file deprecated?
|
||||||
|
// Depending on the target platform, this can emit Deprecated annotations
|
||||||
|
// for everything in the file, or it will be completely ignored; in the very
|
||||||
|
// least, this is a formalization for deprecating files.
|
||||||
|
optional bool deprecated = 23 [default = false];
|
||||||
|
|
||||||
|
// Enables the use of arenas for the proto messages in this file. This applies
|
||||||
|
// only to generated classes for C++.
|
||||||
|
optional bool cc_enable_arenas = 31 [default = true];
|
||||||
|
|
||||||
|
// Sets the objective c class prefix which is prepended to all objective c
|
||||||
|
// generated classes from this .proto. There is no default.
|
||||||
|
optional string objc_class_prefix = 36;
|
||||||
|
|
||||||
|
// Namespace for generated classes; defaults to the package.
|
||||||
|
optional string csharp_namespace = 37;
|
||||||
|
|
||||||
|
// By default Swift generators will take the proto package and CamelCase it
|
||||||
|
// replacing '.' with underscore and use that to prefix the types/symbols
|
||||||
|
// defined. When this options is provided, they will use this value instead
|
||||||
|
// to prefix the types/symbols defined.
|
||||||
|
optional string swift_prefix = 39;
|
||||||
|
|
||||||
|
// Sets the php class prefix which is prepended to all php generated classes
|
||||||
|
// from this .proto. Default is empty.
|
||||||
|
optional string php_class_prefix = 40;
|
||||||
|
|
||||||
|
// Use this option to change the namespace of php generated classes. Default
|
||||||
|
// is empty. When this option is empty, the package name will be used for
|
||||||
|
// determining the namespace.
|
||||||
|
optional string php_namespace = 41;
|
||||||
|
|
||||||
|
// Use this option to change the namespace of php generated metadata classes.
|
||||||
|
// Default is empty. When this option is empty, the proto file name will be
|
||||||
|
// used for determining the namespace.
|
||||||
|
optional string php_metadata_namespace = 44;
|
||||||
|
|
||||||
|
// Use this option to change the package of ruby generated classes. Default
|
||||||
|
// is empty. When this option is not set, the package name will be used for
|
||||||
|
// determining the ruby package.
|
||||||
|
optional string ruby_package = 45;
|
||||||
|
|
||||||
|
// The parser stores options it doesn't recognize here.
|
||||||
|
// See the documentation for the "Options" section above.
|
||||||
|
repeated UninterpretedOption uninterpreted_option = 999;
|
||||||
|
|
||||||
|
// Clients can define custom options in extensions of this message.
|
||||||
|
// See the documentation for the "Options" section above.
|
||||||
|
extensions 1000 to max;
|
||||||
|
|
||||||
|
reserved 38;
|
||||||
|
}
|
||||||
|
|
||||||
|
message MessageOptions {
|
||||||
|
// Set true to use the old proto1 MessageSet wire format for extensions.
|
||||||
|
// This is provided for backwards-compatibility with the MessageSet wire
|
||||||
|
// format. You should not use this for any other reason: It's less
|
||||||
|
// efficient, has fewer features, and is more complicated.
|
||||||
|
//
|
||||||
|
// The message must be defined exactly as follows:
|
||||||
|
// message Foo {
|
||||||
|
// option message_set_wire_format = true;
|
||||||
|
// extensions 4 to max;
|
||||||
|
// }
|
||||||
|
// Note that the message cannot have any defined fields; MessageSets only
|
||||||
|
// have extensions.
|
||||||
|
//
|
||||||
|
// All extensions of your type must be singular messages; e.g. they cannot
|
||||||
|
// be int32s, enums, or repeated messages.
|
||||||
|
//
|
||||||
|
// Because this is an option, the above two restrictions are not enforced by
|
||||||
|
// the protocol compiler.
|
||||||
|
optional bool message_set_wire_format = 1 [default = false];
|
||||||
|
|
||||||
|
// Disables the generation of the standard "descriptor()" accessor, which can
|
||||||
|
// conflict with a field of the same name. This is meant to make migration
|
||||||
|
// from proto1 easier; new code should avoid fields named "descriptor".
|
||||||
|
optional bool no_standard_descriptor_accessor = 2 [default = false];
|
||||||
|
|
||||||
|
// Is this message deprecated?
|
||||||
|
// Depending on the target platform, this can emit Deprecated annotations
|
||||||
|
// for the message, or it will be completely ignored; in the very least,
|
||||||
|
// this is a formalization for deprecating messages.
|
||||||
|
optional bool deprecated = 3 [default = false];
|
||||||
|
|
||||||
|
// Whether the message is an automatically generated map entry type for the
|
||||||
|
// maps field.
|
||||||
|
//
|
||||||
|
// For maps fields:
|
||||||
|
// map<KeyType, ValueType> map_field = 1;
|
||||||
|
// The parsed descriptor looks like:
|
||||||
|
// message MapFieldEntry {
|
||||||
|
// option map_entry = true;
|
||||||
|
// optional KeyType key = 1;
|
||||||
|
// optional ValueType value = 2;
|
||||||
|
// }
|
||||||
|
// repeated MapFieldEntry map_field = 1;
|
||||||
|
//
|
||||||
|
// Implementations may choose not to generate the map_entry=true message, but
|
||||||
|
// use a native map in the target language to hold the keys and values.
|
||||||
|
// The reflection APIs in such implementations still need to work as
|
||||||
|
// if the field is a repeated message field.
|
||||||
|
//
|
||||||
|
// NOTE: Do not set the option in .proto files. Always use the maps syntax
|
||||||
|
// instead. The option should only be implicitly set by the proto compiler
|
||||||
|
// parser.
|
||||||
|
optional bool map_entry = 7;
|
||||||
|
|
||||||
|
reserved 8; // javalite_serializable
|
||||||
|
reserved 9; // javanano_as_lite
|
||||||
|
|
||||||
|
// The parser stores options it doesn't recognize here. See above.
|
||||||
|
repeated UninterpretedOption uninterpreted_option = 999;
|
||||||
|
|
||||||
|
// Clients can define custom options in extensions of this message. See above.
|
||||||
|
extensions 1000 to max;
|
||||||
|
}
|
||||||
|
|
||||||
|
message FieldOptions {
|
||||||
|
// The ctype option instructs the C++ code generator to use a different
|
||||||
|
// representation of the field than it normally would. See the specific
|
||||||
|
// options below. This option is not yet implemented in the open source
|
||||||
|
// release -- sorry, we'll try to include it in a future version!
|
||||||
|
optional CType ctype = 1 [default = STRING];
|
||||||
|
enum CType {
|
||||||
|
// Default mode.
|
||||||
|
STRING = 0;
|
||||||
|
|
||||||
|
CORD = 1;
|
||||||
|
|
||||||
|
STRING_PIECE = 2;
|
||||||
|
}
|
||||||
|
// The packed option can be enabled for repeated primitive fields to enable
|
||||||
|
// a more efficient representation on the wire. Rather than repeatedly
|
||||||
|
// writing the tag and type for each element, the entire array is encoded as
|
||||||
|
// a single length-delimited blob. In proto3, only explicit setting it to
|
||||||
|
// false will avoid using packed encoding.
|
||||||
|
optional bool packed = 2;
|
||||||
|
|
||||||
|
// The jstype option determines the JavaScript type used for values of the
|
||||||
|
// field. The option is permitted only for 64 bit integral and fixed types
|
||||||
|
// (int64, uint64, sint64, fixed64, sfixed64). A field with jstype JS_STRING
|
||||||
|
// is represented as JavaScript string, which avoids loss of precision that
|
||||||
|
// can happen when a large value is converted to a floating point JavaScript.
|
||||||
|
// Specifying JS_NUMBER for the jstype causes the generated JavaScript code to
|
||||||
|
// use the JavaScript "number" type. The behavior of the default option
|
||||||
|
// JS_NORMAL is implementation dependent.
|
||||||
|
//
|
||||||
|
// This option is an enum to permit additional types to be added, e.g.
|
||||||
|
// goog.math.Integer.
|
||||||
|
optional JSType jstype = 6 [default = JS_NORMAL];
|
||||||
|
enum JSType {
|
||||||
|
// Use the default type.
|
||||||
|
JS_NORMAL = 0;
|
||||||
|
|
||||||
|
// Use JavaScript strings.
|
||||||
|
JS_STRING = 1;
|
||||||
|
|
||||||
|
// Use JavaScript numbers.
|
||||||
|
JS_NUMBER = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Should this field be parsed lazily? Lazy applies only to message-type
|
||||||
|
// fields. It means that when the outer message is initially parsed, the
|
||||||
|
// inner message's contents will not be parsed but instead stored in encoded
|
||||||
|
// form. The inner message will actually be parsed when it is first accessed.
|
||||||
|
//
|
||||||
|
// This is only a hint. Implementations are free to choose whether to use
|
||||||
|
// eager or lazy parsing regardless of the value of this option. However,
|
||||||
|
// setting this option true suggests that the protocol author believes that
|
||||||
|
// using lazy parsing on this field is worth the additional bookkeeping
|
||||||
|
// overhead typically needed to implement it.
|
||||||
|
//
|
||||||
|
// This option does not affect the public interface of any generated code;
|
||||||
|
// all method signatures remain the same. Furthermore, thread-safety of the
|
||||||
|
// interface is not affected by this option; const methods remain safe to
|
||||||
|
// call from multiple threads concurrently, while non-const methods continue
|
||||||
|
// to require exclusive access.
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// Note that implementations may choose not to check required fields within
|
||||||
|
// a lazy sub-message. That is, calling IsInitialized() on the outer message
|
||||||
|
// may return true even if the inner message has missing required fields.
|
||||||
|
// This is necessary because otherwise the inner message would have to be
|
||||||
|
// parsed in order to perform the check, defeating the purpose of lazy
|
||||||
|
// parsing. An implementation which chooses not to check required fields
|
||||||
|
// must be consistent about it. That is, for any particular sub-message, the
|
||||||
|
// implementation must either *always* check its required fields, or *never*
|
||||||
|
// check its required fields, regardless of whether or not the message has
|
||||||
|
// been parsed.
|
||||||
|
optional bool lazy = 5 [default = false];
|
||||||
|
|
||||||
|
// Is this field deprecated?
|
||||||
|
// Depending on the target platform, this can emit Deprecated annotations
|
||||||
|
// for accessors, or it will be completely ignored; in the very least, this
|
||||||
|
// is a formalization for deprecating fields.
|
||||||
|
optional bool deprecated = 3 [default = false];
|
||||||
|
|
||||||
|
// For Google-internal migration only. Do not use.
|
||||||
|
optional bool weak = 10 [default = false];
|
||||||
|
|
||||||
|
// The parser stores options it doesn't recognize here. See above.
|
||||||
|
repeated UninterpretedOption uninterpreted_option = 999;
|
||||||
|
|
||||||
|
// Clients can define custom options in extensions of this message. See above.
|
||||||
|
extensions 1000 to max;
|
||||||
|
|
||||||
|
reserved 4; // removed jtype
|
||||||
|
}
|
||||||
|
|
||||||
|
message OneofOptions {
|
||||||
|
// The parser stores options it doesn't recognize here. See above.
|
||||||
|
repeated UninterpretedOption uninterpreted_option = 999;
|
||||||
|
|
||||||
|
// Clients can define custom options in extensions of this message. See above.
|
||||||
|
extensions 1000 to max;
|
||||||
|
}
|
||||||
|
|
||||||
|
message EnumOptions {
|
||||||
|
|
||||||
|
// Set this option to true to allow mapping different tag names to the same
|
||||||
|
// value.
|
||||||
|
optional bool allow_alias = 2;
|
||||||
|
|
||||||
|
// Is this enum deprecated?
|
||||||
|
// Depending on the target platform, this can emit Deprecated annotations
|
||||||
|
// for the enum, or it will be completely ignored; in the very least, this
|
||||||
|
// is a formalization for deprecating enums.
|
||||||
|
optional bool deprecated = 3 [default = false];
|
||||||
|
|
||||||
|
reserved 5; // javanano_as_lite
|
||||||
|
|
||||||
|
// The parser stores options it doesn't recognize here. See above.
|
||||||
|
repeated UninterpretedOption uninterpreted_option = 999;
|
||||||
|
|
||||||
|
// Clients can define custom options in extensions of this message. See above.
|
||||||
|
extensions 1000 to max;
|
||||||
|
}
|
||||||
|
|
||||||
|
message EnumValueOptions {
|
||||||
|
// Is this enum value deprecated?
|
||||||
|
// Depending on the target platform, this can emit Deprecated annotations
|
||||||
|
// for the enum value, or it will be completely ignored; in the very least,
|
||||||
|
// this is a formalization for deprecating enum values.
|
||||||
|
optional bool deprecated = 1 [default = false];
|
||||||
|
|
||||||
|
// The parser stores options it doesn't recognize here. See above.
|
||||||
|
repeated UninterpretedOption uninterpreted_option = 999;
|
||||||
|
|
||||||
|
// Clients can define custom options in extensions of this message. See above.
|
||||||
|
extensions 1000 to max;
|
||||||
|
}
|
||||||
|
|
||||||
|
message ServiceOptions {
|
||||||
|
|
||||||
|
// Note: Field numbers 1 through 32 are reserved for Google's internal RPC
|
||||||
|
// framework. We apologize for hoarding these numbers to ourselves, but
|
||||||
|
// we were already using them long before we decided to release Protocol
|
||||||
|
// Buffers.
|
||||||
|
|
||||||
|
// Is this service deprecated?
|
||||||
|
// Depending on the target platform, this can emit Deprecated annotations
|
||||||
|
// for the service, or it will be completely ignored; in the very least,
|
||||||
|
// this is a formalization for deprecating services.
|
||||||
|
optional bool deprecated = 33 [default = false];
|
||||||
|
|
||||||
|
// The parser stores options it doesn't recognize here. See above.
|
||||||
|
repeated UninterpretedOption uninterpreted_option = 999;
|
||||||
|
|
||||||
|
// Clients can define custom options in extensions of this message. See above.
|
||||||
|
extensions 1000 to max;
|
||||||
|
}
|
||||||
|
|
||||||
|
message MethodOptions {
|
||||||
|
|
||||||
|
// Note: Field numbers 1 through 32 are reserved for Google's internal RPC
|
||||||
|
// framework. We apologize for hoarding these numbers to ourselves, but
|
||||||
|
// we were already using them long before we decided to release Protocol
|
||||||
|
// Buffers.
|
||||||
|
|
||||||
|
// Is this method deprecated?
|
||||||
|
// Depending on the target platform, this can emit Deprecated annotations
|
||||||
|
// for the method, or it will be completely ignored; in the very least,
|
||||||
|
// this is a formalization for deprecating methods.
|
||||||
|
optional bool deprecated = 33 [default = false];
|
||||||
|
|
||||||
|
// Is this method side-effect-free (or safe in HTTP parlance), or idempotent,
|
||||||
|
// or neither? HTTP based RPC implementation may choose GET verb for safe
|
||||||
|
// methods, and PUT verb for idempotent methods instead of the default POST.
|
||||||
|
enum IdempotencyLevel {
|
||||||
|
IDEMPOTENCY_UNKNOWN = 0;
|
||||||
|
NO_SIDE_EFFECTS = 1; // implies idempotent
|
||||||
|
IDEMPOTENT = 2; // idempotent, but may have side effects
|
||||||
|
}
|
||||||
|
optional IdempotencyLevel idempotency_level = 34 [default = IDEMPOTENCY_UNKNOWN];
|
||||||
|
|
||||||
|
// The parser stores options it doesn't recognize here. See above.
|
||||||
|
repeated UninterpretedOption uninterpreted_option = 999;
|
||||||
|
|
||||||
|
// Clients can define custom options in extensions of this message. See above.
|
||||||
|
extensions 1000 to max;
|
||||||
|
}
|
||||||
|
|
||||||
|
// A message representing a option the parser does not recognize. This only
|
||||||
|
// appears in options protos created by the compiler::Parser class.
|
||||||
|
// DescriptorPool resolves these when building Descriptor objects. Therefore,
|
||||||
|
// options protos in descriptor objects (e.g. returned by Descriptor::options(),
|
||||||
|
// or produced by Descriptor::CopyTo()) will never have UninterpretedOptions
|
||||||
|
// in them.
|
||||||
|
message UninterpretedOption {
|
||||||
|
// The name of the uninterpreted option. Each string represents a segment in
|
||||||
|
// a dot-separated name. is_extension is true iff a segment represents an
|
||||||
|
// extension (denoted with parentheses in options specs in .proto files).
|
||||||
|
// E.g.,{ ["foo", false], ["bar.baz", true], ["qux", false] } represents
|
||||||
|
// "foo.(bar.baz).qux".
|
||||||
|
message NamePart {
|
||||||
|
required string name_part = 1;
|
||||||
|
required bool is_extension = 2;
|
||||||
|
}
|
||||||
|
repeated NamePart name = 2;
|
||||||
|
|
||||||
|
// The value of the uninterpreted option, in whatever type the tokenizer
|
||||||
|
// identified it as during parsing. Exactly one of these should be set.
|
||||||
|
optional string identifier_value = 3;
|
||||||
|
optional uint64 positive_int_value = 4;
|
||||||
|
optional int64 negative_int_value = 5;
|
||||||
|
optional double double_value = 6;
|
||||||
|
optional bytes string_value = 7;
|
||||||
|
optional string aggregate_value = 8;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ===================================================================
|
||||||
|
// Optional source code info
|
||||||
|
|
||||||
|
// Encapsulates information about the original source file from which a
|
||||||
|
// FileDescriptorProto was generated.
|
||||||
|
message SourceCodeInfo {
|
||||||
|
// A Location identifies a piece of source code in a .proto file which
|
||||||
|
// corresponds to a particular definition. This information is intended
|
||||||
|
// to be useful to IDEs, code indexers, documentation generators, and similar
|
||||||
|
// tools.
|
||||||
|
//
|
||||||
|
// For example, say we have a file like:
|
||||||
|
// message Foo {
|
||||||
|
// optional string foo = 1;
|
||||||
|
// }
|
||||||
|
// Let's look at just the field definition:
|
||||||
|
// optional string foo = 1;
|
||||||
|
// ^ ^^ ^^ ^ ^^^
|
||||||
|
// a bc de f ghi
|
||||||
|
// We have the following locations:
|
||||||
|
// span path represents
|
||||||
|
// [a,i) [ 4, 0, 2, 0 ] The whole field definition.
|
||||||
|
// [a,b) [ 4, 0, 2, 0, 4 ] The label (optional).
|
||||||
|
// [c,d) [ 4, 0, 2, 0, 5 ] The type (string).
|
||||||
|
// [e,f) [ 4, 0, 2, 0, 1 ] The name (foo).
|
||||||
|
// [g,h) [ 4, 0, 2, 0, 3 ] The number (1).
|
||||||
|
//
|
||||||
|
// Notes:
|
||||||
|
// - A location may refer to a repeated field itself (i.e. not to any
|
||||||
|
// particular index within it). This is used whenever a set of elements are
|
||||||
|
// logically enclosed in a single code segment. For example, an entire
|
||||||
|
// extend block (possibly containing multiple extension definitions) will
|
||||||
|
// have an outer location whose path refers to the "extensions" repeated
|
||||||
|
// field without an index.
|
||||||
|
// - Multiple locations may have the same path. This happens when a single
|
||||||
|
// logical declaration is spread out across multiple places. The most
|
||||||
|
// obvious example is the "extend" block again -- there may be multiple
|
||||||
|
// extend blocks in the same scope, each of which will have the same path.
|
||||||
|
// - A location's span is not always a subset of its parent's span. For
|
||||||
|
// example, the "extendee" of an extension declaration appears at the
|
||||||
|
// beginning of the "extend" block and is shared by all extensions within
|
||||||
|
// the block.
|
||||||
|
// - Just because a location's span is a subset of some other location's span
|
||||||
|
// does not mean that it is a descendant. For example, a "group" defines
|
||||||
|
// both a type and a field in a single declaration. Thus, the locations
|
||||||
|
// corresponding to the type and field and their components will overlap.
|
||||||
|
// - Code which tries to interpret locations should probably be designed to
|
||||||
|
// ignore those that it doesn't understand, as more types of locations could
|
||||||
|
// be recorded in the future.
|
||||||
|
repeated Location location = 1;
|
||||||
|
message Location {
|
||||||
|
// Identifies which part of the FileDescriptorProto was defined at this
|
||||||
|
// location.
|
||||||
|
//
|
||||||
|
// Each element is a field number or an index. They form a path from
|
||||||
|
// the root FileDescriptorProto to the place where the definition. For
|
||||||
|
// example, this path:
|
||||||
|
// [ 4, 3, 2, 7, 1 ]
|
||||||
|
// refers to:
|
||||||
|
// file.message_type(3) // 4, 3
|
||||||
|
// .field(7) // 2, 7
|
||||||
|
// .name() // 1
|
||||||
|
// This is because FileDescriptorProto.message_type has field number 4:
|
||||||
|
// repeated DescriptorProto message_type = 4;
|
||||||
|
// and DescriptorProto.field has field number 2:
|
||||||
|
// repeated FieldDescriptorProto field = 2;
|
||||||
|
// and FieldDescriptorProto.name has field number 1:
|
||||||
|
// optional string name = 1;
|
||||||
|
//
|
||||||
|
// Thus, the above path gives the location of a field name. If we removed
|
||||||
|
// the last element:
|
||||||
|
// [ 4, 3, 2, 7 ]
|
||||||
|
// this path refers to the whole field declaration (from the beginning
|
||||||
|
// of the label to the terminating semicolon).
|
||||||
|
repeated int32 path = 1 [packed = true];
|
||||||
|
|
||||||
|
// Always has exactly three or four elements: start line, start column,
|
||||||
|
// end line (optional, otherwise assumed same as start line), end column.
|
||||||
|
// These are packed into a single field for efficiency. Note that line
|
||||||
|
// and column numbers are zero-based -- typically you will want to add
|
||||||
|
// 1 to each before displaying to a user.
|
||||||
|
repeated int32 span = 2 [packed = true];
|
||||||
|
|
||||||
|
// If this SourceCodeInfo represents a complete declaration, these are any
|
||||||
|
// comments appearing before and after the declaration which appear to be
|
||||||
|
// attached to the declaration.
|
||||||
|
//
|
||||||
|
// A series of line comments appearing on consecutive lines, with no other
|
||||||
|
// tokens appearing on those lines, will be treated as a single comment.
|
||||||
|
//
|
||||||
|
// leading_detached_comments will keep paragraphs of comments that appear
|
||||||
|
// before (but not connected to) the current element. Each paragraph,
|
||||||
|
// separated by empty lines, will be one comment element in the repeated
|
||||||
|
// field.
|
||||||
|
//
|
||||||
|
// Only the comment content is provided; comment markers (e.g. //) are
|
||||||
|
// stripped out. For block comments, leading whitespace and an asterisk
|
||||||
|
// will be stripped from the beginning of each line other than the first.
|
||||||
|
// Newlines are included in the output.
|
||||||
|
//
|
||||||
|
// Examples:
|
||||||
|
//
|
||||||
|
// optional int32 foo = 1; // Comment attached to foo.
|
||||||
|
// // Comment attached to bar.
|
||||||
|
// optional int32 bar = 2;
|
||||||
|
//
|
||||||
|
// optional string baz = 3;
|
||||||
|
// // Comment attached to baz.
|
||||||
|
// // Another line attached to baz.
|
||||||
|
//
|
||||||
|
// // Comment attached to qux.
|
||||||
|
// //
|
||||||
|
// // Another line attached to qux.
|
||||||
|
// optional double qux = 4;
|
||||||
|
//
|
||||||
|
// // Detached comment for corge. This is not leading or trailing comments
|
||||||
|
// // to qux or corge because there are blank lines separating it from
|
||||||
|
// // both.
|
||||||
|
//
|
||||||
|
// // Detached comment for corge paragraph 2.
|
||||||
|
//
|
||||||
|
// optional string corge = 5;
|
||||||
|
// /* Block comment attached
|
||||||
|
// * to corge. Leading asterisks
|
||||||
|
// * will be removed. */
|
||||||
|
// /* Block comment attached to
|
||||||
|
// * grault. */
|
||||||
|
// optional int32 grault = 6;
|
||||||
|
//
|
||||||
|
// // ignored detached comments.
|
||||||
|
optional string leading_comments = 3;
|
||||||
|
optional string trailing_comments = 4;
|
||||||
|
repeated string leading_detached_comments = 6;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Describes the relationship between generated code and its original source
|
||||||
|
// file. A GeneratedCodeInfo message is associated with only one generated
|
||||||
|
// source file, but may contain references to different source .proto files.
|
||||||
|
message GeneratedCodeInfo {
|
||||||
|
// An Annotation connects some span of text in generated code to an element
|
||||||
|
// of its generating .proto file.
|
||||||
|
repeated Annotation annotation = 1;
|
||||||
|
message Annotation {
|
||||||
|
// Identifies the element in the original source .proto file. This field
|
||||||
|
// is formatted the same as SourceCodeInfo.Location.path.
|
||||||
|
repeated int32 path = 1 [packed = true];
|
||||||
|
|
||||||
|
// Identifies the filesystem path to the original source .proto.
|
||||||
|
optional string source_file = 2;
|
||||||
|
|
||||||
|
// Identifies the starting offset in bytes in the generated code
|
||||||
|
// that relates to the identified object.
|
||||||
|
optional int32 begin = 3;
|
||||||
|
|
||||||
|
// Identifies the ending offset in bytes in the generated code that
|
||||||
|
// relates to the identified offset. The end offset should be one past
|
||||||
|
// the last relevant byte (so the length of the text = end - begin).
|
||||||
|
optional int32 end = 4;
|
||||||
|
}
|
||||||
|
}
|
407
proto/tendermint/abci/types.proto
Normal file
407
proto/tendermint/abci/types.proto
Normal file
@ -0,0 +1,407 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package tendermint.abci;
|
||||||
|
|
||||||
|
option go_package = "github.com/tendermint/tendermint/abci/types";
|
||||||
|
|
||||||
|
// For more information on gogo.proto, see:
|
||||||
|
// https://github.com/gogo/protobuf/blob/master/extensions.md
|
||||||
|
import "tendermint/crypto/proof.proto";
|
||||||
|
import "tendermint/types/types.proto";
|
||||||
|
import "tendermint/crypto/keys.proto";
|
||||||
|
import "tendermint/types/params.proto";
|
||||||
|
import "google/protobuf/timestamp.proto";
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
|
||||||
|
// This file is copied from http://github.com/tendermint/abci
|
||||||
|
// NOTE: When using custom types, mind the warnings.
|
||||||
|
// https://github.com/gogo/protobuf/blob/master/custom_types.md#warnings-and-issues
|
||||||
|
|
||||||
|
//----------------------------------------
|
||||||
|
// Request types
|
||||||
|
|
||||||
|
message Request {
|
||||||
|
oneof value {
|
||||||
|
RequestEcho echo = 1;
|
||||||
|
RequestFlush flush = 2;
|
||||||
|
RequestInfo info = 3;
|
||||||
|
RequestSetOption set_option = 4;
|
||||||
|
RequestInitChain init_chain = 5;
|
||||||
|
RequestQuery query = 6;
|
||||||
|
RequestBeginBlock begin_block = 7;
|
||||||
|
RequestCheckTx check_tx = 8;
|
||||||
|
RequestDeliverTx deliver_tx = 9;
|
||||||
|
RequestEndBlock end_block = 10;
|
||||||
|
RequestCommit commit = 11;
|
||||||
|
RequestListSnapshots list_snapshots = 12;
|
||||||
|
RequestOfferSnapshot offer_snapshot = 13;
|
||||||
|
RequestLoadSnapshotChunk load_snapshot_chunk = 14;
|
||||||
|
RequestApplySnapshotChunk apply_snapshot_chunk = 15;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
message RequestEcho {
|
||||||
|
string message = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message RequestFlush {}
|
||||||
|
|
||||||
|
message RequestInfo {
|
||||||
|
string version = 1;
|
||||||
|
uint64 block_version = 2;
|
||||||
|
uint64 p2p_version = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
// nondeterministic
|
||||||
|
message RequestSetOption {
|
||||||
|
string key = 1;
|
||||||
|
string value = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
message RequestInitChain {
|
||||||
|
google.protobuf.Timestamp time = 1
|
||||||
|
[(gogoproto.nullable) = false, (gogoproto.stdtime) = true];
|
||||||
|
string chain_id = 2;
|
||||||
|
ConsensusParams consensus_params = 3;
|
||||||
|
repeated ValidatorUpdate validators = 4 [(gogoproto.nullable) = false];
|
||||||
|
bytes app_state_bytes = 5;
|
||||||
|
int64 initial_height = 6;
|
||||||
|
}
|
||||||
|
|
||||||
|
message RequestQuery {
|
||||||
|
bytes data = 1;
|
||||||
|
string path = 2;
|
||||||
|
int64 height = 3;
|
||||||
|
bool prove = 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
message RequestBeginBlock {
|
||||||
|
bytes hash = 1;
|
||||||
|
tendermint.types.Header header = 2 [(gogoproto.nullable) = false];
|
||||||
|
LastCommitInfo last_commit_info = 3 [(gogoproto.nullable) = false];
|
||||||
|
repeated Evidence byzantine_validators = 4 [(gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
enum CheckTxType {
|
||||||
|
NEW = 0 [(gogoproto.enumvalue_customname) = "New"];
|
||||||
|
RECHECK = 1 [(gogoproto.enumvalue_customname) = "Recheck"];
|
||||||
|
}
|
||||||
|
|
||||||
|
message RequestCheckTx {
|
||||||
|
bytes tx = 1;
|
||||||
|
CheckTxType type = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
message RequestDeliverTx {
|
||||||
|
bytes tx = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message RequestEndBlock {
|
||||||
|
int64 height = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message RequestCommit {}
|
||||||
|
|
||||||
|
// lists available snapshots
|
||||||
|
message RequestListSnapshots {
|
||||||
|
}
|
||||||
|
|
||||||
|
// offers a snapshot to the application
|
||||||
|
message RequestOfferSnapshot {
|
||||||
|
Snapshot snapshot = 1; // snapshot offered by peers
|
||||||
|
bytes app_hash = 2; // light client-verified app hash for snapshot height
|
||||||
|
}
|
||||||
|
|
||||||
|
// loads a snapshot chunk
|
||||||
|
message RequestLoadSnapshotChunk {
|
||||||
|
uint64 height = 1;
|
||||||
|
uint32 format = 2;
|
||||||
|
uint32 chunk = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Applies a snapshot chunk
|
||||||
|
message RequestApplySnapshotChunk {
|
||||||
|
uint32 index = 1;
|
||||||
|
bytes chunk = 2;
|
||||||
|
string sender = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
//----------------------------------------
|
||||||
|
// Response types
|
||||||
|
|
||||||
|
message Response {
|
||||||
|
oneof value {
|
||||||
|
ResponseException exception = 1;
|
||||||
|
ResponseEcho echo = 2;
|
||||||
|
ResponseFlush flush = 3;
|
||||||
|
ResponseInfo info = 4;
|
||||||
|
ResponseSetOption set_option = 5;
|
||||||
|
ResponseInitChain init_chain = 6;
|
||||||
|
ResponseQuery query = 7;
|
||||||
|
ResponseBeginBlock begin_block = 8;
|
||||||
|
ResponseCheckTx check_tx = 9;
|
||||||
|
ResponseDeliverTx deliver_tx = 10;
|
||||||
|
ResponseEndBlock end_block = 11;
|
||||||
|
ResponseCommit commit = 12;
|
||||||
|
ResponseListSnapshots list_snapshots = 13;
|
||||||
|
ResponseOfferSnapshot offer_snapshot = 14;
|
||||||
|
ResponseLoadSnapshotChunk load_snapshot_chunk = 15;
|
||||||
|
ResponseApplySnapshotChunk apply_snapshot_chunk = 16;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// nondeterministic
|
||||||
|
message ResponseException {
|
||||||
|
string error = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message ResponseEcho {
|
||||||
|
string message = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message ResponseFlush {}
|
||||||
|
|
||||||
|
message ResponseInfo {
|
||||||
|
string data = 1;
|
||||||
|
|
||||||
|
string version = 2;
|
||||||
|
uint64 app_version = 3;
|
||||||
|
|
||||||
|
int64 last_block_height = 4;
|
||||||
|
bytes last_block_app_hash = 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
// nondeterministic
|
||||||
|
message ResponseSetOption {
|
||||||
|
uint32 code = 1;
|
||||||
|
// bytes data = 2;
|
||||||
|
string log = 3;
|
||||||
|
string info = 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
message ResponseInitChain {
|
||||||
|
ConsensusParams consensus_params = 1;
|
||||||
|
repeated ValidatorUpdate validators = 2 [(gogoproto.nullable) = false];
|
||||||
|
bytes app_hash = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
message ResponseQuery {
|
||||||
|
uint32 code = 1;
|
||||||
|
// bytes data = 2; // use "value" instead.
|
||||||
|
string log = 3; // nondeterministic
|
||||||
|
string info = 4; // nondeterministic
|
||||||
|
int64 index = 5;
|
||||||
|
bytes key = 6;
|
||||||
|
bytes value = 7;
|
||||||
|
tendermint.crypto.ProofOps proof_ops = 8;
|
||||||
|
int64 height = 9;
|
||||||
|
string codespace = 10;
|
||||||
|
}
|
||||||
|
|
||||||
|
message ResponseBeginBlock {
|
||||||
|
repeated Event events = 1
|
||||||
|
[(gogoproto.nullable) = false, (gogoproto.jsontag) = "events,omitempty"];
|
||||||
|
}
|
||||||
|
|
||||||
|
message ResponseCheckTx {
|
||||||
|
uint32 code = 1;
|
||||||
|
bytes data = 2;
|
||||||
|
string log = 3; // nondeterministic
|
||||||
|
string info = 4; // nondeterministic
|
||||||
|
int64 gas_wanted = 5 [json_name = "gas_wanted"];
|
||||||
|
int64 gas_used = 6 [json_name = "gas_used"];
|
||||||
|
repeated Event events = 7
|
||||||
|
[(gogoproto.nullable) = false, (gogoproto.jsontag) = "events,omitempty"];
|
||||||
|
string codespace = 8;
|
||||||
|
}
|
||||||
|
|
||||||
|
message ResponseDeliverTx {
|
||||||
|
uint32 code = 1;
|
||||||
|
bytes data = 2;
|
||||||
|
string log = 3; // nondeterministic
|
||||||
|
string info = 4; // nondeterministic
|
||||||
|
int64 gas_wanted = 5 [json_name = "gas_wanted"];
|
||||||
|
int64 gas_used = 6 [json_name = "gas_used"];
|
||||||
|
repeated Event events = 7
|
||||||
|
[(gogoproto.nullable) = false, (gogoproto.jsontag) = "events,omitempty"]; // nondeterministic
|
||||||
|
string codespace = 8;
|
||||||
|
}
|
||||||
|
|
||||||
|
message ResponseEndBlock {
|
||||||
|
repeated ValidatorUpdate validator_updates = 1
|
||||||
|
[(gogoproto.nullable) = false];
|
||||||
|
ConsensusParams consensus_param_updates = 2;
|
||||||
|
repeated Event events = 3
|
||||||
|
[(gogoproto.nullable) = false, (gogoproto.jsontag) = "events,omitempty"];
|
||||||
|
}
|
||||||
|
|
||||||
|
message ResponseCommit {
|
||||||
|
// reserve 1
|
||||||
|
bytes data = 2;
|
||||||
|
int64 retain_height = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
message ResponseListSnapshots {
|
||||||
|
repeated Snapshot snapshots = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message ResponseOfferSnapshot {
|
||||||
|
Result result = 1;
|
||||||
|
|
||||||
|
enum Result {
|
||||||
|
UNKNOWN = 0; // Unknown result, abort all snapshot restoration
|
||||||
|
ACCEPT = 1; // Snapshot accepted, apply chunks
|
||||||
|
ABORT = 2; // Abort all snapshot restoration
|
||||||
|
REJECT = 3; // Reject this specific snapshot, try others
|
||||||
|
REJECT_FORMAT = 4; // Reject all snapshots of this format, try others
|
||||||
|
REJECT_SENDER = 5; // Reject all snapshots from the sender(s), try others
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
message ResponseLoadSnapshotChunk {
|
||||||
|
bytes chunk = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message ResponseApplySnapshotChunk {
|
||||||
|
Result result = 1;
|
||||||
|
repeated uint32 refetch_chunks = 2; // Chunks to refetch and reapply
|
||||||
|
repeated string reject_senders = 3; // Chunk senders to reject and ban
|
||||||
|
|
||||||
|
enum Result {
|
||||||
|
UNKNOWN = 0; // Unknown result, abort all snapshot restoration
|
||||||
|
ACCEPT = 1; // Chunk successfully accepted
|
||||||
|
ABORT = 2; // Abort all snapshot restoration
|
||||||
|
RETRY = 3; // Retry chunk (combine with refetch and reject)
|
||||||
|
RETRY_SNAPSHOT = 4; // Retry snapshot (combine with refetch and reject)
|
||||||
|
REJECT_SNAPSHOT = 5; // Reject this snapshot, try others
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//----------------------------------------
|
||||||
|
// Misc.
|
||||||
|
|
||||||
|
// ConsensusParams contains all consensus-relevant parameters
|
||||||
|
// that can be adjusted by the abci app
|
||||||
|
message ConsensusParams {
|
||||||
|
BlockParams block = 1;
|
||||||
|
tendermint.types.EvidenceParams evidence = 2;
|
||||||
|
tendermint.types.ValidatorParams validator = 3;
|
||||||
|
tendermint.types.VersionParams version = 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
// BlockParams contains limits on the block size.
|
||||||
|
message BlockParams {
|
||||||
|
// Note: must be greater than 0
|
||||||
|
int64 max_bytes = 1;
|
||||||
|
// Note: must be greater or equal to -1
|
||||||
|
int64 max_gas = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
message LastCommitInfo {
|
||||||
|
int32 round = 1;
|
||||||
|
repeated VoteInfo votes = 2 [(gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Event allows application developers to attach additional information to
|
||||||
|
// ResponseBeginBlock, ResponseEndBlock, ResponseCheckTx and ResponseDeliverTx.
|
||||||
|
// Later, transactions may be queried using these events.
|
||||||
|
message Event {
|
||||||
|
string type = 1;
|
||||||
|
repeated EventAttribute attributes = 2 [
|
||||||
|
(gogoproto.nullable) = false,
|
||||||
|
(gogoproto.jsontag) = "attributes,omitempty"
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
// EventAttribute is a single key-value pair, associated with an event.
|
||||||
|
message EventAttribute {
|
||||||
|
bytes key = 1;
|
||||||
|
bytes value = 2;
|
||||||
|
bool index = 3; // nondeterministic
|
||||||
|
}
|
||||||
|
|
||||||
|
// TxResult contains results of executing the transaction.
|
||||||
|
//
|
||||||
|
// One usage is indexing transaction results.
|
||||||
|
message TxResult {
|
||||||
|
int64 height = 1;
|
||||||
|
uint32 index = 2;
|
||||||
|
bytes tx = 3;
|
||||||
|
ResponseDeliverTx result = 4 [(gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
//----------------------------------------
|
||||||
|
// Blockchain Types
|
||||||
|
|
||||||
|
// Validator
|
||||||
|
message Validator {
|
||||||
|
bytes address = 1; // The first 20 bytes of SHA256(public key)
|
||||||
|
// PubKey pub_key = 2 [(gogoproto.nullable)=false];
|
||||||
|
int64 power = 3; // The voting power
|
||||||
|
}
|
||||||
|
|
||||||
|
// ValidatorUpdate
|
||||||
|
message ValidatorUpdate {
|
||||||
|
tendermint.crypto.PublicKey pub_key = 1 [(gogoproto.nullable) = false];
|
||||||
|
int64 power = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// VoteInfo
|
||||||
|
message VoteInfo {
|
||||||
|
Validator validator = 1 [(gogoproto.nullable) = false];
|
||||||
|
bool signed_last_block = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
enum EvidenceType {
|
||||||
|
UNKNOWN = 0;
|
||||||
|
DUPLICATE_VOTE = 1;
|
||||||
|
LIGHT_CLIENT_ATTACK = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
message Evidence {
|
||||||
|
EvidenceType type = 1;
|
||||||
|
// The offending validator
|
||||||
|
Validator validator = 2 [(gogoproto.nullable) = false];
|
||||||
|
// The height when the offense occurred
|
||||||
|
int64 height = 3;
|
||||||
|
// The corresponding time where the offense occurred
|
||||||
|
google.protobuf.Timestamp time = 4 [
|
||||||
|
(gogoproto.nullable) = false,
|
||||||
|
(gogoproto.stdtime) = true
|
||||||
|
];
|
||||||
|
// Total voting power of the validator set in case the ABCI application does
|
||||||
|
// not store historical validators.
|
||||||
|
// https://github.com/tendermint/tendermint/issues/4581
|
||||||
|
int64 total_voting_power = 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
//----------------------------------------
|
||||||
|
// State Sync Types
|
||||||
|
|
||||||
|
message Snapshot {
|
||||||
|
uint64 height = 1; // The height at which the snapshot was taken
|
||||||
|
uint32 format = 2; // The application-specific snapshot format
|
||||||
|
uint32 chunks = 3; // Number of chunks in the snapshot
|
||||||
|
bytes hash = 4; // Arbitrary snapshot hash, equal only if identical
|
||||||
|
bytes metadata = 5; // Arbitrary application metadata
|
||||||
|
}
|
||||||
|
|
||||||
|
//----------------------------------------
|
||||||
|
// Service Definition
|
||||||
|
|
||||||
|
service ABCIApplication {
|
||||||
|
rpc Echo(RequestEcho) returns (ResponseEcho);
|
||||||
|
rpc Flush(RequestFlush) returns (ResponseFlush);
|
||||||
|
rpc Info(RequestInfo) returns (ResponseInfo);
|
||||||
|
rpc SetOption(RequestSetOption) returns (ResponseSetOption);
|
||||||
|
rpc DeliverTx(RequestDeliverTx) returns (ResponseDeliverTx);
|
||||||
|
rpc CheckTx(RequestCheckTx) returns (ResponseCheckTx);
|
||||||
|
rpc Query(RequestQuery) returns (ResponseQuery);
|
||||||
|
rpc Commit(RequestCommit) returns (ResponseCommit);
|
||||||
|
rpc InitChain(RequestInitChain) returns (ResponseInitChain);
|
||||||
|
rpc BeginBlock(RequestBeginBlock) returns (ResponseBeginBlock);
|
||||||
|
rpc EndBlock(RequestEndBlock) returns (ResponseEndBlock);
|
||||||
|
rpc ListSnapshots(RequestListSnapshots) returns (ResponseListSnapshots);
|
||||||
|
rpc OfferSnapshot(RequestOfferSnapshot) returns (ResponseOfferSnapshot);
|
||||||
|
rpc LoadSnapshotChunk(RequestLoadSnapshotChunk) returns (ResponseLoadSnapshotChunk);
|
||||||
|
rpc ApplySnapshotChunk(RequestApplySnapshotChunk) returns (ResponseApplySnapshotChunk);
|
||||||
|
}
|
17
proto/tendermint/crypto/keys.proto
Normal file
17
proto/tendermint/crypto/keys.proto
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package tendermint.crypto;
|
||||||
|
|
||||||
|
option go_package = "github.com/tendermint/tendermint/proto/tendermint/crypto";
|
||||||
|
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
|
||||||
|
// PublicKey defines the keys available for use with Tendermint Validators
|
||||||
|
message PublicKey {
|
||||||
|
option (gogoproto.compare) = true;
|
||||||
|
option (gogoproto.equal) = true;
|
||||||
|
|
||||||
|
oneof sum {
|
||||||
|
bytes ed25519 = 1;
|
||||||
|
bytes secp256k1 = 2;
|
||||||
|
}
|
||||||
|
}
|
41
proto/tendermint/crypto/proof.proto
Normal file
41
proto/tendermint/crypto/proof.proto
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package tendermint.crypto;
|
||||||
|
|
||||||
|
option go_package = "github.com/tendermint/tendermint/proto/tendermint/crypto";
|
||||||
|
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
|
||||||
|
message Proof {
|
||||||
|
int64 total = 1;
|
||||||
|
int64 index = 2;
|
||||||
|
bytes leaf_hash = 3;
|
||||||
|
repeated bytes aunts = 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
message ValueOp {
|
||||||
|
// Encoded in ProofOp.Key.
|
||||||
|
bytes key = 1;
|
||||||
|
|
||||||
|
// To encode in ProofOp.Data
|
||||||
|
Proof proof = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
message DominoOp {
|
||||||
|
string key = 1;
|
||||||
|
string input = 2;
|
||||||
|
string output = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ProofOp defines an operation used for calculating Merkle root
|
||||||
|
// The data could be arbitrary format, providing nessecary data
|
||||||
|
// for example neighbouring node hash
|
||||||
|
message ProofOp {
|
||||||
|
string type = 1;
|
||||||
|
bytes key = 2;
|
||||||
|
bytes data = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ProofOps is Merkle proof defined by the list of ProofOps
|
||||||
|
message ProofOps {
|
||||||
|
repeated ProofOp ops = 1 [(gogoproto.nullable) = false];
|
||||||
|
}
|
9
proto/tendermint/libs/bits/types.proto
Normal file
9
proto/tendermint/libs/bits/types.proto
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package tendermint.libs.bits;
|
||||||
|
|
||||||
|
option go_package = "github.com/tendermint/tendermint/proto/tendermint/libs/bits";
|
||||||
|
|
||||||
|
message BitArray {
|
||||||
|
int64 bits = 1;
|
||||||
|
repeated uint64 elems = 2;
|
||||||
|
}
|
34
proto/tendermint/p2p/types.proto
Normal file
34
proto/tendermint/p2p/types.proto
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package tendermint.p2p;
|
||||||
|
|
||||||
|
option go_package = "github.com/tendermint/tendermint/proto/tendermint/p2p";
|
||||||
|
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
|
||||||
|
message NetAddress {
|
||||||
|
string id = 1 [(gogoproto.customname) = "ID"];
|
||||||
|
string ip = 2 [(gogoproto.customname) = "IP"];
|
||||||
|
uint32 port = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
message ProtocolVersion {
|
||||||
|
uint64 p2p = 1 [(gogoproto.customname) = "P2P"];
|
||||||
|
uint64 block = 2;
|
||||||
|
uint64 app = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
message DefaultNodeInfo {
|
||||||
|
ProtocolVersion protocol_version = 1 [(gogoproto.nullable) = false];
|
||||||
|
string default_node_id = 2 [(gogoproto.customname) = "DefaultNodeID"];
|
||||||
|
string listen_addr = 3;
|
||||||
|
string network = 4;
|
||||||
|
string version = 5;
|
||||||
|
bytes channels = 6;
|
||||||
|
string moniker = 7;
|
||||||
|
DefaultNodeInfoOther other = 8 [(gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
message DefaultNodeInfoOther {
|
||||||
|
string tx_index = 1;
|
||||||
|
string rpc_address = 2 [(gogoproto.customname) = "RPCAddress"];
|
||||||
|
}
|
15
proto/tendermint/types/block.proto
Normal file
15
proto/tendermint/types/block.proto
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package tendermint.types;
|
||||||
|
|
||||||
|
option go_package = "github.com/tendermint/tendermint/proto/tendermint/types";
|
||||||
|
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
import "tendermint/types/types.proto";
|
||||||
|
import "tendermint/types/evidence.proto";
|
||||||
|
|
||||||
|
message Block {
|
||||||
|
Header header = 1 [(gogoproto.nullable) = false];
|
||||||
|
Data data = 2 [(gogoproto.nullable) = false];
|
||||||
|
tendermint.types.EvidenceList evidence = 3 [(gogoproto.nullable) = false];
|
||||||
|
Commit last_commit = 4;
|
||||||
|
}
|
38
proto/tendermint/types/evidence.proto
Normal file
38
proto/tendermint/types/evidence.proto
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package tendermint.types;
|
||||||
|
|
||||||
|
option go_package = "github.com/tendermint/tendermint/proto/tendermint/types";
|
||||||
|
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
import "google/protobuf/timestamp.proto";
|
||||||
|
import "tendermint/types/types.proto";
|
||||||
|
import "tendermint/types/validator.proto";
|
||||||
|
|
||||||
|
message Evidence {
|
||||||
|
oneof sum {
|
||||||
|
DuplicateVoteEvidence duplicate_vote_evidence = 1;
|
||||||
|
LightClientAttackEvidence light_client_attack_evidence = 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// DuplicateVoteEvidence contains evidence of a validator signed two conflicting votes.
|
||||||
|
message DuplicateVoteEvidence {
|
||||||
|
tendermint.types.Vote vote_a = 1;
|
||||||
|
tendermint.types.Vote vote_b = 2;
|
||||||
|
int64 total_voting_power = 3;
|
||||||
|
int64 validator_power = 4;
|
||||||
|
google.protobuf.Timestamp timestamp = 5 [(gogoproto.nullable) = false, (gogoproto.stdtime) = true];
|
||||||
|
}
|
||||||
|
|
||||||
|
// LightClientAttackEvidence contains evidence of a set of validators attempting to mislead a light client.
|
||||||
|
message LightClientAttackEvidence {
|
||||||
|
tendermint.types.LightBlock conflicting_block = 1;
|
||||||
|
int64 common_height = 2;
|
||||||
|
repeated tendermint.types.Validator byzantine_validators = 3;
|
||||||
|
int64 total_voting_power = 4;
|
||||||
|
google.protobuf.Timestamp timestamp = 5 [(gogoproto.nullable) = false, (gogoproto.stdtime) = true];
|
||||||
|
}
|
||||||
|
|
||||||
|
message EvidenceList {
|
||||||
|
repeated Evidence evidence = 1 [(gogoproto.nullable) = false];
|
||||||
|
}
|
80
proto/tendermint/types/params.proto
Normal file
80
proto/tendermint/types/params.proto
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package tendermint.types;
|
||||||
|
|
||||||
|
option go_package = "github.com/tendermint/tendermint/proto/tendermint/types";
|
||||||
|
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
import "google/protobuf/duration.proto";
|
||||||
|
|
||||||
|
option (gogoproto.equal_all) = true;
|
||||||
|
|
||||||
|
// ConsensusParams contains consensus critical parameters that determine the
|
||||||
|
// validity of blocks.
|
||||||
|
message ConsensusParams {
|
||||||
|
BlockParams block = 1 [(gogoproto.nullable) = false];
|
||||||
|
EvidenceParams evidence = 2 [(gogoproto.nullable) = false];
|
||||||
|
ValidatorParams validator = 3 [(gogoproto.nullable) = false];
|
||||||
|
VersionParams version = 4 [(gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
// BlockParams contains limits on the block size.
|
||||||
|
message BlockParams {
|
||||||
|
// Max block size, in bytes.
|
||||||
|
// Note: must be greater than 0
|
||||||
|
int64 max_bytes = 1;
|
||||||
|
// Max gas per block.
|
||||||
|
// Note: must be greater or equal to -1
|
||||||
|
int64 max_gas = 2;
|
||||||
|
// Minimum time increment between consecutive blocks (in milliseconds) If the
|
||||||
|
// block header timestamp is ahead of the system clock, decrease this value.
|
||||||
|
//
|
||||||
|
// Not exposed to the application.
|
||||||
|
int64 time_iota_ms = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
// EvidenceParams determine how we handle evidence of malfeasance.
|
||||||
|
message EvidenceParams {
|
||||||
|
// Max age of evidence, in blocks.
|
||||||
|
//
|
||||||
|
// The basic formula for calculating this is: MaxAgeDuration / {average block
|
||||||
|
// time}.
|
||||||
|
int64 max_age_num_blocks = 1;
|
||||||
|
|
||||||
|
// Max age of evidence, in time.
|
||||||
|
//
|
||||||
|
// It should correspond with an app's "unbonding period" or other similar
|
||||||
|
// mechanism for handling [Nothing-At-Stake
|
||||||
|
// attacks](https://github.com/ethereum/wiki/wiki/Proof-of-Stake-FAQ#what-is-the-nothing-at-stake-problem-and-how-can-it-be-fixed).
|
||||||
|
google.protobuf.Duration max_age_duration = 2
|
||||||
|
[(gogoproto.nullable) = false, (gogoproto.stdduration) = true];
|
||||||
|
|
||||||
|
// This sets the maximum size of total evidence in bytes that can be committed in a single block.
|
||||||
|
// and should fall comfortably under the max block bytes.
|
||||||
|
// Default is 1048576 or 1MB
|
||||||
|
int64 max_bytes = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ValidatorParams restrict the public key types validators can use.
|
||||||
|
// NOTE: uses ABCI pubkey naming, not Amino names.
|
||||||
|
message ValidatorParams {
|
||||||
|
option (gogoproto.populate) = true;
|
||||||
|
option (gogoproto.equal) = true;
|
||||||
|
|
||||||
|
repeated string pub_key_types = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// VersionParams contains the ABCI application version.
|
||||||
|
message VersionParams {
|
||||||
|
option (gogoproto.populate) = true;
|
||||||
|
option (gogoproto.equal) = true;
|
||||||
|
|
||||||
|
uint64 app_version = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// HashedParams is a subset of ConsensusParams.
|
||||||
|
//
|
||||||
|
// It is hashed into the Header.ConsensusHash.
|
||||||
|
message HashedParams {
|
||||||
|
int64 block_max_bytes = 1;
|
||||||
|
int64 block_max_gas = 2;
|
||||||
|
}
|
157
proto/tendermint/types/types.proto
Normal file
157
proto/tendermint/types/types.proto
Normal file
@ -0,0 +1,157 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package tendermint.types;
|
||||||
|
|
||||||
|
option go_package = "github.com/tendermint/tendermint/proto/tendermint/types";
|
||||||
|
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
import "google/protobuf/timestamp.proto";
|
||||||
|
import "tendermint/crypto/proof.proto";
|
||||||
|
import "tendermint/version/types.proto";
|
||||||
|
import "tendermint/types/validator.proto";
|
||||||
|
|
||||||
|
// BlockIdFlag indicates which BlcokID the signature is for
|
||||||
|
enum BlockIDFlag {
|
||||||
|
option (gogoproto.goproto_enum_stringer) = true;
|
||||||
|
option (gogoproto.goproto_enum_prefix) = false;
|
||||||
|
|
||||||
|
BLOCK_ID_FLAG_UNKNOWN = 0 [(gogoproto.enumvalue_customname) = "BlockIDFlagUnknown"];
|
||||||
|
BLOCK_ID_FLAG_ABSENT = 1 [(gogoproto.enumvalue_customname) = "BlockIDFlagAbsent"];
|
||||||
|
BLOCK_ID_FLAG_COMMIT = 2 [(gogoproto.enumvalue_customname) = "BlockIDFlagCommit"];
|
||||||
|
BLOCK_ID_FLAG_NIL = 3 [(gogoproto.enumvalue_customname) = "BlockIDFlagNil"];
|
||||||
|
}
|
||||||
|
|
||||||
|
// SignedMsgType is a type of signed message in the consensus.
|
||||||
|
enum SignedMsgType {
|
||||||
|
option (gogoproto.goproto_enum_stringer) = true;
|
||||||
|
option (gogoproto.goproto_enum_prefix) = false;
|
||||||
|
|
||||||
|
SIGNED_MSG_TYPE_UNKNOWN = 0 [(gogoproto.enumvalue_customname) = "UnknownType"];
|
||||||
|
// Votes
|
||||||
|
SIGNED_MSG_TYPE_PREVOTE = 1 [(gogoproto.enumvalue_customname) = "PrevoteType"];
|
||||||
|
SIGNED_MSG_TYPE_PRECOMMIT = 2 [(gogoproto.enumvalue_customname) = "PrecommitType"];
|
||||||
|
|
||||||
|
// Proposals
|
||||||
|
SIGNED_MSG_TYPE_PROPOSAL = 32 [(gogoproto.enumvalue_customname) = "ProposalType"];
|
||||||
|
}
|
||||||
|
|
||||||
|
// PartsetHeader
|
||||||
|
message PartSetHeader {
|
||||||
|
uint32 total = 1;
|
||||||
|
bytes hash = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
message Part {
|
||||||
|
uint32 index = 1;
|
||||||
|
bytes bytes = 2;
|
||||||
|
tendermint.crypto.Proof proof = 3 [(gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
// BlockID
|
||||||
|
message BlockID {
|
||||||
|
bytes hash = 1;
|
||||||
|
PartSetHeader part_set_header = 2 [(gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
// --------------------------------
|
||||||
|
|
||||||
|
// Header defines the structure of a Tendermint block header.
|
||||||
|
message Header {
|
||||||
|
// basic block info
|
||||||
|
tendermint.version.Consensus version = 1 [(gogoproto.nullable) = false];
|
||||||
|
string chain_id = 2 [(gogoproto.customname) = "ChainID"];
|
||||||
|
int64 height = 3;
|
||||||
|
google.protobuf.Timestamp time = 4 [(gogoproto.nullable) = false, (gogoproto.stdtime) = true];
|
||||||
|
|
||||||
|
// prev block info
|
||||||
|
BlockID last_block_id = 5 [(gogoproto.nullable) = false];
|
||||||
|
|
||||||
|
// hashes of block data
|
||||||
|
bytes last_commit_hash = 6; // commit from validators from the last block
|
||||||
|
bytes data_hash = 7; // transactions
|
||||||
|
|
||||||
|
// hashes from the app output from the prev block
|
||||||
|
bytes validators_hash = 8; // validators for the current block
|
||||||
|
bytes next_validators_hash = 9; // validators for the next block
|
||||||
|
bytes consensus_hash = 10; // consensus params for current block
|
||||||
|
bytes app_hash = 11; // state after txs from the previous block
|
||||||
|
bytes last_results_hash = 12; // root hash of all results from the txs from the previous block
|
||||||
|
|
||||||
|
// consensus info
|
||||||
|
bytes evidence_hash = 13; // evidence included in the block
|
||||||
|
bytes proposer_address = 14; // original proposer of the block
|
||||||
|
}
|
||||||
|
|
||||||
|
// Data contains the set of transactions included in the block
|
||||||
|
message Data {
|
||||||
|
// Txs that will be applied by state @ block.Height+1.
|
||||||
|
// NOTE: not all txs here are valid. We're just agreeing on the order first.
|
||||||
|
// This means that block.AppHash does not include these txs.
|
||||||
|
repeated bytes txs = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Vote represents a prevote, precommit, or commit vote from validators for
|
||||||
|
// consensus.
|
||||||
|
message Vote {
|
||||||
|
SignedMsgType type = 1;
|
||||||
|
int64 height = 2;
|
||||||
|
int32 round = 3;
|
||||||
|
BlockID block_id = 4
|
||||||
|
[(gogoproto.nullable) = false, (gogoproto.customname) = "BlockID"]; // zero if vote is nil.
|
||||||
|
google.protobuf.Timestamp timestamp = 5
|
||||||
|
[(gogoproto.nullable) = false, (gogoproto.stdtime) = true];
|
||||||
|
bytes validator_address = 6;
|
||||||
|
int32 validator_index = 7;
|
||||||
|
bytes signature = 8;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Commit contains the evidence that a block was committed by a set of validators.
|
||||||
|
message Commit {
|
||||||
|
int64 height = 1;
|
||||||
|
int32 round = 2;
|
||||||
|
BlockID block_id = 3 [(gogoproto.nullable) = false, (gogoproto.customname) = "BlockID"];
|
||||||
|
repeated CommitSig signatures = 4 [(gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
// CommitSig is a part of the Vote included in a Commit.
|
||||||
|
message CommitSig {
|
||||||
|
BlockIDFlag block_id_flag = 1;
|
||||||
|
bytes validator_address = 2;
|
||||||
|
google.protobuf.Timestamp timestamp = 3
|
||||||
|
[(gogoproto.nullable) = false, (gogoproto.stdtime) = true];
|
||||||
|
bytes signature = 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
message Proposal {
|
||||||
|
SignedMsgType type = 1;
|
||||||
|
int64 height = 2;
|
||||||
|
int32 round = 3;
|
||||||
|
int32 pol_round = 4;
|
||||||
|
BlockID block_id = 5 [(gogoproto.customname) = "BlockID", (gogoproto.nullable) = false];
|
||||||
|
google.protobuf.Timestamp timestamp = 6
|
||||||
|
[(gogoproto.nullable) = false, (gogoproto.stdtime) = true];
|
||||||
|
bytes signature = 7;
|
||||||
|
}
|
||||||
|
|
||||||
|
message SignedHeader {
|
||||||
|
Header header = 1;
|
||||||
|
Commit commit = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
message LightBlock {
|
||||||
|
SignedHeader signed_header = 1;
|
||||||
|
tendermint.types.ValidatorSet validator_set = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
message BlockMeta {
|
||||||
|
BlockID block_id = 1 [(gogoproto.customname) = "BlockID", (gogoproto.nullable) = false];
|
||||||
|
int64 block_size = 2;
|
||||||
|
Header header = 3 [(gogoproto.nullable) = false];
|
||||||
|
int64 num_txs = 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
// TxProof represents a Merkle proof of the presence of a transaction in the Merkle tree.
|
||||||
|
message TxProof {
|
||||||
|
bytes root_hash = 1;
|
||||||
|
bytes data = 2;
|
||||||
|
tendermint.crypto.Proof proof = 3;
|
||||||
|
}
|
25
proto/tendermint/types/validator.proto
Normal file
25
proto/tendermint/types/validator.proto
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package tendermint.types;
|
||||||
|
|
||||||
|
option go_package = "github.com/tendermint/tendermint/proto/tendermint/types";
|
||||||
|
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
import "tendermint/crypto/keys.proto";
|
||||||
|
|
||||||
|
message ValidatorSet {
|
||||||
|
repeated Validator validators = 1;
|
||||||
|
Validator proposer = 2;
|
||||||
|
int64 total_voting_power = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
message Validator {
|
||||||
|
bytes address = 1;
|
||||||
|
tendermint.crypto.PublicKey pub_key = 2 [(gogoproto.nullable) = false];
|
||||||
|
int64 voting_power = 3;
|
||||||
|
int64 proposer_priority = 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
message SimpleValidator {
|
||||||
|
tendermint.crypto.PublicKey pub_key = 1;
|
||||||
|
int64 voting_power = 2;
|
||||||
|
}
|
24
proto/tendermint/version/types.proto
Normal file
24
proto/tendermint/version/types.proto
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package tendermint.version;
|
||||||
|
|
||||||
|
option go_package = "github.com/tendermint/tendermint/proto/tendermint/version";
|
||||||
|
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
|
||||||
|
// App includes the protocol and software version for the application.
|
||||||
|
// This information is included in ResponseInfo. The App.Protocol can be
|
||||||
|
// updated in ResponseEndBlock.
|
||||||
|
message App {
|
||||||
|
uint64 protocol = 1;
|
||||||
|
string software = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Consensus captures the consensus rules for processing a block in the blockchain,
|
||||||
|
// including all blockchain data structures and the rules of the application's
|
||||||
|
// state transition machine.
|
||||||
|
message Consensus {
|
||||||
|
option (gogoproto.equal) = true;
|
||||||
|
|
||||||
|
uint64 block = 1;
|
||||||
|
uint64 app = 2;
|
||||||
|
}
|
15
proto/vulcanize/auction/v1beta1/genesis.proto
Normal file
15
proto/vulcanize/auction/v1beta1/genesis.proto
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package vulcanize.auction.v1beta1;
|
||||||
|
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
import "vulcanize/auction/v1beta1/types.proto";
|
||||||
|
|
||||||
|
option go_package = "github.com/tharsis/ethermint/x/auction/types";
|
||||||
|
|
||||||
|
// GenesisState defines the genesis state of the auction module
|
||||||
|
message GenesisState {
|
||||||
|
Params params = 1 [(gogoproto.nullable) = false];
|
||||||
|
repeated Auction auctions = 2 [
|
||||||
|
(gogoproto.moretags) = "json:\"bonds\" yaml:\"bonds\""
|
||||||
|
];
|
||||||
|
}
|
149
proto/vulcanize/auction/v1beta1/query.proto
Normal file
149
proto/vulcanize/auction/v1beta1/query.proto
Normal file
@ -0,0 +1,149 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package vulcanize.auction.v1beta1;
|
||||||
|
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
import "google/api/annotations.proto";
|
||||||
|
import "cosmos/base/query/v1beta1/pagination.proto";
|
||||||
|
import "cosmos/base/v1beta1/coin.proto";
|
||||||
|
import "vulcanize/auction/v1beta1/types.proto";
|
||||||
|
|
||||||
|
option go_package = "github.com/tharsis/ethermint/x/auction/types";
|
||||||
|
|
||||||
|
// AuctionsRequest is the format for querying all the auctions
|
||||||
|
message AuctionsRequest {
|
||||||
|
// pagination defines an optional pagination info for the next request
|
||||||
|
cosmos.base.query.v1beta1.PageRequest pagination = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// AuctionsResponse returns the list of all auctions
|
||||||
|
message AuctionsResponse {
|
||||||
|
// List of auctions
|
||||||
|
Auctions auctions = 1;
|
||||||
|
// pagination defines an optional pagination info for the next request
|
||||||
|
cosmos.base.query.v1beta1.PageRequest pagination = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// AuctionRequest is the format for querying a specific auction
|
||||||
|
message AuctionRequest {
|
||||||
|
// Auction ID
|
||||||
|
string id = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// AuctionResponse returns the details of the queried auction
|
||||||
|
message AuctionResponse {
|
||||||
|
// Auction details
|
||||||
|
Auction auction = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// BidRequest is the format for querying a specific bid in an auction
|
||||||
|
message BidRequest {
|
||||||
|
// Auction ID
|
||||||
|
string auction_id = 1;
|
||||||
|
// Bidder address
|
||||||
|
string bidder = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// BidResponse returns the details of the queried bid
|
||||||
|
message BidResponse {
|
||||||
|
// Bid details
|
||||||
|
Bid bid = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// BidsRequest is the format for querying all bids in an auction
|
||||||
|
message BidsRequest {
|
||||||
|
// Auction ID
|
||||||
|
string auction_id = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// BidsResponse returns details of all bids in an auction
|
||||||
|
message BidsResponse {
|
||||||
|
// List of bids in the auction
|
||||||
|
repeated Bid bids = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// AuctionsByBidderRequest is the format for querying all auctions containing a bidder address
|
||||||
|
message AuctionsByBidderRequest {
|
||||||
|
// Address of the bidder
|
||||||
|
string bidder_address = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// AuctionsByBidderResponse returns all auctions containing a bidder
|
||||||
|
message AuctionsByBidderResponse {
|
||||||
|
// List of auctions
|
||||||
|
Auctions auctions = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// AuctionsByOwnerRequest is the format for querying all auctions created by an owner
|
||||||
|
message AuctionsByOwnerRequest {
|
||||||
|
// Address of the owner
|
||||||
|
string owner_address = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// AuctionsByOwnerResponse returns all auctions created by an owner
|
||||||
|
message AuctionsByOwnerResponse {
|
||||||
|
// List of auctions
|
||||||
|
Auctions auctions = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryParamsRequest is the format to query the parameters of the auction module
|
||||||
|
message QueryParamsRequest {
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryParamsResponse returns parameters of the auction module
|
||||||
|
message QueryParamsResponse {
|
||||||
|
Params params = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// BalanceRequest is the format to fetch all balances
|
||||||
|
message BalanceRequest {
|
||||||
|
}
|
||||||
|
|
||||||
|
message BalanceResponse {
|
||||||
|
// Set of all balances within the auction
|
||||||
|
repeated cosmos.base.v1beta1.Coin balance = 1 [
|
||||||
|
(gogoproto.nullable) = false
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Query defines the gRPC querier interface for the auction module
|
||||||
|
service Query {
|
||||||
|
// Auctions queries all auctions
|
||||||
|
rpc Auctions(AuctionsRequest) returns (AuctionsResponse) {
|
||||||
|
option (google.api.http).get = "/vulcanize/auction/v1beta1/auctions";
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetAuction queries an auction
|
||||||
|
rpc GetAuction(AuctionRequest) returns (AuctionResponse) {
|
||||||
|
option (google.api.http).get = "/vulcanize/auction/v1beta1/auctions/{id}";
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetBid queries an auction bid
|
||||||
|
rpc GetBid(BidRequest) returns (BidResponse) {
|
||||||
|
option (google.api.http).get = "/vulcanize/auction/v1beta1/bids/{auction_id}/{bidder}";
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetBids queries all auction bids
|
||||||
|
rpc GetBids(BidsRequest) returns (BidsResponse) {
|
||||||
|
option (google.api.http).get = "/vulcanize/auction/v1beta1/bids/{auction_id}";
|
||||||
|
}
|
||||||
|
|
||||||
|
// AuctionsByBidder queries auctions by bidder
|
||||||
|
rpc AuctionsByBidder(AuctionsByBidderRequest) returns (AuctionsByBidderResponse) {
|
||||||
|
option (google.api.http).get = "/vulcanize/auction/v1beta1/by-bidder/{bidder_address}";
|
||||||
|
}
|
||||||
|
|
||||||
|
// AuctionsByOwner queries auctions by owner
|
||||||
|
rpc AuctionsByOwner(AuctionsByOwnerRequest) returns (AuctionsByOwnerResponse) {
|
||||||
|
option (google.api.http).get = "/vulcanize/auction/v1beta1/by-owner/{owner_address}";
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryParams implements the params query command
|
||||||
|
rpc QueryParams(QueryParamsRequest) returns (QueryParamsResponse) {
|
||||||
|
option (google.api.http).get = "/vulcanize/auction/v1beta1/params";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Balance queries the auction module account balance
|
||||||
|
rpc Balance(BalanceRequest) returns (BalanceResponse) {
|
||||||
|
option (google.api.http).get = "/vulcanize/auction/v1beta1/balance";
|
||||||
|
}
|
||||||
|
}
|
122
proto/vulcanize/auction/v1beta1/tx.proto
Normal file
122
proto/vulcanize/auction/v1beta1/tx.proto
Normal file
@ -0,0 +1,122 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package vulcanize.auction.v1beta1;
|
||||||
|
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
import "google/protobuf/duration.proto";
|
||||||
|
import "cosmos/base/v1beta1/coin.proto";
|
||||||
|
import "vulcanize/auction/v1beta1/types.proto";
|
||||||
|
|
||||||
|
option go_package = "github.com/tharsis/ethermint/x/auction/types";
|
||||||
|
|
||||||
|
// MsgCreateAuction defines a create auction message
|
||||||
|
message MsgCreateAuction {
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
|
||||||
|
// Duration of the commits phase in seconds
|
||||||
|
google.protobuf.Duration commits_duration = 1 [
|
||||||
|
(gogoproto.nullable) = false,
|
||||||
|
(gogoproto.stdduration) = true,
|
||||||
|
(gogoproto.moretags) = "json:\"commits_duration\" yaml:\"commits_duration\""
|
||||||
|
];
|
||||||
|
// Duration of the reveals phase in seconds
|
||||||
|
google.protobuf.Duration reveals_duration = 2 [
|
||||||
|
(gogoproto.nullable) = false,
|
||||||
|
(gogoproto.stdduration) = true,
|
||||||
|
(gogoproto.moretags) = "json:\"reveals_duration\" yaml:\"reveals_duration\""
|
||||||
|
];
|
||||||
|
// Commit fees
|
||||||
|
cosmos.base.v1beta1.Coin commit_fee = 3 [
|
||||||
|
(gogoproto.nullable) = false,
|
||||||
|
(gogoproto.moretags) = "json:\"commit_fee\" yaml:\"commit_fee\""
|
||||||
|
];
|
||||||
|
// Reveal fees
|
||||||
|
cosmos.base.v1beta1.Coin reveal_fee = 4 [
|
||||||
|
(gogoproto.nullable) = false,
|
||||||
|
(gogoproto.moretags) = "json:\"reveal_fee\" yaml:\"reveal_fee\""
|
||||||
|
];
|
||||||
|
// Minimum acceptable bid amount
|
||||||
|
cosmos.base.v1beta1.Coin minimum_bid = 5 [
|
||||||
|
(gogoproto.nullable) = false,
|
||||||
|
(gogoproto.moretags) = "json:\"minimum_bid\" yaml:\"minimum_bid\""
|
||||||
|
];
|
||||||
|
// Address of the signer
|
||||||
|
string signer = 6 [
|
||||||
|
(gogoproto.moretags) = "json:\"signer\" yaml:\"signer\""
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
// MsgCreateAuctionResponse returns the details of the created auction
|
||||||
|
message MsgCreateAuctionResponse {
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
// Auction details
|
||||||
|
Auction auction = 1 [
|
||||||
|
(gogoproto.moretags) = "json:\"auction\" yaml:\"auction\""
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
// CommitBid defines the message to commit a bid
|
||||||
|
message MsgCommitBid {
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
|
||||||
|
// Auction ID
|
||||||
|
string auction_id = 1 [
|
||||||
|
(gogoproto.moretags) = "json:\"auction_id\" yaml:\"auction_id\""
|
||||||
|
];
|
||||||
|
// Commit Hash
|
||||||
|
string commit_hash = 2 [
|
||||||
|
(gogoproto.moretags) = "json:\"commit_hash\" yaml:\"commit_hash\""
|
||||||
|
];
|
||||||
|
// Address of the signer
|
||||||
|
string signer = 3 [
|
||||||
|
(gogoproto.moretags) = "json:\"signer\" yaml:\"signer\""
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
// RevealBid defines the message to reveal a bid
|
||||||
|
message MsgRevealBid {
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
|
||||||
|
// Auction ID
|
||||||
|
string auction_id = 1 [
|
||||||
|
(gogoproto.moretags) = "json:\"auction_id\" yaml:\"auction_id\""
|
||||||
|
];
|
||||||
|
// Commit Hash
|
||||||
|
string reveal = 2 [
|
||||||
|
(gogoproto.moretags) = "json:\"reveal\" yaml:\"reveal\""
|
||||||
|
];
|
||||||
|
// Address of the signer
|
||||||
|
string signer = 3 [
|
||||||
|
(gogoproto.moretags) = "json:\"signer\" yaml:\"signer\""
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
// MsgCommitBidResponse returns the state of the auction after the bid creation
|
||||||
|
message MsgCommitBidResponse {
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
// Auction details
|
||||||
|
Bid bid = 1 [
|
||||||
|
(gogoproto.moretags) = "json:\"bid\" yaml:\"bid\""
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
// MsgRevealBidResponse returns the state of the auction after the bid reveal
|
||||||
|
message MsgRevealBidResponse {
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
// Auction details
|
||||||
|
Auction auction = 1 [
|
||||||
|
(gogoproto.moretags) = "json:\"auction\" yaml:\"auction\""
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Tx defines the gRPC tx interface
|
||||||
|
service Msg {
|
||||||
|
// CreateAuction is the command for creating an auction
|
||||||
|
rpc CreateAuction(MsgCreateAuction) returns (MsgCreateAuctionResponse);
|
||||||
|
|
||||||
|
// CommitBid is the command for committing a bid
|
||||||
|
rpc CommitBid(MsgCommitBid) returns (MsgCommitBidResponse);
|
||||||
|
|
||||||
|
//RevealBid is the command for revealing a bid
|
||||||
|
rpc RevealBid(MsgRevealBid) returns (MsgRevealBidResponse);
|
||||||
|
}
|
||||||
|
|
135
proto/vulcanize/auction/v1beta1/types.proto
Normal file
135
proto/vulcanize/auction/v1beta1/types.proto
Normal file
@ -0,0 +1,135 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package vulcanize.auction.v1beta1;
|
||||||
|
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
import "google/protobuf/duration.proto";
|
||||||
|
import "google/protobuf/timestamp.proto";
|
||||||
|
import "cosmos/base/v1beta1/coin.proto";
|
||||||
|
|
||||||
|
option go_package = "github.com/tharsis/ethermint/x/auction/types";
|
||||||
|
|
||||||
|
// Params defines the auction module parameters
|
||||||
|
message Params {
|
||||||
|
option (gogoproto.goproto_stringer) = false;
|
||||||
|
|
||||||
|
// Duration of the commits phase in seconds
|
||||||
|
google.protobuf.Duration commits_duration = 1 [
|
||||||
|
(gogoproto.nullable) = false,
|
||||||
|
(gogoproto.stdduration) = true,
|
||||||
|
(gogoproto.moretags) = "json:\"commits_duration\" yaml:\"commits_duration\""
|
||||||
|
];
|
||||||
|
// Duration of the reveals phase in seconds
|
||||||
|
google.protobuf.Duration reveals_duration = 2 [
|
||||||
|
(gogoproto.nullable) = false,
|
||||||
|
(gogoproto.stdduration) = true,
|
||||||
|
(gogoproto.moretags) = "json:\"reveals_duration\" yaml:\"reveals_duration\""
|
||||||
|
];
|
||||||
|
// Commit fees
|
||||||
|
cosmos.base.v1beta1.Coin commit_fee = 3 [
|
||||||
|
(gogoproto.nullable) = false,
|
||||||
|
(gogoproto.moretags) = "json:\"commit_fee\" yaml:\"commit_fee\""
|
||||||
|
];
|
||||||
|
// Reveal fees
|
||||||
|
cosmos.base.v1beta1.Coin reveal_fee = 4 [
|
||||||
|
(gogoproto.nullable) = false,
|
||||||
|
(gogoproto.moretags) = "json:\"reveal_fee\" yaml:\"reveal_fee\""
|
||||||
|
];
|
||||||
|
// Minimum acceptable bid amount
|
||||||
|
cosmos.base.v1beta1.Coin minimum_bid = 5 [
|
||||||
|
(gogoproto.nullable) = false,
|
||||||
|
(gogoproto.moretags) = "json:\"minimum_bid\" yaml:\"minimum_bid\""
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Auction represents a sealed-bid on-chain auction
|
||||||
|
message Auction {
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
|
||||||
|
string id = 1;
|
||||||
|
string status = 2;
|
||||||
|
// Address of the creator of the auction
|
||||||
|
string owner_address = 3;
|
||||||
|
// Timestamp at which the auction was created
|
||||||
|
google.protobuf.Timestamp create_time = 4 [
|
||||||
|
(gogoproto.stdtime) = true,
|
||||||
|
(gogoproto.nullable) = false,
|
||||||
|
(gogoproto.moretags) = "json:\"create_time\" yaml:\"create_time\""
|
||||||
|
];
|
||||||
|
// Timestamp at which the commits phase concluded
|
||||||
|
google.protobuf.Timestamp commits_end_time = 5 [
|
||||||
|
(gogoproto.stdtime) = true,
|
||||||
|
(gogoproto.nullable) = false,
|
||||||
|
(gogoproto.moretags) = "json:\"commits_end_time\" yaml:\"commits_end_time\""
|
||||||
|
];
|
||||||
|
// Timestamp at which the reveals phase concluded
|
||||||
|
google.protobuf.Timestamp reveals_end_time = 6 [
|
||||||
|
(gogoproto.stdtime) = true,
|
||||||
|
(gogoproto.nullable) = false,
|
||||||
|
(gogoproto.moretags) = "json:\"reveals_end_time\" yaml:\"reveals_end_time\""
|
||||||
|
];
|
||||||
|
// Commit and reveal fees must both be paid when committing a bid
|
||||||
|
// Reveal fee is returned only if the bid is revealed
|
||||||
|
cosmos.base.v1beta1.Coin commit_fee = 7 [
|
||||||
|
(gogoproto.nullable) = false,
|
||||||
|
(gogoproto.moretags) = "json:\"commit_fee\" yaml:\"commit_fee\""
|
||||||
|
];
|
||||||
|
cosmos.base.v1beta1.Coin reveal_fee = 8 [
|
||||||
|
(gogoproto.nullable) = false,
|
||||||
|
(gogoproto.moretags) = "json:\"reveal_fee\" yaml:\"reveal_fee\""
|
||||||
|
];
|
||||||
|
// Minimum acceptable bid amount for a valid commit
|
||||||
|
cosmos.base.v1beta1.Coin minimum_bid = 9 [
|
||||||
|
(gogoproto.nullable) = false,
|
||||||
|
(gogoproto.moretags) = "json:\"minimum_bid\" yaml:\"minimum_bid\""
|
||||||
|
];
|
||||||
|
// Address of the winner
|
||||||
|
string winner_address = 10;
|
||||||
|
// Winning bid, i.e., the highest bid
|
||||||
|
cosmos.base.v1beta1.Coin winning_bid = 11 [
|
||||||
|
(gogoproto.nullable) = false,
|
||||||
|
(gogoproto.moretags) = "json:\"winning_bid\" yaml:\"winning_bid\""
|
||||||
|
];
|
||||||
|
// Amount the winner pays, i.e. the second highest auction
|
||||||
|
cosmos.base.v1beta1.Coin winning_price = 12 [
|
||||||
|
(gogoproto.nullable) = false,
|
||||||
|
(gogoproto.moretags) = "json:\"winning_price\" yaml:\"winning_price\""
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
message Auctions {
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
|
||||||
|
repeated Auction auctions = 1 [(gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Bid represents a sealed bid (commit) made during the auction
|
||||||
|
message Bid {
|
||||||
|
option (gogoproto.goproto_getters) = false;
|
||||||
|
|
||||||
|
string auction_id = 1;
|
||||||
|
string bidder_address = 2;
|
||||||
|
string status = 3;
|
||||||
|
string commit_hash = 4;
|
||||||
|
google.protobuf.Timestamp commit_time = 5 [
|
||||||
|
(gogoproto.stdtime) = true,
|
||||||
|
(gogoproto.nullable) = false,
|
||||||
|
(gogoproto.moretags) = "json:\"commit_time\" yaml:\"commit_time\""
|
||||||
|
];
|
||||||
|
cosmos.base.v1beta1.Coin commit_fee = 6 [
|
||||||
|
(gogoproto.nullable) = false,
|
||||||
|
(gogoproto.moretags) = "json:\"commit_fee\" yaml:\"commit_fee\""
|
||||||
|
];
|
||||||
|
google.protobuf.Timestamp reveal_time = 7 [
|
||||||
|
(gogoproto.stdtime) = true,
|
||||||
|
(gogoproto.nullable) = false,
|
||||||
|
(gogoproto.moretags) = "json:\"reveal_time\" yaml:\"reveal_time\""
|
||||||
|
];
|
||||||
|
cosmos.base.v1beta1.Coin reveal_fee = 8 [
|
||||||
|
(gogoproto.nullable) = false,
|
||||||
|
(gogoproto.moretags) = "json:\"reveal_fee\" yaml:\"reveal_fee\""
|
||||||
|
];
|
||||||
|
cosmos.base.v1beta1.Coin bid_amount = 9 [
|
||||||
|
(gogoproto.nullable) = false,
|
||||||
|
(gogoproto.moretags) = "json:\"bid_amount\" yaml:\"bid_amount\""
|
||||||
|
];;
|
||||||
|
}
|
29
proto/vulcanize/bond/v1beta1/bond.proto
Normal file
29
proto/vulcanize/bond/v1beta1/bond.proto
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package vulcanize.bond.v1beta1;
|
||||||
|
|
||||||
|
option go_package = "github.com/tharsis/ethermint/x/bond/types";
|
||||||
|
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
import "cosmos/base/v1beta1/coin.proto";
|
||||||
|
|
||||||
|
// Params defines the bond module parameters
|
||||||
|
message Params {
|
||||||
|
// max_bond_amount is maximum amount to bond
|
||||||
|
cosmos.base.v1beta1.Coin max_bond_amount = 1 [
|
||||||
|
(gogoproto.nullable) = false,
|
||||||
|
(gogoproto.moretags) = "json:\"max_bond_amount\" yaml:\"max_bond_amount\""
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Bond represents funds deposited by an account for record rent payments.
|
||||||
|
message Bond {
|
||||||
|
// id is unique identifier of the bond
|
||||||
|
string id = 1;
|
||||||
|
// owner of the bond
|
||||||
|
string owner = 2;
|
||||||
|
// balance of the bond
|
||||||
|
repeated cosmos.base.v1beta1.Coin balance = 3 [
|
||||||
|
(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins",
|
||||||
|
(gogoproto.moretags) = "json:\"balance\" yaml:\"balance\""
|
||||||
|
];
|
||||||
|
}
|
18
proto/vulcanize/bond/v1beta1/genesis.proto
Normal file
18
proto/vulcanize/bond/v1beta1/genesis.proto
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package vulcanize.bond.v1beta1;
|
||||||
|
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
import "vulcanize/bond/v1beta1/bond.proto";
|
||||||
|
|
||||||
|
option go_package = "github.com/tharsis/ethermint/x/bond/types";
|
||||||
|
|
||||||
|
// GenesisState defines the bond module's genesis state.
|
||||||
|
message GenesisState {
|
||||||
|
// params defines all the parameters of the module.
|
||||||
|
Params params = 1 [(gogoproto.nullable) = false];
|
||||||
|
|
||||||
|
// bonds defines all the bonds
|
||||||
|
repeated Bond bonds = 2 [
|
||||||
|
(gogoproto.moretags) = "json:\"bonds\" yaml:\"bonds\""
|
||||||
|
];
|
||||||
|
}
|
109
proto/vulcanize/bond/v1beta1/query.proto
Normal file
109
proto/vulcanize/bond/v1beta1/query.proto
Normal file
@ -0,0 +1,109 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package vulcanize.bond.v1beta1;
|
||||||
|
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
import "vulcanize/bond/v1beta1/bond.proto";
|
||||||
|
import "google/api/annotations.proto";
|
||||||
|
import "cosmos/base/query/v1beta1/pagination.proto";
|
||||||
|
import "cosmos/base/v1beta1/coin.proto";
|
||||||
|
|
||||||
|
option go_package = "github.com/tharsis/ethermint/x/bond/types";
|
||||||
|
|
||||||
|
// Query defines the gRPC querier service for bond module
|
||||||
|
service Query {
|
||||||
|
// Params queries bonds module params.
|
||||||
|
rpc Params(QueryParamsRequest) returns (QueryParamsResponse) {
|
||||||
|
option (google.api.http).get = "/vulcanize/bond/v1beta1/params";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Bonds queries bonds list.
|
||||||
|
rpc Bonds(QueryGetBondsRequest) returns (QueryGetBondsResponse) {
|
||||||
|
option (google.api.http).get = "/vulcanize/bond/v1beta1/bonds";
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetBondById
|
||||||
|
rpc GetBondById(QueryGetBondByIdRequest) returns (QueryGetBondByIdResponse){
|
||||||
|
option (google.api.http).get = "/vulcanize/bond/v1beta1/bonds/{id}";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get Bonds List by Owner
|
||||||
|
rpc GetBondsByOwner(QueryGetBondsByOwnerRequest) returns (QueryGetBondsByOwnerResponse){
|
||||||
|
option (google.api.http).get = "/vulcanize/bond/v1beta1/by-owner/{owner}";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get Bonds module balance
|
||||||
|
rpc GetBondsModuleBalance(QueryGetBondModuleBalanceRequest) returns (QueryGetBondModuleBalanceResponse){
|
||||||
|
option (google.api.http).get = "/vulcanize/bond/v1beta1/balance";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryParamsRequest is request for query the bond module params
|
||||||
|
message QueryParamsRequest{
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryParamsResponse returns response type of bond module params
|
||||||
|
message QueryParamsResponse{
|
||||||
|
Params params = 1 [
|
||||||
|
(gogoproto.moretags) = "json:\"params\" yaml:\"params\""
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryGetBondById queries a bond by bond-id.
|
||||||
|
message QueryGetBondsRequest{
|
||||||
|
// pagination defines an optional pagination for the request.
|
||||||
|
cosmos.base.query.v1beta1.PageRequest pagination = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryGetBondsResponse is response type for get the bonds by bond-id
|
||||||
|
message QueryGetBondsResponse{
|
||||||
|
repeated Bond bonds = 1 [
|
||||||
|
(gogoproto.moretags) = "json:\"bonds\" yaml:\"bonds\""
|
||||||
|
];
|
||||||
|
// pagination defines the pagination in the response.
|
||||||
|
cosmos.base.query.v1beta1.PageResponse pagination = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryGetBondById
|
||||||
|
message QueryGetBondByIdRequest{
|
||||||
|
string id = 1 [
|
||||||
|
(gogoproto.moretags) = "json:\"id\" yaml:\"id\""
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryGetBondByIdResponse returns QueryGetBondById query response
|
||||||
|
message QueryGetBondByIdResponse{
|
||||||
|
Bond bond = 1 [
|
||||||
|
(gogoproto.moretags) = "json:\"bond\" yaml:\"bond\""
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryGetBondsByOwnerRequest is request type for Query/GetBondsByOwner RPC Method
|
||||||
|
message QueryGetBondsByOwnerRequest{
|
||||||
|
string owner = 1;
|
||||||
|
// pagination defines the pagination in the response.
|
||||||
|
cosmos.base.query.v1beta1.PageResponse pagination = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryGetBondsByOwnerResponse is response type for Query/GetBondsByOwner RPC Method
|
||||||
|
message QueryGetBondsByOwnerResponse {
|
||||||
|
repeated Bond bonds = 1 [
|
||||||
|
(gogoproto.nullable) = false,
|
||||||
|
(gogoproto.moretags) = "json:\"bonds\" yaml:\"bonds\""
|
||||||
|
];
|
||||||
|
// pagination defines the pagination in the response.
|
||||||
|
cosmos.base.query.v1beta1.PageResponse pagination = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryGetBondModuleBalanceRequest is request type for bond module balance rpc method
|
||||||
|
message QueryGetBondModuleBalanceRequest{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryGetBondModuleBalanceResponse is the response type for bond module balance rpc method
|
||||||
|
message QueryGetBondModuleBalanceResponse{
|
||||||
|
repeated cosmos.base.v1beta1.Coin balance = 2 [
|
||||||
|
(gogoproto.nullable) = false,
|
||||||
|
(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins",
|
||||||
|
(gogoproto.moretags) = "json:\"coins\" yaml:\"coins\""
|
||||||
|
];
|
||||||
|
}
|
77
proto/vulcanize/bond/v1beta1/tx.proto
Normal file
77
proto/vulcanize/bond/v1beta1/tx.proto
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package vulcanize.bond.v1beta1;
|
||||||
|
|
||||||
|
option go_package = "github.com/tharsis/ethermint/x/bond/types";
|
||||||
|
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
import "cosmos/base/v1beta1/coin.proto";
|
||||||
|
|
||||||
|
// Msg defines the bond Msg service.
|
||||||
|
service Msg {
|
||||||
|
// CreateBond defines a method for creating a new bond.
|
||||||
|
rpc CreateBond(MsgCreateBond) returns (MsgCreateBondResponse);
|
||||||
|
|
||||||
|
// RefillBond defines a method for refilling amount for bond.
|
||||||
|
rpc RefillBond(MsgRefillBond) returns (MsgRefillBondResponse);
|
||||||
|
|
||||||
|
// WithdrawBond defines a method for withdrawing amount from bond.
|
||||||
|
rpc WithdrawBond(MsgWithdrawBond) returns (MsgWithdrawBondResponse);
|
||||||
|
|
||||||
|
// CancelBond defines a method for cancelling a bond.
|
||||||
|
rpc CancelBond(MsgCancelBond) returns (MsgCancelBondResponse);
|
||||||
|
}
|
||||||
|
|
||||||
|
// MsgCreateBond defines a SDK message for creating a new bond.
|
||||||
|
message MsgCreateBond{
|
||||||
|
string signer = 1;
|
||||||
|
repeated cosmos.base.v1beta1.Coin coins = 2 [
|
||||||
|
(gogoproto.nullable) = false,
|
||||||
|
(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins",
|
||||||
|
(gogoproto.moretags) = "json:\"coins\" yaml:\"coins\""
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
// MsgCreateBondResponse defines the Msg/CreateBond response type.
|
||||||
|
message MsgCreateBondResponse{
|
||||||
|
string id = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// MsgRefillBond defines a SDK message for refill the amount for bond.
|
||||||
|
message MsgRefillBond{
|
||||||
|
string id = 1;
|
||||||
|
string signer = 2;
|
||||||
|
repeated cosmos.base.v1beta1.Coin coins = 3 [
|
||||||
|
(gogoproto.nullable) = false,
|
||||||
|
(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins",
|
||||||
|
(gogoproto.moretags) = "json:\"coins\" yaml:\"coins\""
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
// MsgRefillBondResponse defines the Msg/RefillBond response type.
|
||||||
|
message MsgRefillBondResponse{
|
||||||
|
}
|
||||||
|
|
||||||
|
// MsgWithdrawBond defines a SDK message for withdrawing amount from bond.
|
||||||
|
message MsgWithdrawBond {
|
||||||
|
string id = 1;
|
||||||
|
string signer = 2;
|
||||||
|
repeated cosmos.base.v1beta1.Coin coins = 3 [
|
||||||
|
(gogoproto.nullable) = false,
|
||||||
|
(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins",
|
||||||
|
(gogoproto.moretags) = "json:\"coins\" yaml:\"coins\""
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
// MsgWithdrawBondResponse defines the Msg/WithdrawBond response type.
|
||||||
|
message MsgWithdrawBondResponse{
|
||||||
|
}
|
||||||
|
|
||||||
|
// MsgCancelBond defines a SDK message for the cancel the bond.
|
||||||
|
message MsgCancelBond{
|
||||||
|
string id = 1;
|
||||||
|
string signer = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// MsgCancelBondResponse defines the Msg/CancelBond response type.
|
||||||
|
message MsgCancelBondResponse{
|
||||||
|
}
|
30
proto/vulcanize/nameservice/v1beta1/genesis.proto
Normal file
30
proto/vulcanize/nameservice/v1beta1/genesis.proto
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package vulcanize.nameservice.v1beta1;
|
||||||
|
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
|
import "vulcanize/nameservice/v1beta1/nameservice.proto";
|
||||||
|
|
||||||
|
option go_package = "github.com/tharsis/ethermint/x/nameservice/types";
|
||||||
|
|
||||||
|
// GenesisState defines the nameservice module's genesis state.
|
||||||
|
message GenesisState {
|
||||||
|
// params defines all the params of nameservice module.
|
||||||
|
Params params = 1 [
|
||||||
|
(gogoproto.nullable) = false
|
||||||
|
];
|
||||||
|
// records
|
||||||
|
repeated Record records = 2 [
|
||||||
|
(gogoproto.nullable) = false,
|
||||||
|
(gogoproto.moretags) = "json:\"records\" yaml:\"records\""
|
||||||
|
];
|
||||||
|
// authorities
|
||||||
|
repeated AuthorityEntry authorities = 3 [
|
||||||
|
(gogoproto.nullable) = false,
|
||||||
|
(gogoproto.moretags) = "json:\"authorities\" yaml:\"authorities\""
|
||||||
|
];
|
||||||
|
// names
|
||||||
|
repeated NameEntry names = 4 [
|
||||||
|
(gogoproto.nullable) = false,
|
||||||
|
(gogoproto.moretags) = "json:\"names\" yaml:\"names\""
|
||||||
|
];
|
||||||
|
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user