Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

address delete and wallet delete #30

Merged
merged 2 commits into from Mar 24, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
58 changes: 44 additions & 14 deletions api/client/api.go
Expand Up @@ -31,15 +31,20 @@ type IMessager interface {
SaveWallet(ctx context.Context, wallet *types.Wallet) (types.UUID, error)
GetWalletByID(ctx context.Context, uuid types.UUID) (*types.Wallet, error)
GetWalletByName(ctx context.Context, name string) (*types.Wallet, error)
HasWallet(Context context.Context, name string) (bool, error)
ListWallet(ctx context.Context) ([]*types.Wallet, error)
ListRemoteWalletAddress(ctx context.Context, uuid types.UUID) ([]address.Address, error)
DeleteWallet(ctx context.Context, name string) (string, error)
UpdateWallet(ctx context.Context, wallet *types.Wallet) (string, error)

SaveAddress(ctx context.Context, address *types.Address) (string, error)
GetAddress(ctx context.Context, addr string) (*types.Address, error)
GetAddress(ctx context.Context, addr address.Address) (*types.Address, error)
HasAddress(ctx context.Context, addr address.Address) (bool, error)
ListAddress(ctx context.Context) ([]*types.Address, error)
UpdateNonce(ctx context.Context, uuid types.UUID, nonce uint64) (types.UUID, error)
DeleteAddress(Context context.Context, addr string) (string, error)
UpdateNonce(ctx context.Context, addr address.Address, nonce uint64) (address.Address, error)
DeleteAddress(ctx context.Context, addr address.Address) (address.Address, error)
ForbiddenAddress(ctx context.Context, addr address.Address) (address.Address, error)
PermitAddress(ctx context.Context, addr address.Address) (address.Address, error)
}

var _ IMessager = (*Message)(nil)
Expand All @@ -64,15 +69,20 @@ type Message struct {
SaveWallet func(ctx context.Context, wallet *types.Wallet) (types.UUID, error)
GetWalletByID func(ctx context.Context, uuid types.UUID) (*types.Wallet, error)
GetWalletByName func(ctx context.Context, name string) (*types.Wallet, error)
HasWallet func(ctx context.Context, name string) (bool, error)
ListWallet func(ctx context.Context) ([]*types.Wallet, error)
ListRemoteWalletAddress func(ctx context.Context, uuid types.UUID) ([]address.Address, error)

SaveAddress func(ctx context.Context, address *types.Address) (string, error)
GetAddress func(ctx context.Context, addr string) (*types.Address, error)
HasAddress func(ctx context.Context, addr address.Address) (bool, error)
ListAddress func(ctx context.Context) ([]*types.Address, error)
UpdateNonce func(ctx context.Context, uuid types.UUID, nonce uint64) (types.UUID, error)
DeleteAddress func(ctx context.Context, addr string) (string, error)
DeleteWallet func(ctx context.Context, name string) (string, error)
UpdateWallet func(ctx context.Context, wallet *types.Wallet) (string, error)

SaveAddress func(ctx context.Context, address *types.Address) (string, error)
GetAddress func(ctx context.Context, addr address.Address) (*types.Address, error)
HasAddress func(ctx context.Context, addr address.Address) (bool, error)
ListAddress func(ctx context.Context) ([]*types.Address, error)
UpdateNonce func(ctx context.Context, addr address.Address, nonce uint64) (address.Address, error)
DeleteAddress func(ctx context.Context, addr address.Address) (address.Address, error)
ForbiddenAddress func(ctx context.Context, addr address.Address) (address.Address, error)
PermitAddress func(ctx context.Context, addr address.Address) (address.Address, error)
}
}

Expand Down Expand Up @@ -140,6 +150,10 @@ func (message *Message) GetWalletByName(ctx context.Context, name string) (*type
return message.Internal.GetWalletByName(ctx, name)
}

func (message *Message) HasWallet(ctx context.Context, name string) (bool, error) {
return message.Internal.HasWallet(ctx, name)
}

func (message *Message) ListRemoteWalletAddress(ctx context.Context, uuid types.UUID) ([]address.Address, error) {
return message.Internal.ListRemoteWalletAddress(ctx, uuid)
}
Expand All @@ -148,11 +162,19 @@ func (message *Message) ListWallet(ctx context.Context) ([]*types.Wallet, error)
return message.Internal.ListWallet(ctx)
}

func (message *Message) DeleteWallet(ctx context.Context, name string) (string, error) {
return message.Internal.DeleteWallet(ctx, name)
}

func (message *Message) UpdateWallet(ctx context.Context, wallet *types.Wallet) (string, error) {
return message.Internal.UpdateWallet(ctx, wallet)
}

func (message *Message) SaveAddress(ctx context.Context, address *types.Address) (string, error) {
return message.Internal.SaveAddress(ctx, address)
}

