Skip to content

Commit 808c8ec

Browse files
committed
PR feedback:
Use enum for status use int64 for height add distributions response proto add address parsing check remove imports on expected_keepers
1 parent 8a7db71 commit 808c8ec

File tree

19 files changed

+539
-346
lines changed

19 files changed

+539
-346
lines changed

cmd/ebrelayer/txs/relayToCosmos.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,10 @@ func RelayToCosmos(moniker, password string, claims []*types.EthBridgeClaim, cli
3232
// Packages the claim as a Tendermint message
3333
msg := types.NewMsgCreateEthBridgeClaim(claim)
3434

35-
e := msg.ValidateBasic()
36-
if e != nil {
35+
err := msg.ValidateBasic()
36+
if err != nil {
3737
sugaredLogger.Errorw("failed to get message from claim.",
38-
errorMessageKey, e.Error())
38+
errorMessageKey, err.Error())
3939
continue
4040
} else {
4141
messages = append(messages, &msg)

proto/sifnode/dispensation/v1/querier.proto

+2-5
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ syntax = "proto3";
22
package sifnode.dispensation.v1;
33

44
import "gogoproto/gogo.proto";
5+
import "sifnode/dispensation/v1/types.proto";
56

67
option go_package = "github.com/Sifchain/sifnode/x/dispensation/types";
78

@@ -11,9 +12,5 @@ message QueryRecordsByRecipientAddr {
1112

1213
message QueryRecordsByDistributionName {
1314
string distribution_name = 1;
14-
string status = 2 [
15-
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Uint",
16-
(gogoproto.nullable) = false,
17-
(gogoproto.moretags) = "yaml:\"status\""
18-
];
15+
sifnode.dispensation.v1.ClaimStatus status = 2;
1916
}

proto/sifnode/dispensation/v1/query.proto

+6
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,14 @@ syntax = "proto3";
22
package sifnode.dispensation.v1;
33

44
import "gogoproto/gogo.proto";
5+
import "sifnode/dispensation/v1/types.proto";
56

67
option go_package = "github.com/Sifchain/sifnode/x/dispensation/types";
78

89
service Query {
10+
}
11+
12+
message DistributionsResponse {
13+
repeated Distribution distributions = 1;
14+
int64 height = 2;
915
}

proto/sifnode/dispensation/v1/types.proto

+8-20
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ syntax = "proto3";
22
package sifnode.dispensation.v1;
33

44
import "gogoproto/gogo.proto";
5-
import "cosmos/base/coin.proto";
65

76
option go_package = "github.com/Sifchain/sifnode/x/dispensation/types";
87

@@ -21,31 +20,24 @@ enum DistributionType {
2120

2221
// Claim status enum
2322
enum ClaimStatus {
23+
// Unspecified
24+
CLAIM_STATUS_UNSPECIFIED = 0;
2425
// Pending claim status
25-
CLAIM_STATUS_PENDING = 0;
26+
CLAIM_STATUS_PENDING = 1;
2627
// Completed claim status
27-
CLAIM_STATUS_COMPLETED = 1;
28+
CLAIM_STATUS_COMPLETED = 2;
2829
}
2930

3031
message DistributionRecord {
3132
ClaimStatus claim_status = 1;
3233
string distribution_name = 2;
3334
string recipient_address = 3;
34-
repeated cosmos.base.v1beta1.Coin coins = 4 [
35-
(gogoproto.nullable) = false,
35+
repeated string coins = 4 [
3636
(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins",
3737
(gogoproto.moretags) = "yaml:\"coins\""
3838
];
39-
string distribution_start_height = 5 [
40-
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
41-
(gogoproto.nullable) = false,
42-
(gogoproto.moretags) = "yaml:\"distribution_start_height\""
43-
];
44-
string distribution_completed_height = 6 [
45-
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
46-
(gogoproto.nullable) = false,
47-
(gogoproto.moretags) = "yaml:\"distribution_completed_height\""
48-
];
39+
int64 distribution_start_height = 5;
40+
int64 distribution_completed_height = 6;
4941
}
5042

5143
message DistributionRecords {
@@ -54,11 +46,7 @@ message DistributionRecords {
5446

5547
message DistributionRecordsResponse {
5648
DistributionRecords distribution_records = 1;
57-
string height = 2 [
58-
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
59-
(gogoproto.nullable) = false,
60-
(gogoproto.moretags) = "yaml:\"height\""
61-
];
49+
int64 height = 2;
6250
}
6351

6452
message Distributions {

third_party/proto/cosmos/base/coin.proto

-40
This file was deleted.

third_party/proto/cosmos/cosmos.proto

-16
This file was deleted.

x/dispensation/client/cli/query.go

+7-7
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ func GetCmdDistributionRecordForRecipient(queryRoute string) *cobra.Command {
7979
}
8080
var drs types.DistributionRecords
8181
types.ModuleCdc.MustUnmarshalJSON(res, &drs)
82-
out := types.NewDistributionRecordsResponse(drs, sdk.NewInt(height))
82+
out := types.NewDistributionRecordsResponse(drs, height)
8383
return clientCtx.PrintProto(&out)
8484
},
8585
}
@@ -97,7 +97,7 @@ func GetCmdDistributionRecordForDistNameAll(queryRoute string) *cobra.Command {
9797
return err
9898
}
9999
name := args[0]
100-
params := types.NewQueryRecordsByDistributionName(name, sdk.NewUint(2))
100+
params := types.NewQueryRecordsByDistributionName(name, types.ClaimStatus_CLAIM_STATUS_UNSPECIFIED)
101101
bz, err := clientCtx.LegacyAmino.MarshalJSON(params)
102102
if err != nil {
103103
return err
@@ -109,7 +109,7 @@ func GetCmdDistributionRecordForDistNameAll(queryRoute string) *cobra.Command {
109109
}
110110
var drs types.DistributionRecords
111111
types.ModuleCdc.MustUnmarshalJSON(res, &drs)
112-
out := types.NewDistributionRecordsResponse(drs, sdk.NewInt(height))
112+
out := types.NewDistributionRecordsResponse(drs, height)
113113
return clientCtx.PrintProto(&out)
114114
},
115115
}
@@ -127,7 +127,7 @@ func GetCmdDistributionRecordForDistNamePending(queryRoute string) *cobra.Comman
127127
return err
128128
}
129129
name := args[0]
130-
params := types.NewQueryRecordsByDistributionName(name, sdk.NewUint(1))
130+
params := types.NewQueryRecordsByDistributionName(name, types.ClaimStatus_CLAIM_STATUS_PENDING)
131131
bz, err := clientCtx.LegacyAmino.MarshalJSON(params)
132132
if err != nil {
133133
return err
@@ -139,7 +139,7 @@ func GetCmdDistributionRecordForDistNamePending(queryRoute string) *cobra.Comman
139139
}
140140
var drs types.DistributionRecords
141141
types.ModuleCdc.MustUnmarshalJSON(res, &drs)
142-
out := types.NewDistributionRecordsResponse(drs, sdk.NewInt(height))
142+
out := types.NewDistributionRecordsResponse(drs, height)
143143
return clientCtx.PrintProto(&out)
144144
},
145145
}
@@ -157,7 +157,7 @@ func GetCmdDistributionRecordForDistNameCompleted(queryRoute string) *cobra.Comm
157157
return err
158158
}
159159
name := args[0]
160-
params := types.NewQueryRecordsByDistributionName(name, sdk.NewUint(2))
160+
params := types.NewQueryRecordsByDistributionName(name, types.ClaimStatus_CLAIM_STATUS_COMPLETED)
161161
bz, err := clientCtx.LegacyAmino.MarshalJSON(params)
162162
if err != nil {
163163
return err
@@ -169,7 +169,7 @@ func GetCmdDistributionRecordForDistNameCompleted(queryRoute string) *cobra.Comm
169169
}
170170
var drs types.DistributionRecords
171171
types.ModuleCdc.MustUnmarshalJSON(res, &drs)
172-
out := types.NewDistributionRecordsResponse(drs, sdk.NewInt(height))
172+
out := types.NewDistributionRecordsResponse(drs, height)
173173
return clientCtx.PrintProto(&out)
174174
},
175175
}

