Skip to content

Commit b45ba96

Browse files
authored
Merge pull request #168 from bandprotocol/add-check-grantee
[Feeds] Add check grantee
2 parents e2f736c + 55c2680 commit b45ba96

File tree

6 files changed

+76
-2
lines changed

6 files changed

+76
-2
lines changed

app/app.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -531,6 +531,7 @@ func NewBandApp(
531531
keys[feedstypes.StoreKey],
532532
app.OracleKeeper,
533533
app.StakingKeeper,
534+
app.AuthzKeeper,
534535
authtypes.NewModuleAddress(govtypes.ModuleName).String(),
535536
)
536537

x/feeds/client/cli/query.go

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ func GetQueryCmd() *cobra.Command {
3030
GetQueryCmdParams(),
3131
GetQueryCmdDelegatorSignal(),
3232
GetQueryCmdSupportedFeeds(),
33+
GetQueryCmdIsFeeder(),
3334
)
3435

3536
return queryCmd
@@ -276,3 +277,30 @@ func GetQueryCmdParams() *cobra.Command {
276277

277278
return cmd
278279
}
280+
281+
// GetQueryCmdIsFeeder implements the query if an address is a feeder command.
282+
func GetQueryCmdIsFeeder() *cobra.Command {
283+
cmd := &cobra.Command{
284+
Use: "is-feeder [validator-address] [feeder-address]",
285+
Short: "Checks if the given address is a feeder for the validator",
286+
Args: cobra.ExactArgs(2),
287+
RunE: func(cmd *cobra.Command, args []string) error {
288+
clientCtx := client.GetClientContextFromCmd(cmd)
289+
queryClient := types.NewQueryClient(clientCtx)
290+
291+
res, err := queryClient.IsFeeder(context.Background(), &types.QueryIsFeederRequest{
292+
ValidatorAddress: args[0],
293+
FeederAddress: args[1],
294+
})
295+
if err != nil {
296+
return err
297+
}
298+
299+
return clientCtx.PrintProto(res)
300+
},
301+
}
302+
303+
flags.AddQueryFlagsToCmd(cmd)
304+
305+
return cmd
306+
}

x/feeds/keeper/grpc_query.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -265,9 +265,9 @@ func (q queryServer) IsFeeder(
265265
if err != nil {
266266
return nil, err
267267
}
268-
resp, err := sdk.AccAddressFromBech32(req.FeederAddress)
268+
feeder, err := sdk.AccAddressFromBech32(req.FeederAddress)
269269
if err != nil {
270270
return nil, err
271271
}
272-
return &types.QueryIsFeederResponse{IsFeeder: q.keeper.IsFeeder(ctx, val, resp)}, nil
272+
return &types.QueryIsFeederResponse{IsFeeder: q.keeper.IsFeeder(ctx, val, feeder)}, nil
273273
}

x/feeds/keeper/keeper.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,15 @@ func NewKeeper(
2727
storeKey storetypes.StoreKey,
2828
oracleKeeper types.OracleKeeper,
2929
stakingKeeper types.StakingKeeper,
30+
authzKeeper types.AuthzKeeper,
3031
authority string,
3132
) Keeper {
3233
return Keeper{
3334
cdc: cdc,
3435
storeKey: storeKey,
3536
oracleKeeper: oracleKeeper,
3637
stakingKeeper: stakingKeeper,
38+
authzKeeper: authzKeeper,
3739
authority: authority,
3840
}
3941
}

x/feeds/keeper/keeper_test.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ var (
2727
ValidValidator3 = sdk.ValAddress("1000000003")
2828
ValidDelegator = sdk.AccAddress("2000000001")
2929
ValidDelegator2 = sdk.AccAddress("2000000002")
30+
ValidFeeder = sdk.AccAddress("3000000001")
3031
InvalidValidator = sdk.ValAddress("9000000001")
3132
InvalidDelegator = sdk.AccAddress("9000000002")
3233
)
@@ -127,11 +128,14 @@ func (suite *KeeperTestSuite) SetupTest() {
127128
AnyTimes()
128129
suite.stakingKeeper = stakingKeeper
129130

131+
authzKeeper := feedstestutil.NewMockAuthzKeeper(ctrl)
132+
130133
suite.feedsKeeper = keeper.NewKeeper(
131134
encCfg.Codec,
132135
key,
133136
oracleKeeper,
134137
stakingKeeper,
138+
authzKeeper,
135139
authtypes.NewModuleAddress(govtypes.ModuleName).String(),
136140
)
137141
suite.feedsKeeper.InitGenesis(suite.ctx, *types.DefaultGenesisState())

x/feeds/testutil/expected_keepers_mocks.go

Lines changed: 39 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)