/
bank.go
65 lines (53 loc) · 1.96 KB
/
bank.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
package backend
import (
berpctypes "github.com/bcdevtools/block-explorer-rpc-cosmos/be_rpc/types"
banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
"github.com/pkg/errors"
"google.golang.org/grpc/codes"
"google.golang.org/grpc/status"
)
func (m *Backend) GetDenomMetadata(base string) (berpctypes.GenericBackendResponse, error) {
resDenomMetadata, err := m.queryClient.BankQueryClient.DenomMetadata(m.ctx, &banktypes.QueryDenomMetadataRequest{
Denom: base,
})
if err != nil {
return nil, err
}
res := make(berpctypes.GenericBackendResponse)
rpcDenomMetadata := berpctypes.NewRpcDenomMetadataFromBankMetadata(resDenomMetadata.Metadata)
res[resDenomMetadata.Metadata.Base] = rpcDenomMetadata
return res, nil
}
func (m *Backend) GetDenomsMetadata(pageNo int) (berpctypes.GenericBackendResponse, error) {
if pageNo < 1 {
return nil, berpctypes.ErrBadPageNo
}
resDenomMetadata, err := m.queryClient.BankQueryClient.DenomsMetadata(m.ctx, &banktypes.QueryDenomsMetadataRequest{
Pagination: getDefaultPagination(pageNo),
})
if err != nil {
return nil, status.Error(codes.Internal, errors.Wrap(err, "failed to get denoms metadata").Error())
}
res := make(berpctypes.GenericBackendResponse)
for _, metadata := range resDenomMetadata.Metadatas {
rpcDenomMetadata := berpctypes.NewRpcDenomMetadataFromBankMetadata(metadata)
res[metadata.Base] = rpcDenomMetadata
}
return res, nil
}
func (m *Backend) GetTotalSupply(pageNo int) (berpctypes.GenericBackendResponse, error) {
if pageNo < 1 {
return nil, berpctypes.ErrBadPageNo
}
resTotalSupply, err := m.queryClient.BankQueryClient.TotalSupply(m.ctx, &banktypes.QueryTotalSupplyRequest{
Pagination: getDefaultPagination(pageNo),
})
if err != nil {
return nil, status.Error(codes.Internal, errors.Wrap(err, "failed to get total supply").Error())
}
res := make(berpctypes.GenericBackendResponse)
for _, coin := range resTotalSupply.Supply {
res[coin.Denom] = coin.Amount.String()
}
return res, nil
}