diff --git a/docs/static/openapi.yml b/docs/static/openapi.yml index a3cc0da74..2fa38ceac 100644 --- a/docs/static/openapi.yml +++ b/docs/static/openapi.yml @@ -3513,8 +3513,9 @@ paths: launched: type: boolean description: >- - // launched is a boolean that indicates that the Rollapp has - been launched and the immutable fields are no longer updatable. + launched is a boolean that indicates that the Rollapp has + been launched and the immutable fields are no longer + updatable. liveness_event_height: type: string format: int64 @@ -3644,9 +3645,9 @@ paths: description: type: string title: description is the description of the App - image: + image_url: type: string - title: image is the relative path to the App image + title: image_url is the URL to the App's image url: type: string title: url is the URL to the App's website @@ -3854,8 +3855,8 @@ paths: title: >- The time (num hub blocks) a sequencer can be down after which he will be jailed rather than slashed - app_creation_cost: - title: app_creation_cost is the cost for registering the App + app_registration_fee: + title: app_registration_fee is the fee for registering an App type: object properties: denom: @@ -4075,8 +4076,9 @@ paths: launched: type: boolean description: >- - // launched is a boolean that indicates that the Rollapp has - been launched and the immutable fields are no longer updatable. + launched is a boolean that indicates that the + Rollapp has been launched and the immutable fields + are no longer updatable. liveness_event_height: type: string format: int64 @@ -4210,9 +4212,9 @@ paths: description: type: string title: description is the description of the App - image: + image_url: type: string - title: image is the relative path to the App image + title: image_url is the URL to the App's image url: type: string title: url is the URL to the App's website @@ -4503,7 +4505,8 @@ paths: type: boolean description: >- launched is a boolean that indicates that the Rollapp has - been launched and the immutable fields are no longer updatable. + been launched and the immutable fields are no longer + updatable. liveness_event_height: type: string format: int64 @@ -4633,9 +4636,9 @@ paths: description: type: string title: description is the description of the App - image: + image_url: type: string - title: image is the relative path to the App image + title: image_url is the URL to the App's image url: type: string title: url is the URL to the App's website @@ -5309,19 +5312,388 @@ paths: } tags: - Query - /dymensionxyz/dymension/sequencer/proposer/{rollappId}: + /dymensionxyz/dymension/sequencer/proposers: get: - summary: Queries the current proposer by rollappId. - operationId: GetProposerByRollapp + summary: Queries a list of proposers. + operationId: Proposers responses: '200': description: A successful response. schema: type: object properties: - proposerAddr: - type: string - description: Response type for the GetProposerByRollapp RPC method. + proposers: + type: array + items: + type: object + properties: + address: + type: string + description: >- + address is the bech32-encoded address of the sequencer + account which is the account that the message was sent + from. + dymintPubKey: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the + type of the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's + path must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be + in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the + binary all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results + based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available + in the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. + + + Schemes other than `http`, `https` (or the empty + scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the + above specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any + values in the form + + of utility functions or additional generated methods of + the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and + the unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will + yield type + + name "y.z". + + + JSON + + + The JSON representation of an `Any` value uses the + regular + + representation of the deserialized, embedded message, + with an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a + custom JSON + + representation, that representation will be embedded + adding a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message + [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + rollappId: + type: string + description: >- + rollappId defines the rollapp to which the sequencer + belongs. + metadata: + description: >- + metadata defines the extra information for the + sequencer. + type: object + properties: + moniker: + type: string + description: >- + moniker defines a human-readable name for the + sequencer. + details: + type: string + description: details define other optional details. + p2p_seeds: + type: array + items: + type: string + title: bootstrap nodes list + rpcs: + type: array + items: + type: string + title: RPCs list + evm_rpcs: + type: array + items: + type: string + title: evm RPCs list + rest_api_urls: + type: array + items: + type: string + title: REST API URLs + explorer_url: + type: string + title: block explorer URL + genesis_urls: + type: array + items: + type: string + title: genesis URLs + contact_details: + title: contact details + type: object + properties: + website: + type: string + title: website URL + telegram: + type: string + title: telegram link + x: + type: string + title: twitter link + extra_data: + type: string + format: byte + title: json dump the sequencer can add (limited by size) + snapshots: + type: array + items: + type: object + properties: + snapshot_url: + type: string + title: the snapshot url + height: + type: string + format: uint64 + title: The snapshot height + checksum: + type: string + title: sha-256 checksum value for the snapshot file + title: snapshots of the sequencer + gas_price: + type: string + title: gas_price defines the value for each gas unit + jailed: + type: boolean + description: >- + jailed defined whether the sequencer has been jailed + from bonded status or not. + proposer: + type: boolean + status: + description: >- + status is the sequencer status + (bonded/unbonding/unbonded). + type: string + enum: + - OPERATING_STATUS_UNBONDED + - OPERATING_STATUS_UNBONDING + - OPERATING_STATUS_BONDED + default: OPERATING_STATUS_UNBONDED + title: >- + OperatingStatus defines the operating status of a + sequencer + tokens: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + 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. + description: >- + tokens define the delegated tokens (incl. + self-delegation). + unbond_request_height: + type: string + format: int64 + description: >- + unbond_request_height stores the height at which this + sequencer has + + requested to unbond. + unbond_time: + type: string + format: date-time + description: >- + unbond_time defines the time when the sequencer will + complete unbonding. + notice_period_time: + type: string + format: date-time + title: >- + notice_period_time defines the time when the sequencer + will finish it's notice period if started + description: >- + Sequencer defines a sequencer identified by its' address + (sequencerAddress). + + The sequencer could be attached to only one rollapp + (rollappId). + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + 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. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: >- + 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; + } + description: Response type for the Proposers RPC method. default: description: An unexpected error response. schema: @@ -5517,393 +5889,77 @@ paths: "value": "1.212s" } parameters: - - name: rollappId - in: path - required: true + - name: pagination.key + description: |- + 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. + in: query + required: false + type: string + format: byte + - name: pagination.offset + description: >- + 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. + in: query + required: false + type: string + format: uint64 + - name: pagination.limit + description: >- + 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. + in: query + required: false type: string + format: uint64 + - name: pagination.count_total + description: >- + 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. + in: query + required: false + type: boolean + - name: pagination.reverse + description: >- + reverse is set to true if results are to be returned in the + descending order. + + + Since: cosmos-sdk 0.43 + in: query + required: false + type: boolean tags: - Query - /dymensionxyz/dymension/sequencer/sequencer: + /dymensionxyz/dymension/sequencer/proposers/{rollappId}: get: - summary: Queries a list of Sequencer items. - operationId: Sequencers + summary: Queries the current proposer by rollappId. + operationId: GetProposerByRollapp responses: '200': description: A successful response. schema: type: object properties: - sequencers: - type: array - items: - type: object - properties: - address: - type: string - description: >- - address is the bech32-encoded address of the sequencer - account which is the account that the message was sent - from. - dymintPubKey: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the - type of the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's - path must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be - in a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the - binary all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can - optionally set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results - based on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available - in the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty - scheme) might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the - above specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any - values in the form - - of utility functions or additional generated methods of - the Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - // or ... - if (any.isSameTypeAs(Foo.getDefaultInstance())) { - foo = any.unpack(Foo.getDefaultInstance()); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := anypb.New(foo) - if err != nil { - ... - } - ... - foo := &pb.Foo{} - if err := any.UnmarshalTo(foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and - the unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will - yield type - - name "y.z". - - - JSON - - - The JSON representation of an `Any` value uses the - regular - - representation of the deserialized, embedded message, - with an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a - custom JSON - - representation, that representation will be embedded - adding a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message - [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - rollappId: - type: string - description: >- - rollappId defines the rollapp to which the sequencer - belongs. - metadata: - description: >- - metadata defines the extra information for the - sequencer. - type: object - properties: - moniker: - type: string - description: >- - moniker defines a human-readable name for the - sequencer. - details: - type: string - description: details define other optional details. - p2p_seeds: - type: array - items: - type: string - title: bootstrap nodes list - rpcs: - type: array - items: - type: string - title: RPCs list - evm_rpcs: - type: array - items: - type: string - title: evm RPCs list - rest_api_urls: - type: array - items: - type: string - title: REST API URLs - explorer_url: - type: string - title: block explorer URL - genesis_urls: - type: array - items: - type: string - title: genesis URLs - contact_details: - title: contact details - type: object - properties: - website: - type: string - title: website URL - telegram: - type: string - title: telegram link - x: - type: string - title: twitter link - extra_data: - type: string - format: byte - title: json dump the sequencer can add (limited by size) - snapshots: - type: array - items: - type: object - properties: - snapshot_url: - type: string - title: the snapshot url - height: - type: string - format: uint64 - title: The snapshot height - checksum: - type: string - title: sha-256 checksum value for the snapshot file - title: snapshots of the sequencer - gas_price: - type: string - title: gas_price defines the value for each gas unit - jailed: - type: boolean - description: >- - jailed defined whether the sequencer has been jailed - from bonded status or not. - proposer: - type: boolean - status: - description: >- - status is the sequencer status - (bonded/unbonding/unbonded). - type: string - enum: - - OPERATING_STATUS_UNBONDED - - OPERATING_STATUS_UNBONDING - - OPERATING_STATUS_BONDED - default: OPERATING_STATUS_UNBONDED - title: >- - OperatingStatus defines the operating status of a - sequencer - tokens: - type: array - items: - type: object - properties: - denom: - type: string - amount: - type: string - description: >- - 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. - description: >- - tokens define the delegated tokens (incl. - self-delegation). - unbond_request_height: - type: string - format: int64 - description: >- - unbond_request_height stores the height at which this - sequencer has - - requested to unbond. - unbond_time: - type: string - format: date-time - description: >- - unbond_time defines the time when the sequencer will - complete unbonding. - notice_period_time: - type: string - format: date-time - title: >- - notice_period_time defines the time when the sequencer - will finish it's notice period if started - description: >- - Sequencer defines a sequencer identified by its' address - (sequencerAddress). - - The sequencer could be attached to only one rollapp - (rollappId). - pagination: - type: object - properties: - next_key: - type: string - format: byte - description: |- - 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. - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - description: >- - 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; - } + proposerAddr: + type: string + description: Response type for the GetProposerByRollapp RPC method. default: description: An unexpected error response. schema: @@ -6099,62 +6155,10 @@ paths: "value": "1.212s" } parameters: - - name: pagination.key - description: |- - 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. - in: query - required: false - type: string - format: byte - - name: pagination.offset - description: >- - 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. - in: query - required: false - type: string - format: uint64 - - name: pagination.limit - description: >- - 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. - in: query - required: false + - name: rollappId + in: path + required: true type: string - format: uint64 - - name: pagination.count_total - description: >- - 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. - in: query - required: false - type: boolean - - name: pagination.reverse - description: >- - reverse is set to true if results are to be returned in the - descending order. - - - Since: cosmos-sdk 0.43 - in: query - required: false - type: boolean tags: - Query /dymensionxyz/dymension/sequencer/sequencer/{sequencerAddress}: @@ -6704,6 +6708,640 @@ paths: type: string tags: - Query + /dymensionxyz/dymension/sequencer/sequencers: + get: + summary: Queries a list of Sequencer items. + operationId: Sequencers + responses: + '200': + description: A successful response. + schema: + type: object + properties: + sequencers: + type: array + items: + type: object + properties: + address: + type: string + description: >- + address is the bech32-encoded address of the sequencer + account which is the account that the message was sent + from. + dymintPubKey: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the + type of the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's + path must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be + in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the + binary all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results + based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available + in the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. + + + Schemes other than `http`, `https` (or the empty + scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the + above specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any + values in the form + + of utility functions or additional generated methods of + the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and + the unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will + yield type + + name "y.z". + + + JSON + + + The JSON representation of an `Any` value uses the + regular + + representation of the deserialized, embedded message, + with an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a + custom JSON + + representation, that representation will be embedded + adding a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message + [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + rollappId: + type: string + description: >- + rollappId defines the rollapp to which the sequencer + belongs. + metadata: + description: >- + metadata defines the extra information for the + sequencer. + type: object + properties: + moniker: + type: string + description: >- + moniker defines a human-readable name for the + sequencer. + details: + type: string + description: details define other optional details. + p2p_seeds: + type: array + items: + type: string + title: bootstrap nodes list + rpcs: + type: array + items: + type: string + title: RPCs list + evm_rpcs: + type: array + items: + type: string + title: evm RPCs list + rest_api_urls: + type: array + items: + type: string + title: REST API URLs + explorer_url: + type: string + title: block explorer URL + genesis_urls: + type: array + items: + type: string + title: genesis URLs + contact_details: + title: contact details + type: object + properties: + website: + type: string + title: website URL + telegram: + type: string + title: telegram link + x: + type: string + title: twitter link + extra_data: + type: string + format: byte + title: json dump the sequencer can add (limited by size) + snapshots: + type: array + items: + type: object + properties: + snapshot_url: + type: string + title: the snapshot url + height: + type: string + format: uint64 + title: The snapshot height + checksum: + type: string + title: sha-256 checksum value for the snapshot file + title: snapshots of the sequencer + gas_price: + type: string + title: gas_price defines the value for each gas unit + jailed: + type: boolean + description: >- + jailed defined whether the sequencer has been jailed + from bonded status or not. + proposer: + type: boolean + status: + description: >- + status is the sequencer status + (bonded/unbonding/unbonded). + type: string + enum: + - OPERATING_STATUS_UNBONDED + - OPERATING_STATUS_UNBONDING + - OPERATING_STATUS_BONDED + default: OPERATING_STATUS_UNBONDED + title: >- + OperatingStatus defines the operating status of a + sequencer + tokens: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + 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. + description: >- + tokens define the delegated tokens (incl. + self-delegation). + unbond_request_height: + type: string + format: int64 + description: >- + unbond_request_height stores the height at which this + sequencer has + + requested to unbond. + unbond_time: + type: string + format: date-time + description: >- + unbond_time defines the time when the sequencer will + complete unbonding. + notice_period_time: + type: string + format: date-time + title: >- + notice_period_time defines the time when the sequencer + will finish it's notice period if started + description: >- + Sequencer defines a sequencer identified by its' address + (sequencerAddress). + + The sequencer could be attached to only one rollapp + (rollappId). + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + 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. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: >- + 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; + } + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: pagination.key + description: |- + 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. + in: query + required: false + type: string + format: byte + - name: pagination.offset + description: >- + 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. + in: query + required: false + type: string + format: uint64 + - name: pagination.limit + description: >- + 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. + in: query + required: false + type: string + format: uint64 + - name: pagination.count_total + description: >- + 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. + in: query + required: false + type: boolean + - name: pagination.reverse + description: >- + reverse is set to true if results are to be returned in the + descending order. + + + Since: cosmos-sdk 0.43 + in: query + required: false + type: boolean + tags: + - Query /dymensionxyz/dymension/sequencer/sequencers_by_rollapp/{rollappId}: get: summary: Queries a SequencersByRollapp by rollappId. @@ -7931,6 +8569,27 @@ paths: description: >- Sponsored indicates if the stream is based on the sponsorship distribution. + epoch_coins: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + 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. + description: >- + EpochCoins are coins that need to be distributed in this + epoch. description: >- Stream is an object that stores and distributes yields to recipients who @@ -8050,209 +8709,480 @@ paths: type: boolean tags: - Query - /dymensionxyz/dymension/streamer/module_to_distribute_coins: - get: - summary: ModuleToDistributeCoins returns coins that are going to be distributed - operationId: StreamerModuleToDistributeCoins - responses: - '200': - description: A successful response. - schema: - type: object - properties: - coins: - type: array - items: - type: object - properties: - denom: - type: string - amount: - type: string - description: >- - 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. - title: Coins that have yet to be distributed - default: - description: An unexpected error response. - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - value: - type: string - format: byte - tags: - - Query - /dymensionxyz/dymension/streamer/stream_by_id/{id}: - get: - summary: StreamByID returns streams by their respective ID - operationId: StreamByID - responses: - '200': - description: A successful response. - schema: - type: object - properties: - stream: - type: object - properties: - id: - type: string - format: uint64 - title: id is the unique ID of a Stream - distribute_to: - description: distribute_to is the distr_info. - type: object - properties: - total_weight: - type: string - records: - type: array - items: - type: object - properties: - gauge_id: - type: string - format: uint64 - weight: - type: string - coins: - type: array - items: - type: object - properties: - denom: - type: string - amount: - type: string - description: >- - 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. - title: >- - coins is the total amount of coins that have been in the - stream - - Can distribute multiple coin denoms - start_time: - type: string - format: date-time - title: start_time is the distribution start time - distr_epoch_identifier: - type: string - title: >- - distr_epoch_identifier is what epoch type di-stribution - will be triggered by - - (day, week, etc.) - num_epochs_paid_over: - type: string - format: uint64 - title: >- - num_epochs_paid_over is the number of total epochs - distribution will be - - completed over - filled_epochs: - type: string - format: uint64 - title: >- - filled_epochs is the number of epochs distribution has - been completed on - - already - distributed_coins: - type: array - items: - type: object - properties: - denom: - type: string - amount: - type: string - description: >- - 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. - title: >- - distributed_coins are coins that have been distributed - already - sponsored: - type: boolean - description: >- - Sponsored indicates if the stream is based on the - sponsorship distribution. - description: >- - Stream is an object that stores and distributes yields to - recipients who - - satisfy certain conditions. Currently streams support - conditions around the - - duration for which a given denom is locked. - title: Stream that corresponds to provided gague ID - default: - description: An unexpected error response. - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - value: - type: string - format: byte - parameters: - - name: id - description: Gague ID being queried - in: path - required: true - type: string - format: uint64 - tags: - - Query - /dymensionxyz/dymension/streamer/streams: + /dymensionxyz/dymension/streamer/module_to_distribute_coins: + get: + summary: ModuleToDistributeCoins returns coins that are going to be distributed + operationId: StreamerModuleToDistributeCoins + responses: + '200': + description: A successful response. + schema: + type: object + properties: + coins: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + 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. + title: Coins that have yet to be distributed + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + value: + type: string + format: byte + tags: + - Query + /dymensionxyz/dymension/streamer/stream_by_id/{id}: + get: + summary: StreamByID returns streams by their respective ID + operationId: StreamByID + responses: + '200': + description: A successful response. + schema: + type: object + properties: + stream: + type: object + properties: + id: + type: string + format: uint64 + title: id is the unique ID of a Stream + distribute_to: + description: distribute_to is the distr_info. + type: object + properties: + total_weight: + type: string + records: + type: array + items: + type: object + properties: + gauge_id: + type: string + format: uint64 + weight: + type: string + coins: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + 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. + title: >- + coins is the total amount of coins that have been in the + stream + + Can distribute multiple coin denoms + start_time: + type: string + format: date-time + title: start_time is the distribution start time + distr_epoch_identifier: + type: string + title: >- + distr_epoch_identifier is what epoch type di-stribution + will be triggered by + + (day, week, etc.) + num_epochs_paid_over: + type: string + format: uint64 + title: >- + num_epochs_paid_over is the number of total epochs + distribution will be + + completed over + filled_epochs: + type: string + format: uint64 + title: >- + filled_epochs is the number of epochs distribution has + been completed on + + already + distributed_coins: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + 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. + title: >- + distributed_coins are coins that have been distributed + already + sponsored: + type: boolean + description: >- + Sponsored indicates if the stream is based on the + sponsorship distribution. + epoch_coins: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + 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. + description: >- + EpochCoins are coins that need to be distributed in this + epoch. + description: >- + Stream is an object that stores and distributes yields to + recipients who + + satisfy certain conditions. Currently streams support + conditions around the + + duration for which a given denom is locked. + title: Stream that corresponds to provided gague ID + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + value: + type: string + format: byte + parameters: + - name: id + description: Gague ID being queried + in: path + required: true + type: string + format: uint64 + tags: + - Query + /dymensionxyz/dymension/streamer/streams: + get: + summary: Streams returns both upcoming and active streams + operationId: Streams + responses: + '200': + description: A successful response. + schema: + type: object + properties: + data: + type: array + items: + type: object + properties: + id: + type: string + format: uint64 + title: id is the unique ID of a Stream + distribute_to: + description: distribute_to is the distr_info. + type: object + properties: + total_weight: + type: string + records: + type: array + items: + type: object + properties: + gauge_id: + type: string + format: uint64 + weight: + type: string + coins: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + 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. + title: >- + coins is the total amount of coins that have been in the + stream + + Can distribute multiple coin denoms + start_time: + type: string + format: date-time + title: start_time is the distribution start time + distr_epoch_identifier: + type: string + title: >- + distr_epoch_identifier is what epoch type di-stribution + will be triggered by + + (day, week, etc.) + num_epochs_paid_over: + type: string + format: uint64 + title: >- + num_epochs_paid_over is the number of total epochs + distribution will be + + completed over + filled_epochs: + type: string + format: uint64 + title: >- + filled_epochs is the number of epochs distribution has + been completed on + + already + distributed_coins: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + 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. + title: >- + distributed_coins are coins that have been distributed + already + sponsored: + type: boolean + description: >- + Sponsored indicates if the stream is based on the + sponsorship distribution. + epoch_coins: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + 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. + description: >- + EpochCoins are coins that need to be distributed in this + epoch. + description: >- + Stream is an object that stores and distributes yields to + recipients who + + satisfy certain conditions. Currently streams support + conditions around the + + duration for which a given denom is locked. + title: Upcoming and active streams + pagination: + title: Pagination defines pagination for the response + type: object + properties: + next_key: + type: string + format: byte + description: |- + 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. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: >- + 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; + } + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + value: + type: string + format: byte + parameters: + - name: pagination.key + description: |- + 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. + in: query + required: false + type: string + format: byte + - name: pagination.offset + description: >- + 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. + in: query + required: false + type: string + format: uint64 + - name: pagination.limit + description: >- + 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. + in: query + required: false + type: string + format: uint64 + - name: pagination.count_total + description: >- + 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. + in: query + required: false + type: boolean + - name: pagination.reverse + description: >- + reverse is set to true if results are to be returned in the + descending order. + + + Since: cosmos-sdk 0.43 + in: query + required: false + type: boolean + tags: + - Query + /dymensionxyz/dymension/streamer/upcoming_streams: get: - summary: Streams returns both upcoming and active streams - operationId: Streams + summary: Returns scheduled streams that have not yet occurred + operationId: UpcomingStreams responses: '200': description: A successful response. @@ -8360,161 +9290,7 @@ paths: description: >- Sponsored indicates if the stream is based on the sponsorship distribution. - description: >- - Stream is an object that stores and distributes yields to - recipients who - - satisfy certain conditions. Currently streams support - conditions around the - - duration for which a given denom is locked. - title: Upcoming and active streams - pagination: - title: Pagination defines pagination for the response - type: object - properties: - next_key: - type: string - format: byte - description: |- - 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. - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - description: >- - 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; - } - default: - description: An unexpected error response. - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - value: - type: string - format: byte - parameters: - - name: pagination.key - description: |- - 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. - in: query - required: false - type: string - format: byte - - name: pagination.offset - description: >- - 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. - in: query - required: false - type: string - format: uint64 - - name: pagination.limit - description: >- - 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. - in: query - required: false - type: string - format: uint64 - - name: pagination.count_total - description: >- - 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. - in: query - required: false - type: boolean - - name: pagination.reverse - description: >- - reverse is set to true if results are to be returned in the - descending order. - - - Since: cosmos-sdk 0.43 - in: query - required: false - type: boolean - tags: - - Query - /dymensionxyz/dymension/streamer/upcoming_streams: - get: - summary: Returns scheduled streams that have not yet occurred - operationId: UpcomingStreams - responses: - '200': - description: A successful response. - schema: - type: object - properties: - data: - type: array - items: - type: object - properties: - id: - type: string - format: uint64 - title: id is the unique ID of a Stream - distribute_to: - description: distribute_to is the distr_info. - type: object - properties: - total_weight: - type: string - records: - type: array - items: - type: object - properties: - gauge_id: - type: string - format: uint64 - weight: - type: string - coins: + epoch_coins: type: array items: type: object @@ -8532,64 +9308,9 @@ paths: custom method signatures required by gogoproto. - title: >- - coins is the total amount of coins that have been in the - stream - - Can distribute multiple coin denoms - start_time: - type: string - format: date-time - title: start_time is the distribution start time - distr_epoch_identifier: - type: string - title: >- - distr_epoch_identifier is what epoch type di-stribution - will be triggered by - - (day, week, etc.) - num_epochs_paid_over: - type: string - format: uint64 - title: >- - num_epochs_paid_over is the number of total epochs - distribution will be - - completed over - filled_epochs: - type: string - format: uint64 - title: >- - filled_epochs is the number of epochs distribution has - been completed on - - already - distributed_coins: - type: array - items: - type: object - properties: - denom: - type: string - amount: - type: string - description: >- - 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. - title: >- - distributed_coins are coins that have been distributed - already - sponsored: - type: boolean description: >- - Sponsored indicates if the stream is based on the - sponsorship distribution. + EpochCoins are coins that need to be distributed in this + epoch. description: >- Stream is an object that stores and distributes yields to recipients who @@ -17764,12 +18485,7 @@ paths: refilled, Intended for use with incentives that get refilled daily. - distribute_to: - title: >- - distribute_to is where the gauge rewards are distributed - to. - - This is queried via lock duration or by timestamp + asset: type: object properties: lock_query_type: @@ -17821,6 +18537,11 @@ paths: depending on the LockQueryType. + rollapp: + type: object + properties: + rollapp_id: + type: string coins: type: array items: @@ -18040,12 +18761,7 @@ paths: refilled, Intended for use with incentives that get refilled daily. - distribute_to: - title: >- - distribute_to is where the gauge rewards are distributed - to. - - This is queried via lock duration or by timestamp + asset: type: object properties: lock_query_type: @@ -18097,6 +18813,11 @@ paths: depending on the LockQueryType. + rollapp: + type: object + properties: + rollapp_id: + type: string coins: type: array items: @@ -18319,12 +19040,7 @@ paths: refilled, Intended for use with incentives that get refilled daily. - distribute_to: - title: >- - distribute_to is where the gauge rewards are distributed - to. - - This is queried via lock duration or by timestamp + asset: type: object properties: lock_query_type: @@ -18376,6 +19092,11 @@ paths: depending on the LockQueryType. + rollapp: + type: object + properties: + rollapp_id: + type: string coins: type: array items: @@ -18514,12 +19235,7 @@ paths: refilled, Intended for use with incentives that get refilled daily. - distribute_to: - title: >- - distribute_to is where the gauge rewards are distributed - to. - - This is queried via lock duration or by timestamp + asset: type: object properties: lock_query_type: @@ -18571,6 +19287,11 @@ paths: depending on the LockQueryType. + rollapp: + type: object + properties: + rollapp_id: + type: string coins: type: array items: @@ -18851,44 +19572,245 @@ paths: format: byte tags: - Query - /dymensionxyz/dymension/incentives/v1beta1/rewards_est/{owner}: + /dymensionxyz/dymension/incentives/v1beta1/params: get: - summary: >- - RewardsEst returns an estimate of the rewards from now until a specified - - time in the future The querier either provides an address or a set of - locks + operationId: IncentivesParams + responses: + '200': + description: A successful response. + schema: + type: object + properties: + params: + title: Params defines the set of incentive parameters + type: object + properties: + distr_epoch_identifier: + type: string + title: >- + distr_epoch_identifier is what epoch type distribution + will be triggered by - for which they want to find the associated rewards - operationId: RewardsEst + (day, week, etc.) + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + value: + type: string + format: byte + tags: + - Query + /dymensionxyz/dymension/incentives/v1beta1/rollapp_gauges: + get: + summary: RollappGauges returns both upcoming and active rollapp gauges + operationId: RollappGauges responses: '200': description: A successful response. schema: type: object properties: - coins: + data: type: array items: type: object properties: - denom: + id: type: string - amount: + format: uint64 + title: id is the unique ID of a Gauge + is_perpetual: + type: boolean + description: >- + is_perpetual is a flag to show if it's a perpetual or + non-perpetual gauge + + Non-perpetual gauges distribute their tokens equally per + epoch while the + + gauge is in the active period. Perpetual gauges + distribute all their tokens + + at a single time and only distribute their tokens again + once the gauge is + + refilled, Intended for use with incentives that get + refilled daily. + asset: + type: object + properties: + lock_query_type: + title: >- + LockQueryType is a type of lock query, + ByLockDuration | ByLockTime + type: string + enum: + - ByDuration + - ByTime + default: ByDuration + description: >- + LockQueryType defines the type of the lock query + that can + + either be by duration or start time of the lock. + denom: + type: string + title: >- + Denom represents the token denomination we are + looking to lock up + duration: + type: string + description: >- + Duration is used to query locks with longer duration + than the specified + + duration. Duration field must not be nil when the + lock query type is + + `ByLockDuration`. + timestamp: + type: string + format: date-time + description: >- + Timestamp is used by locks started before the + specified duration. + + Timestamp field must not be nil when the lock query + type is `ByLockTime`. + + Querying locks with timestamp is currently not + implemented. + description: >- + QueryCondition is a struct used for querying locks upon + different conditions. + + Duration field and timestamp fields could be optional, + depending on the + + LockQueryType. + rollapp: + type: object + properties: + rollapp_id: + type: string + coins: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + 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. + title: >- + coins is the total amount of coins that have been in the + gauge + + Can distribute multiple coin denoms + start_time: type: string + format: date-time + title: start_time is the distribution start time + num_epochs_paid_over: + type: string + format: uint64 + title: >- + num_epochs_paid_over is the number of total epochs + distribution will be + + completed over + filled_epochs: + type: string + format: uint64 + title: >- + filled_epochs is the number of epochs distribution has + been completed on + + already + distributed_coins: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + 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. + title: >- + distributed_coins are coins that have been distributed + already description: >- - Coin defines a token with a denomination and an amount. + Gauge is an object that stores and distributes yields to + recipients who + satisfy certain conditions. Currently gauges support + conditions around the - NOTE: The amount field is an Int which implements the custom - method + duration for which a given denom is locked. + title: Upcoming and active gauges + pagination: + title: Pagination defines pagination for the response + type: object + properties: + next_key: + type: string + format: byte + description: |- + 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. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total - signatures required by gogoproto. - title: >- - Estimated coin rewards that will be recieved at provided - address + was set, its value is undefined otherwise + description: >- + PageResponse is to be embedded in gRPC response messages where + the + + corresponding request message has used PageRequest. - from specified locks between current time and end epoch + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } default: description: An unexpected error response. schema: @@ -18912,28 +19834,62 @@ paths: type: string format: byte parameters: - - name: owner - description: Address that is being queried for future estimated rewards - in: path - required: true + - name: pagination.key + description: |- + 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. + in: query + required: false type: string - - name: lock_ids - description: Lock IDs included in future reward estimation. + format: byte + - name: pagination.offset + description: >- + 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. in: query required: false - type: array - items: - type: string - format: uint64 - collectionFormat: multi - - name: end_epoch - description: |- - Upper time limit of reward estimation - Lower limit is current epoch. + type: string + format: uint64 + - name: pagination.limit + description: >- + 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. in: query required: false type: string - format: int64 + format: uint64 + - name: pagination.count_total + description: >- + 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. + in: query + required: false + type: boolean + - name: pagination.reverse + description: >- + reverse is set to true if results are to be returned in the + descending order. + + + Since: cosmos-sdk 0.43 + in: query + required: false + type: boolean tags: - Query /dymensionxyz/dymension/incentives/v1beta1/upcoming_gauges: @@ -18972,12 +19928,7 @@ paths: refilled, Intended for use with incentives that get refilled daily. - distribute_to: - title: >- - distribute_to is where the gauge rewards are distributed - to. - - This is queried via lock duration or by timestamp + asset: type: object properties: lock_query_type: @@ -19029,6 +19980,11 @@ paths: depending on the LockQueryType. + rollapp: + type: object + properties: + rollapp_id: + type: string coins: type: array items: @@ -19252,12 +20208,7 @@ paths: refilled, Intended for use with incentives that get refilled daily. - distribute_to: - title: >- - distribute_to is where the gauge rewards are distributed - to. - - This is queried via lock duration or by timestamp + asset: type: object properties: lock_query_type: @@ -19309,6 +20260,11 @@ paths: depending on the LockQueryType. + rollapp: + type: object + properties: + rollapp_id: + type: string coins: type: array items: @@ -61275,9 +62231,9 @@ definitions: description: type: string title: description is the description of the App - image: + image_url: type: string - title: image is the relative path to the App image + title: image_url is the URL to the App's image url: type: string title: url is the URL to the App's website @@ -61391,8 +62347,8 @@ definitions: title: >- The time (num hub blocks) a sequencer can be down after which he will be jailed rather than slashed - app_creation_cost: - title: app_creation_cost is the cost for registering the App + app_registration_fee: + title: app_registration_fee is the fee for registering an App type: object properties: denom: @@ -61563,7 +62519,8 @@ definitions: type: boolean description: >- launched is a boolean that indicates that the Rollapp has - been launched and the immutable fields are no longer updatable. + been launched and the immutable fields are no longer + updatable. liveness_event_height: type: string format: int64 @@ -61689,9 +62646,9 @@ definitions: description: type: string title: description is the description of the App - image: + image_url: type: string - title: image is the relative path to the App image + title: image_url is the URL to the App's image url: type: string title: url is the URL to the App's website @@ -61917,8 +62874,8 @@ definitions: launched: type: boolean description: >- - // launched is a boolean that indicates that the Rollapp has been - launched and the immutable fields are no longer updatable. + launched is a boolean that indicates that the Rollapp has been + launched and the immutable fields are no longer updatable. liveness_event_height: type: string format: int64 @@ -62038,9 +62995,9 @@ definitions: description: type: string title: description is the description of the App - image: + image_url: type: string - title: image is the relative path to the App image + title: image_url is the URL to the App's image url: type: string title: url is the URL to the App's website @@ -62180,8 +63137,8 @@ definitions: title: >- The time (num hub blocks) a sequencer can be down after which he will be jailed rather than slashed - app_creation_cost: - title: app_creation_cost is the cost for registering the App + app_registration_fee: + title: app_registration_fee is the fee for registering an App type: object properties: denom: @@ -62339,8 +63296,8 @@ definitions: launched: type: boolean description: >- - launched is a boolean that indicates that the Rollapp has - been launched and the immutable fields are no longer updatable. + launched is a boolean that indicates that the Rollapp has been + launched and the immutable fields are no longer updatable. liveness_event_height: type: string format: int64 @@ -63362,10 +64319,374 @@ definitions: (sequencerAddress). The sequencer could be attached to only one rollapp (rollappId). - dymensionxyz.dymension.sequencer.QueryGetSequencersByRollappResponse: + dymensionxyz.dymension.sequencer.QueryGetSequencersByRollappResponse: + type: object + properties: + sequencers: + type: array + items: + type: object + properties: + address: + type: string + description: >- + address is the bech32-encoded address of the sequencer account + which is the account that the message was sent from. + dymintPubKey: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all + types that they + + expect it to use in the context of Any. However, for URLs + which use the + + scheme `http`, `https`, or no scheme, one can optionally set + up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on + the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning + with + + type.googleapis.com. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message + along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in + the form + + of utility functions or additional generated methods of the Any + type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default + use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the last + '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a + field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + rollappId: + type: string + description: rollappId defines the rollapp to which the sequencer belongs. + metadata: + description: metadata defines the extra information for the sequencer. + type: object + properties: + moniker: + type: string + description: moniker defines a human-readable name for the sequencer. + details: + type: string + description: details define other optional details. + p2p_seeds: + type: array + items: + type: string + title: bootstrap nodes list + rpcs: + type: array + items: + type: string + title: RPCs list + evm_rpcs: + type: array + items: + type: string + title: evm RPCs list + rest_api_urls: + type: array + items: + type: string + title: REST API URLs + explorer_url: + type: string + title: block explorer URL + genesis_urls: + type: array + items: + type: string + title: genesis URLs + contact_details: + title: contact details + type: object + properties: + website: + type: string + title: website URL + telegram: + type: string + title: telegram link + x: + type: string + title: twitter link + extra_data: + type: string + format: byte + title: json dump the sequencer can add (limited by size) + snapshots: + type: array + items: + type: object + properties: + snapshot_url: + type: string + title: the snapshot url + height: + type: string + format: uint64 + title: The snapshot height + checksum: + type: string + title: sha-256 checksum value for the snapshot file + title: snapshots of the sequencer + gas_price: + type: string + title: gas_price defines the value for each gas unit + jailed: + type: boolean + description: >- + jailed defined whether the sequencer has been jailed from bonded + status or not. + proposer: + type: boolean + status: + description: status is the sequencer status (bonded/unbonding/unbonded). + type: string + enum: + - OPERATING_STATUS_UNBONDED + - OPERATING_STATUS_UNBONDING + - OPERATING_STATUS_BONDED + default: OPERATING_STATUS_UNBONDED + title: OperatingStatus defines the operating status of a sequencer + tokens: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + 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. + description: tokens define the delegated tokens (incl. self-delegation). + unbond_request_height: + type: string + format: int64 + description: >- + unbond_request_height stores the height at which this sequencer + has + + requested to unbond. + unbond_time: + type: string + format: date-time + description: >- + unbond_time defines the time when the sequencer will complete + unbonding. + notice_period_time: + type: string + format: date-time + title: >- + notice_period_time defines the time when the sequencer will + finish it's notice period if started + description: >- + Sequencer defines a sequencer identified by its' address + (sequencerAddress). + + The sequencer could be attached to only one rollapp (rollappId). + dymensionxyz.dymension.sequencer.QueryParamsResponse: type: object properties: - sequencers: + params: + description: params holds all the parameters of this module. + type: object + properties: + min_bond: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + 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. + unbonding_time: + type: string + description: unbonding_time is the time duration of unbonding. + notice_period: + type: string + description: >- + notice_period is the time duration of notice period. + + notice period is the duration between the unbond request and the + actual + + unbonding starting. the proposer is still bonded during this + period. + liveness_slash_multiplier: + type: string + description: >- + LivenessSlashMultiplier multiplies with the tokens of the slashed + sequencer to compute the burn amount. + description: QueryParamsResponse is response type for the Query/Params RPC method. + dymensionxyz.dymension.sequencer.QueryProposersResponse: + type: object + properties: + proposers: type: array items: type: object @@ -63685,47 +65006,33 @@ definitions: (sequencerAddress). The sequencer could be attached to only one rollapp (rollappId). - dymensionxyz.dymension.sequencer.QueryParamsResponse: - type: object - properties: - params: - description: params holds all the parameters of this module. + pagination: type: object properties: - min_bond: - type: object - properties: - denom: - type: string - amount: - type: string - description: >- - 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. - unbonding_time: + next_key: type: string - description: unbonding_time is the time duration of unbonding. - notice_period: + format: byte + description: |- + 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. + total: type: string - description: >- - notice_period is the time duration of notice period. + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total - notice period is the duration between the unbond request and the - actual + was set, its value is undefined otherwise + description: |- + PageResponse is to be embedded in gRPC response messages where the + corresponding request message has used PageRequest. - unbonding starting. the proposer is still bonded during this - period. - liveness_slash_multiplier: - type: string - description: >- - LivenessSlashMultiplier multiplies with the tokens of the slashed - sequencer to compute the burn amount. - description: QueryParamsResponse is response type for the Query/Params RPC method. + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: Response type for the Proposers RPC method. dymensionxyz.dymension.sequencer.QuerySequencersResponse: type: object properties: @@ -64563,6 +65870,24 @@ definitions: description: >- Sponsored indicates if the stream is based on the sponsorship distribution. + epoch_coins: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + 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. + description: EpochCoins are coins that need to be distributed in this epoch. description: >- Stream is an object that stores and distributes yields to recipients who @@ -64727,6 +66052,21 @@ definitions: description: >- Sponsored indicates if the stream is based on the sponsorship distribution. + epoch_coins: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: |- + 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. + description: EpochCoins are coins that need to be distributed in this epoch. description: >- Stream is an object that stores and distributes yields to recipients who @@ -64830,6 +66170,24 @@ definitions: description: >- Sponsored indicates if the stream is based on the sponsorship distribution. + epoch_coins: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + 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. + description: EpochCoins are coins that need to be distributed in this epoch. description: >- Stream is an object that stores and distributes yields to recipients who @@ -64937,6 +66295,24 @@ definitions: description: >- Sponsored indicates if the stream is based on the sponsorship distribution. + epoch_coins: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + 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. + description: EpochCoins are coins that need to be distributed in this epoch. description: >- Stream is an object that stores and distributes yields to recipients who @@ -65071,6 +66447,24 @@ definitions: description: >- Sponsored indicates if the stream is based on the sponsorship distribution. + epoch_coins: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + 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. + description: EpochCoins are coins that need to be distributed in this epoch. description: >- Stream is an object that stores and distributes yields to recipients who @@ -67436,10 +68830,7 @@ definitions: refilled, Intended for use with incentives that get refilled daily. - distribute_to: - title: |- - distribute_to is where the gauge rewards are distributed to. - This is queried via lock duration or by timestamp + asset: type: object properties: lock_query_type: @@ -67488,6 +68879,11 @@ definitions: on the LockQueryType. + rollapp: + type: object + properties: + rollapp_id: + type: string coins: type: array items: @@ -67611,10 +69007,7 @@ definitions: refilled, Intended for use with incentives that get refilled daily. - distribute_to: - title: |- - distribute_to is where the gauge rewards are distributed to. - This is queried via lock duration or by timestamp + asset: type: object properties: lock_query_type: @@ -67663,6 +69056,11 @@ definitions: on the LockQueryType. + rollapp: + type: object + properties: + rollapp_id: + type: string coins: type: array items: @@ -67780,10 +69178,7 @@ definitions: is refilled, Intended for use with incentives that get refilled daily. - distribute_to: - title: |- - distribute_to is where the gauge rewards are distributed to. - This is queried via lock duration or by timestamp + asset: type: object properties: lock_query_type: @@ -67827,6 +69222,11 @@ definitions: the LockQueryType. + rollapp: + type: object + properties: + rollapp_id: + type: string coins: type: array items: @@ -67910,10 +69310,7 @@ definitions: refilled, Intended for use with incentives that get refilled daily. - distribute_to: - title: |- - distribute_to is where the gauge rewards are distributed to. - This is queried via lock duration or by timestamp + asset: type: object properties: lock_query_type: @@ -67962,6 +69359,11 @@ definitions: on the LockQueryType. + rollapp: + type: object + properties: + rollapp_id: + type: string coins: type: array items: @@ -68058,10 +69460,7 @@ definitions: refilled, Intended for use with incentives that get refilled daily. - distribute_to: - title: |- - distribute_to is where the gauge rewards are distributed to. - This is queried via lock duration or by timestamp + asset: type: object properties: lock_query_type: @@ -68110,6 +69509,11 @@ definitions: on the LockQueryType. + rollapp: + type: object + properties: + rollapp_id: + type: string coins: type: array items: @@ -68222,6 +69626,31 @@ definitions: NOTE: The amount field is an Int which implements the custom method signatures required by gogoproto. title: Coins that have yet to be distributed + dymensionxyz.dymension.incentives.Params: + type: object + properties: + distr_epoch_identifier: + type: string + title: >- + distr_epoch_identifier is what epoch type distribution will be + triggered by + + (day, week, etc.) + title: Params holds parameters for the incentives module + dymensionxyz.dymension.incentives.ParamsResponse: + type: object + properties: + params: + title: Params defines the set of incentive parameters + type: object + properties: + distr_epoch_identifier: + type: string + title: >- + distr_epoch_identifier is what epoch type distribution will be + triggered by + + (day, week, etc.) dymensionxyz.dymension.incentives.QueryLockableDurationsResponse: type: object properties: @@ -68232,26 +69661,11 @@ definitions: title: >- Time durations that users can lock coins for in order to recieve rewards - dymensionxyz.dymension.incentives.RewardsEstResponse: + dymensionxyz.dymension.incentives.RollappGauge: type: object properties: - coins: - type: array - items: - type: object - properties: - denom: - type: string - amount: - type: string - description: |- - 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. - title: |- - Estimated coin rewards that will be recieved at provided address - from specified locks between current time and end epoch + rollapp_id: + type: string dymensionxyz.dymension.incentives.UpcomingGaugesPerDenomResponse: type: object properties: @@ -68281,10 +69695,7 @@ definitions: refilled, Intended for use with incentives that get refilled daily. - distribute_to: - title: |- - distribute_to is where the gauge rewards are distributed to. - This is queried via lock duration or by timestamp + asset: type: object properties: lock_query_type: @@ -68333,6 +69744,11 @@ definitions: on the LockQueryType. + rollapp: + type: object + properties: + rollapp_id: + type: string coins: type: array items: @@ -68456,10 +69872,7 @@ definitions: refilled, Intended for use with incentives that get refilled daily. - distribute_to: - title: |- - distribute_to is where the gauge rewards are distributed to. - This is queried via lock duration or by timestamp + asset: type: object properties: lock_query_type: @@ -68508,6 +69921,11 @@ definitions: on the LockQueryType. + rollapp: + type: object + properties: + rollapp_id: + type: string coins: type: array items: diff --git a/proto/dymensionxyz/dymension/sequencer/query.proto b/proto/dymensionxyz/dymension/sequencer/query.proto index 7cb15d4bf..67657eeb1 100644 --- a/proto/dymensionxyz/dymension/sequencer/query.proto +++ b/proto/dymensionxyz/dymension/sequencer/query.proto @@ -26,7 +26,7 @@ service Query { // Queries a list of Sequencer items. rpc Sequencers(QuerySequencersRequest) returns (QuerySequencersResponse) { option (google.api.http).get = - "/dymensionxyz/dymension/sequencer/sequencer"; + "/dymensionxyz/dymension/sequencer/sequencers"; } // Queries a SequencersByRollapp by rollappId. @@ -39,15 +39,15 @@ service Query { // Queries a SequencersByRollappByStatus rpc SequencersByRollappByStatus(QueryGetSequencersByRollappByStatusRequest) returns (QueryGetSequencersByRollappByStatusResponse) { - option (google.api.http).get = "/dymensionxyz/dymension/sequencer/" - "sequencers_by_rollapp/{rollappId}/{status}"; + option (google.api.http).get = + "/dymensionxyz/dymension/sequencer/sequencers_by_rollapp/{rollappId}/{status}"; } // Queries the current proposer by rollappId. rpc GetProposerByRollapp(QueryGetProposerByRollappRequest) returns (QueryGetProposerByRollappResponse) { option (google.api.http).get = - "/dymensionxyz/dymension/sequencer/proposer/{rollappId}"; + "/dymensionxyz/dymension/sequencer/proposers/{rollappId}"; } // Queries the next proposer by rollappId. @@ -56,6 +56,12 @@ service Query { option (google.api.http).get = "/dymensionxyz/dymension/sequencer/next_proposer/{rollappId}"; } + + // Queries a list of proposers. + rpc Proposers(QueryProposersRequest) returns (QueryProposersResponse) { + option (google.api.http).get = + "/dymensionxyz/dymension/sequencer/proposers"; + } } // QueryParamsRequest is request type for the Query/Params RPC method. @@ -114,3 +120,14 @@ message QueryGetNextProposerByRollappResponse { // rotationInProgress is true if the proposer rotation is in progress. bool rotationInProgress = 2; } + +// Request type for the Proposers RPC method. +message QueryProposersRequest { + cosmos.base.query.v1beta1.PageRequest pagination = 1; +} + +// Response type for the Proposers RPC method. +message QueryProposersResponse { + repeated Sequencer proposers = 1 [ (gogoproto.nullable) = false ]; + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} \ No newline at end of file diff --git a/x/sequencer/client/cli/query.go b/x/sequencer/client/cli/query.go index ee4d9992e..909b04228 100644 --- a/x/sequencer/client/cli/query.go +++ b/x/sequencer/client/cli/query.go @@ -10,7 +10,7 @@ import ( ) // GetQueryCmd returns the cli query commands for this module -func GetQueryCmd(queryRoute string) *cobra.Command { +func GetQueryCmd() *cobra.Command { // Group sequencer queries under a subcommand cmd := &cobra.Command{ Use: types.ModuleName, @@ -26,6 +26,7 @@ func GetQueryCmd(queryRoute string) *cobra.Command { cmd.AddCommand(CmdShowSequencersByRollapp()) cmd.AddCommand(CmdGetProposerByRollapp()) cmd.AddCommand(CmdGetNextProposerByRollapp()) + cmd.AddCommand(CmdGetAllProposers()) return cmd } diff --git a/x/sequencer/client/cli/query_sequencers_by_rollapp.go b/x/sequencer/client/cli/query_sequencers_by_rollapp.go index f3ab66b01..f86aa8fe7 100644 --- a/x/sequencer/client/cli/query_sequencers_by_rollapp.go +++ b/x/sequencer/client/cli/query_sequencers_by_rollapp.go @@ -101,3 +101,29 @@ func CmdGetNextProposerByRollapp() *cobra.Command { flags.AddQueryFlagsToCmd(cmd) return cmd } + +func CmdGetAllProposers() *cobra.Command { + cmd := &cobra.Command{ + Use: "list-proposer", + Short: "List all proposers", + RunE: func(cmd *cobra.Command, args []string) error { + params := &types.QueryProposersRequest{} + + clientCtx, err := client.GetClientQueryContext(cmd) + if err != nil { + return err + } + queryClient := types.NewQueryClient(clientCtx) + + res, err := queryClient.Proposers(cmd.Context(), params) + if err != nil { + return err + } + + return clientCtx.PrintProto(res) + }, + } + + flags.AddQueryFlagsToCmd(cmd) + return cmd +} diff --git a/x/sequencer/keeper/grpc_query_sequencers_by_rollapp.go b/x/sequencer/keeper/grpc_query_sequencers_by_rollapp.go index 45efada78..26054665a 100644 --- a/x/sequencer/keeper/grpc_query_sequencers_by_rollapp.go +++ b/x/sequencer/keeper/grpc_query_sequencers_by_rollapp.go @@ -4,9 +4,14 @@ import ( "context" "errors" + "github.com/cosmos/cosmos-sdk/store/prefix" sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/dymensionxyz/dymension/v3/x/sequencer/types" + "github.com/cosmos/cosmos-sdk/types/query" "github.com/dymensionxyz/gerr-cosmos/gerrc" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" + + "github.com/dymensionxyz/dymension/v3/x/sequencer/types" ) func (k Keeper) SequencersByRollapp(c context.Context, req *types.QueryGetSequencersByRollappRequest) (*types.QueryGetSequencersByRollappResponse, error) { @@ -77,3 +82,28 @@ func (k Keeper) GetNextProposerByRollapp(c context.Context, req *types.QueryGetN RotationInProgress: k.IsRotating(ctx, req.RollappId), }, nil } + +func (k Keeper) Proposers(c context.Context, req *types.QueryProposersRequest) (*types.QueryProposersResponse, error) { + if req == nil { + return nil, status.Error(codes.InvalidArgument, "invalid request") + } + + var proposers []types.Sequencer + ctx := sdk.UnwrapSDKContext(c) + + store := ctx.KVStore(k.storeKey) + sequencerStore := prefix.NewStore(store, types.ProposerByRollappKey("")) + + pageRes, err := query.Paginate(sequencerStore, req.Pagination, func(key []byte, value []byte) error { + proposer, ok := k.GetSequencer(ctx, string(value)) + if ok { + proposers = append(proposers, proposer) + } + return nil + }) + if err != nil { + return nil, status.Error(codes.Internal, err.Error()) + } + + return &types.QueryProposersResponse{Proposers: proposers, Pagination: pageRes}, nil +} diff --git a/x/sequencer/module.go b/x/sequencer/module.go index 9baa951df..40e35b8dc 100644 --- a/x/sequencer/module.go +++ b/x/sequencer/module.go @@ -87,7 +87,7 @@ func (a AppModuleBasic) GetTxCmd() *cobra.Command { // GetQueryCmd returns the capability module's root query command. func (AppModuleBasic) GetQueryCmd() *cobra.Command { - return cli.GetQueryCmd(types.StoreKey) + return cli.GetQueryCmd() } // ---------------------------------------------------------------------------- diff --git a/x/sequencer/types/query.pb.go b/x/sequencer/types/query.pb.go index 0a814bfc4..e5d24a7ee 100644 --- a/x/sequencer/types/query.pb.go +++ b/x/sequencer/types/query.pb.go @@ -680,6 +680,104 @@ func (m *QueryGetNextProposerByRollappResponse) GetRotationInProgress() bool { return false } +// Request type for the Proposers RPC method. +type QueryProposersRequest struct { + Pagination *query.PageRequest `protobuf:"bytes,1,opt,name=pagination,proto3" json:"pagination,omitempty"` +} + +func (m *QueryProposersRequest) Reset() { *m = QueryProposersRequest{} } +func (m *QueryProposersRequest) String() string { return proto.CompactTextString(m) } +func (*QueryProposersRequest) ProtoMessage() {} +func (*QueryProposersRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_c6af1252721903a2, []int{14} +} +func (m *QueryProposersRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryProposersRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryProposersRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryProposersRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryProposersRequest.Merge(m, src) +} +func (m *QueryProposersRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryProposersRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryProposersRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryProposersRequest proto.InternalMessageInfo + +func (m *QueryProposersRequest) GetPagination() *query.PageRequest { + if m != nil { + return m.Pagination + } + return nil +} + +// Response type for the Proposers RPC method. +type QueryProposersResponse struct { + Proposers []Sequencer `protobuf:"bytes,1,rep,name=proposers,proto3" json:"proposers"` + Pagination *query.PageResponse `protobuf:"bytes,2,opt,name=pagination,proto3" json:"pagination,omitempty"` +} + +func (m *QueryProposersResponse) Reset() { *m = QueryProposersResponse{} } +func (m *QueryProposersResponse) String() string { return proto.CompactTextString(m) } +func (*QueryProposersResponse) ProtoMessage() {} +func (*QueryProposersResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_c6af1252721903a2, []int{15} +} +func (m *QueryProposersResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryProposersResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryProposersResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryProposersResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryProposersResponse.Merge(m, src) +} +func (m *QueryProposersResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryProposersResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryProposersResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryProposersResponse proto.InternalMessageInfo + +func (m *QueryProposersResponse) GetProposers() []Sequencer { + if m != nil { + return m.Proposers + } + return nil +} + +func (m *QueryProposersResponse) GetPagination() *query.PageResponse { + if m != nil { + return m.Pagination + } + return nil +} + func init() { proto.RegisterType((*QueryParamsRequest)(nil), "dymensionxyz.dymension.sequencer.QueryParamsRequest") proto.RegisterType((*QueryParamsResponse)(nil), "dymensionxyz.dymension.sequencer.QueryParamsResponse") @@ -695,6 +793,8 @@ func init() { proto.RegisterType((*QueryGetProposerByRollappResponse)(nil), "dymensionxyz.dymension.sequencer.QueryGetProposerByRollappResponse") proto.RegisterType((*QueryGetNextProposerByRollappRequest)(nil), "dymensionxyz.dymension.sequencer.QueryGetNextProposerByRollappRequest") proto.RegisterType((*QueryGetNextProposerByRollappResponse)(nil), "dymensionxyz.dymension.sequencer.QueryGetNextProposerByRollappResponse") + proto.RegisterType((*QueryProposersRequest)(nil), "dymensionxyz.dymension.sequencer.QueryProposersRequest") + proto.RegisterType((*QueryProposersResponse)(nil), "dymensionxyz.dymension.sequencer.QueryProposersResponse") } func init() { @@ -702,60 +802,64 @@ func init() { } var fileDescriptor_c6af1252721903a2 = []byte{ - // 846 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x56, 0xdd, 0x4e, 0xdb, 0x48, - 0x14, 0x8e, 0xd9, 0xdd, 0x68, 0x73, 0x16, 0xad, 0xd0, 0x80, 0x76, 0x59, 0x2f, 0xca, 0xb2, 0xee, - 0x1f, 0x0a, 0xc5, 0xc3, 0x4f, 0x4b, 0x69, 0x51, 0x11, 0x0d, 0x90, 0x08, 0x95, 0x42, 0x08, 0xbd, - 0xaa, 0x54, 0xa5, 0x0e, 0x19, 0xb9, 0x91, 0x12, 0x8f, 0xf1, 0x38, 0x28, 0x29, 0x42, 0xaa, 0xda, - 0x17, 0x40, 0x42, 0x7d, 0x86, 0x3e, 0x41, 0xfb, 0x0c, 0x5c, 0xf4, 0x02, 0xa9, 0x37, 0xbd, 0x6a, - 0x2b, 0xe8, 0x7d, 0xfb, 0x08, 0x95, 0xc7, 0x13, 0x27, 0x21, 0x21, 0x76, 0x12, 0xb8, 0x8b, 0x67, - 0xce, 0xf9, 0xce, 0xf7, 0x9d, 0x99, 0xf9, 0x4e, 0xe0, 0x66, 0xae, 0x52, 0x24, 0x06, 0xcb, 0x53, - 0xa3, 0x5c, 0x79, 0x81, 0xbd, 0x0f, 0xcc, 0xc8, 0x4e, 0x89, 0x18, 0xdb, 0xc4, 0xc2, 0x3b, 0x25, - 0x62, 0x55, 0x54, 0xd3, 0xa2, 0x36, 0x45, 0xa3, 0xf5, 0xd1, 0xaa, 0xf7, 0xa1, 0x7a, 0xd1, 0xf2, - 0x90, 0x4e, 0x75, 0xca, 0x83, 0xb1, 0xf3, 0xcb, 0xcd, 0x93, 0x47, 0x74, 0x4a, 0xf5, 0x02, 0xc1, - 0x9a, 0x99, 0xc7, 0x9a, 0x61, 0x50, 0x5b, 0xb3, 0xf3, 0xd4, 0x60, 0x62, 0x37, 0xb6, 0x4d, 0x59, - 0x91, 0x32, 0x9c, 0xd5, 0x18, 0x71, 0xcb, 0xe1, 0xdd, 0xa9, 0x2c, 0xb1, 0xb5, 0x29, 0x6c, 0x6a, - 0x7a, 0xde, 0xe0, 0xc1, 0x22, 0x76, 0xc2, 0x97, 0xaf, 0xa9, 0x59, 0x5a, 0xb1, 0x0a, 0x3d, 0xe9, - 0x1b, 0xee, 0xfd, 0x12, 0x19, 0x77, 0x7c, 0x33, 0xa8, 0x49, 0x2c, 0xcd, 0xce, 0x1b, 0x7a, 0x86, - 0xd9, 0x9a, 0x5d, 0x12, 0xa5, 0x94, 0x21, 0x40, 0x9b, 0x0e, 0xf7, 0x14, 0xaf, 0x9f, 0x76, 0xc2, - 0x99, 0xad, 0x3c, 0x85, 0xc1, 0x86, 0x55, 0x66, 0x52, 0x83, 0x11, 0x94, 0x80, 0xb0, 0xcb, 0x73, - 0x58, 0x1a, 0x95, 0xc6, 0xfe, 0x98, 0x1e, 0x53, 0xfd, 0x3a, 0xab, 0xba, 0x08, 0xf1, 0x5f, 0x8f, - 0x3e, 0xff, 0x17, 0x4a, 0x8b, 0x6c, 0x25, 0x01, 0xc3, 0x1c, 0x3e, 0x49, 0xec, 0xad, 0x6a, 0xa4, - 0x28, 0x8d, 0x62, 0x30, 0xe0, 0x65, 0x3f, 0xc8, 0xe5, 0x2c, 0xc2, 0xdc, 0x6a, 0x91, 0x74, 0xd3, - 0xba, 0x52, 0x80, 0x7f, 0x5a, 0xe0, 0x08, 0xb2, 0x1b, 0x10, 0xf1, 0x12, 0x04, 0xdf, 0x71, 0x7f, - 0xbe, 0x1e, 0x8e, 0xa0, 0x5c, 0xc3, 0x50, 0x9e, 0xc1, 0x5f, 0xbc, 0x9a, 0x17, 0x52, 0x6d, 0x17, - 0x4a, 0x00, 0xd4, 0x8e, 0x5c, 0xd4, 0xba, 0xae, 0xba, 0xf7, 0x43, 0x75, 0xee, 0x87, 0xea, 0x5e, - 0x47, 0x71, 0x3f, 0xd4, 0x94, 0xa6, 0x13, 0x91, 0x9b, 0xae, 0xcb, 0x54, 0xde, 0x49, 0xf0, 0x77, - 0x53, 0x09, 0x21, 0x67, 0x13, 0xc0, 0xa3, 0xe2, 0x74, 0xe4, 0x97, 0xee, 0xf4, 0xd4, 0x81, 0xa0, - 0x64, 0x03, 0xed, 0x3e, 0x4e, 0xfb, 0x86, 0x2f, 0x6d, 0x97, 0x4f, 0x03, 0xef, 0x38, 0x28, 0x4d, - 0xe7, 0xc0, 0xe2, 0x95, 0x34, 0x2d, 0x14, 0x34, 0xd3, 0xac, 0x76, 0x69, 0x04, 0x22, 0x96, 0xbb, - 0xb2, 0x9a, 0x13, 0x47, 0x5a, 0x5b, 0x50, 0xca, 0x70, 0xa5, 0x2d, 0xc6, 0xa5, 0xb5, 0x41, 0x79, - 0x23, 0x41, 0xac, 0x4d, 0xe9, 0x78, 0x65, 0x8b, 0x3f, 0x98, 0x40, 0x32, 0xd0, 0x2a, 0x84, 0xdd, - 0xf7, 0xc5, 0xfb, 0xf9, 0xe7, 0xf4, 0x94, 0x3f, 0xb7, 0x8d, 0xea, 0xcb, 0x14, 0x75, 0x04, 0x80, - 0xf2, 0x52, 0x82, 0xf1, 0x40, 0xbc, 0x2e, 0xaf, 0x35, 0x8b, 0x30, 0x5a, 0x65, 0x90, 0xb2, 0xa8, - 0x49, 0x19, 0xb1, 0x3a, 0x3c, 0xd6, 0x24, 0xfc, 0xdf, 0x06, 0x41, 0x30, 0x57, 0xa0, 0xdf, 0x14, - 0x9b, 0xce, 0xd3, 0x16, 0x28, 0x0d, 0x6b, 0xca, 0x32, 0x5c, 0xad, 0x02, 0xad, 0x93, 0x72, 0xb7, - 0x74, 0x5e, 0x4b, 0x70, 0xcd, 0x07, 0x46, 0x70, 0x8a, 0xc1, 0x80, 0x51, 0x17, 0x50, 0xc7, 0xab, - 0x69, 0x1d, 0xa9, 0x80, 0x2c, 0x31, 0x1d, 0x56, 0x8d, 0x94, 0x45, 0x75, 0xee, 0x5a, 0xce, 0x05, - 0xf8, 0x3d, 0xdd, 0x62, 0x67, 0xfa, 0xb0, 0x1f, 0x7e, 0xe3, 0x2c, 0xd0, 0x5b, 0x09, 0xc2, 0xae, - 0x45, 0xa2, 0x5b, 0xfe, 0x47, 0xd5, 0xec, 0xd4, 0xf2, 0xed, 0x0e, 0xb3, 0x5c, 0x75, 0xca, 0xe4, - 0xab, 0x8f, 0xdf, 0x0e, 0xfb, 0x62, 0x68, 0x0c, 0x07, 0x9c, 0x4c, 0xe8, 0x83, 0x04, 0x11, 0xef, - 0xaa, 0xa0, 0x7b, 0x01, 0xcb, 0xb6, 0x70, 0x78, 0x79, 0xbe, 0xab, 0x5c, 0x41, 0x3c, 0xc1, 0x89, - 0x2f, 0xa2, 0x05, 0x1c, 0x7c, 0x46, 0xe2, 0xbd, 0xb3, 0x93, 0x63, 0x1f, 0xbd, 0x97, 0x00, 0x6a, - 0x8f, 0x0a, 0xcd, 0x05, 0xe4, 0xd4, 0xe4, 0xfd, 0xf2, 0xdd, 0x2e, 0x32, 0x85, 0x96, 0x19, 0xae, - 0x65, 0x02, 0x8d, 0x77, 0xa0, 0x05, 0x7d, 0x97, 0x60, 0xb0, 0x85, 0x1b, 0xa0, 0xe5, 0x2e, 0xba, - 0xda, 0xe4, 0xd1, 0xf2, 0x4a, 0x8f, 0x28, 0x42, 0xd9, 0x43, 0xae, 0x6c, 0x05, 0x2d, 0x75, 0xa0, - 0x8c, 0x65, 0xb2, 0x95, 0x8c, 0x78, 0xa9, 0x78, 0xcf, 0x7b, 0xb2, 0xfb, 0xe8, 0xa0, 0x0f, 0xfe, - 0x6d, 0xe3, 0x7f, 0x68, 0xad, 0x27, 0xce, 0x67, 0xec, 0x5d, 0x7e, 0x74, 0x41, 0x68, 0xa2, 0x13, - 0x8f, 0x79, 0x27, 0xd6, 0xd1, 0xda, 0x05, 0x74, 0x02, 0xef, 0xb9, 0x93, 0x61, 0x1f, 0x7d, 0x91, - 0x60, 0xa8, 0x95, 0xa3, 0xa2, 0x78, 0x70, 0xf6, 0xe7, 0x39, 0xa8, 0xbc, 0xd4, 0x13, 0x86, 0xd0, - 0xbd, 0xc0, 0x75, 0xcf, 0xa1, 0xd9, 0x00, 0x06, 0x23, 0x40, 0x1a, 0x0e, 0xfd, 0x87, 0x04, 0xc3, - 0xe7, 0x79, 0x34, 0x4a, 0x04, 0x67, 0xd8, 0x6e, 0x56, 0xc8, 0xc9, 0x9e, 0x71, 0x84, 0xda, 0x25, - 0xae, 0xf6, 0x3e, 0x9a, 0xf7, 0x57, 0xeb, 0x0c, 0x8f, 0x4c, 0x2b, 0xc9, 0xf1, 0xd4, 0xd1, 0x49, - 0x54, 0x3a, 0x3e, 0x89, 0x4a, 0x5f, 0x4f, 0xa2, 0xd2, 0xc1, 0x69, 0x34, 0x74, 0x7c, 0x1a, 0x0d, - 0x7d, 0x3a, 0x8d, 0x86, 0x9e, 0xcc, 0xea, 0x79, 0xfb, 0x79, 0x29, 0xab, 0x6e, 0xd3, 0xe2, 0x79, - 0x05, 0x76, 0x67, 0x70, 0xb9, 0xae, 0x8a, 0x5d, 0x31, 0x09, 0xcb, 0x86, 0xf9, 0x7f, 0xfc, 0x99, - 0x9f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x7a, 0x51, 0xb4, 0xed, 0x2f, 0x0d, 0x00, 0x00, + // 905 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x57, 0xdd, 0x4e, 0xdb, 0x48, + 0x14, 0xce, 0xb0, 0xbb, 0xd1, 0xe6, 0xec, 0x8f, 0xd0, 0xc0, 0xee, 0xb2, 0x5e, 0x94, 0x65, 0xbd, + 0x7f, 0x28, 0x80, 0xcd, 0x5f, 0x0b, 0x14, 0xb5, 0xa5, 0x01, 0x12, 0xa1, 0x52, 0x08, 0xa1, 0x57, + 0x95, 0xaa, 0xd4, 0x21, 0x23, 0x37, 0x52, 0xe2, 0x31, 0xb6, 0x83, 0x92, 0x22, 0xa4, 0xaa, 0x7d, + 0x01, 0xa4, 0xaa, 0xcf, 0xd0, 0xfb, 0x56, 0x55, 0x5f, 0x01, 0xa9, 0xbd, 0x40, 0xea, 0x4d, 0xaf, + 0x2a, 0x04, 0xbd, 0x6f, 0x1f, 0xa1, 0xf2, 0x78, 0xec, 0x24, 0x24, 0xc4, 0xce, 0x0f, 0x77, 0xf6, + 0xf8, 0x9c, 0xef, 0x7c, 0xdf, 0x99, 0x99, 0xf3, 0x25, 0x30, 0x9e, 0xab, 0x14, 0x89, 0x66, 0xe6, + 0xa9, 0x56, 0xae, 0x3c, 0x92, 0xbd, 0x17, 0xd9, 0x24, 0xbb, 0x25, 0xa2, 0xed, 0x10, 0x43, 0xde, + 0x2d, 0x11, 0xa3, 0x22, 0xe9, 0x06, 0xb5, 0x28, 0x1e, 0xa9, 0x8d, 0x96, 0xbc, 0x17, 0xc9, 0x8b, + 0x16, 0x06, 0x55, 0xaa, 0x52, 0x16, 0x2c, 0xdb, 0x4f, 0x4e, 0x9e, 0x30, 0xac, 0x52, 0xaa, 0x16, + 0x88, 0xac, 0xe8, 0x79, 0x59, 0xd1, 0x34, 0x6a, 0x29, 0x56, 0x9e, 0x6a, 0x26, 0xff, 0x1a, 0xdb, + 0xa1, 0x66, 0x91, 0x9a, 0x72, 0x56, 0x31, 0x89, 0x53, 0x4e, 0xde, 0x9b, 0xca, 0x12, 0x4b, 0x99, + 0x92, 0x75, 0x45, 0xcd, 0x6b, 0x2c, 0x98, 0xc7, 0x4e, 0xf8, 0xf2, 0xd5, 0x15, 0x43, 0x29, 0xba, + 0xd0, 0x93, 0xbe, 0xe1, 0xde, 0x13, 0xcf, 0x98, 0xf3, 0xcd, 0xa0, 0x3a, 0x31, 0x14, 0x2b, 0xaf, + 0xa9, 0x19, 0xd3, 0x52, 0xac, 0x12, 0x2f, 0x25, 0x0e, 0x02, 0xde, 0xb2, 0xb9, 0xa7, 0x58, 0xfd, + 0xb4, 0x1d, 0x6e, 0x5a, 0xe2, 0x7d, 0x18, 0xa8, 0x5b, 0x35, 0x75, 0xaa, 0x99, 0x04, 0x27, 0x20, + 0xec, 0xf0, 0x1c, 0x42, 0x23, 0x68, 0xf4, 0x87, 0xe9, 0x51, 0xc9, 0xaf, 0xb3, 0x92, 0x83, 0x10, + 0xff, 0xf6, 0xe8, 0xe3, 0x9f, 0xa1, 0x34, 0xcf, 0x16, 0x13, 0x30, 0xc4, 0xe0, 0x93, 0xc4, 0xda, + 0x76, 0x23, 0x79, 0x69, 0x1c, 0x83, 0x7e, 0x2f, 0xfb, 0x56, 0x2e, 0x67, 0x10, 0xd3, 0xa9, 0x16, + 0x49, 0x37, 0xac, 0x8b, 0x05, 0xf8, 0xbd, 0x09, 0x0e, 0x27, 0xbb, 0x09, 0x11, 0x2f, 0x81, 0xf3, + 0x1d, 0xf3, 0xe7, 0xeb, 0xe1, 0x70, 0xca, 0x55, 0x0c, 0xf1, 0x01, 0xfc, 0xca, 0xaa, 0x79, 0x21, + 0x6e, 0xbb, 0x70, 0x02, 0xa0, 0xba, 0xe5, 0xbc, 0xd6, 0x7f, 0x92, 0x73, 0x3e, 0x24, 0xfb, 0x7c, + 0x48, 0xce, 0x71, 0xe4, 0xe7, 0x43, 0x4a, 0x29, 0x2a, 0xe1, 0xb9, 0xe9, 0x9a, 0x4c, 0xf1, 0x35, + 0x82, 0xdf, 0x1a, 0x4a, 0x70, 0x39, 0x5b, 0x00, 0x1e, 0x15, 0xbb, 0x23, 0xdf, 0x74, 0xa6, 0xa7, + 0x06, 0x04, 0x27, 0xeb, 0x68, 0xf7, 0x31, 0xda, 0xff, 0xfb, 0xd2, 0x76, 0xf8, 0xd4, 0xf1, 0x8e, + 0x83, 0xd8, 0xb0, 0x0f, 0x66, 0xbc, 0x92, 0xa6, 0x85, 0x82, 0xa2, 0xeb, 0x6e, 0x97, 0x86, 0x21, + 0x62, 0x38, 0x2b, 0x6b, 0x39, 0xbe, 0xa5, 0xd5, 0x05, 0xb1, 0x0c, 0x7f, 0xb7, 0xc4, 0xb8, 0xb4, + 0x36, 0x88, 0xcf, 0x11, 0xc4, 0x5a, 0x94, 0x8e, 0x57, 0xb6, 0xd9, 0x85, 0x09, 0x24, 0x03, 0xaf, + 0x41, 0xd8, 0xb9, 0x5f, 0xac, 0x9f, 0x3f, 0x4f, 0x4f, 0xf9, 0x73, 0xdb, 0x74, 0x6f, 0x26, 0xaf, + 0xc3, 0x01, 0xc4, 0xc7, 0x08, 0xc6, 0x02, 0xf1, 0xba, 0xbc, 0xd6, 0x2c, 0xc1, 0x88, 0xcb, 0x20, + 0x65, 0x50, 0x9d, 0x9a, 0xc4, 0x68, 0x73, 0x5b, 0x93, 0xf0, 0x57, 0x0b, 0x04, 0xce, 0x5c, 0x84, + 0x1f, 0x75, 0xfe, 0xd1, 0xbe, 0xda, 0x1c, 0xa5, 0x6e, 0x4d, 0x5c, 0x81, 0x7f, 0x5c, 0xa0, 0x0d, + 0x52, 0xee, 0x94, 0xce, 0x53, 0x04, 0xff, 0xfa, 0xc0, 0x70, 0x4e, 0x31, 0xe8, 0xd7, 0x6a, 0x02, + 0x6a, 0x78, 0x35, 0xac, 0x63, 0x09, 0xb0, 0xc1, 0xdd, 0x61, 0x4d, 0x4b, 0x19, 0x54, 0x65, 0x53, + 0xcb, 0x3e, 0x00, 0xdf, 0xa7, 0x9b, 0x7c, 0x11, 0x33, 0xf0, 0x8b, 0x33, 0x5e, 0x39, 0x48, 0xcf, + 0x07, 0xc9, 0x4b, 0xc4, 0x67, 0x55, 0x4d, 0x85, 0xea, 0x58, 0x74, 0xfb, 0xda, 0xc5, 0x21, 0xa9, + 0x62, 0xf4, 0x6c, 0x8a, 0x4c, 0xbf, 0xfd, 0x09, 0xbe, 0x63, 0xa4, 0xf1, 0x0b, 0x04, 0x61, 0xc7, + 0x38, 0xf0, 0xac, 0x3f, 0xb7, 0x46, 0xff, 0x12, 0xae, 0xb4, 0x99, 0xe5, 0xb0, 0x11, 0x27, 0x9f, + 0xbc, 0xff, 0xf4, 0xac, 0x2f, 0x86, 0x47, 0xe5, 0x80, 0x7e, 0x8d, 0xdf, 0x21, 0x88, 0x78, 0xbd, + 0xc1, 0xd7, 0x02, 0x96, 0x6d, 0xe2, 0x7b, 0xc2, 0x62, 0x47, 0xb9, 0x9c, 0x78, 0x82, 0x11, 0x5f, + 0xc2, 0x37, 0xe4, 0xe0, 0xbf, 0x1c, 0xe4, 0xfd, 0xf3, 0x7e, 0x7a, 0x80, 0xdf, 0x20, 0x80, 0xea, + 0xa8, 0xc1, 0xf3, 0x01, 0x39, 0x35, 0x38, 0xa2, 0xb0, 0xd0, 0x41, 0x26, 0xd7, 0x32, 0xcb, 0xb4, + 0x48, 0x78, 0xbc, 0x0d, 0x2d, 0x26, 0xfe, 0x8c, 0x60, 0xa0, 0xc9, 0x90, 0xc4, 0x2b, 0x1d, 0xb4, + 0xb5, 0xc1, 0xba, 0x84, 0xd5, 0x2e, 0x51, 0xb8, 0xb4, 0xdb, 0x4c, 0xda, 0x2a, 0x5e, 0x6e, 0x47, + 0x5a, 0x26, 0x5b, 0xc9, 0xf0, 0x01, 0x26, 0xef, 0x7b, 0x93, 0xec, 0x00, 0x1f, 0xf6, 0xc1, 0x1f, + 0x2d, 0x6c, 0x01, 0xaf, 0x77, 0xc5, 0xf9, 0x9c, 0xeb, 0x09, 0x77, 0x7a, 0x84, 0xc6, 0x3b, 0x71, + 0x97, 0x75, 0x62, 0x03, 0xaf, 0xf7, 0xa0, 0x13, 0xf2, 0xbe, 0x63, 0x98, 0x07, 0xf8, 0x04, 0xc1, + 0x60, 0x33, 0xa3, 0xc1, 0xf1, 0xe0, 0xec, 0x2f, 0x32, 0x16, 0x61, 0xb9, 0x2b, 0x0c, 0xae, 0xfb, + 0x26, 0xd3, 0xbd, 0x80, 0xe7, 0x02, 0x4c, 0x18, 0x77, 0xc2, 0xd6, 0xed, 0xfa, 0x17, 0x04, 0x43, + 0x17, 0x79, 0x17, 0x4e, 0x04, 0xa7, 0xd8, 0xca, 0x43, 0x85, 0x64, 0xd7, 0x38, 0x5c, 0xee, 0x32, + 0x93, 0x7b, 0x1d, 0x2f, 0xfa, 0xcb, 0xb5, 0x4d, 0x35, 0xe3, 0x6a, 0xae, 0x93, 0xfc, 0x0a, 0x41, + 0xc4, 0xf3, 0x31, 0x3c, 0x17, 0x74, 0xb4, 0x9f, 0xf3, 0x56, 0x61, 0xbe, 0xfd, 0x44, 0xae, 0x62, + 0x86, 0xa9, 0x98, 0xc0, 0x63, 0x6d, 0x6c, 0x5a, 0x3c, 0x75, 0x74, 0x1a, 0x45, 0xc7, 0xa7, 0x51, + 0x74, 0x72, 0x1a, 0x45, 0x87, 0x67, 0xd1, 0xd0, 0xf1, 0x59, 0x34, 0xf4, 0xe1, 0x2c, 0x1a, 0xba, + 0x77, 0x55, 0xcd, 0x5b, 0x0f, 0x4b, 0x59, 0x69, 0x87, 0x16, 0x2f, 0x02, 0xdc, 0x9b, 0x91, 0xcb, + 0x35, 0xa8, 0x56, 0x45, 0x27, 0x66, 0x36, 0xcc, 0xfe, 0xb1, 0xcd, 0x7c, 0x0d, 0x00, 0x00, 0xff, + 0xff, 0xc6, 0x93, 0x72, 0x1a, 0xfd, 0x0e, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -784,6 +888,8 @@ type QueryClient interface { GetProposerByRollapp(ctx context.Context, in *QueryGetProposerByRollappRequest, opts ...grpc.CallOption) (*QueryGetProposerByRollappResponse, error) // Queries the next proposer by rollappId. GetNextProposerByRollapp(ctx context.Context, in *QueryGetNextProposerByRollappRequest, opts ...grpc.CallOption) (*QueryGetNextProposerByRollappResponse, error) + // Queries a list of proposers. + Proposers(ctx context.Context, in *QueryProposersRequest, opts ...grpc.CallOption) (*QueryProposersResponse, error) } type queryClient struct { @@ -857,6 +963,15 @@ func (c *queryClient) GetNextProposerByRollapp(ctx context.Context, in *QueryGet return out, nil } +func (c *queryClient) Proposers(ctx context.Context, in *QueryProposersRequest, opts ...grpc.CallOption) (*QueryProposersResponse, error) { + out := new(QueryProposersResponse) + err := c.cc.Invoke(ctx, "/dymensionxyz.dymension.sequencer.Query/Proposers", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // QueryServer is the server API for Query service. type QueryServer interface { // Parameters queries the parameters of the module. @@ -873,6 +988,8 @@ type QueryServer interface { GetProposerByRollapp(context.Context, *QueryGetProposerByRollappRequest) (*QueryGetProposerByRollappResponse, error) // Queries the next proposer by rollappId. GetNextProposerByRollapp(context.Context, *QueryGetNextProposerByRollappRequest) (*QueryGetNextProposerByRollappResponse, error) + // Queries a list of proposers. + Proposers(context.Context, *QueryProposersRequest) (*QueryProposersResponse, error) } // UnimplementedQueryServer can be embedded to have forward compatible implementations. @@ -900,6 +1017,9 @@ func (*UnimplementedQueryServer) GetProposerByRollapp(ctx context.Context, req * func (*UnimplementedQueryServer) GetNextProposerByRollapp(ctx context.Context, req *QueryGetNextProposerByRollappRequest) (*QueryGetNextProposerByRollappResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetNextProposerByRollapp not implemented") } +func (*UnimplementedQueryServer) Proposers(ctx context.Context, req *QueryProposersRequest) (*QueryProposersResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Proposers not implemented") +} func RegisterQueryServer(s grpc1.Server, srv QueryServer) { s.RegisterService(&_Query_serviceDesc, srv) @@ -1031,6 +1151,24 @@ func _Query_GetNextProposerByRollapp_Handler(srv interface{}, ctx context.Contex return interceptor(ctx, in, info, handler) } +func _Query_Proposers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryProposersRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).Proposers(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/dymensionxyz.dymension.sequencer.Query/Proposers", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).Proposers(ctx, req.(*QueryProposersRequest)) + } + return interceptor(ctx, in, info, handler) +} + var _Query_serviceDesc = grpc.ServiceDesc{ ServiceName: "dymensionxyz.dymension.sequencer.Query", HandlerType: (*QueryServer)(nil), @@ -1063,6 +1201,10 @@ var _Query_serviceDesc = grpc.ServiceDesc{ MethodName: "GetNextProposerByRollapp", Handler: _Query_GetNextProposerByRollapp_Handler, }, + { + MethodName: "Proposers", + Handler: _Query_Proposers_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "dymensionxyz/dymension/sequencer/query.proto", @@ -1540,6 +1682,90 @@ func (m *QueryGetNextProposerByRollappResponse) MarshalToSizedBuffer(dAtA []byte return len(dAtA) - i, nil } +func (m *QueryProposersRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryProposersRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryProposersRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Pagination != nil { + { + size, err := m.Pagination.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *QueryProposersResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryProposersResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryProposersResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Pagination != nil { + { + size, err := m.Pagination.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if len(m.Proposers) > 0 { + for iNdEx := len(m.Proposers) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Proposers[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + func encodeVarintQuery(dAtA []byte, offset int, v uint64) int { offset -= sovQuery(v) base := offset @@ -1741,6 +1967,38 @@ func (m *QueryGetNextProposerByRollappResponse) Size() (n int) { return n } +func (m *QueryProposersRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Pagination != nil { + l = m.Pagination.Size() + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func (m *QueryProposersResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Proposers) > 0 { + for _, e := range m.Proposers { + l = e.Size() + n += 1 + l + sovQuery(uint64(l)) + } + } + if m.Pagination != nil { + l = m.Pagination.Size() + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + func sovQuery(x uint64) (n int) { return (math_bits.Len64(x|1) + 6) / 7 } @@ -2950,6 +3208,212 @@ func (m *QueryGetNextProposerByRollappResponse) Unmarshal(dAtA []byte) error { } return nil } +func (m *QueryProposersRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryProposersRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryProposersRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Pagination", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Pagination == nil { + m.Pagination = &query.PageRequest{} + } + if err := m.Pagination.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryProposersResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryProposersResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryProposersResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Proposers", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Proposers = append(m.Proposers, Sequencer{}) + if err := m.Proposers[len(m.Proposers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Pagination", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Pagination == nil { + m.Pagination = &query.PageResponse{} + } + if err := m.Pagination.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func skipQuery(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 diff --git a/x/sequencer/types/query.pb.gw.go b/x/sequencer/types/query.pb.gw.go index ea7d257aa..46fe6c481 100644 --- a/x/sequencer/types/query.pb.gw.go +++ b/x/sequencer/types/query.pb.gw.go @@ -385,6 +385,42 @@ func local_request_Query_GetNextProposerByRollapp_0(ctx context.Context, marshal } +var ( + filter_Query_Proposers_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} +) + +func request_Query_Proposers_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryProposersRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Query_Proposers_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.Proposers(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_Query_Proposers_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryProposersRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Query_Proposers_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.Proposers(ctx, &protoReq) + return msg, metadata, err + +} + // RegisterQueryHandlerServer registers the http handlers for service Query to "mux". // UnaryRPC :call QueryServer directly. // StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. @@ -552,6 +588,29 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv }) + mux.Handle("GET", pattern_Query_Proposers_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_Query_Proposers_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_Query_Proposers_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + return nil } @@ -733,6 +792,26 @@ func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, clie }) + mux.Handle("GET", pattern_Query_Proposers_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_Query_Proposers_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_Query_Proposers_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + return nil } @@ -741,15 +820,17 @@ var ( pattern_Query_Sequencer_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"dymensionxyz", "dymension", "sequencer", "sequencerAddress"}, "", runtime.AssumeColonVerbOpt(false))) - pattern_Query_Sequencers_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 2}, []string{"dymensionxyz", "dymension", "sequencer"}, "", runtime.AssumeColonVerbOpt(false))) + pattern_Query_Sequencers_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"dymensionxyz", "dymension", "sequencer", "sequencers"}, "", runtime.AssumeColonVerbOpt(false))) pattern_Query_SequencersByRollapp_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"dymensionxyz", "dymension", "sequencer", "sequencers_by_rollapp", "rollappId"}, "", runtime.AssumeColonVerbOpt(false))) pattern_Query_SequencersByRollappByStatus_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5}, []string{"dymensionxyz", "dymension", "sequencer", "sequencers_by_rollapp", "rollappId", "status"}, "", runtime.AssumeColonVerbOpt(false))) - pattern_Query_GetProposerByRollapp_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"dymensionxyz", "dymension", "sequencer", "proposer", "rollappId"}, "", runtime.AssumeColonVerbOpt(false))) + pattern_Query_GetProposerByRollapp_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"dymensionxyz", "dymension", "sequencer", "proposers", "rollappId"}, "", runtime.AssumeColonVerbOpt(false))) pattern_Query_GetNextProposerByRollapp_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"dymensionxyz", "dymension", "sequencer", "next_proposer", "rollappId"}, "", runtime.AssumeColonVerbOpt(false))) + + pattern_Query_Proposers_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"dymensionxyz", "dymension", "sequencer", "proposers"}, "", runtime.AssumeColonVerbOpt(false))) ) var ( @@ -766,4 +847,6 @@ var ( forward_Query_GetProposerByRollapp_0 = runtime.ForwardResponseMessage forward_Query_GetNextProposerByRollapp_0 = runtime.ForwardResponseMessage + + forward_Query_Proposers_0 = runtime.ForwardResponseMessage )