Skip to content

Commit

Permalink
make priv store
Browse files Browse the repository at this point in the history
  • Loading branch information
catShaark committed Sep 13, 2024
1 parent cdb3016 commit 39318b2
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 2 deletions.
10 changes: 9 additions & 1 deletion x/asset/keeper/msg_server.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ import (
errorsmod "cosmossdk.io/errors"
bank "github.com/cosmos/cosmos-sdk/x/bank/types"

"github.com/cosmos/cosmos-sdk/store/prefix"
storetypes "github.com/cosmos/cosmos-sdk/store/types"
sdk "github.com/cosmos/cosmos-sdk/types"
sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"

Expand Down Expand Up @@ -197,6 +199,12 @@ func (k msgServer) DisablePrivilege(goCtx context.Context, msg *types.MsgDisable
return &types.MsgDisablePrivilegeResponse{}, nil
}

func (k msgServer) MakePrivilegeStore(ctx sdk.Context, privilegeName string, tokenID string) storetypes.KVStore {
store := prefix.NewStore(ctx.KVStore(k.storeKey), []byte(tokenID+privilegeName))

return store
}

func (k msgServer) ExecutePrivilege(goCtx context.Context, msg *types.MsgExecutePrivilege) (*types.MsgExecutePrivilegeResponse, error) {
ctx := sdk.UnwrapSDKContext(goCtx)
userAcc, err := sdk.AccAddressFromBech32(msg.Address)
Expand Down Expand Up @@ -236,7 +244,7 @@ func (k msgServer) ExecutePrivilege(goCtx context.Context, msg *types.MsgExecute
}

msgHandler := privImplementation.MsgHandler()
_, err = msgHandler(ctx, sdkMsg, msg.TokenId, userAcc)
_, err = msgHandler(ctx, k.MakePrivilegeStore(ctx, privName, msg.TokenId), sdkMsg, msg.TokenId, userAcc)
if err != nil {
return nil, errorsmod.Wrapf(sdkerrors.ErrInvalidRequest, "fail to execute privilege message")
}
Expand Down
3 changes: 2 additions & 1 deletion x/asset/types/privilege.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import (
"context"

cdctypes "github.com/cosmos/cosmos-sdk/codec/types"
storetypes "github.com/cosmos/cosmos-sdk/store/types"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/gogo/protobuf/proto"
"github.com/spf13/cobra"
Expand All @@ -22,6 +23,6 @@ type PrivilegeI interface {
CLI() *cobra.Command
}

type MsgHandler func(context context.Context, msg proto.Message, tokenID string, privAcc sdk.AccAddress) (proto.Message, error)
type MsgHandler func(context context.Context, privStore storetypes.KVStore, msg proto.Message, tokenID string, privAcc sdk.AccAddress) (proto.Message, error)

type QueryHandler func(context context.Context, privQuery proto.Message, tokenID string) (proto.Message, error)

0 comments on commit 39318b2

Please sign in to comment.