@@ -3,6 +3,12 @@ package keeper
33import (
44 "context"
55
6+ "google.golang.org/grpc/codes"
7+ "google.golang.org/grpc/status"
8+
9+ "github.com/cosmos/cosmos-sdk/codec"
10+ codectypes "github.com/cosmos/cosmos-sdk/codec/types"
11+
612 v1 "github.com/irisnet/irismod/modules/token/types/v1"
713 "github.com/irisnet/irismod/modules/token/types/v1beta1"
814)
@@ -11,13 +17,15 @@ var _ v1beta1.QueryServer = legacyQueryServer{}
1117
1218type legacyQueryServer struct {
1319 server v1.QueryServer
20+ cdc codec.Codec
1421}
1522
1623// NewLegacyQueryServer returns an implementation of the token QueryServer interface
1724// for the provided Keeper.
18- func NewLegacyQueryServer (server v1.QueryServer ) v1beta1.QueryServer {
25+ func NewLegacyQueryServer (server v1.QueryServer , cdc codec. Codec ) v1beta1.QueryServer {
1926 return & legacyQueryServer {
2027 server : server ,
28+ cdc : cdc ,
2129 }
2230}
2331
@@ -28,7 +36,13 @@ func (q legacyQueryServer) Token(c context.Context, req *v1beta1.QueryTokenReque
2836 if err != nil {
2937 return nil , err
3038 }
31- return & v1beta1.QueryTokenResponse {Token : res .Token }, nil
39+
40+ v1beta1Token , err := v1TokenToV1beta1 (q .cdc , res .Token )
41+ if err != nil {
42+ return nil , err
43+ }
44+
45+ return & v1beta1.QueryTokenResponse {Token : v1beta1Token }, nil
3246}
3347
3448func (q legacyQueryServer ) Tokens (c context.Context , req * v1beta1.QueryTokensRequest ) (* v1beta1.QueryTokensResponse , error ) {
@@ -39,7 +53,16 @@ func (q legacyQueryServer) Tokens(c context.Context, req *v1beta1.QueryTokensReq
3953 if err != nil {
4054 return nil , err
4155 }
42- return & v1beta1.QueryTokensResponse {Tokens : res .Tokens , Pagination : res .Pagination }, nil
56+
57+ var tokens []* codectypes.Any
58+ for _ , token := range res .Tokens {
59+ v1beta1Token , err := v1TokenToV1beta1 (q .cdc , token )
60+ if err != nil {
61+ return nil , err
62+ }
63+ tokens = append (tokens , v1beta1Token )
64+ }
65+ return & v1beta1.QueryTokensResponse {Tokens : tokens , Pagination : res .Pagination }, nil
4366}
4467
4568func (q legacyQueryServer ) Fees (c context.Context , req * v1beta1.QueryFeesRequest ) (* v1beta1.QueryFeesResponse , error ) {
@@ -82,3 +105,17 @@ func (q legacyQueryServer) TotalBurn(c context.Context, req *v1beta1.QueryTotalB
82105 BurnedCoins : res .BurnedCoins ,
83106 }, nil
84107}
108+
109+ func v1TokenToV1beta1 (cdc codec.Codec , v1token * codectypes.Any ) (* codectypes.Any , error ) {
110+ var v1beta1Token v1beta1.Token
111+ if err := cdc .Unmarshal (v1token .GetValue (), & v1beta1Token ); err != nil {
112+ return nil , err
113+ }
114+
115+ any , err := codectypes .NewAnyWithValue (& v1beta1Token )
116+ if err != nil {
117+ return nil , status .Error (codes .Internal , err .Error ())
118+ }
119+
120+ return any , nil
121+ }
0 commit comments