-
Notifications
You must be signed in to change notification settings - Fork 3.8k
/
Copy pathquery.proto
35 lines (31 loc) · 1.55 KB
/
query.proto
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
syntax = "proto3";
package cosmos.query.v1;
import "google/protobuf/descriptor.proto";
// TODO: 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/query";
extend google.protobuf.MethodOptions {
// module_query_safe is set to true when the query is safe to be called from
// within the state machine, for example from another module's Keeper, via
// ADR-033 calls or from CosmWasm contracts.
// Concretely, it means that the query is:
// 1. deterministic: given a block height, returns the exact same response
// upon multiple calls; and doesn't introduce any state-machine-breaking
// changes across SDK patch version.
// 2. consumes gas correctly.
//
// If you are a module developer and want to add this annotation to one of
// your own queries, please make sure that the corresponding query:
// 1. is deterministic and won't introduce state-machine-breaking changes
// without a coordinated upgrade path,
// 2. has its gas tracked, to avoid the attack vector where no gas is
// accounted for on potentially high-computation queries.
//
// For queries that potentially consume a large amount of gas (for example
// those with pagination, if the pagination field is incorrectly set), we
// also recommend adding Protobuf comments to warn module developers
// consuming these queries.
//
// When set to true, the query can safely be called
bool module_query_safe = 11110001;
}