mirror of
				https://github.com/0glabs/0g-chain.git
				synced 2025-11-04 08:57:27 +00:00 
			
		
		
		
	feat: getQuorumRow
This commit is contained in:
		
							parent
							
								
									6190839ddc
								
							
						
					
					
						commit
						efee71e2e6
					
				@ -155,6 +155,35 @@
 | 
				
			|||||||
    "stateMutability": "view",
 | 
					    "stateMutability": "view",
 | 
				
			||||||
    "type": "function"
 | 
					    "type": "function"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    "inputs": [
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					        "internalType": "uint256",
 | 
				
			||||||
 | 
					        "name": "_epoch",
 | 
				
			||||||
 | 
					        "type": "uint256"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					        "internalType": "uint256",
 | 
				
			||||||
 | 
					        "name": "_quorumId",
 | 
				
			||||||
 | 
					        "type": "uint256"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					        "internalType": "uint32",
 | 
				
			||||||
 | 
					        "name": "_rowIndex",
 | 
				
			||||||
 | 
					        "type": "uint32"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					    "name": "getQuorumRow",
 | 
				
			||||||
 | 
					    "outputs": [
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					        "internalType": "address",
 | 
				
			||||||
 | 
					        "name": "",
 | 
				
			||||||
 | 
					        "type": "address"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					    "stateMutability": "view",
 | 
				
			||||||
 | 
					    "type": "function"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    "inputs": [
 | 
					    "inputs": [
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
 | 
				
			|||||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							@ -22,6 +22,7 @@ const (
 | 
				
			|||||||
	DASignersFunctionQuorumCount       = "quorumCount"
 | 
						DASignersFunctionQuorumCount       = "quorumCount"
 | 
				
			||||||
	DASignersFunctionGetSigner         = "getSigner"
 | 
						DASignersFunctionGetSigner         = "getSigner"
 | 
				
			||||||
	DASignersFunctionGetQuorum         = "getQuorum"
 | 
						DASignersFunctionGetQuorum         = "getQuorum"
 | 
				
			||||||
 | 
						DASignersFunctionGetQuorumRow      = "getQuorumRow"
 | 
				
			||||||
	DASignersFunctionRegisterSigner    = "registerSigner"
 | 
						DASignersFunctionRegisterSigner    = "registerSigner"
 | 
				
			||||||
	DASignersFunctionUpdateSocket      = "updateSocket"
 | 
						DASignersFunctionUpdateSocket      = "updateSocket"
 | 
				
			||||||
	DASignersFunctionRegisterNextEpoch = "registerNextEpoch"
 | 
						DASignersFunctionRegisterNextEpoch = "registerNextEpoch"
 | 
				
			||||||
@ -35,6 +36,7 @@ var RequiredGasBasic = map[string]uint64{
 | 
				
			|||||||
	DASignersFunctionQuorumCount:       1000,
 | 
						DASignersFunctionQuorumCount:       1000,
 | 
				
			||||||
	DASignersFunctionGetSigner:         100000,
 | 
						DASignersFunctionGetSigner:         100000,
 | 
				
			||||||
	DASignersFunctionGetQuorum:         100000,
 | 
						DASignersFunctionGetQuorum:         100000,
 | 
				
			||||||
 | 
						DASignersFunctionGetQuorumRow:      10000,
 | 
				
			||||||
	DASignersFunctionRegisterSigner:    100000,
 | 
						DASignersFunctionRegisterSigner:    100000,
 | 
				
			||||||
	DASignersFunctionUpdateSocket:      50000,
 | 
						DASignersFunctionUpdateSocket:      50000,
 | 
				
			||||||
	DASignersFunctionRegisterNextEpoch: 100000,
 | 
						DASignersFunctionRegisterNextEpoch: 100000,
 | 
				
			||||||
@ -123,6 +125,8 @@ func (d *DASignersPrecompile) Run(evm *vm.EVM, contract *vm.Contract, readonly b
 | 
				
			|||||||
		bz, err = d.GetSigner(ctx, evm, method, args)
 | 
							bz, err = d.GetSigner(ctx, evm, method, args)
 | 
				
			||||||
	case DASignersFunctionGetQuorum:
 | 
						case DASignersFunctionGetQuorum:
 | 
				
			||||||
		bz, err = d.GetQuorum(ctx, evm, method, args)
 | 
							bz, err = d.GetQuorum(ctx, evm, method, args)
 | 
				
			||||||
 | 
						case DASignersFunctionGetQuorumRow:
 | 
				
			||||||
 | 
							bz, err = d.GetQuorumRow(ctx, evm, method, args)
 | 
				
			||||||
	case DASignersFunctionGetAggPkG1:
 | 
						case DASignersFunctionGetAggPkG1:
 | 
				
			||||||
		bz, err = d.GetAggPkG1(ctx, evm, method, args)
 | 
							bz, err = d.GetAggPkG1(ctx, evm, method, args)
 | 
				
			||||||
	case DASignersFunctionIsSigner:
 | 
						case DASignersFunctionIsSigner:
 | 
				
			||||||
 | 
				
			|||||||
@ -88,6 +88,18 @@ func (d *DASignersPrecompile) GetQuorum(ctx sdk.Context, _ *vm.EVM, method *abi.
 | 
				
			|||||||
	return method.Outputs.Pack(signers)
 | 
						return method.Outputs.Pack(signers)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (d *DASignersPrecompile) GetQuorumRow(ctx sdk.Context, _ *vm.EVM, method *abi.Method, args []interface{}) ([]byte, error) {
 | 
				
			||||||
 | 
						req, err := NewQueryEpochQuorumRowRequest(args)
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return nil, err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						response, err := d.dasignersKeeper.EpochQuorumRow(sdk.WrapSDKContext(ctx), req)
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return nil, err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return method.Outputs.Pack(common.HexToAddress(response.Signer))
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (d *DASignersPrecompile) GetAggPkG1(ctx sdk.Context, _ *vm.EVM, method *abi.Method, args []interface{}) ([]byte, error) {
 | 
					func (d *DASignersPrecompile) GetAggPkG1(ctx sdk.Context, _ *vm.EVM, method *abi.Method, args []interface{}) ([]byte, error) {
 | 
				
			||||||
	req, err := NewQueryAggregatePubkeyG1Request(args)
 | 
						req, err := NewQueryAggregatePubkeyG1Request(args)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
 | 
				
			|||||||
@ -98,6 +98,18 @@ func NewQueryEpochQuorumRequest(args []interface{}) (*dasignerstypes.QueryEpochQ
 | 
				
			|||||||
	}, nil
 | 
						}, nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func NewQueryEpochQuorumRowRequest(args []interface{}) (*dasignerstypes.QueryEpochQuorumRowRequest, error) {
 | 
				
			||||||
 | 
						if len(args) != 3 {
 | 
				
			||||||
 | 
							return nil, fmt.Errorf(precopmiles_common.ErrInvalidNumberOfArgs, 3, len(args))
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return &dasignerstypes.QueryEpochQuorumRowRequest{
 | 
				
			||||||
 | 
							EpochNumber: args[0].(*big.Int).Uint64(),
 | 
				
			||||||
 | 
							QuorumId:    args[1].(*big.Int).Uint64(),
 | 
				
			||||||
 | 
							RowIndex:    args[2].(uint32),
 | 
				
			||||||
 | 
						}, nil
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func NewQueryAggregatePubkeyG1Request(args []interface{}) (*dasignerstypes.QueryAggregatePubkeyG1Request, error) {
 | 
					func NewQueryAggregatePubkeyG1Request(args []interface{}) (*dasignerstypes.QueryAggregatePubkeyG1Request, error) {
 | 
				
			||||||
	if len(args) != 3 {
 | 
						if len(args) != 3 {
 | 
				
			||||||
		return nil, fmt.Errorf(precopmiles_common.ErrInvalidNumberOfArgs, 3, len(args))
 | 
							return nil, fmt.Errorf(precopmiles_common.ErrInvalidNumberOfArgs, 3, len(args))
 | 
				
			||||||
 | 
				
			|||||||
@ -22,6 +22,9 @@ service Query {
 | 
				
			|||||||
  rpc EpochQuorum(QueryEpochQuorumRequest) returns (QueryEpochQuorumResponse) {
 | 
					  rpc EpochQuorum(QueryEpochQuorumRequest) returns (QueryEpochQuorumResponse) {
 | 
				
			||||||
    option (google.api.http).get = "/0g/dasigners/v1/epoch-quorum";
 | 
					    option (google.api.http).get = "/0g/dasigners/v1/epoch-quorum";
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					  rpc EpochQuorumRow(QueryEpochQuorumRowRequest) returns (QueryEpochQuorumRowResponse) {
 | 
				
			||||||
 | 
					    option (google.api.http).get = "/0g/dasigners/v1/epoch-quorum-row";
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
  rpc AggregatePubkeyG1(QueryAggregatePubkeyG1Request) returns (QueryAggregatePubkeyG1Response) {
 | 
					  rpc AggregatePubkeyG1(QueryAggregatePubkeyG1Request) returns (QueryAggregatePubkeyG1Response) {
 | 
				
			||||||
    option (google.api.http).get = "/0g/dasigners/v1/aggregate-pubkey-g1";
 | 
					    option (google.api.http).get = "/0g/dasigners/v1/aggregate-pubkey-g1";
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
@ -61,6 +64,16 @@ message QueryEpochQuorumResponse {
 | 
				
			|||||||
  Quorum quorum = 1;
 | 
					  Quorum quorum = 1;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					message QueryEpochQuorumRowRequest {
 | 
				
			||||||
 | 
					  uint64 epoch_number = 1;
 | 
				
			||||||
 | 
					  uint64 quorum_id = 2;
 | 
				
			||||||
 | 
					  uint32 row_index = 3;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					message QueryEpochQuorumRowResponse {
 | 
				
			||||||
 | 
					  string signer = 1;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
message QueryAggregatePubkeyG1Request {
 | 
					message QueryAggregatePubkeyG1Request {
 | 
				
			||||||
  uint64 epoch_number = 1;
 | 
					  uint64 epoch_number = 1;
 | 
				
			||||||
  uint64 quorum_id = 2;
 | 
					  uint64 quorum_id = 2;
 | 
				
			||||||
 | 
				
			|||||||
@ -67,6 +67,22 @@ func (k Keeper) EpochQuorum(c context.Context, request *types.QueryEpochQuorumRe
 | 
				
			|||||||
	return &types.QueryEpochQuorumResponse{Quorum: quorums.Quorums[request.QuorumId]}, nil
 | 
						return &types.QueryEpochQuorumResponse{Quorum: quorums.Quorums[request.QuorumId]}, nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (k Keeper) EpochQuorumRow(c context.Context, request *types.QueryEpochQuorumRowRequest) (*types.QueryEpochQuorumRowResponse, error) {
 | 
				
			||||||
 | 
						ctx := sdk.UnwrapSDKContext(c)
 | 
				
			||||||
 | 
						quorums, found := k.GetEpochQuorums(ctx, request.EpochNumber)
 | 
				
			||||||
 | 
						if !found {
 | 
				
			||||||
 | 
							return nil, types.ErrQuorumNotFound
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if len(quorums.Quorums) <= int(request.QuorumId) {
 | 
				
			||||||
 | 
							return nil, types.ErrQuorumIdOutOfBound
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						signers := quorums.Quorums[request.QuorumId].Signers
 | 
				
			||||||
 | 
						if len(signers) <= int(request.RowIndex) {
 | 
				
			||||||
 | 
							return nil, types.ErrRowIndexOutOfBound
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return &types.QueryEpochQuorumRowResponse{Signer: signers[request.RowIndex]}, nil
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (k Keeper) AggregatePubkeyG1(c context.Context, request *types.QueryAggregatePubkeyG1Request) (*types.QueryAggregatePubkeyG1Response, error) {
 | 
					func (k Keeper) AggregatePubkeyG1(c context.Context, request *types.QueryAggregatePubkeyG1Request) (*types.QueryAggregatePubkeyG1Response, error) {
 | 
				
			||||||
	ctx := sdk.UnwrapSDKContext(c)
 | 
						ctx := sdk.UnwrapSDKContext(c)
 | 
				
			||||||
	quorums, found := k.GetEpochQuorums(ctx, request.EpochNumber)
 | 
						quorums, found := k.GetEpochQuorums(ctx, request.EpochNumber)
 | 
				
			||||||
 | 
				
			|||||||
@ -11,4 +11,5 @@ var (
 | 
				
			|||||||
	ErrQuorumIdOutOfBound         = errorsmod.Register(ModuleName, 6, "quorum id out of bound")
 | 
						ErrQuorumIdOutOfBound         = errorsmod.Register(ModuleName, 6, "quorum id out of bound")
 | 
				
			||||||
	ErrQuorumBitmapLengthMismatch = errorsmod.Register(ModuleName, 7, "quorum bitmap length mismatch")
 | 
						ErrQuorumBitmapLengthMismatch = errorsmod.Register(ModuleName, 7, "quorum bitmap length mismatch")
 | 
				
			||||||
	ErrInsufficientBonded         = errorsmod.Register(ModuleName, 8, "insufficient bonded amount")
 | 
						ErrInsufficientBonded         = errorsmod.Register(ModuleName, 8, "insufficient bonded amount")
 | 
				
			||||||
 | 
						ErrRowIndexOutOfBound         = errorsmod.Register(ModuleName, 9, "row index out of bound")
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
				
			|||||||
@ -18,9 +18,8 @@ func DefaultGenesisState() *GenesisState {
 | 
				
			|||||||
		TokensPerVote:     10,
 | 
							TokensPerVote:     10,
 | 
				
			||||||
		MaxVotesPerSigner: 1024,
 | 
							MaxVotesPerSigner: 1024,
 | 
				
			||||||
		MaxQuorums:        10,
 | 
							MaxQuorums:        10,
 | 
				
			||||||
		// EpochBlocks:       5760,
 | 
							EpochBlocks:       5760,
 | 
				
			||||||
		EpochBlocks:   20,
 | 
							EncodedSlices:     3072,
 | 
				
			||||||
		EncodedSlices: 3072,
 | 
					 | 
				
			||||||
	}, 0, make([]*Signer, 0), []*Quorums{{
 | 
						}, 0, make([]*Signer, 0), []*Quorums{{
 | 
				
			||||||
		Quorums: make([]*Quorum, 0),
 | 
							Quorums: make([]*Quorum, 0),
 | 
				
			||||||
	}})
 | 
						}})
 | 
				
			||||||
 | 
				
			|||||||
@ -328,6 +328,82 @@ func (m *QueryEpochQuorumResponse) XXX_DiscardUnknown() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
var xxx_messageInfo_QueryEpochQuorumResponse proto.InternalMessageInfo
 | 
					var xxx_messageInfo_QueryEpochQuorumResponse proto.InternalMessageInfo
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					type QueryEpochQuorumRowRequest struct {
 | 
				
			||||||
 | 
						EpochNumber uint64 `protobuf:"varint,1,opt,name=epoch_number,json=epochNumber,proto3" json:"epoch_number,omitempty"`
 | 
				
			||||||
 | 
						QuorumId    uint64 `protobuf:"varint,2,opt,name=quorum_id,json=quorumId,proto3" json:"quorum_id,omitempty"`
 | 
				
			||||||
 | 
						RowIndex    uint32 `protobuf:"varint,3,opt,name=row_index,json=rowIndex,proto3" json:"row_index,omitempty"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (m *QueryEpochQuorumRowRequest) Reset()         { *m = QueryEpochQuorumRowRequest{} }
 | 
				
			||||||
 | 
					func (m *QueryEpochQuorumRowRequest) String() string { return proto.CompactTextString(m) }
 | 
				
			||||||
 | 
					func (*QueryEpochQuorumRowRequest) ProtoMessage()    {}
 | 
				
			||||||
 | 
					func (*QueryEpochQuorumRowRequest) Descriptor() ([]byte, []int) {
 | 
				
			||||||
 | 
						return fileDescriptor_991a610b84b5964c, []int{8}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					func (m *QueryEpochQuorumRowRequest) XXX_Unmarshal(b []byte) error {
 | 
				
			||||||
 | 
						return m.Unmarshal(b)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					func (m *QueryEpochQuorumRowRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
 | 
				
			||||||
 | 
						if deterministic {
 | 
				
			||||||
 | 
							return xxx_messageInfo_QueryEpochQuorumRowRequest.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 *QueryEpochQuorumRowRequest) XXX_Merge(src proto.Message) {
 | 
				
			||||||
 | 
						xxx_messageInfo_QueryEpochQuorumRowRequest.Merge(m, src)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					func (m *QueryEpochQuorumRowRequest) XXX_Size() int {
 | 
				
			||||||
 | 
						return m.Size()
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					func (m *QueryEpochQuorumRowRequest) XXX_DiscardUnknown() {
 | 
				
			||||||
 | 
						xxx_messageInfo_QueryEpochQuorumRowRequest.DiscardUnknown(m)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					var xxx_messageInfo_QueryEpochQuorumRowRequest proto.InternalMessageInfo
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					type QueryEpochQuorumRowResponse struct {
 | 
				
			||||||
 | 
						Signer string `protobuf:"bytes,1,opt,name=signer,proto3" json:"signer,omitempty"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (m *QueryEpochQuorumRowResponse) Reset()         { *m = QueryEpochQuorumRowResponse{} }
 | 
				
			||||||
 | 
					func (m *QueryEpochQuorumRowResponse) String() string { return proto.CompactTextString(m) }
 | 
				
			||||||
 | 
					func (*QueryEpochQuorumRowResponse) ProtoMessage()    {}
 | 
				
			||||||
 | 
					func (*QueryEpochQuorumRowResponse) Descriptor() ([]byte, []int) {
 | 
				
			||||||
 | 
						return fileDescriptor_991a610b84b5964c, []int{9}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					func (m *QueryEpochQuorumRowResponse) XXX_Unmarshal(b []byte) error {
 | 
				
			||||||
 | 
						return m.Unmarshal(b)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					func (m *QueryEpochQuorumRowResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
 | 
				
			||||||
 | 
						if deterministic {
 | 
				
			||||||
 | 
							return xxx_messageInfo_QueryEpochQuorumRowResponse.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 *QueryEpochQuorumRowResponse) XXX_Merge(src proto.Message) {
 | 
				
			||||||
 | 
						xxx_messageInfo_QueryEpochQuorumRowResponse.Merge(m, src)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					func (m *QueryEpochQuorumRowResponse) XXX_Size() int {
 | 
				
			||||||
 | 
						return m.Size()
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					func (m *QueryEpochQuorumRowResponse) XXX_DiscardUnknown() {
 | 
				
			||||||
 | 
						xxx_messageInfo_QueryEpochQuorumRowResponse.DiscardUnknown(m)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					var xxx_messageInfo_QueryEpochQuorumRowResponse proto.InternalMessageInfo
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type QueryAggregatePubkeyG1Request struct {
 | 
					type QueryAggregatePubkeyG1Request struct {
 | 
				
			||||||
	EpochNumber  uint64 `protobuf:"varint,1,opt,name=epoch_number,json=epochNumber,proto3" json:"epoch_number,omitempty"`
 | 
						EpochNumber  uint64 `protobuf:"varint,1,opt,name=epoch_number,json=epochNumber,proto3" json:"epoch_number,omitempty"`
 | 
				
			||||||
	QuorumId     uint64 `protobuf:"varint,2,opt,name=quorum_id,json=quorumId,proto3" json:"quorum_id,omitempty"`
 | 
						QuorumId     uint64 `protobuf:"varint,2,opt,name=quorum_id,json=quorumId,proto3" json:"quorum_id,omitempty"`
 | 
				
			||||||
@ -338,7 +414,7 @@ func (m *QueryAggregatePubkeyG1Request) Reset()         { *m = QueryAggregatePub
 | 
				
			|||||||
func (m *QueryAggregatePubkeyG1Request) String() string { return proto.CompactTextString(m) }
 | 
					func (m *QueryAggregatePubkeyG1Request) String() string { return proto.CompactTextString(m) }
 | 
				
			||||||
func (*QueryAggregatePubkeyG1Request) ProtoMessage()    {}
 | 
					func (*QueryAggregatePubkeyG1Request) ProtoMessage()    {}
 | 
				
			||||||
func (*QueryAggregatePubkeyG1Request) Descriptor() ([]byte, []int) {
 | 
					func (*QueryAggregatePubkeyG1Request) Descriptor() ([]byte, []int) {
 | 
				
			||||||
	return fileDescriptor_991a610b84b5964c, []int{8}
 | 
						return fileDescriptor_991a610b84b5964c, []int{10}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
func (m *QueryAggregatePubkeyG1Request) XXX_Unmarshal(b []byte) error {
 | 
					func (m *QueryAggregatePubkeyG1Request) XXX_Unmarshal(b []byte) error {
 | 
				
			||||||
	return m.Unmarshal(b)
 | 
						return m.Unmarshal(b)
 | 
				
			||||||
@ -377,7 +453,7 @@ func (m *QueryAggregatePubkeyG1Response) Reset()         { *m = QueryAggregatePu
 | 
				
			|||||||
func (m *QueryAggregatePubkeyG1Response) String() string { return proto.CompactTextString(m) }
 | 
					func (m *QueryAggregatePubkeyG1Response) String() string { return proto.CompactTextString(m) }
 | 
				
			||||||
func (*QueryAggregatePubkeyG1Response) ProtoMessage()    {}
 | 
					func (*QueryAggregatePubkeyG1Response) ProtoMessage()    {}
 | 
				
			||||||
func (*QueryAggregatePubkeyG1Response) Descriptor() ([]byte, []int) {
 | 
					func (*QueryAggregatePubkeyG1Response) Descriptor() ([]byte, []int) {
 | 
				
			||||||
	return fileDescriptor_991a610b84b5964c, []int{9}
 | 
						return fileDescriptor_991a610b84b5964c, []int{11}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
func (m *QueryAggregatePubkeyG1Response) XXX_Unmarshal(b []byte) error {
 | 
					func (m *QueryAggregatePubkeyG1Response) XXX_Unmarshal(b []byte) error {
 | 
				
			||||||
	return m.Unmarshal(b)
 | 
						return m.Unmarshal(b)
 | 
				
			||||||
@ -415,6 +491,8 @@ func init() {
 | 
				
			|||||||
	proto.RegisterType((*QueryQuorumCountResponse)(nil), "zgc.dasigners.v1.QueryQuorumCountResponse")
 | 
						proto.RegisterType((*QueryQuorumCountResponse)(nil), "zgc.dasigners.v1.QueryQuorumCountResponse")
 | 
				
			||||||
	proto.RegisterType((*QueryEpochQuorumRequest)(nil), "zgc.dasigners.v1.QueryEpochQuorumRequest")
 | 
						proto.RegisterType((*QueryEpochQuorumRequest)(nil), "zgc.dasigners.v1.QueryEpochQuorumRequest")
 | 
				
			||||||
	proto.RegisterType((*QueryEpochQuorumResponse)(nil), "zgc.dasigners.v1.QueryEpochQuorumResponse")
 | 
						proto.RegisterType((*QueryEpochQuorumResponse)(nil), "zgc.dasigners.v1.QueryEpochQuorumResponse")
 | 
				
			||||||
 | 
						proto.RegisterType((*QueryEpochQuorumRowRequest)(nil), "zgc.dasigners.v1.QueryEpochQuorumRowRequest")
 | 
				
			||||||
 | 
						proto.RegisterType((*QueryEpochQuorumRowResponse)(nil), "zgc.dasigners.v1.QueryEpochQuorumRowResponse")
 | 
				
			||||||
	proto.RegisterType((*QueryAggregatePubkeyG1Request)(nil), "zgc.dasigners.v1.QueryAggregatePubkeyG1Request")
 | 
						proto.RegisterType((*QueryAggregatePubkeyG1Request)(nil), "zgc.dasigners.v1.QueryAggregatePubkeyG1Request")
 | 
				
			||||||
	proto.RegisterType((*QueryAggregatePubkeyG1Response)(nil), "zgc.dasigners.v1.QueryAggregatePubkeyG1Response")
 | 
						proto.RegisterType((*QueryAggregatePubkeyG1Response)(nil), "zgc.dasigners.v1.QueryAggregatePubkeyG1Response")
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -422,49 +500,54 @@ func init() {
 | 
				
			|||||||
func init() { proto.RegisterFile("zgc/dasigners/v1/query.proto", fileDescriptor_991a610b84b5964c) }
 | 
					func init() { proto.RegisterFile("zgc/dasigners/v1/query.proto", fileDescriptor_991a610b84b5964c) }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
var fileDescriptor_991a610b84b5964c = []byte{
 | 
					var fileDescriptor_991a610b84b5964c = []byte{
 | 
				
			||||||
	// 658 bytes of a gzipped FileDescriptorProto
 | 
						// 737 bytes of a gzipped FileDescriptorProto
 | 
				
			||||||
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x55, 0x4f, 0x4f, 0xd4, 0x4e,
 | 
						0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x95, 0xcb, 0x4e, 0xdb, 0x4a,
 | 
				
			||||||
	0x18, 0xde, 0xf2, 0x2f, 0x30, 0xf0, 0x4b, 0x60, 0x20, 0xa1, 0xdb, 0x1f, 0x94, 0xb5, 0x82, 0x41,
 | 
						0x18, 0xc7, 0x63, 0x2e, 0x11, 0x0c, 0x70, 0x04, 0x03, 0x3a, 0x24, 0x06, 0x4c, 0x30, 0x70, 0x14,
 | 
				
			||||||
	0xe3, 0x76, 0xba, 0x78, 0xd5, 0x83, 0x18, 0x43, 0x4c, 0xd4, 0x48, 0x3d, 0xe9, 0x65, 0x33, 0x2d,
 | 
						0x8e, 0x48, 0x9c, 0x50, 0x75, 0xd7, 0x2e, 0x4a, 0x55, 0x21, 0xa4, 0xb6, 0x2a, 0xee, 0xaa, 0xdd,
 | 
				
			||||||
	0xe3, 0x6c, 0x23, 0xed, 0x74, 0xb7, 0x53, 0x02, 0x1c, 0x8d, 0x37, 0x2f, 0x26, 0x7e, 0x05, 0x3f,
 | 
						0x44, 0x63, 0x67, 0x3a, 0xb1, 0x8a, 0x3d, 0x8e, 0x3d, 0x26, 0x84, 0x65, 0xd5, 0x5d, 0x37, 0x95,
 | 
				
			||||||
	0x0c, 0x47, 0x12, 0x2f, 0x1e, 0x15, 0xfc, 0x20, 0x66, 0x67, 0xa6, 0xdb, 0x2d, 0xdd, 0x2e, 0x7b,
 | 
						0xba, 0xe9, 0x03, 0xf4, 0x61, 0x58, 0x22, 0x75, 0xd3, 0x65, 0x0b, 0xdd, 0xf5, 0x25, 0x2a, 0xcf,
 | 
				
			||||||
	0xf0, 0x36, 0xf3, 0xbe, 0xef, 0xf3, 0x3e, 0xcf, 0x3c, 0x3c, 0x74, 0xc1, 0xc6, 0x39, 0xf5, 0xd1,
 | 
						0x4c, 0x2e, 0xc6, 0x49, 0xc8, 0x82, 0x9d, 0xe7, 0xbb, 0xfe, 0xbe, 0xcf, 0xf3, 0xb7, 0xc1, 0xfa,
 | 
				
			||||||
	0x11, 0x4e, 0x02, 0x1a, 0x91, 0x5e, 0x82, 0x4e, 0x5a, 0xa8, 0x9b, 0x92, 0xde, 0x99, 0x1d, 0xf7,
 | 
						0x05, 0xb1, 0x8d, 0x3a, 0x0a, 0x1d, 0xe2, 0xe1, 0x20, 0x34, 0xce, 0xaa, 0x46, 0x33, 0xc2, 0x41,
 | 
				
			||||||
	0x18, 0x67, 0x70, 0xf9, 0x9c, 0xfa, 0xf6, 0xa0, 0x6b, 0x9f, 0xb4, 0x8c, 0xba, 0xcf, 0x92, 0x90,
 | 
						0xbb, 0xec, 0x07, 0x94, 0x51, 0xb8, 0x78, 0x41, 0xec, 0x72, 0xd7, 0x5b, 0x3e, 0xab, 0xaa, 0x79,
 | 
				
			||||||
	0x25, 0x6d, 0xd1, 0x47, 0xf2, 0x22, 0x87, 0x8d, 0x35, 0xca, 0x28, 0x93, 0xf5, 0xfe, 0x49, 0x55,
 | 
						0x9b, 0x86, 0x2e, 0x0d, 0x6b, 0xdc, 0x6f, 0x88, 0x83, 0x08, 0x56, 0x57, 0x08, 0x25, 0x54, 0xd8,
 | 
				
			||||||
	0x37, 0x28, 0x63, 0xf4, 0x98, 0x20, 0x1c, 0x07, 0x08, 0x47, 0x11, 0xe3, 0x98, 0x07, 0x2c, 0xca,
 | 
						0xe3, 0x27, 0x69, 0x5d, 0x27, 0x94, 0x92, 0x53, 0x6c, 0x20, 0xdf, 0x31, 0x90, 0xe7, 0x51, 0x86,
 | 
				
			||||||
	0x30, 0x75, 0xd5, 0x15, 0x37, 0x2f, 0xfd, 0x80, 0x70, 0xa4, 0xb8, 0x8d, 0xad, 0x9b, 0x2d, 0x1e,
 | 
						0x98, 0x43, 0xbd, 0x4e, 0x4e, 0x5e, 0x7a, 0xf9, 0xc9, 0x8a, 0xde, 0x19, 0xc8, 0x93, 0xbd, 0xd5,
 | 
				
			||||||
	0x84, 0x24, 0xe1, 0x38, 0x8c, 0xd5, 0x40, 0xa3, 0x24, 0x3d, 0x57, 0x2a, 0x26, 0x2c, 0x07, 0xc0,
 | 
						0xcd, 0xdb, 0x2e, 0xe6, 0xb8, 0x38, 0x64, 0xc8, 0xf5, 0x65, 0x40, 0x21, 0x85, 0xde, 0x23, 0xe5,
 | 
				
			||||||
	0xc3, 0xfe, 0x6b, 0xde, 0x8a, 0xaa, 0x4b, 0xba, 0x29, 0x49, 0x38, 0x34, 0xc0, 0x3c, 0xf6, 0x7d,
 | 
						0x11, 0x7a, 0x05, 0xc0, 0x93, 0x78, 0x9a, 0xd7, 0xdc, 0x6a, 0xe2, 0x66, 0x84, 0x43, 0x06, 0x55,
 | 
				
			||||||
	0x96, 0x46, 0x3c, 0xd1, 0xb5, 0xc6, 0xf4, 0xee, 0x82, 0x3b, 0xb8, 0x5b, 0x07, 0x60, 0xb5, 0x80,
 | 
						0x30, 0x83, 0x6c, 0x9b, 0x46, 0x1e, 0x0b, 0x73, 0x4a, 0x61, 0xb2, 0x38, 0x6b, 0x76, 0xcf, 0xfa,
 | 
				
			||||||
	0x48, 0x62, 0x16, 0x25, 0x04, 0x3a, 0x60, 0x4e, 0x6e, 0x16, 0x80, 0xc5, 0x3d, 0xdd, 0xbe, 0x69,
 | 
						0x11, 0x58, 0x4e, 0x64, 0x84, 0x3e, 0xf5, 0x42, 0x0c, 0x2b, 0x20, 0x2b, 0x2a, 0xf3, 0x84, 0xb9,
 | 
				
			||||||
	0x8c, 0xad, 0x10, 0x6a, 0xce, 0xaa, 0x83, 0x75, 0xb1, 0xe8, 0x79, 0xcc, 0xfc, 0xce, 0xeb, 0x34,
 | 
						0x83, 0x5c, 0xf9, 0xf6, 0x62, 0xca, 0x32, 0x43, 0xc6, 0xe9, 0x79, 0xb0, 0xca, 0x0b, 0x3d, 0xf3,
 | 
				
			||||||
	0xf4, 0x06, 0xfc, 0xd6, 0x13, 0xa0, 0x97, 0x5b, 0x8a, 0xe8, 0x0e, 0x58, 0x22, 0xfd, 0x72, 0x3b,
 | 
						0xa9, 0xdd, 0x78, 0x19, 0xb9, 0x56, 0xb7, 0xbf, 0xfe, 0x18, 0xe4, 0xd2, 0x2e, 0xd9, 0x68, 0x0b,
 | 
				
			||||||
	0x12, 0x75, 0x5d, 0x6b, 0x68, 0xbb, 0x33, 0xee, 0x22, 0xc9, 0x47, 0xad, 0xc7, 0x6a, 0xf3, 0x61,
 | 
						0xcc, 0xe3, 0xd8, 0x5c, 0xf3, 0xb8, 0x3d, 0xa7, 0x14, 0x94, 0xe2, 0x94, 0x39, 0x87, 0x7b, 0xa1,
 | 
				
			||||||
	0xca, 0x7a, 0x69, 0xf8, 0xac, 0xaf, 0x3b, 0x7b, 0xd9, 0x04, 0xe8, 0x8c, 0xbc, 0x80, 0xce, 0xc9,
 | 
						0xfa, 0x23, 0x59, 0xf9, 0x24, 0xa2, 0x41, 0xe4, 0x3e, 0x8d, 0xb9, 0x3b, 0x93, 0x8d, 0x91, 0xdd,
 | 
				
			||||||
	0xbb, 0xa2, 0xdc, 0x16, 0x6e, 0x64, 0xf0, 0x6e, 0x3e, 0x6a, 0xbd, 0x1b, 0x7e, 0x96, 0xdc, 0x31,
 | 
						0x69, 0x9e, 0xc8, 0xee, 0x35, 0x6f, 0x72, 0x73, 0x8d, 0x6f, 0xa3, 0x93, 0xde, 0xec, 0x85, 0xea,
 | 
				
			||||||
	0x39, 0x39, 0xfc, 0x1f, 0x2c, 0x28, 0x82, 0xe0, 0x48, 0x9f, 0x12, 0xfd, 0x79, 0x59, 0x78, 0x71,
 | 
						0x6f, 0xfa, 0xc7, 0x12, 0x35, 0xc6, 0x6f, 0x0e, 0xd7, 0xc0, 0xac, 0x6c, 0xe0, 0xd4, 0x73, 0x13,
 | 
				
			||||||
	0x64, 0xbd, 0x1c, 0xb6, 0x25, 0x5b, 0x9d, 0xfb, 0x2f, 0xe7, 0xc4, 0xd6, 0x91, 0xfe, 0x2b, 0x84,
 | 
						0xdc, 0x3f, 0x23, 0x0c, 0xc7, 0x75, 0xfd, 0x79, 0xff, 0x5a, 0x3a, 0xa5, 0x7b, 0xfb, 0x17, 0x71,
 | 
				
			||||||
	0x9a, 0xb3, 0x3e, 0x6b, 0x60, 0x53, 0xac, 0x7b, 0x4a, 0x69, 0x8f, 0x50, 0xcc, 0xc9, 0x9b, 0xd4,
 | 
						0xbc, 0xea, 0xc0, 0xfd, 0xcb, 0x0c, 0x19, 0xa7, 0xb7, 0x81, 0x9a, 0xaa, 0x46, 0x5b, 0xf7, 0xc4,
 | 
				
			||||||
	0xfb, 0x48, 0xce, 0x0e, 0x5a, 0xff, 0x48, 0x2f, 0xbc, 0x0b, 0xfe, 0x53, 0x4d, 0x2f, 0xe0, 0x21,
 | 
						0x1a, 0x3b, 0x03, 0xda, 0xaa, 0x39, 0x5e, 0x1d, 0x9f, 0xe7, 0x26, 0x0b, 0x4a, 0x71, 0xc1, 0x9c,
 | 
				
			||||||
	0x8e, 0xf5, 0xe9, 0x86, 0xb6, 0xbb, 0xe4, 0x2a, 0x0b, 0xf7, 0x45, 0xcd, 0x3a, 0x05, 0x66, 0x95,
 | 
						0x09, 0x68, 0xeb, 0x38, 0x3e, 0xeb, 0x0f, 0xc1, 0xda, 0xc0, 0xd6, 0x72, 0x96, 0x7f, 0xfb, 0xee,
 | 
				
			||||||
	0x0a, 0xf5, 0x34, 0x1b, 0xac, 0xe2, 0xac, 0xd9, 0x8e, 0x45, 0xb7, 0x4d, 0x5b, 0x42, 0xcd, 0x92,
 | 
						0x92, 0x52, 0x9c, 0xed, 0xde, 0x98, 0x8f, 0x0a, 0xd8, 0xe0, 0x79, 0x4f, 0x08, 0x09, 0x30, 0x41,
 | 
				
			||||||
	0xbb, 0x82, 0x6f, 0xe2, 0xe0, 0x1a, 0x98, 0xe5, 0x8c, 0xe3, 0x63, 0xa5, 0x47, 0x5e, 0xe0, 0x32,
 | 
						0x0c, 0xbf, 0x8a, 0xac, 0xf7, 0xb8, 0x7d, 0x54, 0xbd, 0x2f, 0xea, 0x6d, 0xb0, 0x20, 0x9d, 0x96,
 | 
				
			||||||
	0x98, 0xee, 0x04, 0x5c, 0x48, 0x98, 0x71, 0xfb, 0xc7, 0xbd, 0xcb, 0x59, 0x30, 0x2b, 0xa8, 0xe1,
 | 
						0xc3, 0x5c, 0xe4, 0x73, 0xf2, 0x79, 0x53, 0xbe, 0xf4, 0x43, 0x6e, 0xd3, 0xcf, 0x81, 0x36, 0x8c,
 | 
				
			||||||
	0x17, 0x0d, 0x2c, 0x0e, 0x65, 0x0d, 0xde, 0x1f, 0x65, 0xde, 0xc8, 0xa8, 0x1a, 0x0f, 0x26, 0x19,
 | 
						0x42, 0x0e, 0x50, 0x06, 0xcb, 0xa8, 0xe3, 0xac, 0xf9, 0xdc, 0x5b, 0x23, 0x55, 0x4e, 0x33, 0x6f,
 | 
				
			||||||
	0x95, 0x0f, 0xb1, 0x76, 0x3e, 0xfd, 0xf8, 0xf3, 0x6d, 0x6a, 0x0b, 0x6e, 0x22, 0x87, 0x16, 0xff,
 | 
						0x2e, 0xa1, 0xdb, 0x79, 0x70, 0x05, 0x4c, 0x33, 0xca, 0xd0, 0xa9, 0xe4, 0x11, 0x07, 0xb8, 0x08,
 | 
				
			||||||
	0x2d, 0x85, 0xa5, 0x4d, 0x69, 0xb3, 0x50, 0x33, 0x14, 0xbe, 0x4a, 0x35, 0xe5, 0x78, 0x57, 0xaa,
 | 
						0x26, 0x1b, 0x0e, 0xe3, 0x08, 0x53, 0x66, 0xfc, 0x78, 0xf0, 0x27, 0x0b, 0xa6, 0x79, 0x6b, 0xf8,
 | 
				
			||||||
	0x19, 0x91, 0xe5, 0x31, 0x6a, 0xe4, 0xdf, 0xa7, 0x29, 0x22, 0x9e, 0x7b, 0x23, 0x77, 0x8c, 0xf7,
 | 
						0x49, 0x01, 0x73, 0x7d, 0xea, 0x80, 0x7b, 0x83, 0x5e, 0xf7, 0x40, 0x71, 0xa9, 0xff, 0x8f, 0x13,
 | 
				
			||||||
	0xa6, 0x90, 0xf7, 0xf1, 0xde, 0x14, 0xf3, 0x7b, 0xab, 0x37, 0x52, 0x13, 0xfc, 0xae, 0x81, 0x95,
 | 
						0x2a, 0x06, 0xd1, 0x77, 0x3f, 0x7c, 0xff, 0xfd, 0x65, 0x62, 0x13, 0x6e, 0x18, 0x15, 0x92, 0xfc,
 | 
				
			||||||
	0x52, 0x52, 0x20, 0xaa, 0x20, 0xaa, 0x4a, 0xb6, 0xe1, 0x4c, 0x0e, 0x50, 0xfa, 0x1e, 0x0a, 0x7d,
 | 
						0x90, 0xf0, 0x95, 0x96, 0xc4, 0x9a, 0x39, 0x4d, 0x9f, 0x5c, 0x86, 0xd2, 0xa4, 0x05, 0x39, 0x94,
 | 
				
			||||||
	0xf7, 0xe0, 0x76, 0x49, 0xdf, 0x20, 0x80, 0x4d, 0x99, 0xcd, 0x26, 0x6d, 0xc1, 0x13, 0x30, 0x27,
 | 
						0x66, 0x80, 0xfa, 0x46, 0xd0, 0x88, 0xf7, 0x53, 0xe2, 0xa2, 0xec, 0xed, 0x46, 0xd4, 0x18, 0xbd,
 | 
				
			||||||
	0xbf, 0x76, 0x70, 0xbb, 0x82, 0xa9, 0xf0, 0xc1, 0x35, 0x76, 0x6e, 0x99, 0x52, 0x22, 0xb6, 0x84,
 | 
						0x9b, 0x84, 0x42, 0x47, 0xef, 0x26, 0xa9, 0xb8, 0x3b, 0x77, 0x23, 0x98, 0xe0, 0x57, 0x05, 0xfc,
 | 
				
			||||||
	0x88, 0x3a, 0x5c, 0x2f, 0x89, 0x90, 0xc7, 0xfd, 0x57, 0x17, 0xbf, 0xcd, 0xda, 0xc5, 0x95, 0xa9,
 | 
						0x93, 0xbc, 0xe7, 0x70, 0x7f, 0x8c, 0x2e, 0x5d, 0x25, 0xaa, 0xa5, 0x31, 0xa3, 0x25, 0xd6, 0x1e,
 | 
				
			||||||
	0x5d, 0x5e, 0x99, 0xda, 0xaf, 0x2b, 0x53, 0xfb, 0x7a, 0x6d, 0xd6, 0x2e, 0xaf, 0xcd, 0xda, 0xcf,
 | 
						0xc7, 0xda, 0x86, 0x5b, 0x23, 0xb1, 0x4a, 0x01, 0x6d, 0xc1, 0x6f, 0x0a, 0x58, 0x4a, 0x5d, 0x62,
 | 
				
			||||||
	0x6b, 0xb3, 0xf6, 0x1e, 0xd1, 0x80, 0x77, 0x52, 0xcf, 0xf6, 0x59, 0x88, 0x1c, 0x7a, 0x8c, 0xbd,
 | 
						0x68, 0x0c, 0xe9, 0x37, 0x4c, 0x74, 0x6a, 0x65, 0xfc, 0x04, 0xc9, 0xb8, 0xcf, 0x19, 0xff, 0x83,
 | 
				
			||||||
	0x04, 0x39, 0xb4, 0xe9, 0x77, 0x70, 0x10, 0xa1, 0xd3, 0xe2, 0x3e, 0x7e, 0x16, 0x93, 0xc4, 0x9b,
 | 
						0x3b, 0x29, 0xc6, 0xae, 0x36, 0x4a, 0x42, 0x36, 0x25, 0x52, 0x85, 0x67, 0x20, 0x2b, 0x7e, 0x1d,
 | 
				
			||||||
	0x13, 0x3f, 0x12, 0x8f, 0xfe, 0x06, 0x00, 0x00, 0xff, 0xff, 0x1f, 0x8c, 0xd5, 0xcf, 0x03, 0x07,
 | 
						0x70, 0x67, 0x48, 0xa7, 0xc4, 0xdf, 0x4b, 0xdd, 0xbd, 0x23, 0x4a, 0x42, 0x6c, 0x72, 0x88, 0x3c,
 | 
				
			||||||
	0x00, 0x00,
 | 
						0x5c, 0x4d, 0x41, 0x88, 0xc7, 0xc3, 0x17, 0x97, 0xbf, 0xb4, 0xcc, 0xe5, 0xb5, 0xa6, 0x5c, 0x5d,
 | 
				
			||||||
 | 
						0x6b, 0xca, 0xcf, 0x6b, 0x4d, 0xf9, 0x7c, 0xa3, 0x65, 0xae, 0x6e, 0xb4, 0xcc, 0x8f, 0x1b, 0x2d,
 | 
				
			||||||
 | 
						0xf3, 0xd6, 0x20, 0x0e, 0x6b, 0x44, 0x56, 0xd9, 0xa6, 0xae, 0x51, 0x21, 0xa7, 0xc8, 0x0a, 0x8d,
 | 
				
			||||||
 | 
						0x0a, 0x29, 0xd9, 0x0d, 0xe4, 0x78, 0xc6, 0x79, 0xb2, 0x1e, 0x6b, 0xfb, 0x38, 0xb4, 0xb2, 0xfc,
 | 
				
			||||||
 | 
						0x8f, 0xfb, 0xe0, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf0, 0x50, 0x33, 0x8a, 0x50, 0x08, 0x00,
 | 
				
			||||||
 | 
						0x00,
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Reference imports to suppress errors if they are not otherwise used.
 | 
					// Reference imports to suppress errors if they are not otherwise used.
 | 
				
			||||||
@ -482,6 +565,7 @@ type QueryClient interface {
 | 
				
			|||||||
	EpochNumber(ctx context.Context, in *QueryEpochNumberRequest, opts ...grpc.CallOption) (*QueryEpochNumberResponse, error)
 | 
						EpochNumber(ctx context.Context, in *QueryEpochNumberRequest, opts ...grpc.CallOption) (*QueryEpochNumberResponse, error)
 | 
				
			||||||
	QuorumCount(ctx context.Context, in *QueryQuorumCountRequest, opts ...grpc.CallOption) (*QueryQuorumCountResponse, error)
 | 
						QuorumCount(ctx context.Context, in *QueryQuorumCountRequest, opts ...grpc.CallOption) (*QueryQuorumCountResponse, error)
 | 
				
			||||||
	EpochQuorum(ctx context.Context, in *QueryEpochQuorumRequest, opts ...grpc.CallOption) (*QueryEpochQuorumResponse, error)
 | 
						EpochQuorum(ctx context.Context, in *QueryEpochQuorumRequest, opts ...grpc.CallOption) (*QueryEpochQuorumResponse, error)
 | 
				
			||||||
 | 
						EpochQuorumRow(ctx context.Context, in *QueryEpochQuorumRowRequest, opts ...grpc.CallOption) (*QueryEpochQuorumRowResponse, error)
 | 
				
			||||||
	AggregatePubkeyG1(ctx context.Context, in *QueryAggregatePubkeyG1Request, opts ...grpc.CallOption) (*QueryAggregatePubkeyG1Response, error)
 | 
						AggregatePubkeyG1(ctx context.Context, in *QueryAggregatePubkeyG1Request, opts ...grpc.CallOption) (*QueryAggregatePubkeyG1Response, error)
 | 
				
			||||||
	Signer(ctx context.Context, in *QuerySignerRequest, opts ...grpc.CallOption) (*QuerySignerResponse, error)
 | 
						Signer(ctx context.Context, in *QuerySignerRequest, opts ...grpc.CallOption) (*QuerySignerResponse, error)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -521,6 +605,15 @@ func (c *queryClient) EpochQuorum(ctx context.Context, in *QueryEpochQuorumReque
 | 
				
			|||||||
	return out, nil
 | 
						return out, nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (c *queryClient) EpochQuorumRow(ctx context.Context, in *QueryEpochQuorumRowRequest, opts ...grpc.CallOption) (*QueryEpochQuorumRowResponse, error) {
 | 
				
			||||||
 | 
						out := new(QueryEpochQuorumRowResponse)
 | 
				
			||||||
 | 
						err := c.cc.Invoke(ctx, "/zgc.dasigners.v1.Query/EpochQuorumRow", in, out, opts...)
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return nil, err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return out, nil
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (c *queryClient) AggregatePubkeyG1(ctx context.Context, in *QueryAggregatePubkeyG1Request, opts ...grpc.CallOption) (*QueryAggregatePubkeyG1Response, error) {
 | 
					func (c *queryClient) AggregatePubkeyG1(ctx context.Context, in *QueryAggregatePubkeyG1Request, opts ...grpc.CallOption) (*QueryAggregatePubkeyG1Response, error) {
 | 
				
			||||||
	out := new(QueryAggregatePubkeyG1Response)
 | 
						out := new(QueryAggregatePubkeyG1Response)
 | 
				
			||||||
	err := c.cc.Invoke(ctx, "/zgc.dasigners.v1.Query/AggregatePubkeyG1", in, out, opts...)
 | 
						err := c.cc.Invoke(ctx, "/zgc.dasigners.v1.Query/AggregatePubkeyG1", in, out, opts...)
 | 
				
			||||||
@ -544,6 +637,7 @@ type QueryServer interface {
 | 
				
			|||||||
	EpochNumber(context.Context, *QueryEpochNumberRequest) (*QueryEpochNumberResponse, error)
 | 
						EpochNumber(context.Context, *QueryEpochNumberRequest) (*QueryEpochNumberResponse, error)
 | 
				
			||||||
	QuorumCount(context.Context, *QueryQuorumCountRequest) (*QueryQuorumCountResponse, error)
 | 
						QuorumCount(context.Context, *QueryQuorumCountRequest) (*QueryQuorumCountResponse, error)
 | 
				
			||||||
	EpochQuorum(context.Context, *QueryEpochQuorumRequest) (*QueryEpochQuorumResponse, error)
 | 
						EpochQuorum(context.Context, *QueryEpochQuorumRequest) (*QueryEpochQuorumResponse, error)
 | 
				
			||||||
 | 
						EpochQuorumRow(context.Context, *QueryEpochQuorumRowRequest) (*QueryEpochQuorumRowResponse, error)
 | 
				
			||||||
	AggregatePubkeyG1(context.Context, *QueryAggregatePubkeyG1Request) (*QueryAggregatePubkeyG1Response, error)
 | 
						AggregatePubkeyG1(context.Context, *QueryAggregatePubkeyG1Request) (*QueryAggregatePubkeyG1Response, error)
 | 
				
			||||||
	Signer(context.Context, *QuerySignerRequest) (*QuerySignerResponse, error)
 | 
						Signer(context.Context, *QuerySignerRequest) (*QuerySignerResponse, error)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -561,6 +655,9 @@ func (*UnimplementedQueryServer) QuorumCount(ctx context.Context, req *QueryQuor
 | 
				
			|||||||
func (*UnimplementedQueryServer) EpochQuorum(ctx context.Context, req *QueryEpochQuorumRequest) (*QueryEpochQuorumResponse, error) {
 | 
					func (*UnimplementedQueryServer) EpochQuorum(ctx context.Context, req *QueryEpochQuorumRequest) (*QueryEpochQuorumResponse, error) {
 | 
				
			||||||
	return nil, status.Errorf(codes.Unimplemented, "method EpochQuorum not implemented")
 | 
						return nil, status.Errorf(codes.Unimplemented, "method EpochQuorum not implemented")
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					func (*UnimplementedQueryServer) EpochQuorumRow(ctx context.Context, req *QueryEpochQuorumRowRequest) (*QueryEpochQuorumRowResponse, error) {
 | 
				
			||||||
 | 
						return nil, status.Errorf(codes.Unimplemented, "method EpochQuorumRow not implemented")
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
func (*UnimplementedQueryServer) AggregatePubkeyG1(ctx context.Context, req *QueryAggregatePubkeyG1Request) (*QueryAggregatePubkeyG1Response, error) {
 | 
					func (*UnimplementedQueryServer) AggregatePubkeyG1(ctx context.Context, req *QueryAggregatePubkeyG1Request) (*QueryAggregatePubkeyG1Response, error) {
 | 
				
			||||||
	return nil, status.Errorf(codes.Unimplemented, "method AggregatePubkeyG1 not implemented")
 | 
						return nil, status.Errorf(codes.Unimplemented, "method AggregatePubkeyG1 not implemented")
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -626,6 +723,24 @@ func _Query_EpochQuorum_Handler(srv interface{}, ctx context.Context, dec func(i
 | 
				
			|||||||
	return interceptor(ctx, in, info, handler)
 | 
						return interceptor(ctx, in, info, handler)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func _Query_EpochQuorumRow_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 | 
				
			||||||
 | 
						in := new(QueryEpochQuorumRowRequest)
 | 
				
			||||||
 | 
						if err := dec(in); err != nil {
 | 
				
			||||||
 | 
							return nil, err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if interceptor == nil {
 | 
				
			||||||
 | 
							return srv.(QueryServer).EpochQuorumRow(ctx, in)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						info := &grpc.UnaryServerInfo{
 | 
				
			||||||
 | 
							Server:     srv,
 | 
				
			||||||
 | 
							FullMethod: "/zgc.dasigners.v1.Query/EpochQuorumRow",
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 | 
				
			||||||
 | 
							return srv.(QueryServer).EpochQuorumRow(ctx, req.(*QueryEpochQuorumRowRequest))
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return interceptor(ctx, in, info, handler)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func _Query_AggregatePubkeyG1_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 | 
					func _Query_AggregatePubkeyG1_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 | 
				
			||||||
	in := new(QueryAggregatePubkeyG1Request)
 | 
						in := new(QueryAggregatePubkeyG1Request)
 | 
				
			||||||
	if err := dec(in); err != nil {
 | 
						if err := dec(in); err != nil {
 | 
				
			||||||
@ -678,6 +793,10 @@ var _Query_serviceDesc = grpc.ServiceDesc{
 | 
				
			|||||||
			MethodName: "EpochQuorum",
 | 
								MethodName: "EpochQuorum",
 | 
				
			||||||
			Handler:    _Query_EpochQuorum_Handler,
 | 
								Handler:    _Query_EpochQuorum_Handler,
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								MethodName: "EpochQuorumRow",
 | 
				
			||||||
 | 
								Handler:    _Query_EpochQuorumRow_Handler,
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			MethodName: "AggregatePubkeyG1",
 | 
								MethodName: "AggregatePubkeyG1",
 | 
				
			||||||
			Handler:    _Query_AggregatePubkeyG1_Handler,
 | 
								Handler:    _Query_AggregatePubkeyG1_Handler,
 | 
				
			||||||
@ -935,6 +1054,74 @@ func (m *QueryEpochQuorumResponse) MarshalToSizedBuffer(dAtA []byte) (int, error
 | 
				
			|||||||
	return len(dAtA) - i, nil
 | 
						return len(dAtA) - i, nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (m *QueryEpochQuorumRowRequest) 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 *QueryEpochQuorumRowRequest) MarshalTo(dAtA []byte) (int, error) {
 | 
				
			||||||
 | 
						size := m.Size()
 | 
				
			||||||
 | 
						return m.MarshalToSizedBuffer(dAtA[:size])
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (m *QueryEpochQuorumRowRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
 | 
				
			||||||
 | 
						i := len(dAtA)
 | 
				
			||||||
 | 
						_ = i
 | 
				
			||||||
 | 
						var l int
 | 
				
			||||||
 | 
						_ = l
 | 
				
			||||||
 | 
						if m.RowIndex != 0 {
 | 
				
			||||||
 | 
							i = encodeVarintQuery(dAtA, i, uint64(m.RowIndex))
 | 
				
			||||||
 | 
							i--
 | 
				
			||||||
 | 
							dAtA[i] = 0x18
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if m.QuorumId != 0 {
 | 
				
			||||||
 | 
							i = encodeVarintQuery(dAtA, i, uint64(m.QuorumId))
 | 
				
			||||||
 | 
							i--
 | 
				
			||||||
 | 
							dAtA[i] = 0x10
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if m.EpochNumber != 0 {
 | 
				
			||||||
 | 
							i = encodeVarintQuery(dAtA, i, uint64(m.EpochNumber))
 | 
				
			||||||
 | 
							i--
 | 
				
			||||||
 | 
							dAtA[i] = 0x8
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return len(dAtA) - i, nil
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (m *QueryEpochQuorumRowResponse) 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 *QueryEpochQuorumRowResponse) MarshalTo(dAtA []byte) (int, error) {
 | 
				
			||||||
 | 
						size := m.Size()
 | 
				
			||||||
 | 
						return m.MarshalToSizedBuffer(dAtA[:size])
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (m *QueryEpochQuorumRowResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {
 | 
				
			||||||
 | 
						i := len(dAtA)
 | 
				
			||||||
 | 
						_ = i
 | 
				
			||||||
 | 
						var l int
 | 
				
			||||||
 | 
						_ = l
 | 
				
			||||||
 | 
						if len(m.Signer) > 0 {
 | 
				
			||||||
 | 
							i -= len(m.Signer)
 | 
				
			||||||
 | 
							copy(dAtA[i:], m.Signer)
 | 
				
			||||||
 | 
							i = encodeVarintQuery(dAtA, i, uint64(len(m.Signer)))
 | 
				
			||||||
 | 
							i--
 | 
				
			||||||
 | 
							dAtA[i] = 0xa
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return len(dAtA) - i, nil
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (m *QueryAggregatePubkeyG1Request) Marshal() (dAtA []byte, err error) {
 | 
					func (m *QueryAggregatePubkeyG1Request) Marshal() (dAtA []byte, err error) {
 | 
				
			||||||
	size := m.Size()
 | 
						size := m.Size()
 | 
				
			||||||
	dAtA = make([]byte, size)
 | 
						dAtA = make([]byte, size)
 | 
				
			||||||
@ -1129,6 +1316,37 @@ func (m *QueryEpochQuorumResponse) Size() (n int) {
 | 
				
			|||||||
	return n
 | 
						return n
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (m *QueryEpochQuorumRowRequest) Size() (n int) {
 | 
				
			||||||
 | 
						if m == nil {
 | 
				
			||||||
 | 
							return 0
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						var l int
 | 
				
			||||||
 | 
						_ = l
 | 
				
			||||||
 | 
						if m.EpochNumber != 0 {
 | 
				
			||||||
 | 
							n += 1 + sovQuery(uint64(m.EpochNumber))
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if m.QuorumId != 0 {
 | 
				
			||||||
 | 
							n += 1 + sovQuery(uint64(m.QuorumId))
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if m.RowIndex != 0 {
 | 
				
			||||||
 | 
							n += 1 + sovQuery(uint64(m.RowIndex))
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return n
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (m *QueryEpochQuorumRowResponse) Size() (n int) {
 | 
				
			||||||
 | 
						if m == nil {
 | 
				
			||||||
 | 
							return 0
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						var l int
 | 
				
			||||||
 | 
						_ = l
 | 
				
			||||||
 | 
						l = len(m.Signer)
 | 
				
			||||||
 | 
						if l > 0 {
 | 
				
			||||||
 | 
							n += 1 + l + sovQuery(uint64(l))
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return n
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (m *QueryAggregatePubkeyG1Request) Size() (n int) {
 | 
					func (m *QueryAggregatePubkeyG1Request) Size() (n int) {
 | 
				
			||||||
	if m == nil {
 | 
						if m == nil {
 | 
				
			||||||
		return 0
 | 
							return 0
 | 
				
			||||||
@ -1770,6 +1988,195 @@ func (m *QueryEpochQuorumResponse) Unmarshal(dAtA []byte) error {
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	return nil
 | 
						return nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					func (m *QueryEpochQuorumRowRequest) 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: QueryEpochQuorumRowRequest: wiretype end group for non-group")
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							if fieldNum <= 0 {
 | 
				
			||||||
 | 
								return fmt.Errorf("proto: QueryEpochQuorumRowRequest: illegal tag %d (wire type %d)", fieldNum, wire)
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							switch fieldNum {
 | 
				
			||||||
 | 
							case 1:
 | 
				
			||||||
 | 
								if wireType != 0 {
 | 
				
			||||||
 | 
									return fmt.Errorf("proto: wrong wireType = %d for field EpochNumber", wireType)
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								m.EpochNumber = 0
 | 
				
			||||||
 | 
								for shift := uint(0); ; shift += 7 {
 | 
				
			||||||
 | 
									if shift >= 64 {
 | 
				
			||||||
 | 
										return ErrIntOverflowQuery
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
									if iNdEx >= l {
 | 
				
			||||||
 | 
										return io.ErrUnexpectedEOF
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
									b := dAtA[iNdEx]
 | 
				
			||||||
 | 
									iNdEx++
 | 
				
			||||||
 | 
									m.EpochNumber |= uint64(b&0x7F) << shift
 | 
				
			||||||
 | 
									if b < 0x80 {
 | 
				
			||||||
 | 
										break
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							case 2:
 | 
				
			||||||
 | 
								if wireType != 0 {
 | 
				
			||||||
 | 
									return fmt.Errorf("proto: wrong wireType = %d for field QuorumId", wireType)
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								m.QuorumId = 0
 | 
				
			||||||
 | 
								for shift := uint(0); ; shift += 7 {
 | 
				
			||||||
 | 
									if shift >= 64 {
 | 
				
			||||||
 | 
										return ErrIntOverflowQuery
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
									if iNdEx >= l {
 | 
				
			||||||
 | 
										return io.ErrUnexpectedEOF
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
									b := dAtA[iNdEx]
 | 
				
			||||||
 | 
									iNdEx++
 | 
				
			||||||
 | 
									m.QuorumId |= uint64(b&0x7F) << shift
 | 
				
			||||||
 | 
									if b < 0x80 {
 | 
				
			||||||
 | 
										break
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							case 3:
 | 
				
			||||||
 | 
								if wireType != 0 {
 | 
				
			||||||
 | 
									return fmt.Errorf("proto: wrong wireType = %d for field RowIndex", wireType)
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								m.RowIndex = 0
 | 
				
			||||||
 | 
								for shift := uint(0); ; shift += 7 {
 | 
				
			||||||
 | 
									if shift >= 64 {
 | 
				
			||||||
 | 
										return ErrIntOverflowQuery
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
									if iNdEx >= l {
 | 
				
			||||||
 | 
										return io.ErrUnexpectedEOF
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
									b := dAtA[iNdEx]
 | 
				
			||||||
 | 
									iNdEx++
 | 
				
			||||||
 | 
									m.RowIndex |= uint32(b&0x7F) << shift
 | 
				
			||||||
 | 
									if b < 0x80 {
 | 
				
			||||||
 | 
										break
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							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 *QueryEpochQuorumRowResponse) 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: QueryEpochQuorumRowResponse: wiretype end group for non-group")
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							if fieldNum <= 0 {
 | 
				
			||||||
 | 
								return fmt.Errorf("proto: QueryEpochQuorumRowResponse: illegal tag %d (wire type %d)", fieldNum, wire)
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							switch fieldNum {
 | 
				
			||||||
 | 
							case 1:
 | 
				
			||||||
 | 
								if wireType != 2 {
 | 
				
			||||||
 | 
									return fmt.Errorf("proto: wrong wireType = %d for field Signer", wireType)
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								var stringLen uint64
 | 
				
			||||||
 | 
								for shift := uint(0); ; shift += 7 {
 | 
				
			||||||
 | 
									if shift >= 64 {
 | 
				
			||||||
 | 
										return ErrIntOverflowQuery
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
									if iNdEx >= l {
 | 
				
			||||||
 | 
										return io.ErrUnexpectedEOF
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
									b := dAtA[iNdEx]
 | 
				
			||||||
 | 
									iNdEx++
 | 
				
			||||||
 | 
									stringLen |= uint64(b&0x7F) << shift
 | 
				
			||||||
 | 
									if b < 0x80 {
 | 
				
			||||||
 | 
										break
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								intStringLen := int(stringLen)
 | 
				
			||||||
 | 
								if intStringLen < 0 {
 | 
				
			||||||
 | 
									return ErrInvalidLengthQuery
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								postIndex := iNdEx + intStringLen
 | 
				
			||||||
 | 
								if postIndex < 0 {
 | 
				
			||||||
 | 
									return ErrInvalidLengthQuery
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								if postIndex > l {
 | 
				
			||||||
 | 
									return io.ErrUnexpectedEOF
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								m.Signer = string(dAtA[iNdEx:postIndex])
 | 
				
			||||||
 | 
								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 *QueryAggregatePubkeyG1Request) Unmarshal(dAtA []byte) error {
 | 
					func (m *QueryAggregatePubkeyG1Request) Unmarshal(dAtA []byte) error {
 | 
				
			||||||
	l := len(dAtA)
 | 
						l := len(dAtA)
 | 
				
			||||||
	iNdEx := 0
 | 
						iNdEx := 0
 | 
				
			||||||
 | 
				
			|||||||
@ -123,6 +123,42 @@ func local_request_Query_EpochQuorum_0(ctx context.Context, marshaler runtime.Ma
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					var (
 | 
				
			||||||
 | 
						filter_Query_EpochQuorumRow_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)}
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func request_Query_EpochQuorumRow_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
 | 
				
			||||||
 | 
						var protoReq QueryEpochQuorumRowRequest
 | 
				
			||||||
 | 
						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_EpochQuorumRow_0); err != nil {
 | 
				
			||||||
 | 
							return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						msg, err := client.EpochQuorumRow(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
 | 
				
			||||||
 | 
						return msg, metadata, err
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func local_request_Query_EpochQuorumRow_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
 | 
				
			||||||
 | 
						var protoReq QueryEpochQuorumRowRequest
 | 
				
			||||||
 | 
						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_EpochQuorumRow_0); err != nil {
 | 
				
			||||||
 | 
							return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						msg, err := server.EpochQuorumRow(ctx, &protoReq)
 | 
				
			||||||
 | 
						return msg, metadata, err
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
var (
 | 
					var (
 | 
				
			||||||
	filter_Query_AggregatePubkeyG1_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)}
 | 
						filter_Query_AggregatePubkeyG1_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)}
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
@ -270,6 +306,29 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	})
 | 
						})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						mux.Handle("GET", pattern_Query_EpochQuorumRow_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_EpochQuorumRow_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_EpochQuorumRow_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	mux.Handle("GET", pattern_Query_AggregatePubkeyG1_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
 | 
						mux.Handle("GET", pattern_Query_AggregatePubkeyG1_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
 | 
				
			||||||
		ctx, cancel := context.WithCancel(req.Context())
 | 
							ctx, cancel := context.WithCancel(req.Context())
 | 
				
			||||||
		defer cancel()
 | 
							defer cancel()
 | 
				
			||||||
@ -417,6 +476,26 @@ func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, clie
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	})
 | 
						})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						mux.Handle("GET", pattern_Query_EpochQuorumRow_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_EpochQuorumRow_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_EpochQuorumRow_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	mux.Handle("GET", pattern_Query_AggregatePubkeyG1_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
 | 
						mux.Handle("GET", pattern_Query_AggregatePubkeyG1_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
 | 
				
			||||||
		ctx, cancel := context.WithCancel(req.Context())
 | 
							ctx, cancel := context.WithCancel(req.Context())
 | 
				
			||||||
		defer cancel()
 | 
							defer cancel()
 | 
				
			||||||
@ -467,6 +546,8 @@ var (
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	pattern_Query_EpochQuorum_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"0g", "dasigners", "v1", "epoch-quorum"}, "", runtime.AssumeColonVerbOpt(false)))
 | 
						pattern_Query_EpochQuorum_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"0g", "dasigners", "v1", "epoch-quorum"}, "", runtime.AssumeColonVerbOpt(false)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						pattern_Query_EpochQuorumRow_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"0g", "dasigners", "v1", "epoch-quorum-row"}, "", runtime.AssumeColonVerbOpt(false)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	pattern_Query_AggregatePubkeyG1_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"0g", "dasigners", "v1", "aggregate-pubkey-g1"}, "", runtime.AssumeColonVerbOpt(false)))
 | 
						pattern_Query_AggregatePubkeyG1_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"0g", "dasigners", "v1", "aggregate-pubkey-g1"}, "", runtime.AssumeColonVerbOpt(false)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	pattern_Query_Signer_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"0g", "dasigners", "v1", "signer"}, "", runtime.AssumeColonVerbOpt(false)))
 | 
						pattern_Query_Signer_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"0g", "dasigners", "v1", "signer"}, "", runtime.AssumeColonVerbOpt(false)))
 | 
				
			||||||
@ -479,6 +560,8 @@ var (
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	forward_Query_EpochQuorum_0 = runtime.ForwardResponseMessage
 | 
						forward_Query_EpochQuorum_0 = runtime.ForwardResponseMessage
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						forward_Query_EpochQuorumRow_0 = runtime.ForwardResponseMessage
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	forward_Query_AggregatePubkeyG1_0 = runtime.ForwardResponseMessage
 | 
						forward_Query_AggregatePubkeyG1_0 = runtime.ForwardResponseMessage
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	forward_Query_Signer_0 = runtime.ForwardResponseMessage
 | 
						forward_Query_Signer_0 = runtime.ForwardResponseMessage
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user