x/dispensation/keeper/executors.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,15 @@ import (
1313
// Each Recipient and DropName generate a unique Record
1414
func (k Keeper) CreateDrops(ctx sdk.Context, output []banktypes.Output, name string) error {
1515
for _, receiver := range output {
16-
distributionRecord := types.NewDistributionRecord(name, receiver.Address, receiver.Coins, sdk.NewInt(ctx.BlockHeight()), sdk.NewInt(1))
16+
distributionRecord := types.NewDistributionRecord(name, receiver.Address, receiver.Coins, ctx.BlockHeight(), int64(1))
1717
if k.ExistsDistributionRecord(ctx, name, receiver.Address) {
1818
oldRecord, err := k.GetDistributionRecord(ctx, name, receiver.Address)
1919
if err != nil {
2020
return errors.Wrapf(types.ErrDistribution, "failed appending record for : %s", distributionRecord.RecipientAddress)
2121
}
2222
distributionRecord.Add(*oldRecord)
2323
}
24-
distributionRecord.ClaimStatus = types.ClaimStatus_CLAIM_STATUS_COMPLETED
24+
distributionRecord.ClaimStatus = types.ClaimStatus_CLAIM_STATUS_PENDING
2525
err := k.SetDistributionRecord(ctx, distributionRecord)
2626
if err != nil {
2727
return errors.Wrapf(types.ErrFailedOutputs, "error setting distibution record : %s", distributionRecord.String())
@@ -40,7 +40,7 @@ func (k Keeper) DistributeDrops(ctx sdk.Context, height int64) error {
4040
return errors.Wrapf(types.ErrFailedOutputs, "for address : %s", record.RecipientAddress)
4141
}
4242
record.ClaimStatus = types.ClaimStatus_CLAIM_STATUS_COMPLETED
43-
record.DistributionCompletedHeight = sdk.NewInt(height)
43+
record.DistributionCompletedHeight = height
4444
err = k.SetDistributionRecord(ctx, *record)
4545
if err != nil {
4646
return errors.Wrapf(types.ErrFailedOutputs, "error setting distibution record : %s", record)

x/dispensation/keeper/keeper_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ func TestKeeper_GetRecordsForName(t *testing.T) {
3232
outList := test.GenerateOutputList("1000000000")
3333
name := uuid.New().String()
3434
for _, rec := range outList {
35-
record := types.NewDistributionRecord(name, rec.Address, rec.Coins, sdk.NewInt(ctx.BlockHeight()), sdk.NewInt(-1))
35+
record := types.NewDistributionRecord(name, rec.Address, rec.Coins, ctx.BlockHeight(), int64(-1))
3636
err := keeper.SetDistributionRecord(ctx, record)
3737
assert.NoError(t, err)
3838
_, err = keeper.GetDistributionRecord(ctx, name, rec.Address)
@@ -48,7 +48,7 @@ func TestKeeper_GetRecordsForRecipient(t *testing.T) {
4848
outList := test.GenerateOutputList("1000000000")
4949
name := uuid.New().String()
5050
for _, rec := range outList {
51-
record := types.NewDistributionRecord(name, rec.Address, rec.Coins, sdk.NewInt(ctx.BlockHeight()), sdk.NewInt(-1))
51+
record := types.NewDistributionRecord(name, rec.Address, rec.Coins, ctx.BlockHeight(), int64(-1))
5252
err := keeper.SetDistributionRecord(ctx, record)
5353
assert.NoError(t, err)
5454
_, err = keeper.GetDistributionRecord(ctx, name, rec.Address)

x/dispensation/keeper/querier.go

+6-3
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,9 @@ func queryDistributionRecordsForName(ctx sdk.Context, req abci.RequestQuery, kee
3636
}
3737
records := new(types.DistributionRecords)
3838
switch params.Status {
39-
case sdk.NewUint(1):
39+
case types.ClaimStatus_CLAIM_STATUS_PENDING:
4040
*records = keeper.GetRecordsForNamePending(ctx, params.DistributionName)
41-
case sdk.NewUint(2):
41+
case types.ClaimStatus_CLAIM_STATUS_COMPLETED:
4242
*records = keeper.GetRecordsForNameCompleted(ctx, params.DistributionName)
4343
default:
4444
*records = keeper.GetRecordsForNameAll(ctx, params.DistributionName)
@@ -57,7 +57,10 @@ func queryDistributionRecordsForRecipient(ctx sdk.Context, req abci.RequestQuery
5757
if err != nil {
5858
return nil, sdkerrors.Wrap(sdkerrors.ErrJSONUnmarshal, err.Error())
5959
}
60-
addr, _ := sdk.AccAddressFromBech32(params.Address)
60+
addr, err := sdk.AccAddressFromBech32(params.Address)
61+
if err != nil {
62+
return nil, sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, err.Error())
63+
}
6164
records := keeper.GetRecordsForRecipient(ctx, addr)
6265
res, err := types.ModuleCdc.MarshalJSON(records)
6366
if err != nil {

x/dispensation/keeper/querier_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ func GenerateQueryData(app *app.SifchainApp, ctx sdk.Context, name string, outLi
2424
}
2525

2626
for _, rec := range outList {
27-
record := types.NewDistributionRecord(name, rec.Address, rec.Coins, sdk.NewInt(ctx.BlockHeight()), sdk.NewInt(-1))
27+
record := types.NewDistributionRecord(name, rec.Address, rec.Coins, ctx.BlockHeight(), int64(-1))
2828
_ = keeper.SetDistributionRecord(ctx, record)
2929
}
3030

x/dispensation/types/expected_keepers.go

-6
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@ package types
22

33
import (
44
sdk "github.com/cosmos/cosmos-sdk/types"
5-
authkeeper "github.com/cosmos/cosmos-sdk/x/auth/keeper"
6-
bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper"
75
paramtypes "github.com/cosmos/cosmos-sdk/x/params/types"
86

97
authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"
@@ -17,8 +15,6 @@ type ParamSubspace interface {
1715
SetParamSet(ctx sdk.Context, ps paramtypes.ParamSet)
1816
}
1917

20-
var _ BankKeeper = &bankkeeper.BaseKeeper{}
21-
2218
type BankKeeper interface {
2319
SubtractCoins(ctx sdk.Context, addr sdk.AccAddress, amt sdk.Coins) error
2420
SendCoins(ctx sdk.Context, fromAddr sdk.AccAddress, toAddr sdk.AccAddress, amt sdk.Coins) error
@@ -31,8 +27,6 @@ type BankKeeper interface {
3127
HasBalance(ctx sdk.Context, addr sdk.AccAddress, amt sdk.Coin) bool
3228
}
3329

34-
var _ AccountKeeper = &authkeeper.AccountKeeper{}
35-
3630
type AccountKeeper interface {
3731
SetModuleAccount(sdk.Context, authtypes.ModuleAccountI)
3832
GetModuleAccount(ctx sdk.Context, moduleName string) authtypes.ModuleAccountI

x/dispensation/types/msgs.go

+3-2
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,16 @@ func (m MsgDistribution) Type() string {
3232
}
3333

3434
func (m MsgDistribution) ValidateBasic() error {
35-
if m.Signer == "" {
35+
_, err := sdk.AccAddressFromBech32(m.Signer)
36+
if err != nil {
3637
return sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, m.Signer)
3738
}
3839

3940
if m.DistributionName == "" {
4041
return sdkerrors.Wrap(ErrInvalid, "Name cannot be empty")
4142
}
4243

43-
err := types.ValidateInputsOutputs(m.Input, m.Output)
44+
err = types.ValidateInputsOutputs(m.Input, m.Output)
4445
if err != nil {
4546
return err
4647
}

x/dispensation/types/querier.go

+1-3
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,12 @@
11
package types
22

3-
import sdk "github.com/cosmos/cosmos-sdk/types"
4-
53
const (
64
QueryAllDistributions = "distributions"
75
QueryRecordsByDistrName = "records_by_name"
86
QueryRecordsByRecipient = "records_by_recipient"
97
)
108

11-
func NewQueryRecordsByDistributionName(distributionName string, status sdk.Uint) QueryRecordsByDistributionName {
9+
func NewQueryRecordsByDistributionName(distributionName string, status ClaimStatus) QueryRecordsByDistributionName {
1210
return QueryRecordsByDistributionName{DistributionName: distributionName, Status: status}
1311
}
1412

0 commit comments

Comments
 (0)