diff --git a/types/go.mod b/types/go.mod index 51f4f7ef26..d941bbfb2e 100644 --- a/types/go.mod +++ b/types/go.mod @@ -4,6 +4,7 @@ go 1.21 require ( cosmossdk.io/api v0.3.1 + github.com/cosmos/cosmos-sdk/api v0.1.0 cosmossdk.io/errors v1.0.1 cosmossdk.io/math v1.3.0 github.com/cockroachdb/apd/v2 v2.0.2 diff --git a/types/ormutil/compatability.go b/types/ormutil/compatability.go index e950160651..d3153a8870 100644 --- a/types/ormutil/compatability.go +++ b/types/ormutil/compatability.go @@ -5,19 +5,42 @@ import ( "google.golang.org/protobuf/proto" queryv1beta1 "cosmossdk.io/api/cosmos/base/query/v1beta1" + queryapi "github.com/cosmos/cosmos-sdk/api/cosmos/base/query/v1beta1" + "github.com/cosmos/cosmos-sdk/orm/model/ormlist" "github.com/cosmos/cosmos-sdk/types/query" ) +// PageReqToCosmosApiLegacy is a temporal adapter for ORM v-alpha-* +func PageReqToCosmosApiLegacy(from *query.PageRequest) *queryapi.PageRequest { + if from == nil { + return &queryapi.PageRequest{Limit: query.DefaultLimit} + } + return &queryapi.PageRequest{ + Key: from.Key, Offset: from.Offset, Limit: from.Limit, CountTotal: from.CountTotal, Reverse: from.Reverse} +} + +func PageReqToOrmPaginate(pg *query.PageRequest) ormlist.Option { + return ormlist.Paginate(PageReqToCosmosApiLegacy(pg)) +} + +func PageResToCosmosTypes(from *queryapi.PageResponse) *query.PageResponse { + if from == nil { + return nil + } + return &query.PageResponse{NextKey: from.NextKey, Total: from.Total} +} + +// TODO: probably we can remove func GogoPageReqToPulsarPageReq(from *query.PageRequest) (*queryv1beta1.PageRequest, error) { if from == nil { return &queryv1beta1.PageRequest{Limit: query.DefaultLimit}, nil } - to := &queryv1beta1.PageRequest{} - err := GogoToPulsarSlow(from, to) - return to, err + return &queryv1beta1.PageRequest{ + Key: from.Key, Offset: from.Offset, Limit: from.Limit, CountTotal: from.CountTotal, Reverse: from.Reverse}, nil } +// TODO: probably we can remove func PulsarPageResToGogoPageRes(from *queryv1beta1.PageResponse) (*query.PageResponse, error) { if from == nil { return nil, nil diff --git a/x/data/module/module.go b/x/data/module/module.go index fdb0d22a83..5955718b92 100644 --- a/x/data/module/module.go +++ b/x/data/module/module.go @@ -3,7 +3,6 @@ package module import ( "context" "encoding/json" - "math/rand" "github.com/gorilla/mux" "github.com/grpc-ecosystem/grpc-gateway/runtime" @@ -163,11 +162,6 @@ func (Module) ProposalContents(_ module.SimulationState) []simtypes.WeightedProp return nil } -// RandomizedParams creates randomized data param changes for the simulator. -func (Module) RandomizedParams(_ *rand.Rand) []simtypes.ParamChange { - return nil -} - // RegisterStoreDecoder registers a decoder for data module's types func (Module) RegisterStoreDecoder(_ sdk.StoreDecoderRegistry) { } diff --git a/x/data/server/query_attestations_by_attestor.go b/x/data/server/query_attestations_by_attestor.go index 5e758a28ea..28d46a01e2 100644 --- a/x/data/server/query_attestations_by_attestor.go +++ b/x/data/server/query_attestations_by_attestor.go @@ -3,7 +3,6 @@ package server import ( "context" - "github.com/cosmos/cosmos-sdk/orm/model/ormlist" sdk "github.com/cosmos/cosmos-sdk/types" api "github.com/regen-network/regen-ledger/api/v2/regen/data/v1" @@ -24,15 +23,10 @@ func (s serverImpl) AttestationsByAttestor(ctx context.Context, request *data.Qu return nil, regenerrors.ErrInvalidArgument.Wrapf("attestor: %s", err.Error()) } - pg, err := ormutil.GogoPageReqToPulsarPageReq(request.Pagination) - if err != nil { - return nil, regenerrors.ErrInvalidArgument.Wrap(err.Error()) - } - it, err := s.stateStore.DataAttestorTable().List( ctx, api.DataAttestorAttestorIndexKey{}.WithAttestor(addr), - ormlist.Paginate(pg), + ormutil.PageReqToOrmPaginate(request.Pagination), ) if err != nil { return nil, err @@ -58,13 +52,8 @@ func (s serverImpl) AttestationsByAttestor(ctx context.Context, request *data.Qu }) } - pageRes, err := ormutil.PulsarPageResToGogoPageRes(it.PageResponse()) - if err != nil { - return nil, regenerrors.ErrInternal.Wrap(err.Error()) - } - return &data.QueryAttestationsByAttestorResponse{ Attestations: attestations, - Pagination: pageRes, + Pagination: ormutil.PageResToCosmosTypes(it.PageResponse()), }, nil } diff --git a/x/data/server/query_attestations_by_hash.go b/x/data/server/query_attestations_by_hash.go index dc84a7723c..c0d97def44 100644 --- a/x/data/server/query_attestations_by_hash.go +++ b/x/data/server/query_attestations_by_hash.go @@ -3,7 +3,6 @@ package server import ( "context" - "github.com/cosmos/cosmos-sdk/orm/model/ormlist" sdk "github.com/cosmos/cosmos-sdk/types" api "github.com/regen-network/regen-ledger/api/v2/regen/data/v1" @@ -29,15 +28,10 @@ func (s serverImpl) AttestationsByHash(ctx context.Context, request *data.QueryA return nil, regenerrors.ErrNotFound.Wrapf("data record with IRI: %s", iri) } - pg, err := ormutil.GogoPageReqToPulsarPageReq(request.Pagination) - if err != nil { - return nil, regenerrors.ErrInvalidArgument.Wrap(err.Error()) - } - it, err := s.stateStore.DataAttestorTable().List( ctx, api.DataAttestorIdAttestorIndexKey{}.WithId(dataID.Id), - ormlist.Paginate(pg), + ormutil.PageReqToOrmPaginate(request.Pagination), ) if err != nil { return nil, err @@ -58,13 +52,8 @@ func (s serverImpl) AttestationsByHash(ctx context.Context, request *data.QueryA }) } - pageRes, err := ormutil.PulsarPageResToGogoPageRes(it.PageResponse()) - if err != nil { - return nil, regenerrors.ErrInternal.Wrap(err.Error()) - } - return &data.QueryAttestationsByHashResponse{ Attestations: attestations, - Pagination: pageRes, + Pagination: ormutil.PageResToCosmosTypes(it.PageResponse()), }, nil } diff --git a/x/data/server/query_attestations_by_iri.go b/x/data/server/query_attestations_by_iri.go index 52a956c88d..67f4271d97 100644 --- a/x/data/server/query_attestations_by_iri.go +++ b/x/data/server/query_attestations_by_iri.go @@ -3,7 +3,6 @@ package server import ( "context" - "github.com/cosmos/cosmos-sdk/orm/model/ormlist" sdk "github.com/cosmos/cosmos-sdk/types" api "github.com/regen-network/regen-ledger/api/v2/regen/data/v1" @@ -30,15 +29,10 @@ func (s serverImpl) AttestationsByIRI(ctx context.Context, request *data.QueryAt return nil, regenerrors.ErrNotFound.Wrapf("data record with IRI: %s", request.Iri) } - pg, err := ormutil.GogoPageReqToPulsarPageReq(request.Pagination) - if err != nil { - return nil, regenerrors.ErrInvalidArgument.Wrap(err.Error()) - } - it, err := s.stateStore.DataAttestorTable().List( ctx, api.DataAttestorIdAttestorIndexKey{}.WithId(dataID.Id), - ormlist.Paginate(pg), + ormutil.PageReqToOrmPaginate(request.Pagination), ) if err != nil { return nil, err @@ -59,13 +53,8 @@ func (s serverImpl) AttestationsByIRI(ctx context.Context, request *data.QueryAt }) } - pageRes, err := ormutil.PulsarPageResToGogoPageRes(it.PageResponse()) - if err != nil { - return nil, regenerrors.ErrInternal.Wrap(err.Error()) - } - return &data.QueryAttestationsByIRIResponse{ Attestations: attestations, - Pagination: pageRes, + Pagination: ormutil.PageResToCosmosTypes(it.PageResponse()), }, nil } diff --git a/x/data/server/query_resolvers_by_hash.go b/x/data/server/query_resolvers_by_hash.go index 09575a4647..13c77106e2 100644 --- a/x/data/server/query_resolvers_by_hash.go +++ b/x/data/server/query_resolvers_by_hash.go @@ -3,7 +3,6 @@ package server import ( "context" - "github.com/cosmos/cosmos-sdk/orm/model/ormlist" sdk "github.com/cosmos/cosmos-sdk/types" api "github.com/regen-network/regen-ledger/api/v2/regen/data/v1" @@ -28,15 +27,10 @@ func (s serverImpl) ResolversByHash(ctx context.Context, request *data.QueryReso return nil, regenerrors.ErrNotFound.Wrap("data record with content hash") } - pg, err := ormutil.GogoPageReqToPulsarPageReq(request.Pagination) - if err != nil { - return nil, regenerrors.ErrInvalidArgument.Wrap(err.Error()) - } - it, err := s.stateStore.DataResolverTable().List( ctx, api.DataResolverPrimaryKey{}.WithId(dataID.Id), - ormlist.Paginate(pg), + ormutil.PageReqToOrmPaginate(request.Pagination), ) if err != nil { return nil, regenerrors.ErrInternal.Wrap(err.Error()) @@ -63,11 +57,7 @@ func (s serverImpl) ResolversByHash(ctx context.Context, request *data.QueryReso Manager: manager, }) } - - res.Pagination, err = ormutil.PulsarPageResToGogoPageRes(it.PageResponse()) - if err != nil { - return nil, regenerrors.ErrInternal.Wrap(err.Error()) - } + res.Pagination = ormutil.PageResToCosmosTypes(it.PageResponse()) return res, nil } diff --git a/x/data/server/query_resolvers_by_iri.go b/x/data/server/query_resolvers_by_iri.go index b69058dc40..fa04defda9 100644 --- a/x/data/server/query_resolvers_by_iri.go +++ b/x/data/server/query_resolvers_by_iri.go @@ -3,7 +3,6 @@ package server import ( "context" - "github.com/cosmos/cosmos-sdk/orm/model/ormlist" sdk "github.com/cosmos/cosmos-sdk/types" api "github.com/regen-network/regen-ledger/api/v2/regen/data/v1" @@ -29,15 +28,10 @@ func (s serverImpl) ResolversByIRI(ctx context.Context, request *data.QueryResol return nil, regenerrors.ErrNotFound.Wrapf("data record with IRI: %s", request.Iri) } - pg, err := ormutil.GogoPageReqToPulsarPageReq(request.Pagination) - if err != nil { - return nil, regenerrors.ErrInvalidArgument.Wrap(err.Error()) - } - it, err := s.stateStore.DataResolverTable().List( ctx, api.DataResolverPrimaryKey{}.WithId(dataID.Id), - ormlist.Paginate(pg), + ormutil.PageReqToOrmPaginate(request.Pagination), ) if err != nil { return nil, regenerrors.ErrInternal.Wrap(err.Error()) @@ -64,11 +58,7 @@ func (s serverImpl) ResolversByIRI(ctx context.Context, request *data.QueryResol Manager: manager, }) } - - res.Pagination, err = ormutil.PulsarPageResToGogoPageRes(it.PageResponse()) - if err != nil { - return nil, regenerrors.ErrInternal.Wrap(err.Error()) - } + res.Pagination = ormutil.PageResToCosmosTypes(it.PageResponse()) return res, nil } diff --git a/x/data/server/query_resolvers_by_url.go b/x/data/server/query_resolvers_by_url.go index abc4e34b65..ca60d72d09 100644 --- a/x/data/server/query_resolvers_by_url.go +++ b/x/data/server/query_resolvers_by_url.go @@ -3,7 +3,6 @@ package server import ( "context" - "github.com/cosmos/cosmos-sdk/orm/model/ormlist" sdk "github.com/cosmos/cosmos-sdk/types" api "github.com/regen-network/regen-ledger/api/v2/regen/data/v1" @@ -18,15 +17,10 @@ func (s serverImpl) ResolversByURL(ctx context.Context, request *data.QueryResol return nil, regenerrors.ErrInvalidArgument.Wrap("URL cannot be empty") } - pg, err := ormutil.GogoPageReqToPulsarPageReq(request.Pagination) - if err != nil { - return nil, regenerrors.ErrInvalidArgument.Wrap(err.Error()) - } - it, err := s.stateStore.ResolverTable().List( ctx, api.ResolverUrlIndexKey{}.WithUrl(request.Url), - ormlist.Paginate(pg), + ormutil.PageReqToOrmPaginate(request.Pagination), ) if err != nil { return nil, err @@ -48,11 +42,7 @@ func (s serverImpl) ResolversByURL(ctx context.Context, request *data.QueryResol Manager: manager, }) } - - res.Pagination, err = ormutil.PulsarPageResToGogoPageRes(it.PageResponse()) - if err != nil { - return nil, regenerrors.ErrInternal.Wrap(err.Error()) - } + res.Pagination = ormutil.PageResToCosmosTypes(it.PageResponse()) return res, nil }