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; }