forked from LaconicNetwork/cosmos-explorer
add client extension support
This commit is contained in:
@@ -0,0 +1,204 @@
|
||||
Cosmos SDK
|
||||
License: Apache2.0
|
||||
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "{}"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright 2016 All in Bits, 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.
|
||||
@@ -0,0 +1 @@
|
||||
# cosmos
|
||||
@@ -0,0 +1,36 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package cosmos.app.v1alpha1;
|
||||
|
||||
import "google/protobuf/any.proto";
|
||||
|
||||
// Config represents the configuration for a Cosmos SDK ABCI app.
|
||||
// It is intended that all state machine logic including the version of
|
||||
// baseapp and tx handlers (and possibly even Tendermint) that an app needs
|
||||
// can be described in a config object. For compatibility, the framework should
|
||||
// allow a mixture of declarative and imperative app wiring, however, apps
|
||||
// that strive for the maximum ease of maintainability should be able to describe
|
||||
// their state machine with a config object alone.
|
||||
message Config {
|
||||
// modules are the module configurations for the app.
|
||||
repeated ModuleConfig modules = 1;
|
||||
}
|
||||
|
||||
// ModuleConfig is a module configuration for an app.
|
||||
message ModuleConfig {
|
||||
// name is the unique name of the module within the app. It should be a name
|
||||
// that persists between different versions of a module so that modules
|
||||
// can be smoothly upgraded to new versions.
|
||||
//
|
||||
// For example, for the module cosmos.bank.module.v1.Module, we may chose
|
||||
// to simply name the module "bank" in the app. When we upgrade to
|
||||
// cosmos.bank.module.v2.Module, the app-specific name "bank" stays the same
|
||||
// and the framework knows that the v2 module should receive all the same state
|
||||
// that the v1 module had. Note: modules should provide info on which versions
|
||||
// they can migrate from in the ModuleDescriptor.can_migration_from field.
|
||||
string name = 1;
|
||||
|
||||
// config is the config object for the module. Module config messages should
|
||||
// define a ModuleDescriptor using the cosmos.app.v1alpha1.is_module extension.
|
||||
google.protobuf.Any config = 2;
|
||||
}
|
||||
@@ -0,0 +1,93 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package cosmos.app.v1alpha1;
|
||||
|
||||
import "google/protobuf/descriptor.proto";
|
||||
|
||||
extend google.protobuf.MessageOptions {
|
||||
// module indicates that this proto type is a config object for an app module
|
||||
// and optionally provides other descriptive information about the module.
|
||||
// It is recommended that a new module config object and go module is versioned
|
||||
// for every state machine breaking version of a module. The recommended
|
||||
// pattern for doing this is to put module config objects in a separate proto
|
||||
// package from the API they expose. Ex: the cosmos.group.v1 API would be
|
||||
// exposed by module configs cosmos.group.module.v1, cosmos.group.module.v2, etc.
|
||||
ModuleDescriptor module = 57193479;
|
||||
}
|
||||
|
||||
// ModuleDescriptor describes an app module.
|
||||
message ModuleDescriptor {
|
||||
// go_import names the package that should be imported by an app to load the
|
||||
// module in the runtime module registry. Either go_import must be defined here
|
||||
// or the go_package option must be defined at the file level to indicate
|
||||
// to users where to location the module implementation. go_import takes
|
||||
// precedence over go_package when both are defined.
|
||||
string go_import = 1;
|
||||
|
||||
// use_package refers to a protobuf package that this module
|
||||
// uses and exposes to the world. In an app, only one module should "use"
|
||||
// or own a single protobuf package. It is assumed that the module uses
|
||||
// all of the .proto files in a single package.
|
||||
repeated PackageReference use_package = 2;
|
||||
|
||||
// can_migrate_from defines which module versions this module can migrate
|
||||
// state from. The framework will check that one module version is able to
|
||||
// migrate from a previous module version before attempting to update its
|
||||
// config. It is assumed that modules can transitively migrate from earlier
|
||||
// versions. For instance if v3 declares it can migrate from v2, and v2
|
||||
// declares it can migrate from v1, the framework knows how to migrate
|
||||
// from v1 to v3, assuming all 3 module versions are registered at runtime.
|
||||
repeated MigrateFromInfo can_migrate_from = 3;
|
||||
}
|
||||
|
||||
// PackageReference is a reference to a protobuf package used by a module.
|
||||
message PackageReference {
|
||||
// name is the fully-qualified name of the package.
|
||||
string name = 1;
|
||||
|
||||
// revision is the optional revision of the package that is being used.
|
||||
// Protobuf packages used in Cosmos should generally have a major version
|
||||
// as the last part of the package name, ex. foo.bar.baz.v1.
|
||||
// The revision of a package can be thought of as the minor version of a
|
||||
// package which has additional backwards compatible definitions that weren't
|
||||
// present in a previous version.
|
||||
//
|
||||
// A package should indicate its revision with a source code comment
|
||||
// above the package declaration in one of its fields containing the
|
||||
// test "Revision N" where N is an integer revision. All packages start
|
||||
// at revision 0 the first time they are released in a module.
|
||||
//
|
||||
// When a new version of a module is released and items are added to existing
|
||||
// .proto files, these definitions should contain comments of the form
|
||||
// "Since Revision N" where N is an integer revision.
|
||||
//
|
||||
// When the module runtime starts up, it will check the pinned proto
|
||||
// image and panic if there are runtime protobuf definitions that are not
|
||||
// in the pinned descriptor which do not have
|
||||
// a "Since Revision N" comment or have a "Since Revision N" comment where
|
||||
// N is <= to the revision specified here. This indicates that the protobuf
|
||||
// files have been updated, but the pinned file descriptor hasn't.
|
||||
//
|
||||
// If there are items in the pinned file descriptor with a revision
|
||||
// greater than the value indicated here, this will also cause a panic
|
||||
// as it may mean that the pinned descriptor for a legacy module has been
|
||||
// improperly updated or that there is some other versioning discrepancy.
|
||||
// Runtime protobuf definitions will also be checked for compatibility
|
||||
// with pinned file descriptors to make sure there are no incompatible changes.
|
||||
//
|
||||
// This behavior ensures that:
|
||||
// * pinned proto images are up-to-date
|
||||
// * protobuf files are carefully annotated with revision comments which
|
||||
// are important good client UX
|
||||
// * protobuf files are changed in backwards and forwards compatible ways
|
||||
uint32 revision = 2;
|
||||
}
|
||||
|
||||
// MigrateFromInfo is information on a module version that a newer module
|
||||
// can migrate from.
|
||||
message MigrateFromInfo {
|
||||
|
||||
// module is the fully-qualified protobuf name of the module config object
|
||||
// for the previous module version, ex: "cosmos.group.module.v1.Module".
|
||||
string module = 1;
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package cosmos.app.v1alpha1;
|
||||
|
||||
import "cosmos/app/v1alpha1/config.proto";
|
||||
|
||||
// Query is the app module query service.
|
||||
service Query {
|
||||
|
||||
// Config returns the current app config.
|
||||
rpc Config(QueryConfigRequest) returns (QueryConfigResponse) {}
|
||||
}
|
||||
|
||||
// QueryConfigRequest is the Query/Config request type.
|
||||
message QueryConfigRequest {}
|
||||
|
||||
// QueryConfigRequest is the Query/Config response type.
|
||||
message QueryConfigResponse {
|
||||
|
||||
// config is the current app config.
|
||||
Config config = 1;
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
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) = "cosmos.auth.AccountI";
|
||||
|
||||
string address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
google.protobuf.Any pub_key = 2 [(gogoproto.jsontag) = "public_key,omitempty"];
|
||||
uint64 account_number = 3;
|
||||
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) = "cosmos.auth.ModuleAccountI";
|
||||
|
||||
BaseAccount base_account = 1 [(gogoproto.embed) = true];
|
||||
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;
|
||||
uint64 tx_sig_limit = 2;
|
||||
uint64 tx_size_cost_per_byte = 3;
|
||||
uint64 sig_verify_cost_ed25519 = 4 [(gogoproto.customname) = "SigVerifyCostED25519"];
|
||||
uint64 sig_verify_cost_secp256k1 = 5 [(gogoproto.customname) = "SigVerifyCostSecp256k1"];
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -0,0 +1,130 @@
|
||||
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
|
||||
//
|
||||
// Since: cosmos-sdk 0.43
|
||||
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";
|
||||
}
|
||||
|
||||
// ModuleAccounts returns all the existing module accounts.
|
||||
rpc ModuleAccounts(QueryModuleAccountsRequest) returns (QueryModuleAccountsResponse) {
|
||||
option (google.api.http).get = "/cosmos/auth/v1beta1/module_accounts";
|
||||
}
|
||||
|
||||
// Bech32 queries bech32Prefix
|
||||
rpc Bech32Prefix(Bech32PrefixRequest) returns (Bech32PrefixResponse) {
|
||||
option (google.api.http).get = "/cosmos/auth/v1beta1/bech32";
|
||||
}
|
||||
|
||||
// AddressBytesToString converts Account Address bytes to string
|
||||
rpc AddressBytesToString(AddressBytesToStringRequest) returns (AddressBytesToStringResponse) {
|
||||
option (google.api.http).get = "/cosmos/auth/v1beta1/bech32/{address_bytes}";
|
||||
}
|
||||
|
||||
// AddressStringToBytes converts Address string to bytes
|
||||
rpc AddressStringToBytes(AddressStringToBytesRequest) returns (AddressStringToBytesResponse) {
|
||||
option (google.api.http).get = "/cosmos/auth/v1beta1/bech32/{address_string}";
|
||||
}
|
||||
}
|
||||
|
||||
// QueryAccountsRequest is the request type for the Query/Accounts RPC method.
|
||||
//
|
||||
// Since: cosmos-sdk 0.43
|
||||
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.
|
||||
//
|
||||
// Since: cosmos-sdk 0.43
|
||||
message QueryAccountsResponse {
|
||||
// accounts are the existing accounts
|
||||
repeated google.protobuf.Any accounts = 1 [(cosmos_proto.accepts_interface) = "cosmos.auth.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 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
}
|
||||
|
||||
// QueryModuleAccountsRequest is the request type for the Query/ModuleAccounts RPC method.
|
||||
message QueryModuleAccountsRequest {}
|
||||
|
||||
// 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];
|
||||
}
|
||||
|
||||
// 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) = "cosmos.auth.AccountI"];
|
||||
}
|
||||
|
||||
// QueryParamsRequest is the request type for the Query/Params RPC method.
|
||||
message QueryParamsRequest {}
|
||||
|
||||
// QueryModuleAccountsResponse is the response type for the Query/ModuleAccounts RPC method.
|
||||
message QueryModuleAccountsResponse {
|
||||
repeated google.protobuf.Any accounts = 1 [(cosmos_proto.accepts_interface) = "cosmos.auth.ModuleAccountI"];
|
||||
}
|
||||
|
||||
// Bech32PrefixRequest is the request type for Bech32Prefix rpc method
|
||||
message Bech32PrefixRequest {}
|
||||
|
||||
// Bech32PrefixResponse is the response type for Bech32Prefix rpc method
|
||||
message Bech32PrefixResponse {
|
||||
string bech32_prefix = 1;
|
||||
}
|
||||
|
||||
// AddressBytesToStringRequest is the request type for AddressString rpc method
|
||||
message AddressBytesToStringRequest {
|
||||
bytes address_bytes = 1;
|
||||
}
|
||||
|
||||
// AddressBytesToStringResponse is the response type for AddressString rpc method
|
||||
message AddressBytesToStringResponse {
|
||||
string address_string = 1;
|
||||
}
|
||||
|
||||
// AddressStringToBytesRequest is the request type for AccountBytes rpc method
|
||||
message AddressStringToBytesRequest {
|
||||
string address_string = 1;
|
||||
}
|
||||
|
||||
// AddressStringToBytesResponse is the response type for AddressBytes rpc method
|
||||
message AddressStringToBytesResponse {
|
||||
bytes address_bytes = 1;
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
// Since: cosmos-sdk 0.43
|
||||
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) = "cosmos.authz.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) = "cosmos.authz.Authorization"];
|
||||
// time when the grant will expire and will be pruned. If null, then the grant
|
||||
// doesn't have a time expiration (other conditions in `authorization`
|
||||
// may apply to invalidate the grant)
|
||||
google.protobuf.Timestamp expiration = 2 [(gogoproto.stdtime) = true, (gogoproto.nullable) = true];
|
||||
}
|
||||
|
||||
// GrantAuthorization extends a grant with both the addresses of the grantee and granter.
|
||||
// It is used in genesis.proto and query.proto
|
||||
message GrantAuthorization {
|
||||
string granter = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
string grantee = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
google.protobuf.Any authorization = 3 [(cosmos_proto.accepts_interface) = "cosmos.authz.Authorization"];
|
||||
google.protobuf.Timestamp expiration = 4 [(gogoproto.stdtime) = true];
|
||||
}
|
||||
|
||||
// GrantQueueItem contains the list of TypeURL of a sdk.Msg.
|
||||
message GrantQueueItem {
|
||||
// msg_type_urls contains the list of TypeURL of a sdk.Msg.
|
||||
repeated string msg_type_urls = 1;
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
// Since: cosmos-sdk 0.43
|
||||
syntax = "proto3";
|
||||
package cosmos.authz.v1beta1;
|
||||
|
||||
import "cosmos_proto/cosmos.proto";
|
||||
|
||||
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 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
// Grantee account address
|
||||
string grantee = 4 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
}
|
||||
|
||||
// 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 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
// Grantee account address
|
||||
string grantee = 4 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
// Since: cosmos-sdk 0.43
|
||||
syntax = "proto3";
|
||||
package cosmos.authz.v1beta1;
|
||||
|
||||
import "gogoproto/gogo.proto";
|
||||
import "cosmos/authz/v1beta1/authz.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];
|
||||
}
|
||||
@@ -0,0 +1,82 @@
|
||||
// Since: cosmos-sdk 0.43
|
||||
syntax = "proto3";
|
||||
package cosmos.authz.v1beta1;
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
import "cosmos/base/query/v1beta1/pagination.proto";
|
||||
import "cosmos/authz/v1beta1/authz.proto";
|
||||
import "cosmos_proto/cosmos.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";
|
||||
}
|
||||
|
||||
// GranterGrants returns list of `GrantAuthorization`, granted by granter.
|
||||
//
|
||||
// Since: cosmos-sdk 0.46
|
||||
rpc GranterGrants(QueryGranterGrantsRequest) returns (QueryGranterGrantsResponse) {
|
||||
option (google.api.http).get = "/cosmos/authz/v1beta1/grants/granter/{granter}";
|
||||
}
|
||||
|
||||
// GranteeGrants returns a list of `GrantAuthorization` by grantee.
|
||||
//
|
||||
// Since: cosmos-sdk 0.46
|
||||
rpc GranteeGrants(QueryGranteeGrantsRequest) returns (QueryGranteeGrantsResponse) {
|
||||
option (google.api.http).get = "/cosmos/authz/v1beta1/grants/grantee/{grantee}";
|
||||
}
|
||||
}
|
||||
|
||||
// QueryGrantsRequest is the request type for the Query/Grants RPC method.
|
||||
message QueryGrantsRequest {
|
||||
string granter = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
string grantee = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
// 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 Grant grants = 1;
|
||||
// pagination defines an pagination for the response.
|
||||
cosmos.base.query.v1beta1.PageResponse pagination = 2;
|
||||
}
|
||||
|
||||
// QueryGranterGrantsRequest is the request type for the Query/GranterGrants RPC method.
|
||||
message QueryGranterGrantsRequest {
|
||||
string granter = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// pagination defines an pagination for the request.
|
||||
cosmos.base.query.v1beta1.PageRequest pagination = 2;
|
||||
}
|
||||
|
||||
// QueryGranterGrantsResponse is the response type for the Query/GranterGrants RPC method.
|
||||
message QueryGranterGrantsResponse {
|
||||
// grants is a list of grants granted by the granter.
|
||||
repeated GrantAuthorization grants = 1;
|
||||
// pagination defines an pagination for the response.
|
||||
cosmos.base.query.v1beta1.PageResponse pagination = 2;
|
||||
}
|
||||
|
||||
// QueryGranteeGrantsRequest is the request type for the Query/IssuedGrants RPC method.
|
||||
message QueryGranteeGrantsRequest {
|
||||
string grantee = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// pagination defines an pagination for the request.
|
||||
cosmos.base.query.v1beta1.PageRequest pagination = 2;
|
||||
}
|
||||
|
||||
// QueryGranteeGrantsResponse is the response type for the Query/GranteeGrants RPC method.
|
||||
message QueryGranteeGrantsResponse {
|
||||
// grants is a list of grants granted to the grantee.
|
||||
repeated GrantAuthorization grants = 1;
|
||||
// pagination defines an pagination for the response.
|
||||
cosmos.base.query.v1beta1.PageResponse pagination = 2;
|
||||
}
|
||||
@@ -0,0 +1,75 @@
|
||||
// Since: cosmos-sdk 0.43
|
||||
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";
|
||||
import "cosmos/msg/v1/msg.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 {
|
||||
option (cosmos.msg.v1.signer) = "granter";
|
||||
|
||||
string granter = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
string grantee = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
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 {
|
||||
option (cosmos.msg.v1.signer) = "grantee";
|
||||
|
||||
string grantee = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
// 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, cosmos.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 {
|
||||
option (cosmos.msg.v1.signer) = "granter";
|
||||
|
||||
string granter = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
string grantee = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
string msg_type_url = 3;
|
||||
}
|
||||
|
||||
// MsgRevokeResponse defines the Msg/MsgRevokeResponse response type.
|
||||
message MsgRevokeResponse {}
|
||||
@@ -0,0 +1,19 @@
|
||||
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.
|
||||
//
|
||||
// Since: cosmos-sdk 0.43
|
||||
message SendAuthorization {
|
||||
option (cosmos_proto.implements_interface) = "cosmos.authz.Authorization";
|
||||
|
||||
repeated cosmos.base.v1beta1.Coin spend_limit = 1
|
||||
[(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"];
|
||||
}
|
||||
@@ -0,0 +1,108 @@
|
||||
syntax = "proto3";
|
||||
package cosmos.bank.v1beta1;
|
||||
|
||||
import "gogoproto/gogo.proto";
|
||||
import "cosmos_proto/cosmos.proto";
|
||||
import "cosmos/base/v1beta1/coin.proto";
|
||||
import "cosmos/msg/v1/msg.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;
|
||||
bool default_send_enabled = 2;
|
||||
}
|
||||
|
||||
// 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 (cosmos.msg.v1.signer) = "address";
|
||||
|
||||
option (gogoproto.equal) = false;
|
||||
option (gogoproto.goproto_getters) = false;
|
||||
|
||||
string address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
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 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
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) = "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 = 10^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)
|
||||
//
|
||||
// Since: cosmos-sdk 0.43
|
||||
string name = 5;
|
||||
// symbol is the token symbol usually shown on exchanges (eg: ATOM). This can
|
||||
// be the same as the display.
|
||||
//
|
||||
// Since: cosmos-sdk 0.43
|
||||
string symbol = 6;
|
||||
// URI to a document (on or off-chain) that contains additional information. Optional.
|
||||
//
|
||||
// Since: cosmos-sdk 0.46
|
||||
string uri = 7 [(gogoproto.customname) = "URI"];
|
||||
// URIHash is a sha256 hash of a document pointed by URI. It's used to verify that
|
||||
// the document didn't change. Optional.
|
||||
//
|
||||
// Since: cosmos-sdk 0.46
|
||||
string uri_hash = 8 [(gogoproto.customname) = "URIHash"];
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
syntax = "proto3";
|
||||
package cosmos.bank.v1beta1;
|
||||
|
||||
import "gogoproto/gogo.proto";
|
||||
import "cosmos/base/v1beta1/coin.proto";
|
||||
import "cosmos/bank/v1beta1/bank.proto";
|
||||
import "cosmos_proto/cosmos.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.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 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// 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];
|
||||
}
|
||||
@@ -0,0 +1,231 @@
|
||||
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";
|
||||
import "cosmos_proto/cosmos.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}/by_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}";
|
||||
}
|
||||
|
||||
// SpendableBalances queries the spenable balance of all coins for a single
|
||||
// account.
|
||||
rpc SpendableBalances(QuerySpendableBalancesRequest) returns (QuerySpendableBalancesResponse) {
|
||||
option (google.api.http).get = "/cosmos/bank/v1beta1/spendable_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/by_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";
|
||||
}
|
||||
|
||||
// DenomOwners queries for all account addresses that own a particular token
|
||||
// denomination.
|
||||
rpc DenomOwners(QueryDenomOwnersRequest) returns (QueryDenomOwnersResponse) {
|
||||
option (google.api.http).get = "/cosmos/bank/v1beta1/denom_owners/{denom}";
|
||||
}
|
||||
}
|
||||
|
||||
// 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 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// 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 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// 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;
|
||||
}
|
||||
|
||||
// QuerySpendableBalancesRequest defines the gRPC request structure for querying
|
||||
// an account's spendable balances.
|
||||
message QuerySpendableBalancesRequest {
|
||||
option (gogoproto.equal) = false;
|
||||
option (gogoproto.goproto_getters) = false;
|
||||
|
||||
// address is the address to query spendable balances for.
|
||||
string address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// pagination defines an optional pagination for the request.
|
||||
cosmos.base.query.v1beta1.PageRequest pagination = 2;
|
||||
}
|
||||
|
||||
// QuerySpendableBalancesResponse defines the gRPC response structure for querying
|
||||
// an account's spendable balances.
|
||||
message QuerySpendableBalancesResponse {
|
||||
// balances is the spendable 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.
|
||||
//
|
||||
// Since: cosmos-sdk 0.43
|
||||
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.
|
||||
//
|
||||
// Since: cosmos-sdk 0.43
|
||||
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];
|
||||
}
|
||||
|
||||
// QueryDenomOwnersRequest defines the request type for the DenomOwners RPC query,
|
||||
// which queries for a paginated set of all account holders of a particular
|
||||
// denomination.
|
||||
message QueryDenomOwnersRequest {
|
||||
// denom defines the coin denomination to query all account holders for.
|
||||
string denom = 1;
|
||||
|
||||
// pagination defines an optional pagination for the request.
|
||||
cosmos.base.query.v1beta1.PageRequest pagination = 2;
|
||||
}
|
||||
|
||||
// DenomOwner defines structure representing an account that owns or holds a
|
||||
// particular denominated token. It contains the account address and account
|
||||
// balance of the denominated token.
|
||||
message DenomOwner {
|
||||
// address defines the address that owns a particular denomination.
|
||||
string address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// balance is the balance of the denominated coin for an account.
|
||||
cosmos.base.v1beta1.Coin balance = 2 [(gogoproto.nullable) = false];
|
||||
}
|
||||
|
||||
// QueryDenomOwnersResponse defines the RPC response of a DenomOwners RPC query.
|
||||
message QueryDenomOwnersResponse {
|
||||
repeated DenomOwner denom_owners = 1;
|
||||
|
||||
// pagination defines the pagination in the response.
|
||||
cosmos.base.query.v1beta1.PageResponse pagination = 2;
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
syntax = "proto3";
|
||||
package cosmos.bank.v1beta1;
|
||||
|
||||
import "gogoproto/gogo.proto";
|
||||
import "cosmos/base/v1beta1/coin.proto";
|
||||
import "cosmos/bank/v1beta1/bank.proto";
|
||||
import "cosmos_proto/cosmos.proto";
|
||||
import "cosmos/msg/v1/msg.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 (cosmos.msg.v1.signer) = "from_address";
|
||||
|
||||
option (gogoproto.equal) = false;
|
||||
option (gogoproto.goproto_getters) = false;
|
||||
|
||||
string from_address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
string to_address = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
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 (cosmos.msg.v1.signer) = "inputs";
|
||||
|
||||
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 {}
|
||||
@@ -0,0 +1,158 @@
|
||||
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;
|
||||
// Events defines all the events emitted by processing a transaction. Note,
|
||||
// these events include those emitted by processing all the messages and those
|
||||
// emitted from the ante handler. Whereas Logs contains the events, with
|
||||
// additional metadata, emitted only by processing the messages.
|
||||
//
|
||||
// Since: cosmos-sdk 0.42.11, 0.44.5, 0.45
|
||||
repeated tendermint.abci.Event events = 13 [(gogoproto.nullable) = false];
|
||||
}
|
||||
|
||||
// ABCIMessageLog defines a structure containing an indexed tx ABCI message log.
|
||||
message ABCIMessageLog {
|
||||
option (gogoproto.stringer) = true;
|
||||
|
||||
uint32 msg_index = 1 [(gogoproto.jsontag) = "msg_index"];
|
||||
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;
|
||||
|
||||
// GasUsed is the amount of gas actually consumed.
|
||||
uint64 gas_used = 2;
|
||||
}
|
||||
|
||||
// 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.
|
||||
// Deprecated. This field is still populated, but prefer msg_response instead
|
||||
// because it also contains the Msg response typeURL.
|
||||
bytes data = 1 [deprecated = true];
|
||||
|
||||
// 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];
|
||||
|
||||
// msg_responses contains the Msg handler responses type packed in Anys.
|
||||
//
|
||||
// Since: cosmos-sdk 0.46
|
||||
repeated google.protobuf.Any msg_responses = 4;
|
||||
}
|
||||
|
||||
// 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 deprecated = true;
|
||||
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;
|
||||
|
||||
// data field is deprecated and not populated.
|
||||
repeated MsgData data = 1 [deprecated = true];
|
||||
|
||||
// msg_responses contains the Msg handler responses packed into Anys.
|
||||
//
|
||||
// Since: cosmos-sdk 0.46
|
||||
repeated google.protobuf.Any msg_responses = 2;
|
||||
}
|
||||
|
||||
// SearchTxsResult defines a structure for querying txs pageable
|
||||
message SearchTxsResult {
|
||||
option (gogoproto.stringer) = true;
|
||||
|
||||
// Count of all txs
|
||||
uint64 total_count = 1;
|
||||
// Count of txs in current page
|
||||
uint64 count = 2;
|
||||
// Index of current page, start from 1
|
||||
uint64 page_number = 3;
|
||||
// Count of total pages
|
||||
uint64 page_total = 4;
|
||||
// Max count txs per page
|
||||
uint64 limit = 5;
|
||||
// List of txs in current page
|
||||
repeated TxResponse txs = 6;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
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.
|
||||
//
|
||||
// Since: cosmos-sdk 0.43
|
||||
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. It will be empty if
|
||||
// there are no more results.
|
||||
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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -0,0 +1,218 @@
|
||||
// Since: cosmos-sdk 0.43
|
||||
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;
|
||||
}
|
||||
@@ -0,0 +1,70 @@
|
||||
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
|
||||
}
|
||||
|
||||
// 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"];
|
||||
SnapshotExtensionMeta extension = 3;
|
||||
SnapshotExtensionPayload extension_payload = 4;
|
||||
SnapshotKVItem kv = 5 [(gogoproto.customname) = "KV"];
|
||||
SnapshotSchema schema = 6;
|
||||
}
|
||||
}
|
||||
|
||||
// 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;
|
||||
// version is block height
|
||||
int64 version = 3;
|
||||
// height is depth of the tree.
|
||||
int32 height = 4;
|
||||
}
|
||||
|
||||
// SnapshotExtensionMeta contains metadata about an external snapshotter.
|
||||
message SnapshotExtensionMeta {
|
||||
string name = 1;
|
||||
uint32 format = 2;
|
||||
}
|
||||
|
||||
// SnapshotExtensionPayload contains payloads of an external snapshotter.
|
||||
message SnapshotExtensionPayload {
|
||||
bytes payload = 1;
|
||||
}
|
||||
|
||||
// SnapshotKVItem is an exported Key/Value Pair
|
||||
message SnapshotKVItem {
|
||||
bytes key = 1;
|
||||
bytes value = 2;
|
||||
}
|
||||
|
||||
// SnapshotSchema is an exported schema of smt store
|
||||
message SnapshotSchema{
|
||||
repeated bytes keys = 1;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
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
|
||||
//
|
||||
// Since: cosmos-sdk 0.43
|
||||
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;
|
||||
}
|
||||
@@ -0,0 +1,138 @@
|
||||
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";
|
||||
import "cosmos_proto/cosmos.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 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
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 response type for the Query/GetNodeInfo RPC method.
|
||||
message GetNodeInfoResponse {
|
||||
.tendermint.p2p.NodeInfo 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;
|
||||
// Since: cosmos-sdk 0.43
|
||||
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;
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
syntax = "proto3";
|
||||
package cosmos.base.v1beta1;
|
||||
|
||||
import "gogoproto/gogo.proto";
|
||||
import "cosmos_proto/cosmos.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
|
||||
[(cosmos_proto.scalar) = "cosmos.Int", (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
|
||||
[(cosmos_proto.scalar) = "cosmos.Dec", (gogoproto.customtype) = "Dec", (gogoproto.nullable) = false];
|
||||
}
|
||||
|
||||
// IntProto defines a Protobuf wrapper around an Int object.
|
||||
message IntProto {
|
||||
string int = 1 [(cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "Int", (gogoproto.nullable) = false];
|
||||
}
|
||||
|
||||
// DecProto defines a Protobuf wrapper around a Dec object.
|
||||
message DecProto {
|
||||
string dec = 1 [(cosmos_proto.scalar) = "cosmos.Dec", (gogoproto.customtype) = "Dec", (gogoproto.nullable) = false];
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
// 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;
|
||||
string name = 2;
|
||||
}
|
||||
|
||||
// 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];
|
||||
}
|
||||
@@ -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];
|
||||
}
|
||||
|
||||
// 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];
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
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];
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
syntax = "proto3";
|
||||
package cosmos.crisis.v1beta1;
|
||||
|
||||
option go_package = "github.com/cosmos/cosmos-sdk/x/crisis/types";
|
||||
|
||||
import "gogoproto/gogo.proto";
|
||||
import "cosmos_proto/cosmos.proto";
|
||||
import "cosmos/msg/v1/msg.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 (cosmos.msg.v1.signer) = "sender";
|
||||
|
||||
option (gogoproto.equal) = false;
|
||||
option (gogoproto.goproto_getters) = false;
|
||||
|
||||
string sender = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
string invariant_module_name = 2;
|
||||
string invariant_route = 3;
|
||||
}
|
||||
|
||||
// MsgVerifyInvariantResponse defines the Msg/VerifyInvariant response type.
|
||||
message MsgVerifyInvariantResponse {}
|
||||
@@ -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"];
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
syntax = "proto3";
|
||||
package cosmos.crypto.hd.v1;
|
||||
|
||||
import "gogoproto/gogo.proto";
|
||||
|
||||
option go_package = "github.com/cosmos/cosmos-sdk/crypto/hd";
|
||||
option (gogoproto.goproto_getters_all) = false;
|
||||
|
||||
// BIP44Params is used as path field in ledger item in Record.
|
||||
message BIP44Params {
|
||||
option (gogoproto.goproto_stringer) = false;
|
||||
// purpose is a constant set to 44' (or 0x8000002C) following the BIP43 recommendation
|
||||
uint32 purpose = 1;
|
||||
// coin_type is a constant that improves privacy
|
||||
uint32 coin_type = 2;
|
||||
// account splits the key space into independent user identities
|
||||
uint32 account = 3;
|
||||
// change is a constant used for public derivation. Constant 0 is used for external chain and constant 1 for internal
|
||||
// chain.
|
||||
bool change = 4;
|
||||
// address_index is used as child index in BIP32 derivation
|
||||
uint32 address_index = 5;
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
syntax = "proto3";
|
||||
package cosmos.crypto.keyring.v1;
|
||||
|
||||
import "gogoproto/gogo.proto";
|
||||
import "google/protobuf/any.proto";
|
||||
import "cosmos/crypto/hd/v1/hd.proto";
|
||||
|
||||
option go_package = "github.com/cosmos/cosmos-sdk/crypto/keyring";
|
||||
option (gogoproto.goproto_getters_all) = false;
|
||||
|
||||
// Record is used for representing a key in the keyring.
|
||||
message Record {
|
||||
// name represents a name of Record
|
||||
string name = 1;
|
||||
// pub_key represents a public key in any format
|
||||
google.protobuf.Any pub_key = 2;
|
||||
|
||||
// Record contains one of the following items
|
||||
oneof item {
|
||||
// local stores the public information about a locally stored key
|
||||
Local local = 3;
|
||||
// ledger stores the public information about a Ledger key
|
||||
Ledger ledger = 4;
|
||||
// Multi does not store any information.
|
||||
Multi multi = 5;
|
||||
// Offline does not store any information.
|
||||
Offline offline = 6;
|
||||
}
|
||||
|
||||
// Item is a keyring item stored in a keyring backend.
|
||||
// Local item
|
||||
message Local {
|
||||
google.protobuf.Any priv_key = 1;
|
||||
string priv_key_type = 2;
|
||||
}
|
||||
|
||||
// Ledger item
|
||||
message Ledger {
|
||||
hd.v1.BIP44Params path = 1;
|
||||
}
|
||||
|
||||
// Multi item
|
||||
message Multi {}
|
||||
|
||||
// Offline item
|
||||
message Offline {}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
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;
|
||||
repeated google.protobuf.Any public_keys = 2 [(gogoproto.customname) = "PubKeys"];
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
// Since: cosmos-sdk 0.43
|
||||
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"];
|
||||
}
|
||||
@@ -0,0 +1,154 @@
|
||||
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_proto/cosmos.proto";
|
||||
|
||||
// Params defines the set of params for the distribution module.
|
||||
message Params {
|
||||
option (gogoproto.goproto_stringer) = false;
|
||||
string community_tax = 1 [
|
||||
(cosmos_proto.scalar) = "cosmos.Dec",
|
||||
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec",
|
||||
(gogoproto.nullable) = false
|
||||
];
|
||||
string base_proposer_reward = 2 [
|
||||
(cosmos_proto.scalar) = "cosmos.Dec",
|
||||
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec",
|
||||
(gogoproto.nullable) = false
|
||||
];
|
||||
string bonus_proposer_reward = 3 [
|
||||
(cosmos_proto.scalar) = "cosmos.Dec",
|
||||
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec",
|
||||
(gogoproto.nullable) = false
|
||||
];
|
||||
bool withdraw_addr_enabled = 4;
|
||||
}
|
||||
|
||||
// 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.castrepeated) = "github.com/cosmos/cosmos-sdk/types.DecCoins", (gogoproto.nullable) = false];
|
||||
uint32 reference_count = 2;
|
||||
}
|
||||
|
||||
// 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.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;
|
||||
string fraction = 2 [
|
||||
(cosmos_proto.scalar) = "cosmos.Dec",
|
||||
(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.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"];
|
||||
}
|
||||
|
||||
// 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;
|
||||
option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content";
|
||||
|
||||
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;
|
||||
string stake = 2 [
|
||||
(cosmos_proto.scalar) = "cosmos.Dec",
|
||||
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec",
|
||||
(gogoproto.nullable) = false
|
||||
];
|
||||
uint64 height = 3 [(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 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
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;
|
||||
option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content";
|
||||
|
||||
string title = 1;
|
||||
string description = 2;
|
||||
string recipient = 3;
|
||||
string amount = 4;
|
||||
string deposit = 5;
|
||||
}
|
||||
@@ -0,0 +1,144 @@
|
||||
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";
|
||||
import "cosmos_proto/cosmos.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 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// withdraw_address is the address to withdraw the delegation rewards to.
|
||||
string withdraw_address = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
}
|
||||
|
||||
// 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 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// 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];
|
||||
}
|
||||
|
||||
// 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 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// accumulated is the accumulated commission of a validator.
|
||||
ValidatorAccumulatedCommission accumulated = 2 [(gogoproto.nullable) = false];
|
||||
}
|
||||
|
||||
// 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 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// 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];
|
||||
}
|
||||
|
||||
// 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 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// rewards defines the current rewards of a validator.
|
||||
ValidatorCurrentRewards rewards = 2 [(gogoproto.nullable) = false];
|
||||
}
|
||||
|
||||
// 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 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// validator_address is the address of the validator.
|
||||
string validator_address = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// starting_info defines the starting info of a delegator.
|
||||
DelegatorStartingInfo starting_info = 3 [(gogoproto.nullable) = false];
|
||||
}
|
||||
|
||||
// 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 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
// 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];
|
||||
}
|
||||
|
||||
// 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];
|
||||
|
||||
// fee_pool defines the fee pool at genesis.
|
||||
FeePool fee_pool = 2 [(gogoproto.nullable) = false];
|
||||
|
||||
// fee_pool defines the delegator withdraw infos at genesis.
|
||||
repeated DelegatorWithdrawInfo delegator_withdraw_infos = 3 [(gogoproto.nullable) = false];
|
||||
|
||||
// fee_pool defines the previous proposer at genesis.
|
||||
string previous_proposer = 4 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// fee_pool defines the outstanding rewards of all validators at genesis.
|
||||
repeated ValidatorOutstandingRewardsRecord outstanding_rewards = 5 [(gogoproto.nullable) = false];
|
||||
|
||||
// fee_pool defines the accumulated commisions of all validators at genesis.
|
||||
repeated ValidatorAccumulatedCommissionRecord validator_accumulated_commissions = 6 [(gogoproto.nullable) = false];
|
||||
|
||||
// fee_pool defines the historical rewards of all validators at genesis.
|
||||
repeated ValidatorHistoricalRewardsRecord validator_historical_rewards = 7 [(gogoproto.nullable) = false];
|
||||
|
||||
// fee_pool defines the current rewards of all validators at genesis.
|
||||
repeated ValidatorCurrentRewardsRecord validator_current_rewards = 8 [(gogoproto.nullable) = false];
|
||||
|
||||
// fee_pool defines the delegator starting infos at genesis.
|
||||
repeated DelegatorStartingInfoRecord delegator_starting_infos = 9 [(gogoproto.nullable) = false];
|
||||
|
||||
// fee_pool defines the validator slash events at genesis.
|
||||
repeated ValidatorSlashEventRecord validator_slash_events = 10 [(gogoproto.nullable) = false];
|
||||
}
|
||||
@@ -0,0 +1,219 @@
|
||||
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";
|
||||
import "cosmos_proto/cosmos.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 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
}
|
||||
|
||||
// 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 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
}
|
||||
|
||||
// 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 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
// 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 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
// validator_address defines the validator address to query for.
|
||||
string validator_address = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
}
|
||||
|
||||
// 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 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
}
|
||||
|
||||
// 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 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
}
|
||||
|
||||
// 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 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
}
|
||||
|
||||
// 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 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
}
|
||||
|
||||
// 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];
|
||||
}
|
||||
@@ -0,0 +1,95 @@
|
||||
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_proto/cosmos.proto";
|
||||
import "cosmos/msg/v1/msg.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 (cosmos.msg.v1.signer) = "delegator_address";
|
||||
|
||||
option (gogoproto.equal) = false;
|
||||
option (gogoproto.goproto_getters) = false;
|
||||
|
||||
string delegator_address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
string withdraw_address = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
}
|
||||
|
||||
// MsgSetWithdrawAddressResponse defines the Msg/SetWithdrawAddress response type.
|
||||
message MsgSetWithdrawAddressResponse {}
|
||||
|
||||
// MsgWithdrawDelegatorReward represents delegation withdrawal to a delegator
|
||||
// from a single validator.
|
||||
message MsgWithdrawDelegatorReward {
|
||||
option (cosmos.msg.v1.signer) = "delegator_address";
|
||||
|
||||
option (gogoproto.equal) = false;
|
||||
option (gogoproto.goproto_getters) = false;
|
||||
|
||||
string delegator_address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
string validator_address = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
}
|
||||
|
||||
// MsgWithdrawDelegatorRewardResponse defines the Msg/WithdrawDelegatorReward response type.
|
||||
message MsgWithdrawDelegatorRewardResponse {
|
||||
repeated cosmos.base.v1beta1.Coin amount = 1
|
||||
[(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"];
|
||||
}
|
||||
|
||||
// MsgWithdrawValidatorCommission withdraws the full commission to the validator
|
||||
// address.
|
||||
message MsgWithdrawValidatorCommission {
|
||||
option (cosmos.msg.v1.signer) = "validator_address";
|
||||
|
||||
option (gogoproto.equal) = false;
|
||||
option (gogoproto.goproto_getters) = false;
|
||||
|
||||
string validator_address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
}
|
||||
|
||||
// MsgWithdrawValidatorCommissionResponse defines the Msg/WithdrawValidatorCommission response type.
|
||||
message MsgWithdrawValidatorCommissionResponse {
|
||||
repeated cosmos.base.v1beta1.Coin amount = 1
|
||||
[(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"];
|
||||
}
|
||||
|
||||
// MsgFundCommunityPool allows an account to directly
|
||||
// fund the community pool.
|
||||
message MsgFundCommunityPool {
|
||||
option (cosmos.msg.v1.signer) = "depositor";
|
||||
|
||||
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 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
}
|
||||
|
||||
// MsgFundCommunityPoolResponse defines the Msg/FundCommunityPool response type.
|
||||
message MsgFundCommunityPoolResponse {}
|
||||
@@ -0,0 +1,22 @@
|
||||
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";
|
||||
import "cosmos_proto/cosmos.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 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
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";
|
||||
import "cosmos/msg/v1/msg.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 (cosmos.msg.v1.signer) = "submitter";
|
||||
|
||||
option (gogoproto.equal) = false;
|
||||
option (gogoproto.goproto_getters) = false;
|
||||
|
||||
string submitter = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
google.protobuf.Any evidence = 2 [(cosmos_proto.accepts_interface) = "cosmos.evidence.Evidence"];
|
||||
}
|
||||
|
||||
// MsgSubmitEvidenceResponse defines the Msg/SubmitEvidence response type.
|
||||
message MsgSubmitEvidenceResponse {
|
||||
// hash defines the hash of the evidence.
|
||||
bytes hash = 4;
|
||||
}
|
||||
@@ -0,0 +1,78 @@
|
||||
// Since: cosmos-sdk 0.43
|
||||
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) = "cosmos.feegrant.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) = "cosmos.feegrant.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) = "cosmos.feegrant.FeeAllowanceI";
|
||||
|
||||
// allowance can be any of basic and periodic fee allowance.
|
||||
google.protobuf.Any allowance = 1 [(cosmos_proto.accepts_interface) = "cosmos.feegrant.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 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// grantee is the address of the user being granted an allowance of another user's funds.
|
||||
string grantee = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// allowance can be any of basic, periodic, allowed fee allowance.
|
||||
google.protobuf.Any allowance = 3 [(cosmos_proto.accepts_interface) = "cosmos.feegrant.FeeAllowanceI"];
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
// Since: cosmos-sdk 0.43
|
||||
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];
|
||||
}
|
||||
@@ -0,0 +1,79 @@
|
||||
// Since: cosmos-sdk 0.43
|
||||
syntax = "proto3";
|
||||
package cosmos.feegrant.v1beta1;
|
||||
|
||||
import "cosmos/feegrant/v1beta1/feegrant.proto";
|
||||
import "cosmos/base/query/v1beta1/pagination.proto";
|
||||
import "google/api/annotations.proto";
|
||||
import "cosmos_proto/cosmos.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}";
|
||||
}
|
||||
|
||||
// AllowancesByGranter returns all the grants given by an address
|
||||
// Since v0.46
|
||||
rpc AllowancesByGranter(QueryAllowancesByGranterRequest) returns (QueryAllowancesByGranterResponse) {
|
||||
option (google.api.http).get = "/cosmos/feegrant/v1beta1/issued/{granter}";
|
||||
}
|
||||
}
|
||||
|
||||
// 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 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// grantee is the address of the user being granted an allowance of another user's funds.
|
||||
string grantee = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
}
|
||||
|
||||
// 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 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// 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;
|
||||
}
|
||||
|
||||
// QueryAllowancesByGranterRequest is the request type for the Query/AllowancesByGranter RPC method.
|
||||
message QueryAllowancesByGranterRequest {
|
||||
string granter = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// pagination defines an pagination for the request.
|
||||
cosmos.base.query.v1beta1.PageRequest pagination = 2;
|
||||
}
|
||||
|
||||
// QueryAllowancesByGranterResponse is the response type for the Query/AllowancesByGranter RPC method.
|
||||
message QueryAllowancesByGranterResponse {
|
||||
// allowances that have been issued by the granter.
|
||||
repeated cosmos.feegrant.v1beta1.Grant allowances = 1;
|
||||
|
||||
// pagination defines an pagination for the response.
|
||||
cosmos.base.query.v1beta1.PageResponse pagination = 2;
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
// Since: cosmos-sdk 0.43
|
||||
syntax = "proto3";
|
||||
package cosmos.feegrant.v1beta1;
|
||||
|
||||
import "google/protobuf/any.proto";
|
||||
import "cosmos_proto/cosmos.proto";
|
||||
import "cosmos/msg/v1/msg.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 {
|
||||
option (cosmos.msg.v1.signer) = "granter";
|
||||
|
||||
// granter is the address of the user granting an allowance of their funds.
|
||||
string granter = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// grantee is the address of the user being granted an allowance of another user's funds.
|
||||
string grantee = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// allowance can be any of basic, periodic, allowed fee allowance.
|
||||
google.protobuf.Any allowance = 3 [(cosmos_proto.accepts_interface) = "cosmos.feegrant.FeeAllowanceI"];
|
||||
}
|
||||
|
||||
// MsgGrantAllowanceResponse defines the Msg/GrantAllowanceResponse response type.
|
||||
message MsgGrantAllowanceResponse {}
|
||||
|
||||
// MsgRevokeAllowance removes any existing Allowance from Granter to Grantee.
|
||||
message MsgRevokeAllowance {
|
||||
option (cosmos.msg.v1.signer) = "granter";
|
||||
|
||||
// granter is the address of the user granting an allowance of their funds.
|
||||
string granter = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// grantee is the address of the user being granted an allowance of another user's funds.
|
||||
string grantee = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
}
|
||||
|
||||
// MsgRevokeAllowanceResponse defines the Msg/RevokeAllowanceResponse response type.
|
||||
message MsgRevokeAllowanceResponse {}
|
||||
@@ -0,0 +1,12 @@
|
||||
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"];
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
// Since: cosmos-sdk 0.46
|
||||
syntax = "proto3";
|
||||
|
||||
package cosmos.gov.v1;
|
||||
|
||||
import "cosmos/gov/v1/gov.proto";
|
||||
|
||||
option go_package = "github.com/cosmos/cosmos-sdk/x/gov/types/v1";
|
||||
|
||||
// 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;
|
||||
// deposits defines all the deposits present at genesis.
|
||||
repeated Deposit deposits = 2;
|
||||
// votes defines all the votes present at genesis.
|
||||
repeated Vote votes = 3;
|
||||
// proposals defines all the proposals present at genesis.
|
||||
repeated Proposal proposals = 4;
|
||||
// params defines all the paramaters of related to deposit.
|
||||
DepositParams deposit_params = 5;
|
||||
// params defines all the paramaters of related to voting.
|
||||
VotingParams voting_params = 6;
|
||||
// params defines all the paramaters of related to tally.
|
||||
TallyParams tally_params = 7;
|
||||
}
|
||||
@@ -0,0 +1,132 @@
|
||||
// Since: cosmos-sdk 0.46
|
||||
syntax = "proto3";
|
||||
package cosmos.gov.v1;
|
||||
|
||||
import "cosmos/base/v1beta1/coin.proto";
|
||||
import "gogoproto/gogo.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
import "google/protobuf/any.proto";
|
||||
import "google/protobuf/duration.proto";
|
||||
import "cosmos_proto/cosmos.proto";
|
||||
|
||||
option go_package = "github.com/cosmos/cosmos-sdk/x/gov/types/v1";
|
||||
|
||||
// VoteOption enumerates the valid vote options for a given governance proposal.
|
||||
enum VoteOption {
|
||||
// VOTE_OPTION_UNSPECIFIED defines a no-op vote option.
|
||||
VOTE_OPTION_UNSPECIFIED = 0;
|
||||
// VOTE_OPTION_YES defines a yes vote option.
|
||||
VOTE_OPTION_YES = 1;
|
||||
// VOTE_OPTION_ABSTAIN defines an abstain vote option.
|
||||
VOTE_OPTION_ABSTAIN = 2;
|
||||
// VOTE_OPTION_NO defines a no vote option.
|
||||
VOTE_OPTION_NO = 3;
|
||||
// VOTE_OPTION_NO_WITH_VETO defines a no with veto vote option.
|
||||
VOTE_OPTION_NO_WITH_VETO = 4;
|
||||
}
|
||||
|
||||
// WeightedVoteOption defines a unit of vote for vote split.
|
||||
message WeightedVoteOption {
|
||||
VoteOption option = 1;
|
||||
string weight = 2 [(cosmos_proto.scalar) = "cosmos.Dec"];
|
||||
}
|
||||
|
||||
// Deposit defines an amount deposited by an account address to an active
|
||||
// proposal.
|
||||
message Deposit {
|
||||
uint64 proposal_id = 1;
|
||||
string depositor = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
repeated cosmos.base.v1beta1.Coin amount = 3 [(gogoproto.nullable) = false];
|
||||
}
|
||||
|
||||
// Proposal defines the core field members of a governance proposal.
|
||||
message Proposal {
|
||||
uint64 id = 1;
|
||||
repeated google.protobuf.Any messages = 2;
|
||||
ProposalStatus status = 3;
|
||||
// final_tally_result is the final tally result of the proposal. When
|
||||
// querying a proposal via gRPC, this field is not populated until the
|
||||
// proposal's voting period has ended.
|
||||
TallyResult final_tally_result = 4;
|
||||
google.protobuf.Timestamp submit_time = 5 [(gogoproto.stdtime) = true];
|
||||
google.protobuf.Timestamp deposit_end_time = 6 [(gogoproto.stdtime) = true];
|
||||
repeated cosmos.base.v1beta1.Coin total_deposit = 7 [(gogoproto.nullable) = false];
|
||||
google.protobuf.Timestamp voting_start_time = 8 [(gogoproto.stdtime) = true];
|
||||
google.protobuf.Timestamp voting_end_time = 9 [(gogoproto.stdtime) = true];
|
||||
|
||||
// metadata is any arbitrary metadata attached to the proposal.
|
||||
string metadata = 10;
|
||||
}
|
||||
|
||||
// ProposalStatus enumerates the valid statuses of a proposal.
|
||||
enum ProposalStatus {
|
||||
// PROPOSAL_STATUS_UNSPECIFIED defines the default propopsal status.
|
||||
PROPOSAL_STATUS_UNSPECIFIED = 0;
|
||||
// PROPOSAL_STATUS_DEPOSIT_PERIOD defines a proposal status during the deposit
|
||||
// period.
|
||||
PROPOSAL_STATUS_DEPOSIT_PERIOD = 1;
|
||||
// PROPOSAL_STATUS_VOTING_PERIOD defines a proposal status during the voting
|
||||
// period.
|
||||
PROPOSAL_STATUS_VOTING_PERIOD = 2;
|
||||
// PROPOSAL_STATUS_PASSED defines a proposal status of a proposal that has
|
||||
// passed.
|
||||
PROPOSAL_STATUS_PASSED = 3;
|
||||
// PROPOSAL_STATUS_REJECTED defines a proposal status of a proposal that has
|
||||
// been rejected.
|
||||
PROPOSAL_STATUS_REJECTED = 4;
|
||||
// PROPOSAL_STATUS_FAILED defines a proposal status of a proposal that has
|
||||
// failed.
|
||||
PROPOSAL_STATUS_FAILED = 5;
|
||||
}
|
||||
|
||||
// TallyResult defines a standard tally for a governance proposal.
|
||||
message TallyResult {
|
||||
string yes_count = 1 [(cosmos_proto.scalar) = "cosmos.Int"];
|
||||
string abstain_count = 2 [(cosmos_proto.scalar) = "cosmos.Int"];
|
||||
string no_count = 3 [(cosmos_proto.scalar) = "cosmos.Int"];
|
||||
string no_with_veto_count = 4 [(cosmos_proto.scalar) = "cosmos.Int"];
|
||||
}
|
||||
|
||||
// Vote defines a vote on a governance proposal.
|
||||
// A Vote consists of a proposal ID, the voter, and the vote option.
|
||||
message Vote {
|
||||
uint64 proposal_id = 1;
|
||||
string voter = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
reserved 3;
|
||||
repeated WeightedVoteOption options = 4;
|
||||
|
||||
// metadata is any arbitrary metadata to attached to the vote.
|
||||
string metadata = 5;
|
||||
}
|
||||
|
||||
// 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.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.stdduration) = true, (gogoproto.jsontag) = "max_deposit_period,omitempty"];
|
||||
}
|
||||
|
||||
// VotingParams defines the params for voting on governance proposals.
|
||||
message VotingParams {
|
||||
// Length of the voting period.
|
||||
google.protobuf.Duration voting_period = 1 [(gogoproto.stdduration) = true];
|
||||
}
|
||||
|
||||
// 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.
|
||||
string quorum = 1 [(cosmos_proto.scalar) = "cosmos.Dec", (gogoproto.jsontag) = "quorum,omitempty"];
|
||||
|
||||
// Minimum proportion of Yes votes for proposal to pass. Default value: 0.5.
|
||||
string threshold = 2 [(cosmos_proto.scalar) = "cosmos.Dec", (gogoproto.jsontag) = "threshold,omitempty"];
|
||||
|
||||
// Minimum value of Veto votes to Total votes ratio for proposal to be
|
||||
// vetoed. Default value: 1/3.
|
||||
string veto_threshold = 3 [(cosmos_proto.scalar) = "cosmos.Dec", (gogoproto.jsontag) = "veto_threshold,omitempty"];
|
||||
}
|
||||
@@ -0,0 +1,183 @@
|
||||
|
||||
// Since: cosmos-sdk 0.46
|
||||
syntax = "proto3";
|
||||
package cosmos.gov.v1;
|
||||
|
||||
import "cosmos/base/query/v1beta1/pagination.proto";
|
||||
import "google/api/annotations.proto";
|
||||
import "cosmos/gov/v1/gov.proto";
|
||||
import "cosmos_proto/cosmos.proto";
|
||||
|
||||
option go_package = "github.com/cosmos/cosmos-sdk/x/gov/types/v1";
|
||||
|
||||
// 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/v1/proposals/{proposal_id}";
|
||||
}
|
||||
|
||||
// Proposals queries all proposals based on given status.
|
||||
rpc Proposals(QueryProposalsRequest) returns (QueryProposalsResponse) {
|
||||
option (google.api.http).get = "/cosmos/gov/v1/proposals";
|
||||
}
|
||||
|
||||
// Vote queries voted information based on proposalID, voterAddr.
|
||||
rpc Vote(QueryVoteRequest) returns (QueryVoteResponse) {
|
||||
option (google.api.http).get = "/cosmos/gov/v1/proposals/{proposal_id}/votes/{voter}";
|
||||
}
|
||||
|
||||
// Votes queries votes of a given proposal.
|
||||
rpc Votes(QueryVotesRequest) returns (QueryVotesResponse) {
|
||||
option (google.api.http).get = "/cosmos/gov/v1/proposals/{proposal_id}/votes";
|
||||
}
|
||||
|
||||
// Params queries all parameters of the gov module.
|
||||
rpc Params(QueryParamsRequest) returns (QueryParamsResponse) {
|
||||
option (google.api.http).get = "/cosmos/gov/v1/params/{params_type}";
|
||||
}
|
||||
|
||||
// Deposit queries single deposit information based proposalID, depositAddr.
|
||||
rpc Deposit(QueryDepositRequest) returns (QueryDepositResponse) {
|
||||
option (google.api.http).get = "/cosmos/gov/v1/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/v1/proposals/{proposal_id}/deposits";
|
||||
}
|
||||
|
||||
// TallyResult queries the tally of a proposal vote.
|
||||
rpc TallyResult(QueryTallyResultRequest) returns (QueryTallyResultResponse) {
|
||||
option (google.api.http).get = "/cosmos/gov/v1/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;
|
||||
}
|
||||
|
||||
// QueryProposalsRequest is the request type for the Query/Proposals RPC method.
|
||||
message QueryProposalsRequest {
|
||||
// proposal_status defines the status of the proposals.
|
||||
ProposalStatus proposal_status = 1;
|
||||
|
||||
// voter defines the voter address for the proposals.
|
||||
string voter = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// depositor defines the deposit addresses from the proposals.
|
||||
string depositor = 3 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// 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;
|
||||
|
||||
// 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 {
|
||||
// proposal_id defines the unique id of the proposal.
|
||||
uint64 proposal_id = 1;
|
||||
|
||||
// voter defines the oter address for the proposals.
|
||||
string voter = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
}
|
||||
|
||||
// QueryVoteResponse is the response type for the Query/Vote RPC method.
|
||||
message QueryVoteResponse {
|
||||
// vote defined the queried vote.
|
||||
Vote vote = 1;
|
||||
}
|
||||
|
||||
// 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;
|
||||
|
||||
// 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;
|
||||
// deposit_params defines the parameters related to deposit.
|
||||
DepositParams deposit_params = 2;
|
||||
// tally_params defines the parameters related to tally.
|
||||
TallyParams tally_params = 3;
|
||||
}
|
||||
|
||||
// QueryDepositRequest is the request type for the Query/Deposit RPC method.
|
||||
message QueryDepositRequest {
|
||||
// proposal_id defines the unique id of the proposal.
|
||||
uint64 proposal_id = 1;
|
||||
|
||||
// depositor defines the deposit addresses from the proposals.
|
||||
string depositor = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
}
|
||||
|
||||
// QueryDepositResponse is the response type for the Query/Deposit RPC method.
|
||||
message QueryDepositResponse {
|
||||
// deposit defines the requested deposit.
|
||||
Deposit deposit = 1;
|
||||
}
|
||||
|
||||
// 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;
|
||||
|
||||
// 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;
|
||||
}
|
||||
@@ -0,0 +1,100 @@
|
||||
// Since: cosmos-sdk 0.46
|
||||
syntax = "proto3";
|
||||
package cosmos.gov.v1;
|
||||
|
||||
import "cosmos/base/v1beta1/coin.proto";
|
||||
import "cosmos/gov/v1/gov.proto";
|
||||
import "gogoproto/gogo.proto";
|
||||
import "cosmos_proto/cosmos.proto";
|
||||
import "google/protobuf/any.proto";
|
||||
import "cosmos/msg/v1/msg.proto";
|
||||
|
||||
option go_package = "github.com/cosmos/cosmos-sdk/x/gov/types/v1";
|
||||
|
||||
// Msg defines the gov Msg service.
|
||||
service Msg {
|
||||
// SubmitProposal defines a method to create new proposal given a content.
|
||||
rpc SubmitProposal(MsgSubmitProposal) returns (MsgSubmitProposalResponse);
|
||||
|
||||
// ExecLegacyContent defines a Msg to be in included in a MsgSubmitProposal
|
||||
// to execute a legacy content-based proposal.
|
||||
rpc ExecLegacyContent(MsgExecLegacyContent) returns (MsgExecLegacyContentResponse);
|
||||
|
||||
// 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 (cosmos.msg.v1.signer) = "proposer";
|
||||
|
||||
repeated google.protobuf.Any messages = 1;
|
||||
repeated cosmos.base.v1beta1.Coin initial_deposit = 2 [(gogoproto.nullable) = false];
|
||||
string proposer = 3 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
// metadata is any arbitrary metadata attached to the proposal.
|
||||
string metadata = 4;
|
||||
}
|
||||
|
||||
// MsgSubmitProposalResponse defines the Msg/SubmitProposal response type.
|
||||
message MsgSubmitProposalResponse {
|
||||
uint64 proposal_id = 1;
|
||||
}
|
||||
|
||||
// MsgExecLegacyContent is used to wrap the legacy content field into a message.
|
||||
// This ensures backwards compatibility with v1beta1.MsgSubmitProposal.
|
||||
message MsgExecLegacyContent {
|
||||
option (cosmos.msg.v1.signer) = "authority";
|
||||
|
||||
// content is the proposal's content.
|
||||
google.protobuf.Any content = 1 [(cosmos_proto.accepts_interface) = "cosmos.gov.v1beta1.Content"];
|
||||
// authority must be the gov module address.
|
||||
string authority = 2;
|
||||
}
|
||||
|
||||
// MsgExecLegacyContentResponse defines the Msg/ExecLegacyContent response type.
|
||||
message MsgExecLegacyContentResponse {}
|
||||
|
||||
// MsgVote defines a message to cast a vote.
|
||||
message MsgVote {
|
||||
option (cosmos.msg.v1.signer) = "voter";
|
||||
|
||||
uint64 proposal_id = 1 [(gogoproto.jsontag) = "proposal_id"];
|
||||
string voter = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
VoteOption option = 3;
|
||||
string metadata = 4;
|
||||
}
|
||||
|
||||
// MsgVoteResponse defines the Msg/Vote response type.
|
||||
message MsgVoteResponse {}
|
||||
|
||||
// MsgVoteWeighted defines a message to cast a vote.
|
||||
message MsgVoteWeighted {
|
||||
option (cosmos.msg.v1.signer) = "voter";
|
||||
|
||||
uint64 proposal_id = 1 [(gogoproto.jsontag) = "proposal_id"];
|
||||
string voter = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
repeated WeightedVoteOption options = 3;
|
||||
string metadata = 4;
|
||||
}
|
||||
|
||||
// MsgVoteWeightedResponse defines the Msg/VoteWeighted response type.
|
||||
message MsgVoteWeightedResponse {}
|
||||
|
||||
// MsgDeposit defines a message to submit a deposit to an existing proposal.
|
||||
message MsgDeposit {
|
||||
option (cosmos.msg.v1.signer) = "depositor";
|
||||
|
||||
uint64 proposal_id = 1 [(gogoproto.jsontag) = "proposal_id"];
|
||||
string depositor = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
repeated cosmos.base.v1beta1.Coin amount = 3 [(gogoproto.nullable) = false];
|
||||
}
|
||||
|
||||
// MsgDepositResponse defines the Msg/Deposit response type.
|
||||
message MsgDepositResponse {}
|
||||
@@ -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/v1beta1";
|
||||
|
||||
// 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;
|
||||
// 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];
|
||||
// params defines all the paramaters of related to voting.
|
||||
VotingParams voting_params = 6 [(gogoproto.nullable) = false];
|
||||
// params defines all the paramaters of related to tally.
|
||||
TallyParams tally_params = 7 [(gogoproto.nullable) = false];
|
||||
}
|
||||
@@ -0,0 +1,201 @@
|
||||
syntax = "proto3";
|
||||
package cosmos.gov.v1beta1;
|
||||
|
||||
import "cosmos/base/v1beta1/coin.proto";
|
||||
import "gogoproto/gogo.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
import "google/protobuf/any.proto";
|
||||
import "google/protobuf/duration.proto";
|
||||
import "cosmos_proto/cosmos.proto";
|
||||
|
||||
option go_package = "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1";
|
||||
|
||||
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.
|
||||
//
|
||||
// Since: cosmos-sdk 0.43
|
||||
message WeightedVoteOption {
|
||||
VoteOption option = 1;
|
||||
string weight = 2 [
|
||||
(cosmos_proto.scalar) = "cosmos.Dec",
|
||||
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec",
|
||||
(gogoproto.nullable) = false
|
||||
];
|
||||
}
|
||||
|
||||
// TextProposal defines a standard text proposal whose changes need to be
|
||||
// manually updated in case of approval.
|
||||
message TextProposal {
|
||||
option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.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;
|
||||
string depositor = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
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;
|
||||
google.protobuf.Any content = 2 [(cosmos_proto.accepts_interface) = "cosmos.gov.v1beta1.Content"];
|
||||
ProposalStatus status = 3;
|
||||
// final_tally_result is the final tally result of the proposal. When
|
||||
// querying a proposal via gRPC, this field is not populated until the
|
||||
// proposal's voting period has ended.
|
||||
TallyResult final_tally_result = 4 [(gogoproto.nullable) = false];
|
||||
google.protobuf.Timestamp submit_time = 5 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false];
|
||||
google.protobuf.Timestamp deposit_end_time = 6 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false];
|
||||
repeated cosmos.base.v1beta1.Coin total_deposit = 7
|
||||
[(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"];
|
||||
google.protobuf.Timestamp voting_start_time = 8 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false];
|
||||
google.protobuf.Timestamp voting_end_time = 9 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false];
|
||||
}
|
||||
|
||||
// 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 [
|
||||
(cosmos_proto.scalar) = "cosmos.Int",
|
||||
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
|
||||
(gogoproto.nullable) = false
|
||||
];
|
||||
string abstain = 2 [
|
||||
(cosmos_proto.scalar) = "cosmos.Int",
|
||||
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
|
||||
(gogoproto.nullable) = false
|
||||
];
|
||||
string no = 3 [
|
||||
(cosmos_proto.scalar) = "cosmos.Int",
|
||||
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
|
||||
(gogoproto.nullable) = false
|
||||
];
|
||||
string no_with_veto = 4 [
|
||||
(cosmos_proto.scalar) = "cosmos.Int",
|
||||
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
|
||||
(gogoproto.nullable) = false
|
||||
];
|
||||
}
|
||||
|
||||
// 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.jsontag) = "id"];
|
||||
string voter = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
// 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];
|
||||
// Since: cosmos-sdk 0.43
|
||||
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.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"
|
||||
];
|
||||
}
|
||||
|
||||
// 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"];
|
||||
}
|
||||
|
||||
// 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"
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,191 @@
|
||||
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";
|
||||
import "cosmos_proto/cosmos.proto";
|
||||
|
||||
option go_package = "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1";
|
||||
|
||||
// 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 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// depositor defines the deposit addresses from the proposals.
|
||||
string depositor = 3 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// 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 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
}
|
||||
|
||||
// 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 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
}
|
||||
|
||||
// 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];
|
||||
}
|
||||
@@ -0,0 +1,106 @@
|
||||
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";
|
||||
|
||||
import "cosmos/msg/v1/msg.proto";
|
||||
|
||||
option go_package = "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1";
|
||||
|
||||
// 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.
|
||||
//
|
||||
// Since: cosmos-sdk 0.43
|
||||
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 (cosmos.msg.v1.signer) = "proposer";
|
||||
|
||||
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) = "cosmos.gov.v1beta1.Content"];
|
||||
repeated cosmos.base.v1beta1.Coin initial_deposit = 2
|
||||
[(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"];
|
||||
string proposer = 3 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
}
|
||||
|
||||
// MsgSubmitProposalResponse defines the Msg/SubmitProposal response type.
|
||||
message MsgSubmitProposalResponse {
|
||||
uint64 proposal_id = 1 [(gogoproto.jsontag) = "proposal_id"];
|
||||
}
|
||||
|
||||
// MsgVote defines a message to cast a vote.
|
||||
message MsgVote {
|
||||
option (cosmos.msg.v1.signer) = "voter";
|
||||
|
||||
option (gogoproto.equal) = false;
|
||||
option (gogoproto.goproto_stringer) = false;
|
||||
option (gogoproto.stringer) = false;
|
||||
option (gogoproto.goproto_getters) = false;
|
||||
|
||||
uint64 proposal_id = 1;
|
||||
string voter = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
VoteOption option = 3;
|
||||
}
|
||||
|
||||
// MsgVoteResponse defines the Msg/Vote response type.
|
||||
message MsgVoteResponse {}
|
||||
|
||||
// MsgVoteWeighted defines a message to cast a vote.
|
||||
//
|
||||
// Since: cosmos-sdk 0.43
|
||||
message MsgVoteWeighted {
|
||||
option (cosmos.msg.v1.signer) = "voter";
|
||||
|
||||
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"];
|
||||
string voter = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
repeated WeightedVoteOption options = 3 [(gogoproto.nullable) = false];
|
||||
}
|
||||
|
||||
// MsgVoteWeightedResponse defines the Msg/VoteWeighted response type.
|
||||
//
|
||||
// Since: cosmos-sdk 0.43
|
||||
message MsgVoteWeightedResponse {}
|
||||
|
||||
// MsgDeposit defines a message to submit a deposit to an existing proposal.
|
||||
message MsgDeposit {
|
||||
option (cosmos.msg.v1.signer) = "depositor";
|
||||
|
||||
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"];
|
||||
string depositor = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
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 {}
|
||||
@@ -0,0 +1,77 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package cosmos.group.v1;
|
||||
|
||||
import "cosmos_proto/cosmos.proto";
|
||||
import "cosmos/group/v1/types.proto";
|
||||
|
||||
option go_package = "github.com/cosmos/cosmos-sdk/x/group";
|
||||
|
||||
// EventCreateGroup is an event emitted when a group is created.
|
||||
message EventCreateGroup {
|
||||
|
||||
// group_id is the unique ID of the group.
|
||||
uint64 group_id = 1;
|
||||
}
|
||||
|
||||
// EventUpdateGroup is an event emitted when a group is updated.
|
||||
message EventUpdateGroup {
|
||||
|
||||
// group_id is the unique ID of the group.
|
||||
uint64 group_id = 1;
|
||||
}
|
||||
|
||||
// EventCreateGroupPolicy is an event emitted when a group policy is created.
|
||||
message EventCreateGroupPolicy {
|
||||
|
||||
// address is the account address of the group policy.
|
||||
string address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
}
|
||||
|
||||
// EventUpdateGroupPolicy is an event emitted when a group policy is updated.
|
||||
message EventUpdateGroupPolicy {
|
||||
|
||||
// address is the account address of the group policy.
|
||||
string address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
}
|
||||
|
||||
// EventSubmitProposal is an event emitted when a proposal is created.
|
||||
message EventSubmitProposal {
|
||||
|
||||
// proposal_id is the unique ID of the proposal.
|
||||
uint64 proposal_id = 1;
|
||||
}
|
||||
|
||||
// EventWithdrawProposal is an event emitted when a proposal is withdrawn.
|
||||
message EventWithdrawProposal {
|
||||
|
||||
// proposal_id is the unique ID of the proposal.
|
||||
uint64 proposal_id = 1;
|
||||
}
|
||||
|
||||
// EventVote is an event emitted when a voter votes on a proposal.
|
||||
message EventVote {
|
||||
|
||||
// proposal_id is the unique ID of the proposal.
|
||||
uint64 proposal_id = 1;
|
||||
}
|
||||
|
||||
// EventExec is an event emitted when a proposal is executed.
|
||||
message EventExec {
|
||||
|
||||
// proposal_id is the unique ID of the proposal.
|
||||
uint64 proposal_id = 1;
|
||||
|
||||
// result is the proposal execution result.
|
||||
ProposalExecutorResult result = 2;
|
||||
}
|
||||
|
||||
// EventLeaveGroup is an event emitted when group member leaves the group.
|
||||
message EventLeaveGroup {
|
||||
|
||||
// group_id is the unique ID of the group.
|
||||
uint64 group_id = 1;
|
||||
|
||||
// address is the account address of the group member.
|
||||
string address = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package cosmos.group.v1;
|
||||
|
||||
option go_package = "github.com/cosmos/cosmos-sdk/x/group";
|
||||
|
||||
import "cosmos/group/v1/types.proto";
|
||||
|
||||
// GenesisState defines the group module's genesis state.
|
||||
message GenesisState {
|
||||
|
||||
// group_seq is the group table orm.Sequence,
|
||||
// it is used to get the next group ID.
|
||||
uint64 group_seq = 1;
|
||||
|
||||
// groups is the list of groups info.
|
||||
repeated GroupInfo groups = 2;
|
||||
|
||||
// group_members is the list of groups members.
|
||||
repeated GroupMember group_members = 3;
|
||||
|
||||
// group_policy_seq is the group policy table orm.Sequence,
|
||||
// it is used to generate the next group policy account address.
|
||||
uint64 group_policy_seq = 4;
|
||||
|
||||
// group_policies is the list of group policies info.
|
||||
repeated GroupPolicyInfo group_policies = 5;
|
||||
|
||||
// proposal_seq is the proposal table orm.Sequence,
|
||||
// it is used to get the next proposal ID.
|
||||
uint64 proposal_seq = 6;
|
||||
|
||||
// proposals is the list of proposals.
|
||||
repeated Proposal proposals = 7;
|
||||
|
||||
// votes is the list of votes.
|
||||
repeated Vote votes = 8;
|
||||
}
|
||||
@@ -0,0 +1,308 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package cosmos.group.v1;
|
||||
|
||||
import "gogoproto/gogo.proto";
|
||||
import "google/api/annotations.proto";
|
||||
import "cosmos/group/v1/types.proto";
|
||||
import "cosmos/base/query/v1beta1/pagination.proto";
|
||||
import "cosmos_proto/cosmos.proto";
|
||||
|
||||
option go_package = "github.com/cosmos/cosmos-sdk/x/group";
|
||||
|
||||
// Query is the cosmos.group.v1 Query service.
|
||||
service Query {
|
||||
|
||||
// GroupInfo queries group info based on group id.
|
||||
rpc GroupInfo(QueryGroupInfoRequest) returns (QueryGroupInfoResponse) {
|
||||
option (google.api.http).get = "/cosmos/group/v1/group_info/{group_id}";
|
||||
};
|
||||
|
||||
// GroupPolicyInfo queries group policy info based on account address of group policy.
|
||||
rpc GroupPolicyInfo(QueryGroupPolicyInfoRequest) returns (QueryGroupPolicyInfoResponse) {
|
||||
option (google.api.http).get = "/cosmos/group/v1/group_policy_info/{address}";
|
||||
};
|
||||
|
||||
// GroupMembers queries members of a group
|
||||
rpc GroupMembers(QueryGroupMembersRequest) returns (QueryGroupMembersResponse) {
|
||||
option (google.api.http).get = "/cosmos/group/v1/group_members/{group_id}";
|
||||
};
|
||||
|
||||
// GroupsByAdmin queries groups by admin address.
|
||||
rpc GroupsByAdmin(QueryGroupsByAdminRequest) returns (QueryGroupsByAdminResponse) {
|
||||
option (google.api.http).get = "/cosmos/group/v1/groups_by_admin/{admin}";
|
||||
};
|
||||
|
||||
// GroupPoliciesByGroup queries group policies by group id.
|
||||
rpc GroupPoliciesByGroup(QueryGroupPoliciesByGroupRequest) returns (QueryGroupPoliciesByGroupResponse) {
|
||||
option (google.api.http).get = "/cosmos/group/v1/group_policies_by_group/{group_id}";
|
||||
};
|
||||
|
||||
// GroupsByAdmin queries group policies by admin address.
|
||||
rpc GroupPoliciesByAdmin(QueryGroupPoliciesByAdminRequest) returns (QueryGroupPoliciesByAdminResponse) {
|
||||
option (google.api.http).get = "/cosmos/group/v1/group_policies_by_admin/{admin}";
|
||||
};
|
||||
|
||||
// Proposal queries a proposal based on proposal id.
|
||||
rpc Proposal(QueryProposalRequest) returns (QueryProposalResponse) {
|
||||
option (google.api.http).get = "/cosmos/group/v1/proposal/{proposal_id}";
|
||||
};
|
||||
|
||||
// ProposalsByGroupPolicy queries proposals based on account address of group policy.
|
||||
rpc ProposalsByGroupPolicy(QueryProposalsByGroupPolicyRequest) returns (QueryProposalsByGroupPolicyResponse) {
|
||||
option (google.api.http).get = "/cosmos/group/v1/proposals_by_group_policy/{address}";
|
||||
};
|
||||
|
||||
// VoteByProposalVoter queries a vote by proposal id and voter.
|
||||
rpc VoteByProposalVoter(QueryVoteByProposalVoterRequest) returns (QueryVoteByProposalVoterResponse) {
|
||||
option (google.api.http).get = "/cosmos/group/v1/vote_by_proposal_voter/{proposal_id}/{voter}";
|
||||
};
|
||||
|
||||
// VotesByProposal queries a vote by proposal.
|
||||
rpc VotesByProposal(QueryVotesByProposalRequest) returns (QueryVotesByProposalResponse) {
|
||||
option (google.api.http).get = "/cosmos/group/v1/votes_by_proposal/{proposal_id}";
|
||||
};
|
||||
|
||||
// VotesByVoter queries a vote by voter.
|
||||
rpc VotesByVoter(QueryVotesByVoterRequest) returns (QueryVotesByVoterResponse) {
|
||||
option (google.api.http).get = "/cosmos/group/v1/votes_by_voter/{voter}";
|
||||
};
|
||||
|
||||
// GroupsByMember queries groups by member address.
|
||||
rpc GroupsByMember(QueryGroupsByMemberRequest) returns (QueryGroupsByMemberResponse) {
|
||||
option (google.api.http).get = "/cosmos/group/v1/groups_by_member/{address}";
|
||||
};
|
||||
|
||||
// TallyResult queries the tally of a proposal votes.
|
||||
rpc TallyResult(QueryTallyResultRequest) returns (QueryTallyResultResponse) {
|
||||
option (google.api.http).get = "/cosmos/group/v1/proposals/{proposal_id}/tally";
|
||||
};
|
||||
}
|
||||
|
||||
// QueryGroupInfoRequest is the Query/GroupInfo request type.
|
||||
message QueryGroupInfoRequest {
|
||||
|
||||
// group_id is the unique ID of the group.
|
||||
uint64 group_id = 1;
|
||||
}
|
||||
|
||||
// QueryGroupInfoResponse is the Query/GroupInfo response type.
|
||||
message QueryGroupInfoResponse {
|
||||
|
||||
// info is the GroupInfo for the group.
|
||||
GroupInfo info = 1;
|
||||
}
|
||||
|
||||
// QueryGroupPolicyInfoRequest is the Query/GroupPolicyInfo request type.
|
||||
message QueryGroupPolicyInfoRequest {
|
||||
|
||||
// address is the account address of the group policy.
|
||||
string address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
}
|
||||
|
||||
// QueryGroupPolicyInfoResponse is the Query/GroupPolicyInfo response type.
|
||||
message QueryGroupPolicyInfoResponse {
|
||||
|
||||
// info is the GroupPolicyInfo for the group policy.
|
||||
GroupPolicyInfo info = 1;
|
||||
}
|
||||
|
||||
// QueryGroupMembersRequest is the Query/GroupMembers request type.
|
||||
message QueryGroupMembersRequest {
|
||||
|
||||
// group_id is the unique ID of the group.
|
||||
uint64 group_id = 1;
|
||||
|
||||
// pagination defines an optional pagination for the request.
|
||||
cosmos.base.query.v1beta1.PageRequest pagination = 2;
|
||||
}
|
||||
|
||||
// QueryGroupMembersResponse is the Query/GroupMembersResponse response type.
|
||||
message QueryGroupMembersResponse {
|
||||
|
||||
// members are the members of the group with given group_id.
|
||||
repeated GroupMember members = 1;
|
||||
|
||||
// pagination defines the pagination in the response.
|
||||
cosmos.base.query.v1beta1.PageResponse pagination = 2;
|
||||
}
|
||||
|
||||
// QueryGroupsByAdminRequest is the Query/GroupsByAdmin request type.
|
||||
message QueryGroupsByAdminRequest {
|
||||
|
||||
// admin is the account address of a group's admin.
|
||||
string admin = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// pagination defines an optional pagination for the request.
|
||||
cosmos.base.query.v1beta1.PageRequest pagination = 2;
|
||||
}
|
||||
|
||||
// QueryGroupsByAdminResponse is the Query/GroupsByAdminResponse response type.
|
||||
message QueryGroupsByAdminResponse {
|
||||
|
||||
// groups are the groups info with the provided admin.
|
||||
repeated GroupInfo groups = 1;
|
||||
|
||||
// pagination defines the pagination in the response.
|
||||
cosmos.base.query.v1beta1.PageResponse pagination = 2;
|
||||
}
|
||||
|
||||
// QueryGroupPoliciesByGroupRequest is the Query/GroupPoliciesByGroup request type.
|
||||
message QueryGroupPoliciesByGroupRequest {
|
||||
|
||||
// group_id is the unique ID of the group policy's group.
|
||||
uint64 group_id = 1;
|
||||
|
||||
// pagination defines an optional pagination for the request.
|
||||
cosmos.base.query.v1beta1.PageRequest pagination = 2;
|
||||
}
|
||||
|
||||
// QueryGroupPoliciesByGroupResponse is the Query/GroupPoliciesByGroup response type.
|
||||
message QueryGroupPoliciesByGroupResponse {
|
||||
|
||||
// group_policies are the group policies info associated with the provided group.
|
||||
repeated GroupPolicyInfo group_policies = 1;
|
||||
|
||||
// pagination defines the pagination in the response.
|
||||
cosmos.base.query.v1beta1.PageResponse pagination = 2;
|
||||
}
|
||||
|
||||
// QueryGroupPoliciesByAdminRequest is the Query/GroupPoliciesByAdmin request type.
|
||||
message QueryGroupPoliciesByAdminRequest {
|
||||
|
||||
// admin is the admin address of the group policy.
|
||||
string admin = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// pagination defines an optional pagination for the request.
|
||||
cosmos.base.query.v1beta1.PageRequest pagination = 2;
|
||||
}
|
||||
|
||||
// QueryGroupPoliciesByAdminResponse is the Query/GroupPoliciesByAdmin response type.
|
||||
message QueryGroupPoliciesByAdminResponse {
|
||||
|
||||
// group_policies are the group policies info with provided admin.
|
||||
repeated GroupPolicyInfo group_policies = 1;
|
||||
|
||||
// pagination defines the pagination in the response.
|
||||
cosmos.base.query.v1beta1.PageResponse pagination = 2;
|
||||
}
|
||||
|
||||
// QueryProposalRequest is the Query/Proposal request type.
|
||||
message QueryProposalRequest {
|
||||
|
||||
// proposal_id is the unique ID of a proposal.
|
||||
uint64 proposal_id = 1;
|
||||
}
|
||||
|
||||
// QueryProposalResponse is the Query/Proposal response type.
|
||||
message QueryProposalResponse {
|
||||
|
||||
// proposal is the proposal info.
|
||||
Proposal proposal = 1;
|
||||
}
|
||||
|
||||
// QueryProposalsByGroupPolicyRequest is the Query/ProposalByGroupPolicy request type.
|
||||
message QueryProposalsByGroupPolicyRequest {
|
||||
|
||||
// address is the account address of the group policy related to proposals.
|
||||
string address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// pagination defines an optional pagination for the request.
|
||||
cosmos.base.query.v1beta1.PageRequest pagination = 2;
|
||||
}
|
||||
|
||||
// QueryProposalsByGroupPolicyResponse is the Query/ProposalByGroupPolicy response type.
|
||||
message QueryProposalsByGroupPolicyResponse {
|
||||
|
||||
// proposals are the proposals with given group policy.
|
||||
repeated Proposal proposals = 1;
|
||||
|
||||
// pagination defines the pagination in the response.
|
||||
cosmos.base.query.v1beta1.PageResponse pagination = 2;
|
||||
}
|
||||
|
||||
// QueryVoteByProposalVoterRequest is the Query/VoteByProposalVoter request type.
|
||||
message QueryVoteByProposalVoterRequest {
|
||||
|
||||
// proposal_id is the unique ID of a proposal.
|
||||
uint64 proposal_id = 1;
|
||||
|
||||
// voter is a proposal voter account address.
|
||||
string voter = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
}
|
||||
|
||||
// QueryVoteByProposalVoterResponse is the Query/VoteByProposalVoter response type.
|
||||
message QueryVoteByProposalVoterResponse {
|
||||
|
||||
// vote is the vote with given proposal_id and voter.
|
||||
Vote vote = 1;
|
||||
}
|
||||
|
||||
// QueryVotesByProposalRequest is the Query/VotesByProposal request type.
|
||||
message QueryVotesByProposalRequest {
|
||||
|
||||
// proposal_id is the unique ID of a proposal.
|
||||
uint64 proposal_id = 1;
|
||||
|
||||
// pagination defines an optional pagination for the request.
|
||||
cosmos.base.query.v1beta1.PageRequest pagination = 2;
|
||||
}
|
||||
|
||||
// QueryVotesByProposalResponse is the Query/VotesByProposal response type.
|
||||
message QueryVotesByProposalResponse {
|
||||
|
||||
// votes are the list of votes for given proposal_id.
|
||||
repeated Vote votes = 1;
|
||||
|
||||
// pagination defines the pagination in the response.
|
||||
cosmos.base.query.v1beta1.PageResponse pagination = 2;
|
||||
}
|
||||
|
||||
// QueryVotesByVoterRequest is the Query/VotesByVoter request type.
|
||||
message QueryVotesByVoterRequest {
|
||||
// voter is a proposal voter account address.
|
||||
string voter = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// pagination defines an optional pagination for the request.
|
||||
cosmos.base.query.v1beta1.PageRequest pagination = 2;
|
||||
}
|
||||
|
||||
// QueryVotesByVoterResponse is the Query/VotesByVoter response type.
|
||||
message QueryVotesByVoterResponse {
|
||||
|
||||
// votes are the list of votes by given voter.
|
||||
repeated Vote votes = 1;
|
||||
|
||||
// pagination defines the pagination in the response.
|
||||
cosmos.base.query.v1beta1.PageResponse pagination = 2;
|
||||
}
|
||||
|
||||
// QueryGroupsByMemberRequest is the Query/GroupsByMember request type.
|
||||
message QueryGroupsByMemberRequest {
|
||||
// address is the group member address.
|
||||
string address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// pagination defines an optional pagination for the request.
|
||||
cosmos.base.query.v1beta1.PageRequest pagination = 2;
|
||||
}
|
||||
|
||||
// QueryGroupsByMemberResponse is the Query/GroupsByMember response type.
|
||||
message QueryGroupsByMemberResponse {
|
||||
// groups are the groups info with the provided group member.
|
||||
repeated GroupInfo groups = 1;
|
||||
|
||||
// pagination defines the pagination in the response.
|
||||
cosmos.base.query.v1beta1.PageResponse pagination = 2;
|
||||
}
|
||||
|
||||
// QueryTallyResultRequest is the Query/TallyResult request type.
|
||||
message QueryTallyResultRequest {
|
||||
// proposal_id is the unique id of a proposal.
|
||||
uint64 proposal_id = 1;
|
||||
}
|
||||
|
||||
// QueryTallyResultResponse is the Query/TallyResult response type.
|
||||
message QueryTallyResultResponse {
|
||||
// tally defines the requested tally.
|
||||
TallyResult tally = 1 [(gogoproto.nullable) = false];
|
||||
}
|
||||
@@ -0,0 +1,364 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package cosmos.group.v1;
|
||||
|
||||
option go_package = "github.com/cosmos/cosmos-sdk/x/group";
|
||||
|
||||
import "gogoproto/gogo.proto";
|
||||
import "cosmos_proto/cosmos.proto";
|
||||
import "google/protobuf/any.proto";
|
||||
import "cosmos/group/v1/types.proto";
|
||||
|
||||
import "cosmos/msg/v1/msg.proto";
|
||||
|
||||
// Msg is the cosmos.group.v1 Msg service.
|
||||
service Msg {
|
||||
|
||||
// CreateGroup creates a new group with an admin account address, a list of members and some optional metadata.
|
||||
rpc CreateGroup(MsgCreateGroup) returns (MsgCreateGroupResponse);
|
||||
|
||||
// UpdateGroupMembers updates the group members with given group id and admin address.
|
||||
rpc UpdateGroupMembers(MsgUpdateGroupMembers) returns (MsgUpdateGroupMembersResponse);
|
||||
|
||||
// UpdateGroupAdmin updates the group admin with given group id and previous admin address.
|
||||
rpc UpdateGroupAdmin(MsgUpdateGroupAdmin) returns (MsgUpdateGroupAdminResponse);
|
||||
|
||||
// UpdateGroupMetadata updates the group metadata with given group id and admin address.
|
||||
rpc UpdateGroupMetadata(MsgUpdateGroupMetadata) returns (MsgUpdateGroupMetadataResponse);
|
||||
|
||||
// CreateGroupPolicy creates a new group policy using given DecisionPolicy.
|
||||
rpc CreateGroupPolicy(MsgCreateGroupPolicy) returns (MsgCreateGroupPolicyResponse);
|
||||
|
||||
// CreateGroupWithPolicy creates a new group with policy.
|
||||
rpc CreateGroupWithPolicy(MsgCreateGroupWithPolicy) returns (MsgCreateGroupWithPolicyResponse);
|
||||
|
||||
// UpdateGroupPolicyAdmin updates a group policy admin.
|
||||
rpc UpdateGroupPolicyAdmin(MsgUpdateGroupPolicyAdmin) returns (MsgUpdateGroupPolicyAdminResponse);
|
||||
|
||||
// UpdateGroupPolicyDecisionPolicy allows a group policy's decision policy to be updated.
|
||||
rpc UpdateGroupPolicyDecisionPolicy(MsgUpdateGroupPolicyDecisionPolicy)
|
||||
returns (MsgUpdateGroupPolicyDecisionPolicyResponse);
|
||||
|
||||
// UpdateGroupPolicyMetadata updates a group policy metadata.
|
||||
rpc UpdateGroupPolicyMetadata(MsgUpdateGroupPolicyMetadata) returns (MsgUpdateGroupPolicyMetadataResponse);
|
||||
|
||||
// SubmitProposal submits a new proposal.
|
||||
rpc SubmitProposal(MsgSubmitProposal) returns (MsgSubmitProposalResponse);
|
||||
|
||||
// WithdrawProposal aborts a proposal.
|
||||
rpc WithdrawProposal(MsgWithdrawProposal) returns (MsgWithdrawProposalResponse);
|
||||
|
||||
// Vote allows a voter to vote on a proposal.
|
||||
rpc Vote(MsgVote) returns (MsgVoteResponse);
|
||||
|
||||
// Exec executes a proposal.
|
||||
rpc Exec(MsgExec) returns (MsgExecResponse);
|
||||
|
||||
// LeaveGroup allows a group member to leave the group.
|
||||
rpc LeaveGroup(MsgLeaveGroup) returns (MsgLeaveGroupResponse);
|
||||
}
|
||||
|
||||
//
|
||||
// Groups
|
||||
//
|
||||
|
||||
// MsgCreateGroup is the Msg/CreateGroup request type.
|
||||
message MsgCreateGroup {
|
||||
option (cosmos.msg.v1.signer) = "admin";
|
||||
// admin is the account address of the group admin.
|
||||
string admin = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// members defines the group members.
|
||||
repeated Member members = 2 [(gogoproto.nullable) = false];
|
||||
|
||||
// metadata is any arbitrary metadata to attached to the group.
|
||||
string metadata = 3;
|
||||
}
|
||||
|
||||
// MsgCreateGroupResponse is the Msg/CreateGroup response type.
|
||||
message MsgCreateGroupResponse {
|
||||
|
||||
// group_id is the unique ID of the newly created group.
|
||||
uint64 group_id = 1;
|
||||
}
|
||||
|
||||
// MsgUpdateGroupMembers is the Msg/UpdateGroupMembers request type.
|
||||
message MsgUpdateGroupMembers {
|
||||
option (cosmos.msg.v1.signer) = "admin";
|
||||
|
||||
// admin is the account address of the group admin.
|
||||
string admin = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// group_id is the unique ID of the group.
|
||||
uint64 group_id = 2;
|
||||
|
||||
// member_updates is the list of members to update,
|
||||
// set weight to 0 to remove a member.
|
||||
repeated Member member_updates = 3 [(gogoproto.nullable) = false];
|
||||
}
|
||||
|
||||
// MsgUpdateGroupMembersResponse is the Msg/UpdateGroupMembers response type.
|
||||
message MsgUpdateGroupMembersResponse {}
|
||||
|
||||
// MsgUpdateGroupAdmin is the Msg/UpdateGroupAdmin request type.
|
||||
message MsgUpdateGroupAdmin {
|
||||
option (cosmos.msg.v1.signer) = "admin";
|
||||
|
||||
// admin is the current account address of the group admin.
|
||||
string admin = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// group_id is the unique ID of the group.
|
||||
uint64 group_id = 2;
|
||||
|
||||
// new_admin is the group new admin account address.
|
||||
string new_admin = 3 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
}
|
||||
|
||||
// MsgUpdateGroupAdminResponse is the Msg/UpdateGroupAdmin response type.
|
||||
message MsgUpdateGroupAdminResponse {}
|
||||
|
||||
// MsgUpdateGroupMetadata is the Msg/UpdateGroupMetadata request type.
|
||||
message MsgUpdateGroupMetadata {
|
||||
option (cosmos.msg.v1.signer) = "admin";
|
||||
|
||||
// admin is the account address of the group admin.
|
||||
string admin = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// group_id is the unique ID of the group.
|
||||
uint64 group_id = 2;
|
||||
|
||||
// metadata is the updated group's metadata.
|
||||
string metadata = 3;
|
||||
}
|
||||
|
||||
// MsgUpdateGroupMetadataResponse is the Msg/UpdateGroupMetadata response type.
|
||||
message MsgUpdateGroupMetadataResponse {}
|
||||
|
||||
//
|
||||
// Group Policies
|
||||
//
|
||||
|
||||
// MsgCreateGroupPolicy is the Msg/CreateGroupPolicy request type.
|
||||
message MsgCreateGroupPolicy {
|
||||
option (cosmos.msg.v1.signer) = "admin";
|
||||
|
||||
option (gogoproto.goproto_getters) = false;
|
||||
|
||||
// admin is the account address of the group admin.
|
||||
string admin = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// group_id is the unique ID of the group.
|
||||
uint64 group_id = 2;
|
||||
|
||||
// metadata is any arbitrary metadata attached to the group policy.
|
||||
string metadata = 3;
|
||||
|
||||
// decision_policy specifies the group policy's decision policy.
|
||||
google.protobuf.Any decision_policy = 4 [(cosmos_proto.accepts_interface) = "cosmos.group.DecisionPolicy"];
|
||||
}
|
||||
|
||||
// MsgCreateGroupPolicyResponse is the Msg/CreateGroupPolicy response type.
|
||||
message MsgCreateGroupPolicyResponse {
|
||||
|
||||
// address is the account address of the newly created group policy.
|
||||
string address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
}
|
||||
|
||||
// MsgUpdateGroupPolicyAdmin is the Msg/UpdateGroupPolicyAdmin request type.
|
||||
message MsgUpdateGroupPolicyAdmin {
|
||||
option (cosmos.msg.v1.signer) = "admin";
|
||||
|
||||
// admin is the account address of the group admin.
|
||||
string admin = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// address is the account address of the group policy.
|
||||
string address = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// new_admin is the new group policy admin.
|
||||
string new_admin = 3 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
}
|
||||
|
||||
// MsgCreateGroupWithPolicy is the Msg/CreateGroupWithPolicy request type.
|
||||
message MsgCreateGroupWithPolicy {
|
||||
option (gogoproto.goproto_getters) = false;
|
||||
|
||||
// admin is the account address of the group and group policy admin.
|
||||
string admin = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// members defines the group members.
|
||||
repeated Member members = 2 [(gogoproto.nullable) = false];
|
||||
|
||||
// group_metadata is any arbitrary metadata attached to the group.
|
||||
string group_metadata = 3;
|
||||
|
||||
// group_policy_metadata is any arbitrary metadata attached to the group policy.
|
||||
string group_policy_metadata = 4;
|
||||
|
||||
// group_policy_as_admin is a boolean field, if set to true, the group policy account address will be used as group and group policy admin.
|
||||
bool group_policy_as_admin = 5;
|
||||
|
||||
// decision_policy specifies the group policy's decision policy.
|
||||
google.protobuf.Any decision_policy = 6 [(cosmos_proto.accepts_interface) = "cosmos.group.DecisionPolicy"];
|
||||
}
|
||||
|
||||
// MsgCreateGroupWithPolicyResponse is the Msg/CreateGroupWithPolicy response type.
|
||||
message MsgCreateGroupWithPolicyResponse {
|
||||
|
||||
// group_id is the unique ID of the newly created group with policy.
|
||||
uint64 group_id = 1;
|
||||
|
||||
// group_policy_address is the account address of the newly created group policy.
|
||||
string group_policy_address = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
}
|
||||
|
||||
// MsgUpdateGroupPolicyAdminResponse is the Msg/UpdateGroupPolicyAdmin response type.
|
||||
message MsgUpdateGroupPolicyAdminResponse {}
|
||||
|
||||
// MsgUpdateGroupPolicyDecisionPolicy is the Msg/UpdateGroupPolicyDecisionPolicy request type.
|
||||
message MsgUpdateGroupPolicyDecisionPolicy {
|
||||
option (cosmos.msg.v1.signer) = "admin";
|
||||
|
||||
option (gogoproto.goproto_getters) = false;
|
||||
|
||||
// admin is the account address of the group admin.
|
||||
string admin = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// address is the account address of group policy.
|
||||
string address = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// decision_policy is the updated group policy's decision policy.
|
||||
google.protobuf.Any decision_policy = 3 [(cosmos_proto.accepts_interface) = "cosmos.group.DecisionPolicy"];
|
||||
}
|
||||
|
||||
// MsgUpdateGroupPolicyDecisionPolicyResponse is the Msg/UpdateGroupPolicyDecisionPolicy response type.
|
||||
message MsgUpdateGroupPolicyDecisionPolicyResponse {}
|
||||
|
||||
// MsgUpdateGroupPolicyMetadata is the Msg/UpdateGroupPolicyMetadata request type.
|
||||
message MsgUpdateGroupPolicyMetadata {
|
||||
option (cosmos.msg.v1.signer) = "admin";
|
||||
|
||||
// admin is the account address of the group admin.
|
||||
string admin = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// address is the account address of group policy.
|
||||
string address = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// metadata is the updated group policy metadata.
|
||||
string metadata = 3;
|
||||
}
|
||||
|
||||
// MsgUpdateGroupPolicyMetadataResponse is the Msg/UpdateGroupPolicyMetadata response type.
|
||||
message MsgUpdateGroupPolicyMetadataResponse {}
|
||||
|
||||
//
|
||||
// Proposals and Voting
|
||||
//
|
||||
|
||||
// Exec defines modes of execution of a proposal on creation or on new vote.
|
||||
enum Exec {
|
||||
|
||||
// An empty value means that there should be a separate
|
||||
// MsgExec request for the proposal to execute.
|
||||
EXEC_UNSPECIFIED = 0;
|
||||
|
||||
// Try to execute the proposal immediately.
|
||||
// If the proposal is not allowed per the DecisionPolicy,
|
||||
// the proposal will still be open and could
|
||||
// be executed at a later point.
|
||||
EXEC_TRY = 1;
|
||||
}
|
||||
|
||||
// MsgSubmitProposal is the Msg/SubmitProposal request type.
|
||||
message MsgSubmitProposal {
|
||||
option (cosmos.msg.v1.signer) = "proposers";
|
||||
|
||||
option (gogoproto.goproto_getters) = false;
|
||||
|
||||
// address is the account address of group policy.
|
||||
string address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// proposers are the account addresses of the proposers.
|
||||
// Proposers signatures will be counted as yes votes.
|
||||
repeated string proposers = 2;
|
||||
|
||||
// metadata is any arbitrary metadata to attached to the proposal.
|
||||
string metadata = 3;
|
||||
|
||||
// messages is a list of `sdk.Msg`s that will be executed if the proposal passes.
|
||||
repeated google.protobuf.Any messages = 4;
|
||||
|
||||
// exec defines the mode of execution of the proposal,
|
||||
// whether it should be executed immediately on creation or not.
|
||||
// If so, proposers signatures are considered as Yes votes.
|
||||
Exec exec = 5;
|
||||
}
|
||||
|
||||
// MsgSubmitProposalResponse is the Msg/SubmitProposal response type.
|
||||
message MsgSubmitProposalResponse {
|
||||
|
||||
// proposal is the unique ID of the proposal.
|
||||
uint64 proposal_id = 1;
|
||||
}
|
||||
|
||||
// MsgWithdrawProposal is the Msg/WithdrawProposal request type.
|
||||
message MsgWithdrawProposal {
|
||||
// proposal is the unique ID of the proposal.
|
||||
uint64 proposal_id = 1;
|
||||
|
||||
// address is the admin of the group policy or one of the proposer of the proposal.
|
||||
string address = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
}
|
||||
|
||||
// MsgWithdrawProposalResponse is the Msg/WithdrawProposal response type.
|
||||
message MsgWithdrawProposalResponse {}
|
||||
|
||||
// MsgVote is the Msg/Vote request type.
|
||||
message MsgVote {
|
||||
option (cosmos.msg.v1.signer) = "voter";
|
||||
|
||||
// proposal is the unique ID of the proposal.
|
||||
uint64 proposal_id = 1;
|
||||
// voter is the voter account address.
|
||||
string voter = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// option is the voter's choice on the proposal.
|
||||
VoteOption option = 3;
|
||||
|
||||
// metadata is any arbitrary metadata to attached to the vote.
|
||||
string metadata = 4;
|
||||
|
||||
// exec defines whether the proposal should be executed
|
||||
// immediately after voting or not.
|
||||
Exec exec = 5;
|
||||
}
|
||||
|
||||
// MsgVoteResponse is the Msg/Vote response type.
|
||||
message MsgVoteResponse {}
|
||||
|
||||
// MsgExec is the Msg/Exec request type.
|
||||
message MsgExec {
|
||||
option (cosmos.msg.v1.signer) = "signer";
|
||||
|
||||
// proposal is the unique ID of the proposal.
|
||||
uint64 proposal_id = 1;
|
||||
|
||||
// signer is the account address used to execute the proposal.
|
||||
string signer = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
}
|
||||
|
||||
// MsgExecResponse is the Msg/Exec request type.
|
||||
message MsgExecResponse {}
|
||||
|
||||
// MsgLeaveGroup is the Msg/LeaveGroup request type.
|
||||
message MsgLeaveGroup {
|
||||
option (cosmos.msg.v1.signer) = "address";
|
||||
|
||||
// address is the account address of the group member.
|
||||
string address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// group_id is the unique ID of the group.
|
||||
uint64 group_id = 2;
|
||||
}
|
||||
|
||||
// MsgLeaveGroupResponse is the Msg/LeaveGroup response type.
|
||||
message MsgLeaveGroupResponse {}
|
||||
@@ -0,0 +1,308 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package cosmos.group.v1;
|
||||
|
||||
option go_package = "github.com/cosmos/cosmos-sdk/x/group";
|
||||
|
||||
import "gogoproto/gogo.proto";
|
||||
import "google/protobuf/duration.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
import "cosmos_proto/cosmos.proto";
|
||||
import "google/protobuf/any.proto";
|
||||
|
||||
// Member represents a group member with an account address,
|
||||
// non-zero weight and metadata.
|
||||
message Member {
|
||||
|
||||
// address is the member's account address.
|
||||
string address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// weight is the member's voting weight that should be greater than 0.
|
||||
string weight = 2;
|
||||
|
||||
// metadata is any arbitrary metadata to attached to the member.
|
||||
string metadata = 3;
|
||||
|
||||
// added_at is a timestamp specifying when a member was added.
|
||||
google.protobuf.Timestamp added_at = 4 [(gogoproto.nullable) = false, (gogoproto.stdtime) = true];
|
||||
}
|
||||
|
||||
// Members defines a repeated slice of Member objects.
|
||||
message Members {
|
||||
|
||||
// members is the list of members.
|
||||
repeated Member members = 1 [(gogoproto.nullable) = false];
|
||||
}
|
||||
|
||||
// ThresholdDecisionPolicy implements the DecisionPolicy interface
|
||||
message ThresholdDecisionPolicy {
|
||||
option (cosmos_proto.implements_interface) = "cosmos.group.DecisionPolicy";
|
||||
|
||||
// threshold is the minimum weighted sum of yes votes that must be met or exceeded for a proposal to succeed.
|
||||
string threshold = 1;
|
||||
|
||||
// windows defines the different windows for voting and execution.
|
||||
DecisionPolicyWindows windows = 2;
|
||||
}
|
||||
|
||||
// PercentageDecisionPolicy implements the DecisionPolicy interface
|
||||
message PercentageDecisionPolicy {
|
||||
option (cosmos_proto.implements_interface) = "cosmos.group.DecisionPolicy";
|
||||
|
||||
// percentage is the minimum percentage the weighted sum of yes votes must meet for a proposal to succeed.
|
||||
string percentage = 1;
|
||||
|
||||
// windows defines the different windows for voting and execution.
|
||||
DecisionPolicyWindows windows = 2;
|
||||
}
|
||||
|
||||
// DecisionPolicyWindows defines the different windows for voting and execution.
|
||||
message DecisionPolicyWindows {
|
||||
// voting_period is the duration from submission of a proposal to the end of voting period
|
||||
// Within this times votes can be submitted with MsgVote.
|
||||
google.protobuf.Duration voting_period = 1 [(gogoproto.stdduration) = true, (gogoproto.nullable) = false];
|
||||
|
||||
// min_execution_period is the minimum duration after the proposal submission
|
||||
// where members can start sending MsgExec. This means that the window for
|
||||
// sending a MsgExec transaction is:
|
||||
// `[ submission + min_execution_period ; submission + voting_period + max_execution_period]`
|
||||
// where max_execution_period is a app-specific config, defined in the keeper.
|
||||
// If not set, min_execution_period will default to 0.
|
||||
//
|
||||
// Please make sure to set a `min_execution_period` that is smaller than
|
||||
// `voting_period + max_execution_period`, or else the above execution window
|
||||
// is empty, meaning that all proposals created with this decision policy
|
||||
// won't be able to be executed.
|
||||
google.protobuf.Duration min_execution_period = 2 [(gogoproto.stdduration) = true, (gogoproto.nullable) = false];
|
||||
}
|
||||
|
||||
// VoteOption enumerates the valid vote options for a given proposal.
|
||||
enum VoteOption {
|
||||
option (gogoproto.goproto_enum_prefix) = false;
|
||||
|
||||
// VOTE_OPTION_UNSPECIFIED defines a no-op vote option.
|
||||
VOTE_OPTION_UNSPECIFIED = 0;
|
||||
// VOTE_OPTION_YES defines a yes vote option.
|
||||
VOTE_OPTION_YES = 1;
|
||||
// VOTE_OPTION_ABSTAIN defines an abstain vote option.
|
||||
VOTE_OPTION_ABSTAIN = 2;
|
||||
// VOTE_OPTION_NO defines a no vote option.
|
||||
VOTE_OPTION_NO = 3;
|
||||
// VOTE_OPTION_NO_WITH_VETO defines a no with veto vote option.
|
||||
VOTE_OPTION_NO_WITH_VETO = 4;
|
||||
}
|
||||
|
||||
//
|
||||
// State
|
||||
//
|
||||
|
||||
// GroupInfo represents the high-level on-chain information for a group.
|
||||
message GroupInfo {
|
||||
|
||||
// id is the unique ID of the group.
|
||||
uint64 id = 1;
|
||||
|
||||
// admin is the account address of the group's admin.
|
||||
string admin = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// metadata is any arbitrary metadata to attached to the group.
|
||||
string metadata = 3;
|
||||
|
||||
// version is used to track changes to a group's membership structure that
|
||||
// would break existing proposals. Whenever any members weight is changed,
|
||||
// or any member is added or removed this version is incremented and will
|
||||
// cause proposals based on older versions of this group to fail
|
||||
uint64 version = 4;
|
||||
|
||||
// total_weight is the sum of the group members' weights.
|
||||
string total_weight = 5;
|
||||
|
||||
// created_at is a timestamp specifying when a group was created.
|
||||
google.protobuf.Timestamp created_at = 6 [(gogoproto.nullable) = false, (gogoproto.stdtime) = true];
|
||||
}
|
||||
|
||||
// GroupMember represents the relationship between a group and a member.
|
||||
message GroupMember {
|
||||
|
||||
// group_id is the unique ID of the group.
|
||||
uint64 group_id = 1;
|
||||
|
||||
// member is the member data.
|
||||
Member member = 2;
|
||||
}
|
||||
|
||||
// GroupPolicyInfo represents the high-level on-chain information for a group policy.
|
||||
message GroupPolicyInfo {
|
||||
option (gogoproto.equal) = true;
|
||||
option (gogoproto.goproto_getters) = false;
|
||||
|
||||
// address is the account address of group policy.
|
||||
string address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// group_id is the unique ID of the group.
|
||||
uint64 group_id = 2;
|
||||
|
||||
// admin is the account address of the group admin.
|
||||
string admin = 3 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// metadata is any arbitrary metadata to attached to the group policy.
|
||||
string metadata = 4;
|
||||
|
||||
// version is used to track changes to a group's GroupPolicyInfo structure that
|
||||
// would create a different result on a running proposal.
|
||||
uint64 version = 5;
|
||||
|
||||
// decision_policy specifies the group policy's decision policy.
|
||||
google.protobuf.Any decision_policy = 6 [(cosmos_proto.accepts_interface) = "cosmos.group.DecisionPolicy"];
|
||||
|
||||
// created_at is a timestamp specifying when a group policy was created.
|
||||
google.protobuf.Timestamp created_at = 7 [(gogoproto.nullable) = false, (gogoproto.stdtime) = true];
|
||||
}
|
||||
|
||||
// Proposal defines a group proposal. Any member of a group can submit a proposal
|
||||
// for a group policy to decide upon.
|
||||
// A proposal consists of a set of `sdk.Msg`s that will be executed if the proposal
|
||||
// passes as well as some optional metadata associated with the proposal.
|
||||
message Proposal {
|
||||
option (gogoproto.goproto_getters) = false;
|
||||
|
||||
// id is the unique id of the proposal.
|
||||
uint64 id = 1;
|
||||
|
||||
// address is the account address of group policy.
|
||||
string address = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// metadata is any arbitrary metadata to attached to the proposal.
|
||||
string metadata = 3;
|
||||
|
||||
// proposers are the account addresses of the proposers.
|
||||
repeated string proposers = 4 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// submit_time is a timestamp specifying when a proposal was submitted.
|
||||
google.protobuf.Timestamp submit_time = 5 [(gogoproto.nullable) = false, (gogoproto.stdtime) = true];
|
||||
|
||||
// group_version tracks the version of the group that this proposal corresponds to.
|
||||
// When group membership is changed, existing proposals from previous group versions will become invalid.
|
||||
uint64 group_version = 6;
|
||||
|
||||
// group_policy_version tracks the version of the group policy that this proposal corresponds to.
|
||||
// When a decision policy is changed, existing proposals from previous policy versions will become invalid.
|
||||
uint64 group_policy_version = 7;
|
||||
|
||||
// status represents the high level position in the life cycle of the proposal. Initial value is Submitted.
|
||||
ProposalStatus status = 8;
|
||||
|
||||
// result is the final result based on the votes and election rule. Initial value is unfinalized.
|
||||
// The result is persisted so that clients can always rely on this state and not have to replicate the logic.
|
||||
ProposalResult result = 9;
|
||||
|
||||
// final_tally_result contains the sums of all weighted votes for this
|
||||
// proposal for each vote option, after tallying. When querying a proposal
|
||||
// via gRPC, this field is not populated until the proposal's voting period
|
||||
// has ended.
|
||||
TallyResult final_tally_result = 10 [(gogoproto.nullable) = false];
|
||||
|
||||
// voting_period_end is the timestamp before which voting must be done.
|
||||
// Unless a successfull MsgExec is called before (to execute a proposal whose
|
||||
// tally is successful before the voting period ends), tallying will be done
|
||||
// at this point, and the `final_tally_result`, as well
|
||||
// as `status` and `result` fields will be accordingly updated.
|
||||
google.protobuf.Timestamp voting_period_end = 11 [(gogoproto.nullable) = false, (gogoproto.stdtime) = true];
|
||||
|
||||
// executor_result is the final result based on the votes and election rule. Initial value is NotRun.
|
||||
ProposalExecutorResult executor_result = 12;
|
||||
|
||||
// messages is a list of Msgs that will be executed if the proposal passes.
|
||||
repeated google.protobuf.Any messages = 13;
|
||||
}
|
||||
|
||||
// ProposalStatus defines proposal statuses.
|
||||
enum ProposalStatus {
|
||||
option (gogoproto.goproto_enum_prefix) = false;
|
||||
|
||||
// An empty value is invalid and not allowed.
|
||||
PROPOSAL_STATUS_UNSPECIFIED = 0;
|
||||
|
||||
// Initial status of a proposal when persisted.
|
||||
PROPOSAL_STATUS_SUBMITTED = 1;
|
||||
|
||||
// Final status of a proposal when the final tally was executed.
|
||||
PROPOSAL_STATUS_CLOSED = 2;
|
||||
|
||||
// Final status of a proposal when the group was modified before the final tally.
|
||||
PROPOSAL_STATUS_ABORTED = 3;
|
||||
|
||||
// A proposal can be deleted before the voting start time by the owner. When this happens the final status
|
||||
// is Withdrawn.
|
||||
PROPOSAL_STATUS_WITHDRAWN = 4;
|
||||
}
|
||||
|
||||
// ProposalResult defines types of proposal results.
|
||||
enum ProposalResult {
|
||||
option (gogoproto.goproto_enum_prefix) = false;
|
||||
|
||||
// An empty value is invalid and not allowed
|
||||
PROPOSAL_RESULT_UNSPECIFIED = 0;
|
||||
|
||||
// Until a final tally has happened the status is unfinalized
|
||||
PROPOSAL_RESULT_UNFINALIZED = 1;
|
||||
|
||||
// Final result of the tally
|
||||
PROPOSAL_RESULT_ACCEPTED = 2;
|
||||
|
||||
// Final result of the tally
|
||||
PROPOSAL_RESULT_REJECTED = 3;
|
||||
}
|
||||
|
||||
// ProposalExecutorResult defines types of proposal executor results.
|
||||
enum ProposalExecutorResult {
|
||||
option (gogoproto.goproto_enum_prefix) = false;
|
||||
|
||||
// An empty value is not allowed.
|
||||
PROPOSAL_EXECUTOR_RESULT_UNSPECIFIED = 0;
|
||||
|
||||
// We have not yet run the executor.
|
||||
PROPOSAL_EXECUTOR_RESULT_NOT_RUN = 1;
|
||||
|
||||
// The executor was successful and proposed action updated state.
|
||||
PROPOSAL_EXECUTOR_RESULT_SUCCESS = 2;
|
||||
|
||||
// The executor returned an error and proposed action didn't update state.
|
||||
PROPOSAL_EXECUTOR_RESULT_FAILURE = 3;
|
||||
}
|
||||
|
||||
// TallyResult represents the sum of weighted votes for each vote option.
|
||||
message TallyResult {
|
||||
option (gogoproto.goproto_getters) = false;
|
||||
|
||||
// yes_count is the weighted sum of yes votes.
|
||||
string yes_count = 1;
|
||||
|
||||
// abstain_count is the weighted sum of abstainers.
|
||||
string abstain_count = 2;
|
||||
|
||||
// no is the weighted sum of no votes.
|
||||
string no_count = 3;
|
||||
|
||||
// no_with_veto_count is the weighted sum of veto.
|
||||
string no_with_veto_count = 4;
|
||||
}
|
||||
|
||||
// Vote represents a vote for a proposal.
|
||||
message Vote {
|
||||
|
||||
// proposal is the unique ID of the proposal.
|
||||
uint64 proposal_id = 1;
|
||||
|
||||
// voter is the account address of the voter.
|
||||
string voter = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// option is the voter's choice on the proposal.
|
||||
VoteOption option = 3;
|
||||
|
||||
// metadata is any arbitrary metadata to attached to the vote.
|
||||
string metadata = 4;
|
||||
|
||||
// submit_time is the timestamp when the vote was submitted.
|
||||
google.protobuf.Timestamp submit_time = 5 [(gogoproto.nullable) = false, (gogoproto.stdtime) = true];
|
||||
}
|
||||
@@ -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];
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
syntax = "proto3";
|
||||
package cosmos.mint.v1beta1;
|
||||
|
||||
option go_package = "github.com/cosmos/cosmos-sdk/x/mint/types";
|
||||
|
||||
import "gogoproto/gogo.proto";
|
||||
import "cosmos_proto/cosmos.proto";
|
||||
|
||||
// Minter represents the minting state.
|
||||
message Minter {
|
||||
// current annual inflation rate
|
||||
string inflation = 1 [
|
||||
(cosmos_proto.scalar) = "cosmos.Dec",
|
||||
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec",
|
||||
(gogoproto.nullable) = false
|
||||
];
|
||||
// current annual expected provisions
|
||||
string annual_provisions = 2 [
|
||||
(cosmos_proto.scalar) = "cosmos.Dec",
|
||||
(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 [
|
||||
(cosmos_proto.scalar) = "cosmos.Dec",
|
||||
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec",
|
||||
(gogoproto.nullable) = false
|
||||
];
|
||||
// maximum inflation rate
|
||||
string inflation_max = 3 [
|
||||
(cosmos_proto.scalar) = "cosmos.Dec",
|
||||
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec",
|
||||
(gogoproto.nullable) = false
|
||||
];
|
||||
// minimum inflation rate
|
||||
string inflation_min = 4 [
|
||||
(cosmos_proto.scalar) = "cosmos.Dec",
|
||||
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec",
|
||||
(gogoproto.nullable) = false
|
||||
];
|
||||
// goal of percent bonded atoms
|
||||
string goal_bonded = 5 [
|
||||
(cosmos_proto.scalar) = "cosmos.Dec",
|
||||
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec",
|
||||
(gogoproto.nullable) = false
|
||||
];
|
||||
// expected blocks per year
|
||||
uint64 blocks_per_year = 6;
|
||||
}
|
||||
@@ -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];
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package cosmos.msg.v1;
|
||||
|
||||
import "google/protobuf/descriptor.proto";
|
||||
|
||||
// TODO(fdymylja): once we fully migrate to protov2 the go_package needs to be updated.
|
||||
// We need this right now because gogoproto codegen needs to import the extension.
|
||||
option go_package = "github.com/cosmos/cosmos-sdk/types/msgservice";
|
||||
|
||||
extend google.protobuf.MessageOptions {
|
||||
// signer must be used in cosmos messages in order
|
||||
// to signal to external clients which fields in a
|
||||
// given cosmos message must be filled with signer
|
||||
// information (address).
|
||||
// The field must be the protobuf name of the message
|
||||
// field extended with this MessageOption.
|
||||
// The field must either be of string kind, or of message
|
||||
// kind in case the signer information is contained within
|
||||
// a message inside the cosmos message.
|
||||
repeated string signer = 11110000;
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
syntax = "proto3";
|
||||
package cosmos.nft.v1beta1;
|
||||
|
||||
option go_package = "github.com/cosmos/cosmos-sdk/x/nft";
|
||||
|
||||
// EventSend is emitted on Msg/Send
|
||||
message EventSend {
|
||||
string class_id = 1;
|
||||
string id = 2;
|
||||
string sender = 3;
|
||||
string receiver = 4;
|
||||
}
|
||||
|
||||
// EventMint is emitted on Mint
|
||||
message EventMint {
|
||||
string class_id = 1;
|
||||
string id = 2;
|
||||
string owner = 3;
|
||||
}
|
||||
|
||||
// EventBurn is emitted on Burn
|
||||
message EventBurn {
|
||||
string class_id = 1;
|
||||
string id = 2;
|
||||
string owner = 3;
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
syntax = "proto3";
|
||||
package cosmos.nft.v1beta1;
|
||||
|
||||
import "cosmos/nft/v1beta1/nft.proto";
|
||||
|
||||
option go_package = "github.com/cosmos/cosmos-sdk/x/nft";
|
||||
|
||||
// GenesisState defines the nft module's genesis state.
|
||||
message GenesisState {
|
||||
// class defines the class of the nft type.
|
||||
repeated cosmos.nft.v1beta1.Class classes = 1;
|
||||
repeated Entry entries = 2;
|
||||
}
|
||||
|
||||
// Entry Defines all nft owned by a person
|
||||
message Entry {
|
||||
// owner is the owner address of the following nft
|
||||
string owner = 1;
|
||||
|
||||
// nfts is a group of nfts of the same owner
|
||||
repeated cosmos.nft.v1beta1.NFT nfts = 2;
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
syntax = "proto3";
|
||||
package cosmos.nft.v1beta1;
|
||||
|
||||
import "google/protobuf/any.proto";
|
||||
|
||||
option go_package = "github.com/cosmos/cosmos-sdk/x/nft";
|
||||
|
||||
// Class defines the class of the nft type.
|
||||
message Class {
|
||||
// id defines the unique identifier of the NFT classification, similar to the contract address of ERC721
|
||||
string id = 1;
|
||||
|
||||
// name defines the human-readable name of the NFT classification. Optional
|
||||
string name = 2;
|
||||
|
||||
// symbol is an abbreviated name for nft classification. Optional
|
||||
string symbol = 3;
|
||||
|
||||
// description is a brief description of nft classification. Optional
|
||||
string description = 4;
|
||||
|
||||
// uri for the class metadata stored off chain. It can define schema for Class and NFT `Data` attributes. Optional
|
||||
string uri = 5;
|
||||
|
||||
// uri_hash is a hash of the document pointed by uri. Optional
|
||||
string uri_hash = 6;
|
||||
|
||||
// data is the app specific metadata of the NFT class. Optional
|
||||
google.protobuf.Any data = 7;
|
||||
}
|
||||
|
||||
// NFT defines the NFT.
|
||||
message NFT {
|
||||
// class_id associated with the NFT, similar to the contract address of ERC721
|
||||
string class_id = 1;
|
||||
|
||||
// id is a unique identifier of the NFT
|
||||
string id = 2;
|
||||
|
||||
// uri for the NFT metadata stored off chain
|
||||
string uri = 3;
|
||||
|
||||
// uri_hash is a hash of the document pointed by uri
|
||||
string uri_hash = 4;
|
||||
|
||||
// data is an app specific data of the NFT. Optional
|
||||
google.protobuf.Any data = 10;
|
||||
}
|
||||
@@ -0,0 +1,125 @@
|
||||
syntax = "proto3";
|
||||
package cosmos.nft.v1beta1;
|
||||
|
||||
import "cosmos/base/query/v1beta1/pagination.proto";
|
||||
import "google/api/annotations.proto";
|
||||
import "cosmos/nft/v1beta1/nft.proto";
|
||||
|
||||
option go_package = "github.com/cosmos/cosmos-sdk/x/nft";
|
||||
|
||||
// Query defines the gRPC querier service.
|
||||
service Query {
|
||||
// Balance queries the number of NFTs of a given class owned by the owner, same as balanceOf in ERC721
|
||||
rpc Balance(QueryBalanceRequest) returns (QueryBalanceResponse) {
|
||||
option (google.api.http).get = "/cosmos/nft/v1beta1/balance/{owner}/{class_id}";
|
||||
}
|
||||
|
||||
// Owner queries the owner of the NFT based on its class and id, same as ownerOf in ERC721
|
||||
rpc Owner(QueryOwnerRequest) returns (QueryOwnerResponse) {
|
||||
option (google.api.http).get = "/cosmos/nft/v1beta1/owner/{class_id}/{id}";
|
||||
}
|
||||
|
||||
// Supply queries the number of NFTs from the given class, same as totalSupply of ERC721.
|
||||
rpc Supply(QuerySupplyRequest) returns (QuerySupplyResponse) {
|
||||
option (google.api.http).get = "/cosmos/nft/v1beta1/supply/{class_id}";
|
||||
}
|
||||
|
||||
// NFTs queries all NFTs of a given class or owner,choose at least one of the two, similar to tokenByIndex in
|
||||
// ERC721Enumerable
|
||||
rpc NFTs(QueryNFTsRequest) returns (QueryNFTsResponse) {
|
||||
option (google.api.http).get = "/cosmos/nft/v1beta1/nfts";
|
||||
}
|
||||
|
||||
// NFT queries an NFT based on its class and id.
|
||||
rpc NFT(QueryNFTRequest) returns (QueryNFTResponse) {
|
||||
option (google.api.http).get = "/cosmos/nft/v1beta1/nfts/{class_id}/{id}";
|
||||
}
|
||||
|
||||
// Class queries an NFT class based on its id
|
||||
rpc Class(QueryClassRequest) returns (QueryClassResponse) {
|
||||
option (google.api.http).get = "/cosmos/nft/v1beta1/classes/{class_id}";
|
||||
}
|
||||
|
||||
// Classes queries all NFT classes
|
||||
rpc Classes(QueryClassesRequest) returns (QueryClassesResponse) {
|
||||
option (google.api.http).get = "/cosmos/nft/v1beta1/classes";
|
||||
}
|
||||
}
|
||||
|
||||
// QueryBalanceRequest is the request type for the Query/Balance RPC method
|
||||
message QueryBalanceRequest {
|
||||
string class_id = 1;
|
||||
string owner = 2;
|
||||
}
|
||||
|
||||
// QueryBalanceResponse is the response type for the Query/Balance RPC method
|
||||
message QueryBalanceResponse {
|
||||
uint64 amount = 1;
|
||||
}
|
||||
|
||||
// QueryOwnerRequest is the request type for the Query/Owner RPC method
|
||||
message QueryOwnerRequest {
|
||||
string class_id = 1;
|
||||
string id = 2;
|
||||
}
|
||||
|
||||
// QueryOwnerResponse is the response type for the Query/Owner RPC method
|
||||
message QueryOwnerResponse {
|
||||
string owner = 1;
|
||||
}
|
||||
|
||||
// QuerySupplyRequest is the request type for the Query/Supply RPC method
|
||||
message QuerySupplyRequest {
|
||||
string class_id = 1;
|
||||
}
|
||||
|
||||
// QuerySupplyResponse is the response type for the Query/Supply RPC method
|
||||
message QuerySupplyResponse {
|
||||
uint64 amount = 1;
|
||||
}
|
||||
|
||||
// QueryNFTstRequest is the request type for the Query/NFTs RPC method
|
||||
message QueryNFTsRequest {
|
||||
string class_id = 1;
|
||||
string owner = 2;
|
||||
cosmos.base.query.v1beta1.PageRequest pagination = 3;
|
||||
}
|
||||
|
||||
// QueryNFTsResponse is the response type for the Query/NFTs RPC methods
|
||||
message QueryNFTsResponse {
|
||||
repeated cosmos.nft.v1beta1.NFT nfts = 1;
|
||||
cosmos.base.query.v1beta1.PageResponse pagination = 2;
|
||||
}
|
||||
|
||||
// QueryNFTRequest is the request type for the Query/NFT RPC method
|
||||
message QueryNFTRequest {
|
||||
string class_id = 1;
|
||||
string id = 2;
|
||||
}
|
||||
|
||||
// QueryNFTResponse is the response type for the Query/NFT RPC method
|
||||
message QueryNFTResponse {
|
||||
cosmos.nft.v1beta1.NFT nft = 1;
|
||||
}
|
||||
|
||||
// QueryClassRequest is the request type for the Query/Class RPC method
|
||||
message QueryClassRequest {
|
||||
string class_id = 1;
|
||||
}
|
||||
|
||||
// QueryClassResponse is the response type for the Query/Class RPC method
|
||||
message QueryClassResponse {
|
||||
cosmos.nft.v1beta1.Class class = 1;
|
||||
}
|
||||
|
||||
// QueryClassesRequest is the request type for the Query/Classes RPC method
|
||||
message QueryClassesRequest {
|
||||
// pagination defines an optional pagination for the request.
|
||||
cosmos.base.query.v1beta1.PageRequest pagination = 1;
|
||||
}
|
||||
|
||||
// QueryClassesResponse is the response type for the Query/Classes RPC method
|
||||
message QueryClassesResponse {
|
||||
repeated cosmos.nft.v1beta1.Class classes = 1;
|
||||
cosmos.base.query.v1beta1.PageResponse pagination = 2;
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
syntax = "proto3";
|
||||
package cosmos.nft.v1beta1;
|
||||
|
||||
option go_package = "github.com/cosmos/cosmos-sdk/x/nft";
|
||||
|
||||
import "cosmos/msg/v1/msg.proto";
|
||||
|
||||
// Msg defines the nft Msg service.
|
||||
service Msg {
|
||||
// Send defines a method to send a nft from one account to another account.
|
||||
rpc Send(MsgSend) returns (MsgSendResponse);
|
||||
}
|
||||
// MsgSend represents a message to send a nft from one account to another account.
|
||||
message MsgSend {
|
||||
option (cosmos.msg.v1.signer) = "sender";
|
||||
|
||||
// class_id defines the unique identifier of the nft classification, similar to the contract address of ERC721
|
||||
string class_id = 1;
|
||||
|
||||
// id defines the unique identification of nft
|
||||
string id = 2;
|
||||
|
||||
// sender is the address of the owner of nft
|
||||
string sender = 3;
|
||||
|
||||
// receiver is the receiver address of nft
|
||||
string receiver = 4;
|
||||
}
|
||||
// MsgSendResponse defines the Msg/Send response type.
|
||||
message MsgSendResponse {}
|
||||
@@ -0,0 +1,104 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package cosmos.orm.v1;
|
||||
|
||||
import "google/protobuf/descriptor.proto";
|
||||
|
||||
extend google.protobuf.MessageOptions {
|
||||
|
||||
// table specifies that this message will be used as an ORM table. It cannot
|
||||
// be used together with the singleton option.
|
||||
TableDescriptor table = 104503790;
|
||||
|
||||
// singleton specifies that this message will be used as an ORM singleton. It cannot
|
||||
// be used together with the table option.
|
||||
SingletonDescriptor singleton = 104503791;
|
||||
}
|
||||
|
||||
// TableDescriptor describes an ORM table.
|
||||
message TableDescriptor {
|
||||
|
||||
// primary_key defines the primary key for the table.
|
||||
PrimaryKeyDescriptor primary_key = 1;
|
||||
|
||||
// index defines one or more secondary indexes.
|
||||
repeated SecondaryIndexDescriptor index = 2;
|
||||
|
||||
// id is a non-zero integer ID that must be unique within the
|
||||
// tables and singletons in this file. It may be deprecated in the future when this
|
||||
// can be auto-generated.
|
||||
uint32 id = 3;
|
||||
}
|
||||
|
||||
// PrimaryKeyDescriptor describes a table primary key.
|
||||
message PrimaryKeyDescriptor {
|
||||
|
||||
// fields is a comma-separated list of fields in the primary key. Spaces are
|
||||
// not allowed. Supported field types, their encodings, and any applicable constraints
|
||||
// are described below.
|
||||
// - uint32 are encoded as 2,3,4 or 5 bytes using a compact encoding that
|
||||
// is suitable for sorted iteration (not varint encoding). This type is
|
||||
// well-suited for small integers.
|
||||
// - uint64 are encoded as 2,4,6 or 9 bytes using a compact encoding that
|
||||
// is suitable for sorted iteration (not varint encoding). This type is
|
||||
// well-suited for small integers such as auto-incrementing sequences.
|
||||
// - fixed32, fixed64 are encoded as big-endian fixed width bytes and support
|
||||
// sorted iteration. These types are well-suited for encoding fixed with
|
||||
// decimals as integers.
|
||||
// - string's are encoded as raw bytes in terminal key segments and null-terminated
|
||||
// in non-terminal segments. Null characters are thus forbidden in strings.
|
||||
// string fields support sorted iteration.
|
||||
// - bytes are encoded as raw bytes in terminal segments and length-prefixed
|
||||
// with a 32-bit unsigned varint in non-terminal segments.
|
||||
// - int32, sint32, int64, sint64, sfixed32, sfixed64 are encoded as fixed width bytes with
|
||||
// an encoding that enables sorted iteration.
|
||||
// - google.protobuf.Timestamp and google.protobuf.Duration are encoded
|
||||
// as 12 bytes using an encoding that enables sorted iteration.
|
||||
// - enum fields are encoded using varint encoding and do not support sorted
|
||||
// iteration.
|
||||
// - bool fields are encoded as a single byte 0 or 1.
|
||||
//
|
||||
// All other fields types are unsupported in keys including repeated and
|
||||
// oneof fields.
|
||||
//
|
||||
// Primary keys are prefixed by the varint encoded table id and the byte 0x0
|
||||
// plus any additional prefix specified by the schema.
|
||||
string fields = 1;
|
||||
|
||||
// auto_increment specifies that the primary key is generated by an
|
||||
// auto-incrementing integer. If this is set to true fields must only
|
||||
// contain one field of that is of type uint64.
|
||||
bool auto_increment = 2;
|
||||
}
|
||||
|
||||
// PrimaryKeyDescriptor describes a table secondary index.
|
||||
message SecondaryIndexDescriptor {
|
||||
|
||||
// fields is a comma-separated list of fields in the index. The supported
|
||||
// field types are the same as those for PrimaryKeyDescriptor.fields.
|
||||
// Index keys are prefixed by the varint encoded table id and the varint
|
||||
// encoded index id plus any additional prefix specified by the schema.
|
||||
//
|
||||
// In addition the the field segments, non-unique index keys are suffixed with
|
||||
// any additional primary key fields not present in the index fields so that the
|
||||
// primary key can be reconstructed. Unique indexes instead of being suffixed
|
||||
// store the remaining primary key fields in the value..
|
||||
string fields = 1;
|
||||
|
||||
// id is a non-zero integer ID that must be unique within the indexes for this
|
||||
// table and less than 32768. It may be deprecated in the future when this can
|
||||
// be auto-generated.
|
||||
uint32 id = 2;
|
||||
|
||||
// unique specifies that this an unique index.
|
||||
bool unique = 3;
|
||||
}
|
||||
|
||||
// TableDescriptor describes an ORM singleton table which has at most one instance.
|
||||
message SingletonDescriptor {
|
||||
|
||||
// id is a non-zero integer ID that must be unique within the
|
||||
// tables and singletons in this file. It may be deprecated in the future when this
|
||||
// can be auto-generated.
|
||||
uint32 id = 1;
|
||||
}
|
||||
@@ -0,0 +1,76 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package cosmos.orm.v1alpha1;
|
||||
|
||||
import "google/protobuf/descriptor.proto";
|
||||
|
||||
extend google.protobuf.MessageOptions {
|
||||
// module_schema is used to define the ORM schema for an app module.
|
||||
// All module config messages that use module_schema must also declare
|
||||
// themselves as app module config messages using the cosmos.app.v1.is_module
|
||||
// option.
|
||||
ModuleSchemaDescriptor module_schema = 104503792;
|
||||
}
|
||||
|
||||
// ModuleSchemaDescriptor describe's a module's ORM schema.
|
||||
message ModuleSchemaDescriptor {
|
||||
repeated FileEntry schema_file = 1;
|
||||
|
||||
// FileEntry describes an ORM file used in a module.
|
||||
message FileEntry {
|
||||
// id is a prefix that will be varint encoded and prepended to all the
|
||||
// table keys specified in the file's tables.
|
||||
uint32 id = 1;
|
||||
|
||||
// proto_file_name is the name of a file .proto in that contains
|
||||
// table definitions. The .proto file must be in a package that the
|
||||
// module has referenced using cosmos.app.v1.ModuleDescriptor.use_package.
|
||||
string proto_file_name = 2;
|
||||
|
||||
// storage_type optionally indicates the type of storage this file's
|
||||
// tables should used. If it is left unspecified, the default KV-storage
|
||||
// of the app will be used.
|
||||
StorageType storage_type = 3;
|
||||
}
|
||||
|
||||
// prefix is an optional prefix that precedes all keys in this module's
|
||||
// store.
|
||||
bytes prefix = 2;
|
||||
}
|
||||
|
||||
// StorageType
|
||||
enum StorageType {
|
||||
// STORAGE_TYPE_DEFAULT_UNSPECIFIED indicates the persistent
|
||||
// KV-storage where primary key entries are stored in merkle-tree
|
||||
// backed commitment storage and indexes and seqs are stored in
|
||||
// fast index storage. Note that the Cosmos SDK before store/v2alpha1
|
||||
// does not support this.
|
||||
STORAGE_TYPE_DEFAULT_UNSPECIFIED = 0;
|
||||
|
||||
// STORAGE_TYPE_MEMORY indicates in-memory storage that will be
|
||||
// reloaded every time an app restarts. Tables with this type of storage
|
||||
// will by default be ignored when importing and exporting a module's
|
||||
// state from JSON.
|
||||
STORAGE_TYPE_MEMORY = 1;
|
||||
|
||||
// STORAGE_TYPE_TRANSIENT indicates transient storage that is reset
|
||||
// at the end of every block. Tables with this type of storage
|
||||
// will by default be ignored when importing and exporting a module's
|
||||
// state from JSON.
|
||||
STORAGE_TYPE_TRANSIENT = 2;
|
||||
|
||||
// STORAGE_TYPE_INDEX indicates persistent storage which is not backed
|
||||
// by a merkle-tree and won't affect the app hash. Note that the Cosmos SDK
|
||||
// before store/v2alpha1 does not support this.
|
||||
STORAGE_TYPE_INDEX = 3;
|
||||
|
||||
// STORAGE_TYPE_INDEX indicates persistent storage which is backed by
|
||||
// a merkle-tree. With this type of storage, both primary and index keys
|
||||
// will affect the app hash and this is generally less efficient
|
||||
// than using STORAGE_TYPE_DEFAULT_UNSPECIFIED which separates index
|
||||
// keys into index storage. Note that modules built with the
|
||||
// Cosmos SDK before store/v2alpha1 must specify STORAGE_TYPE_COMMITMENT
|
||||
// instead of STORAGE_TYPE_DEFAULT_UNSPECIFIED or STORAGE_TYPE_INDEX
|
||||
// because this is the only type of persistent storage available.
|
||||
STORAGE_TYPE_COMMITMENT = 4;
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
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";
|
||||
import "cosmos_proto/cosmos.proto";
|
||||
|
||||
// ParameterChangeProposal defines a proposal to change one or more parameters.
|
||||
message ParameterChangeProposal {
|
||||
option (gogoproto.goproto_getters) = false;
|
||||
option (gogoproto.goproto_stringer) = false;
|
||||
option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content";
|
||||
|
||||
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;
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
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";
|
||||
}
|
||||
|
||||
// Subspaces queries for all registered subspaces and all keys for a subspace.
|
||||
rpc Subspaces(QuerySubspacesRequest) returns (QuerySubspacesResponse) {
|
||||
option (google.api.http).get = "/cosmos/params/v1beta1/subspaces";
|
||||
}
|
||||
}
|
||||
|
||||
// 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];
|
||||
}
|
||||
|
||||
// QuerySubspacesRequest defines a request type for querying for all registered
|
||||
// subspaces and all keys for a subspace.
|
||||
message QuerySubspacesRequest {}
|
||||
|
||||
// QuerySubspacesResponse defines the response types for querying for all
|
||||
// registered subspaces and all keys for a subspace.
|
||||
message QuerySubspacesResponse {
|
||||
repeated Subspace subspaces = 1;
|
||||
}
|
||||
|
||||
// Subspace defines a parameter subspace name and all the keys that exist for
|
||||
// the subspace.
|
||||
message Subspace {
|
||||
string subspace = 1;
|
||||
repeated string keys = 2;
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
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";
|
||||
import "cosmos_proto/cosmos.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.nullable) = false];
|
||||
|
||||
// missed_blocks represents a map between validator addresses and their
|
||||
// missed blocks.
|
||||
repeated ValidatorMissedBlocks missed_blocks = 3 [(gogoproto.nullable) = false];
|
||||
}
|
||||
|
||||
// SigningInfo stores validator signing info of corresponding address.
|
||||
message SigningInfo {
|
||||
// address is the validator address.
|
||||
string address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
// validator_signing_info represents the signing info of this validator.
|
||||
ValidatorSigningInfo validator_signing_info = 2 [(gogoproto.nullable) = false];
|
||||
}
|
||||
|
||||
// ValidatorMissedBlocks contains array of missed blocks of corresponding
|
||||
// address.
|
||||
message ValidatorMissedBlocks {
|
||||
// address is the validator address.
|
||||
string address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
// missed_blocks is an array of missed blocks by the validator.
|
||||
repeated MissedBlock missed_blocks = 2 [(gogoproto.nullable) = false];
|
||||
}
|
||||
|
||||
// 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;
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
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";
|
||||
import "cosmos_proto/cosmos.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 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
}
|
||||
|
||||
// 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;
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
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";
|
||||
import "cosmos_proto/cosmos.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 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
// Height at which validator was first a candidate OR was unjailed
|
||||
int64 start_height = 2;
|
||||
// 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;
|
||||
// Timestamp until which the validator is jailed due to liveness downtime.
|
||||
google.protobuf.Timestamp jailed_until = 4 [(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;
|
||||
}
|
||||
|
||||
// Params represents the parameters used for by the slashing module.
|
||||
message Params {
|
||||
int64 signed_blocks_window = 1;
|
||||
bytes min_signed_per_window = 2
|
||||
[(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];
|
||||
bytes slash_fraction_double_sign = 4
|
||||
[(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", (gogoproto.nullable) = false];
|
||||
bytes slash_fraction_downtime = 5
|
||||
[(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", (gogoproto.nullable) = false];
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
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 "cosmos_proto/cosmos.proto";
|
||||
import "cosmos/msg/v1/msg.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 (cosmos.msg.v1.signer) = "validator_addr";
|
||||
|
||||
option (gogoproto.goproto_getters) = false;
|
||||
option (gogoproto.goproto_stringer) = true;
|
||||
|
||||
string validator_addr = 1 [(cosmos_proto.scalar) = "cosmos.AddressString", (gogoproto.jsontag) = "address"];
|
||||
}
|
||||
|
||||
// MsgUnjailResponse defines the Msg/Unjail response type
|
||||
message MsgUnjailResponse {}
|
||||
@@ -0,0 +1,47 @@
|
||||
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.
|
||||
//
|
||||
// Since: cosmos-sdk 0.43
|
||||
message StakeAuthorization {
|
||||
option (cosmos_proto.implements_interface) = "cosmos.authz.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 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
}
|
||||
// authorization_type defines one of AuthorizationType.
|
||||
AuthorizationType authorization_type = 4;
|
||||
}
|
||||
|
||||
// AuthorizationType defines the type of staking module authorization type
|
||||
//
|
||||
// Since: cosmos-sdk 0.43
|
||||
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;
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
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";
|
||||
import "cosmos_proto/cosmos.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.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.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.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 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// power defines the power of the validator.
|
||||
int64 power = 2;
|
||||
}
|
||||
@@ -0,0 +1,349 @@
|
||||
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";
|
||||
import "cosmos_proto/cosmos.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 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
}
|
||||
|
||||
// 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 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// 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 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// 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 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// validator_addr defines the validator address to query for.
|
||||
string validator_addr = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
}
|
||||
|
||||
// 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 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// validator_addr defines the validator address to query for.
|
||||
string validator_addr = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
}
|
||||
|
||||
// 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 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// 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 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// 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 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// src_validator_addr defines the validator address to redelegate from.
|
||||
string src_validator_addr = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// dst_validator_addr defines the validator address to redelegate to.
|
||||
string dst_validator_addr = 3 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// 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 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// 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 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// validator_addr defines the validator address to query for.
|
||||
string validator_addr = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
}
|
||||
|
||||
// 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];
|
||||
}
|
||||
@@ -0,0 +1,358 @@
|
||||
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 [
|
||||
(cosmos_proto.scalar) = "cosmos.Dec",
|
||||
(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 [
|
||||
(cosmos_proto.scalar) = "cosmos.Dec",
|
||||
(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 [
|
||||
(cosmos_proto.scalar) = "cosmos.Dec",
|
||||
(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];
|
||||
}
|
||||
|
||||
// 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;
|
||||
// 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 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
// 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"];
|
||||
// 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 [
|
||||
(cosmos_proto.scalar) = "cosmos.Int",
|
||||
(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 [
|
||||
(cosmos_proto.scalar) = "cosmos.Dec",
|
||||
(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;
|
||||
// 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];
|
||||
// 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 [
|
||||
(cosmos_proto.scalar) = "cosmos.Int",
|
||||
(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 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
}
|
||||
|
||||
// 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 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
string validator_address = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
}
|
||||
|
||||
// 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 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
string validator_src_address = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
string validator_dst_address = 3 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
}
|
||||
|
||||
// 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 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
// validator_address is the bech32-encoded address of the validator.
|
||||
string validator_address = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
// shares define the delegation shares received.
|
||||
string shares = 3 [
|
||||
(cosmos_proto.scalar) = "cosmos.Dec",
|
||||
(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 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
// validator_address is the bech32-encoded address of the validator.
|
||||
string validator_address = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
// 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;
|
||||
// completion_time is the unix time for unbonding completion.
|
||||
google.protobuf.Timestamp completion_time = 2 [(gogoproto.nullable) = false, (gogoproto.stdtime) = true];
|
||||
// initial_balance defines the tokens initially scheduled to receive at completion.
|
||||
string initial_balance = 3 [
|
||||
(cosmos_proto.scalar) = "cosmos.Int",
|
||||
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
|
||||
(gogoproto.nullable) = false
|
||||
];
|
||||
// balance defines the tokens to receive at completion.
|
||||
string balance = 4 [
|
||||
(cosmos_proto.scalar) = "cosmos.Int",
|
||||
(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;
|
||||
// completion_time defines the unix time for redelegation completion.
|
||||
google.protobuf.Timestamp completion_time = 2 [(gogoproto.nullable) = false, (gogoproto.stdtime) = true];
|
||||
// initial_balance defines the initial balance when redelegation started.
|
||||
string initial_balance = 3 [
|
||||
(cosmos_proto.scalar) = "cosmos.Int",
|
||||
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
|
||||
(gogoproto.nullable) = false
|
||||
];
|
||||
// shares_dst is the amount of destination-validator shares created by redelegation.
|
||||
string shares_dst = 4 [
|
||||
(cosmos_proto.scalar) = "cosmos.Dec",
|
||||
(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 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
// validator_src_address is the validator redelegation source operator address.
|
||||
string validator_src_address = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
// validator_dst_address is the validator redelegation destination operator address.
|
||||
string validator_dst_address = 3 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
// 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];
|
||||
// max_validators is the maximum number of validators.
|
||||
uint32 max_validators = 2;
|
||||
// max_entries is the max entries for either unbonding delegation or redelegation (per pair/trio).
|
||||
uint32 max_entries = 3;
|
||||
// historical_entries is the number of historical entries to persist.
|
||||
uint32 historical_entries = 4;
|
||||
// bond_denom defines the bondable coin denomination.
|
||||
string bond_denom = 5;
|
||||
// min_commission_rate is the chain-wide minimum commission rate that a validator can charge their delegators
|
||||
string min_commission_rate = 6 [
|
||||
(gogoproto.moretags) = "yaml:\"min_commission_rate\"",
|
||||
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec",
|
||||
(gogoproto.nullable) = false
|
||||
];
|
||||
}
|
||||
|
||||
// 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 [
|
||||
(cosmos_proto.scalar) = "cosmos.Int",
|
||||
(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 [
|
||||
(cosmos_proto.scalar) = "cosmos.Int",
|
||||
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
|
||||
(gogoproto.nullable) = false,
|
||||
(gogoproto.jsontag) = "not_bonded_tokens"
|
||||
];
|
||||
string bonded_tokens = 2 [
|
||||
(cosmos_proto.scalar) = "cosmos.Int",
|
||||
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
|
||||
(gogoproto.nullable) = false,
|
||||
(gogoproto.jsontag) = "bonded_tokens"
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,138 @@
|
||||
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";
|
||||
|
||||
import "cosmos/msg/v1/msg.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 {
|
||||
// NOTE(fdymylja): this is a particular case in which
|
||||
// if validator_address == delegator_address then only one
|
||||
// is expected to sign, otherwise both are.
|
||||
option (cosmos.msg.v1.signer) = "delegator_address";
|
||||
option (cosmos.msg.v1.signer) = "validator_address";
|
||||
|
||||
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 [
|
||||
(cosmos_proto.scalar) = "cosmos.Int",
|
||||
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
|
||||
(gogoproto.nullable) = false
|
||||
];
|
||||
string delegator_address = 4 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
string validator_address = 5 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
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 (cosmos.msg.v1.signer) = "validator_address";
|
||||
|
||||
option (gogoproto.equal) = false;
|
||||
option (gogoproto.goproto_getters) = false;
|
||||
|
||||
Description description = 1 [(gogoproto.nullable) = false];
|
||||
string validator_address = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// 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
|
||||
[(cosmos_proto.scalar) = "cosmos.Dec", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec"];
|
||||
string min_self_delegation = 4
|
||||
[(cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int"];
|
||||
}
|
||||
|
||||
// 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 (cosmos.msg.v1.signer) = "delegator_address";
|
||||
|
||||
option (gogoproto.equal) = false;
|
||||
option (gogoproto.goproto_getters) = false;
|
||||
|
||||
string delegator_address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
string validator_address = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
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 (cosmos.msg.v1.signer) = "delegator_address";
|
||||
|
||||
option (gogoproto.equal) = false;
|
||||
option (gogoproto.goproto_getters) = false;
|
||||
|
||||
string delegator_address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
string validator_src_address = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
string validator_dst_address = 3 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
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 (cosmos.msg.v1.signer) = "delegator_address";
|
||||
|
||||
option (gogoproto.equal) = false;
|
||||
option (gogoproto.goproto_getters) = false;
|
||||
|
||||
string delegator_address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
string validator_address = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
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];
|
||||
}
|
||||
@@ -0,0 +1,94 @@
|
||||
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.
|
||||
//
|
||||
// This enum should be considered a registry of all known sign modes
|
||||
// in the Cosmos ecosystem. Apps are not expected to support all known
|
||||
// sign modes. Apps that would like to support custom sign modes are
|
||||
// encouraged to open a small PR against this file to add a new case
|
||||
// to this SignMode enum describing their sign mode so that different
|
||||
// apps have a consistent version of this enum.
|
||||
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. It is currently not supported.
|
||||
SIGN_MODE_TEXTUAL = 2;
|
||||
|
||||
// SIGN_MODE_DIRECT_AUX specifies a signing mode which uses
|
||||
// SignDocDirectAux. As opposed to SIGN_MODE_DIRECT, this sign mode does not
|
||||
// require signers signing over other signers' `signer_info`. It also allows
|
||||
// for adding Tips in transactions.
|
||||
//
|
||||
// Since: cosmos-sdk 0.46
|
||||
SIGN_MODE_DIRECT_AUX = 3;
|
||||
|
||||
// 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,163 @@
|
||||
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 "cosmos/base/query/v1beta1/pagination.proto";
|
||||
import "tendermint/types/block.proto";
|
||||
import "tendermint/types/types.proto";
|
||||
|
||||
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";
|
||||
}
|
||||
// GetBlockWithTxs fetches a block with decoded txs.
|
||||
//
|
||||
// Since: cosmos-sdk 0.45.2
|
||||
rpc GetBlockWithTxs(GetBlockWithTxsRequest) returns (GetBlockWithTxsResponse) {
|
||||
option (google.api.http).get = "/cosmos/tx/v1beta1/txs/block/{height}";
|
||||
}
|
||||
}
|
||||
|
||||
// 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 a 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 a 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.
|
||||
//
|
||||
// Since: cosmos-sdk 0.43
|
||||
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;
|
||||
}
|
||||
|
||||
// GetBlockWithTxsRequest is the request type for the Service.GetBlockWithTxs
|
||||
// RPC method.
|
||||
//
|
||||
// Since: cosmos-sdk 0.45.2
|
||||
message GetBlockWithTxsRequest {
|
||||
// height is the height of the block to query.
|
||||
int64 height = 1;
|
||||
// pagination defines a pagination for the request.
|
||||
cosmos.base.query.v1beta1.PageRequest pagination = 2;
|
||||
}
|
||||
|
||||
// GetBlockWithTxsResponse is the response type for the Service.GetBlockWithTxs method.
|
||||
//
|
||||
// Since: cosmos-sdk 0.45.2
|
||||
message GetBlockWithTxsResponse {
|
||||
// txs are the transactions in the block.
|
||||
repeated cosmos.tx.v1beta1.Tx txs = 1;
|
||||
.tendermint.types.BlockID block_id = 2;
|
||||
.tendermint.types.Block block = 3;
|
||||
// pagination defines a pagination for the response.
|
||||
cosmos.base.query.v1beta1.PageResponse pagination = 4;
|
||||
}
|
||||
@@ -0,0 +1,249 @@
|
||||
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";
|
||||
import "cosmos_proto/cosmos.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;
|
||||
}
|
||||
|
||||
// SignDocDirectAux is the type used for generating sign bytes for
|
||||
// SIGN_MODE_DIRECT_AUX.
|
||||
//
|
||||
// Since: cosmos-sdk 0.46
|
||||
message SignDocDirectAux {
|
||||
// body_bytes is protobuf serialization of a TxBody that matches the
|
||||
// representation in TxRaw.
|
||||
bytes body_bytes = 1;
|
||||
|
||||
// public_key is the public key of the signing account.
|
||||
google.protobuf.Any public_key = 2;
|
||||
|
||||
// chain_id is the 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;
|
||||
|
||||
// sequence is the sequence number of the signing account.
|
||||
uint64 sequence = 5;
|
||||
|
||||
// Tip is the optional tip used for meta-transactions. It should be left
|
||||
// empty if the signer is not the tipper for this transaction.
|
||||
Tip tip = 6;
|
||||
}
|
||||
|
||||
// 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;
|
||||
|
||||
// Tip is the optional tip used for meta-transactions.
|
||||
//
|
||||
// Since: cosmos-sdk 0.46
|
||||
Tip tip = 3;
|
||||
}
|
||||
|
||||
// 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 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// 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 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
}
|
||||
|
||||
// Tip is the tip used for meta-transactions.
|
||||
//
|
||||
// Since: cosmos-sdk 0.46
|
||||
message Tip {
|
||||
// amount is the amount of the tip
|
||||
repeated cosmos.base.v1beta1.Coin amount = 1
|
||||
[(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"];
|
||||
// tipper is the address of the account paying for the tip
|
||||
string tipper = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
}
|
||||
|
||||
// AuxSignerData is the intermediary format that an auxiliary signer (e.g. a
|
||||
// tipper) builds and sends to the fee payer (who will build and broadcast the
|
||||
// actual tx). AuxSignerData is not a valid tx in itself, and will be rejected
|
||||
// by the node if sent directly as-is.
|
||||
//
|
||||
// Since: cosmos-sdk 0.46
|
||||
message AuxSignerData {
|
||||
// address is the bech32-encoded address of the auxiliary signer. If using
|
||||
// AuxSignerData across different chains, the bech32 prefix of the target
|
||||
// chain (where the final transaction is broadcasted) should be used.
|
||||
string address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
// sign_doc is the SIGN_MOD_DIRECT_AUX sign doc that the auxiliary signer
|
||||
// signs. Note: we use the same sign doc even if we're signing with
|
||||
// LEGACY_AMINO_JSON.
|
||||
SignDocDirectAux sign_doc = 2;
|
||||
// mode is the signing mode of the single signer
|
||||
cosmos.tx.signing.v1beta1.SignMode mode = 3;
|
||||
// sig is the signature of the sign doc.
|
||||
bytes sig = 4;
|
||||
}
|
||||
@@ -0,0 +1,120 @@
|
||||
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
|
||||
// This rpc is deprecated now that IBC has its own replacement
|
||||
// (https://github.com/cosmos/ibc-go/blob/2c880a22e9f9cc75f62b527ca94aa75ce1106001/proto/ibc/core/client/v1/query.proto#L54)
|
||||
rpc UpgradedConsensusState(QueryUpgradedConsensusStateRequest) returns (QueryUpgradedConsensusStateResponse) {
|
||||
option deprecated = true;
|
||||
option (google.api.http).get = "/cosmos/upgrade/v1beta1/upgraded_consensus_state/{last_height}";
|
||||
}
|
||||
|
||||
// ModuleVersions queries the list of module versions from state.
|
||||
//
|
||||
// Since: cosmos-sdk 0.43
|
||||
rpc ModuleVersions(QueryModuleVersionsRequest) returns (QueryModuleVersionsResponse) {
|
||||
option (google.api.http).get = "/cosmos/upgrade/v1beta1/module_versions";
|
||||
}
|
||||
|
||||
// Returns the account with authority to conduct upgrades
|
||||
rpc Authority(QueryAuthorityRequest) returns (QueryAuthorityResponse) {
|
||||
option (google.api.http).get = "/cosmos/upgrade/v1beta1/authority";
|
||||
}
|
||||
}
|
||||
|
||||
// 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 {
|
||||
option deprecated = true;
|
||||
|
||||
// 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 {
|
||||
option deprecated = true;
|
||||
reserved 1;
|
||||
|
||||
// Since: cosmos-sdk 0.43
|
||||
bytes upgraded_consensus_state = 2;
|
||||
}
|
||||
|
||||
// QueryModuleVersionsRequest is the request type for the Query/ModuleVersions
|
||||
// RPC method.
|
||||
//
|
||||
// Since: cosmos-sdk 0.43
|
||||
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.
|
||||
//
|
||||
// Since: cosmos-sdk 0.43
|
||||
message QueryModuleVersionsResponse {
|
||||
// module_versions is a list of module names with their consensus versions.
|
||||
repeated ModuleVersion module_versions = 1;
|
||||
}
|
||||
|
||||
// QueryAuthorityRequest is the request type for Query/Authority
|
||||
//
|
||||
// Since: cosmos-sdk 0.46
|
||||
message QueryAuthorityRequest {}
|
||||
|
||||
// QueryAuthorityResponse is the response type for Query/Authority
|
||||
//
|
||||
// Since: cosmos-sdk 0.46
|
||||
message QueryAuthorityResponse {
|
||||
string address = 1;
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
syntax = "proto3";
|
||||
package cosmos.upgrade.v1beta1;
|
||||
|
||||
import "gogoproto/gogo.proto";
|
||||
import "cosmos_proto/cosmos.proto";
|
||||
import "cosmos/upgrade/v1beta1/upgrade.proto";
|
||||
import "cosmos/msg/v1/msg.proto";
|
||||
|
||||
option go_package = "github.com/cosmos/cosmos-sdk/x/upgrade/types";
|
||||
|
||||
// Msg defines the upgrade Msg service.
|
||||
service Msg {
|
||||
// SoftwareUpgrade is a governance operation for initiating a software upgrade.
|
||||
//
|
||||
// Since: cosmos-sdk 0.46
|
||||
rpc SoftwareUpgrade(MsgSoftwareUpgrade) returns (MsgSoftwareUpgradeResponse);
|
||||
// CancelUpgrade is a governance operation for cancelling a previously
|
||||
// approvid software upgrade.
|
||||
//
|
||||
// Since: cosmos-sdk 0.46
|
||||
rpc CancelUpgrade(MsgCancelUpgrade) returns (MsgCancelUpgradeResponse);
|
||||
}
|
||||
|
||||
// MsgSoftwareUpgrade is the Msg/SoftwareUpgrade request type.
|
||||
//
|
||||
// Since: cosmos-sdk 0.46
|
||||
message MsgSoftwareUpgrade {
|
||||
option (cosmos.msg.v1.signer) = "authority";
|
||||
|
||||
// authority is the address of the governance account.
|
||||
string authority = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// plan is the upgrade plan.
|
||||
Plan plan = 2 [(gogoproto.nullable) = false];
|
||||
}
|
||||
|
||||
// MsgSoftwareUpgradeResponse is the Msg/SoftwareUpgrade response type.
|
||||
//
|
||||
// Since: cosmos-sdk 0.46
|
||||
message MsgSoftwareUpgradeResponse {}
|
||||
|
||||
// MsgCancelUpgrade is the Msg/CancelUpgrade request type.
|
||||
//
|
||||
// Since: cosmos-sdk 0.46
|
||||
message MsgCancelUpgrade {
|
||||
option (cosmos.msg.v1.signer) = "authority";
|
||||
|
||||
// authority is the address of the governance account.
|
||||
string authority = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
}
|
||||
|
||||
// MsgCancelUpgradeResponse is the Msg/CancelUpgrade response type.
|
||||
//
|
||||
// Since: cosmos-sdk 0.46
|
||||
message MsgCancelUpgradeResponse {}
|
||||
@@ -0,0 +1,86 @@
|
||||
syntax = "proto3";
|
||||
package cosmos.upgrade.v1beta1;
|
||||
|
||||
import "google/protobuf/any.proto";
|
||||
import "gogoproto/gogo.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
import "cosmos_proto/cosmos.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];
|
||||
}
|
||||
|
||||
// SoftwareUpgradeProposal is a gov Content type for initiating a software
|
||||
// upgrade.
|
||||
// Deprecated: This legacy proposal is deprecated in favor of Msg-based gov
|
||||
// proposals, see MsgSoftwareUpgrade.
|
||||
message SoftwareUpgradeProposal {
|
||||
option deprecated = true;
|
||||
option (gogoproto.equal) = true;
|
||||
option (gogoproto.goproto_stringer) = false;
|
||||
option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content";
|
||||
|
||||
string title = 1;
|
||||
string description = 2;
|
||||
Plan plan = 3 [(gogoproto.nullable) = false];
|
||||
}
|
||||
|
||||
// CancelSoftwareUpgradeProposal is a gov Content type for cancelling a software
|
||||
// upgrade.
|
||||
// Deprecated: This legacy proposal is deprecated in favor of Msg-based gov
|
||||
// proposals, see MsgCancelUpgrade.
|
||||
message CancelSoftwareUpgradeProposal {
|
||||
option deprecated = true;
|
||||
option (gogoproto.equal) = true;
|
||||
option (gogoproto.goproto_stringer) = false;
|
||||
option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content";
|
||||
|
||||
string title = 1;
|
||||
string description = 2;
|
||||
}
|
||||
|
||||
// ModuleVersion specifies a module and its consensus version.
|
||||
//
|
||||
// Since: cosmos-sdk 0.43
|
||||
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;
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
syntax = "proto3";
|
||||
package cosmos.vesting.v1beta1;
|
||||
|
||||
import "gogoproto/gogo.proto";
|
||||
import "cosmos/base/v1beta1/coin.proto";
|
||||
import "cosmos_proto/cosmos.proto";
|
||||
import "cosmos/vesting/v1beta1/vesting.proto";
|
||||
|
||||
import "cosmos/msg/v1/msg.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);
|
||||
// CreatePermanentLockedAccount defines a method that enables creating a permanent
|
||||
// locked account.
|
||||
rpc CreatePermanentLockedAccount(MsgCreatePermanentLockedAccount) returns (MsgCreatePermanentLockedAccountResponse);
|
||||
// CreatePeriodicVestingAccount defines a method that enables creating a
|
||||
// periodic vesting account.
|
||||
rpc CreatePeriodicVestingAccount(MsgCreatePeriodicVestingAccount) returns (MsgCreatePeriodicVestingAccountResponse);
|
||||
}
|
||||
|
||||
// MsgCreateVestingAccount defines a message that enables creating a vesting
|
||||
// account.
|
||||
message MsgCreateVestingAccount {
|
||||
option (cosmos.msg.v1.signer) = "from_address";
|
||||
|
||||
option (gogoproto.equal) = true;
|
||||
|
||||
string from_address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
string to_address = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
repeated cosmos.base.v1beta1.Coin amount = 3
|
||||
[(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"];
|
||||
|
||||
int64 end_time = 4;
|
||||
bool delayed = 5;
|
||||
}
|
||||
|
||||
// MsgCreateVestingAccountResponse defines the Msg/CreateVestingAccount response type.
|
||||
message MsgCreateVestingAccountResponse {}
|
||||
|
||||
// MsgCreatePermanentLockedAccount defines a message that enables creating a permanent
|
||||
// locked account.
|
||||
message MsgCreatePermanentLockedAccount {
|
||||
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"];
|
||||
}
|
||||
|
||||
// MsgCreatePermanentLockedAccountResponse defines the Msg/CreatePermanentLockedAccount response type.
|
||||
message MsgCreatePermanentLockedAccountResponse {}
|
||||
|
||||
// MsgCreateVestingAccount defines a message that enables creating a vesting
|
||||
// account.
|
||||
message MsgCreatePeriodicVestingAccount {
|
||||
option (cosmos.msg.v1.signer) = "from_address";
|
||||
|
||||
option (gogoproto.equal) = false;
|
||||
|
||||
string from_address = 1;
|
||||
string to_address = 2;
|
||||
int64 start_time = 3;
|
||||
repeated Period vesting_periods = 4 [(gogoproto.nullable) = false];
|
||||
}
|
||||
|
||||
// MsgCreateVestingAccountResponse defines the Msg/CreatePeriodicVestingAccount
|
||||
// response type.
|
||||
message MsgCreatePeriodicVestingAccountResponse {}
|
||||
@@ -0,0 +1,76 @@
|
||||
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"];
|
||||
repeated cosmos.base.v1beta1.Coin delegated_free = 3
|
||||
[(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"];
|
||||
repeated cosmos.base.v1beta1.Coin delegated_vesting = 4
|
||||
[(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"];
|
||||
int64 end_time = 5;
|
||||
}
|
||||
|
||||
// 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;
|
||||
}
|
||||
|
||||
// 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;
|
||||
repeated Period vesting_periods = 3 [(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.
|
||||
//
|
||||
// Since: cosmos-sdk 0.43
|
||||
message PermanentLockedAccount {
|
||||
option (gogoproto.goproto_getters) = false;
|
||||
option (gogoproto.goproto_stringer) = false;
|
||||
|
||||
BaseVestingAccount base_vesting_account = 1 [(gogoproto.embed) = true];
|
||||
}
|
||||
Reference in New Issue
Block a user