func (message *Message) GetAddress(ctx context.Context, addr string) (*types.Address, error) {
func (message *Message) GetAddress(ctx context.Context, addr address.Address) (*types.Address, error) {
return message.Internal.GetAddress(ctx, addr)
}

Expand All @@ -164,14 +186,22 @@ func (message *Message) ListAddress(ctx context.Context) ([]*types.Address, erro
return message.Internal.ListAddress(ctx)
}

func (message *Message) UpdateNonce(ctx context.Context, uuid types.UUID, nonce uint64) (types.UUID, error) {
return message.Internal.UpdateNonce(ctx, uuid, nonce)
func (message *Message) UpdateNonce(ctx context.Context, addr address.Address, nonce uint64) (address.Address, error) {
return message.Internal.UpdateNonce(ctx, addr, nonce)
}

func (message *Message) DeleteAddress(ctx context.Context, addr string) (string, error) {
func (message *Message) DeleteAddress(ctx context.Context, addr address.Address) (address.Address, error) {
return message.Internal.DeleteAddress(ctx, addr)
}

func (message *Message) ForbiddenAddress(ctx context.Context, addr address.Address) (address.Address, error) {
return message.Internal.ForbiddenAddress(ctx, addr)
}

func (message *Message) PermitAddress(ctx context.Context, addr address.Address) (address.Address, error) {
return message.Internal.PermitAddress(ctx, addr)
}

func (message *Message) WaitMessage(ctx context.Context, id string, confidence uint64) (*types.Message, error) {
tm := time.NewTicker(time.Second * 30)
defer tm.Stop()
Expand Down
16 changes: 12 additions & 4 deletions api/controller/address.go
Expand Up @@ -18,7 +18,7 @@ func (a Address) SaveAddress(ctx context.Context, address *types.Address) (types
return a.AddressService.SaveAddress(ctx, address)
}

func (a Address) GetAddress(ctx context.Context, addr string) (*types.Address, error) {
func (a Address) GetAddress(ctx context.Context, addr address.Address) (*types.Address, error) {
return a.AddressService.GetAddress(ctx, addr)
}

Expand All @@ -30,10 +30,18 @@ func (a Address) ListAddress(ctx context.Context) ([]*types.Address, error) {
return a.AddressService.ListAddress(ctx)
}

func (a Address) UpdateNonce(ctx context.Context, uuid types.UUID, nonce uint64) (types.UUID, error) {
return a.AddressService.UpdateNonce(ctx, uuid, nonce)
func (a Address) UpdateNonce(ctx context.Context, addr address.Address, nonce uint64) (address.Address, error) {
return a.AddressService.UpdateNonce(ctx, addr, nonce)
}

func (a Address) DeleteAddress(ctx context.Context, addr string) (string, error) {
func (a Address) DeleteAddress(ctx context.Context, addr address.Address) (address.Address, error) {
return a.AddressService.DeleteAddress(ctx, addr)
}

func (a Address) ForbiddenAddress(ctx context.Context, addr address.Address) (address.Address, error) {
return a.AddressService.ForbiddenAddress(ctx, addr)
}

func (a Address) PermitAddress(ctx context.Context, addr address.Address) (address.Address, error) {
return a.AddressService.PermitAddress(ctx, addr)
}
8 changes: 8 additions & 0 deletions api/controller/wallet.go
Expand Up @@ -26,10 +26,18 @@ func (walletController WalletController) GetWalletByName(ctx context.Context, na
return walletController.WalletService.GetWalletByName(ctx, name)
}

func (walletController WalletController) HasWallet(ctx context.Context, name string) (bool, error) {
return walletController.WalletService.HasWallet(ctx, name)
}

func (walletController WalletController) ListWallet(ctx context.Context) ([]*types.Wallet, error) {
return walletController.WalletService.ListWallet(ctx)
}

func (walletController WalletController) ListRemoteWalletAddress(ctx context.Context, uuid types.UUID) ([]address.Address, error) {
return walletController.WalletService.ListRemoteWalletAddress(ctx, uuid)
}

func (walletController WalletController) DeleteWallet(ctx context.Context, name string) (string, error) {
return walletController.WalletService.DeleteWallet(ctx, name)
}
96 changes: 90 additions & 6 deletions cli/address.go
Expand Up @@ -21,6 +21,8 @@ var AddrCmds = &cli.Command{
listAddrCmd,
deleteAddrCmd,
updateNonceCmd,
forbiddenAddrCmd,
permitAddrCmd,
},
}

Expand Down Expand Up @@ -83,7 +85,7 @@ var setAddrCmd = &cli.Command{
return err
}
if hasAddr {
return xerrors.Errorf("The same address exists")
return xerrors.Errorf("address exist")
}

_, err = client.SaveAddress(ctx.Context, &addr)
Expand All @@ -110,11 +112,15 @@ var findAddrCmd = &cli.Command{
return xerrors.Errorf("must pass address")
}

addr, err := client.GetAddress(ctx.Context, ctx.Args().First())
addr, err := address.NewFromString(ctx.Args().First())
if err != nil {
return err
}
bytes, err := json.MarshalIndent(addr, " ", "\t")
addrInfo, err := client.GetAddress(ctx.Context, addr)
if err != nil {
return err
}
bytes, err := json.MarshalIndent(addrInfo, " ", "\t")
if err != nil {
return err
}
Expand Down Expand Up @@ -168,13 +174,13 @@ var updateNonceCmd = &cli.Command{
return xerrors.Errorf("must pass address")
}

addr, err := client.GetAddress(ctx.Context, ctx.Args().First())
addr, err := address.NewFromString(ctx.Args().First())
if err != nil {
return err
}

nonce := ctx.Uint64("nonce")
if _, err := client.UpdateNonce(ctx.Context, addr.ID, nonce); err != nil {
if _, err := client.UpdateNonce(ctx.Context, addr, nonce); err != nil {
return err
}

Expand All @@ -197,7 +203,85 @@ var deleteAddrCmd = &cli.Command{
return xerrors.Errorf("must pass address")
}

_, err = client.DeleteAddress(ctx.Context, ctx.Args().First())
addr, err := address.NewFromString(ctx.Args().First())
if err != nil {
return err
}
_, err = client.DeleteAddress(ctx.Context, addr)
if err != nil {
return err
}

return nil
},
}

var forbiddenAddrCmd = &cli.Command{
Name: "forbidden",
Usage: "forbidden address",
ArgsUsage: "address",
Action: func(ctx *cli.Context) error {
client, closer, err := getAPI(ctx)
if err != nil {
return err
}
defer closer()

if !ctx.Args().Present() {
return xerrors.Errorf("must pass address")
}

addr, err := address.NewFromString(ctx.Args().First())
if err != nil {
return err
}

hasAddr, err := client.HasAddress(ctx.Context, addr)
if err != nil {
return err
}
if !hasAddr {
return xerrors.Errorf("address not exist")
}

_, err = client.ForbiddenAddress(ctx.Context, addr)
if err != nil {
return err
}

return nil
},
}

var permitAddrCmd = &cli.Command{
Name: "permit",
Usage: "permit address",
ArgsUsage: "address",
Action: func(ctx *cli.Context) error {
client, closer, err := getAPI(ctx)
if err != nil {
return err
}
defer closer()

if !ctx.Args().Present() {
return xerrors.Errorf("must pass address")
}

addr, err := address.NewFromString(ctx.Args().First())
if err != nil {
return err
}

hasAddr, err := client.HasAddress(ctx.Context, addr)
if err != nil {
return err
}
if !hasAddr {
return xerrors.Errorf("address not exist")
}

_, err = client.PermitAddress(ctx.Context, addr)
if err != nil {
return err
}
Expand Down
23 changes: 3 additions & 20 deletions cli/msg.go
Expand Up @@ -5,14 +5,13 @@ import (
"fmt"
"strconv"

"github.com/filecoin-project/venus/pkg/constants"
"github.com/ipfs-force-community/venus-messager/types"

"github.com/filecoin-project/go-address"
"github.com/filecoin-project/venus/pkg/constants"
"github.com/ipfs/go-cid"
"github.com/urfave/cli/v2"
"golang.org/x/xerrors"

"github.com/urfave/cli/v2"
"github.com/ipfs-force-community/venus-messager/types"
)

var MsgCmds = &cli.Command{
Expand Down Expand Up @@ -157,22 +156,13 @@ var listCmd = &cli.Command{
var updateAllFilledMessageCmd = &cli.Command{
Name: "update_all_filled_msg",
Usage: "manual update all filled message state",
Flags: []cli.Flag{
&cli.BoolFlag{
Name: "really-do-it",
Usage: "pass this flag if you know what you are doing",
},
},
Action: func(ctx *cli.Context) error {
cli, closer, err := getAPI(ctx)
if err != nil {
return err
}
defer closer()

if !ctx.Bool("really-do-it") {
return xerrors.Errorf("pass --really-do-it to confirm this action")
}
count, err := cli.UpdateAllFilledMessage(ctx.Context)
if err != nil {
return err
Expand All @@ -187,10 +177,6 @@ var updateFilledMessageCmd = &cli.Command{
Name: "update_filled_msg",
Usage: "manual update one filled message state",
Flags: []cli.Flag{
&cli.BoolFlag{
Name: "really-do-it",
Usage: "pass this flag if you know what you are doing",
},
&cli.StringFlag{
Name: "id",
Usage: "message id",
Expand All @@ -213,9 +199,6 @@ var updateFilledMessageCmd = &cli.Command{
}
defer closer()

if !ctx.Bool("really-do-it") {
return xerrors.Errorf("pass --really-do-it to confirm this action")
}
var id string
if id = ctx.String("uuid"); len(id) > 0 {

Expand Down