From 746deb07d9ce6c34887351fd5b6fc6e934695cdf Mon Sep 17 00:00:00 2001 From: aljo242 Date: Wed, 26 Oct 2022 08:28:38 -0400 Subject: [PATCH 1/5] implement --- ignite/cmd/network_request.go | 1 + ignite/cmd/network_request_remove_account.go | 60 ++++++++++++++++++++ ignite/services/network/request.go | 44 ++++++++++++++ 3 files changed, 105 insertions(+) create mode 100644 ignite/cmd/network_request_remove_account.go diff --git a/ignite/cmd/network_request.go b/ignite/cmd/network_request.go index 72c5d55118..cae459af91 100644 --- a/ignite/cmd/network_request.go +++ b/ignite/cmd/network_request.go @@ -18,6 +18,7 @@ func NewNetworkRequest() *cobra.Command { NewNetworkRequestVerify(), NewNetworkRequestAddAccount(), NewNetworkRequestRemoveValidator(), + NewNetworkRequestRemoveAccount(), ) return c diff --git a/ignite/cmd/network_request_remove_account.go b/ignite/cmd/network_request_remove_account.go new file mode 100644 index 0000000000..4d168f5b39 --- /dev/null +++ b/ignite/cmd/network_request_remove_account.go @@ -0,0 +1,60 @@ +package ignitecmd + +import ( + "github.com/spf13/cobra" + + "github.com/ignite/cli/ignite/pkg/cliui" + "github.com/ignite/cli/ignite/pkg/cosmosutil" + "github.com/ignite/cli/ignite/services/network" + "github.com/ignite/cli/ignite/services/network/networktypes" +) + +// NewNetworkRequestRemoveAccount creates a new command to send remove account request +func NewNetworkRequestRemoveAccount() *cobra.Command { + c := &cobra.Command{ + Use: "remove-account [launch-id] [address]", + Short: "Send request to remove account", + RunE: networkRequestRemoveAccountHandler, + Args: cobra.ExactArgs(2), + } + + flagSetClearCache(c) + c.Flags().AddFlagSet(flagNetworkFrom()) + c.Flags().AddFlagSet(flagSetHome()) + c.Flags().AddFlagSet(flagSetKeyringBackend()) + c.Flags().AddFlagSet(flagSetKeyringDir()) + return c +} + +func networkRequestRemoveAccountHandler(cmd *cobra.Command, args []string) error { + session := cliui.New(cliui.StartSpinner()) + defer session.End() + + nb, err := newNetworkBuilder(cmd, CollectEvents(session.EventBus())) + if err != nil { + return err + } + + // parse launch ID + launchID, err := network.ParseID(args[0]) + if err != nil { + return err + } + + // get the address for the account and change the prefix for Ignite Chain + address, err := cosmosutil.ChangeAddressPrefix(args[1], networktypes.SPN) + if err != nil { + return err + } + + n, err := nb.Network() + if err != nil { + return err + } + + return n.SendAccountRemoveRequest( + cmd.Context(), + launchID, + address, + ) +} diff --git a/ignite/services/network/request.go b/ignite/services/network/request.go index 0aa943b80a..b5daa4434b 100644 --- a/ignite/services/network/request.go +++ b/ignite/services/network/request.go @@ -247,3 +247,47 @@ func (n Network) SendValidatorRemoveRequest( } return nil } + +// SendAccountRemoveRequest creates the RequestRemoveAccount message to SPN +func (n Network) SendAccountRemoveRequest( + ctx context.Context, + launchID uint64, + valAddress string, +) error { + addr, err := n.account.Address(networktypes.SPN) + if err != nil { + return err + } + + msg := launchtypes.NewMsgSendRequest( + addr, + launchID, + launchtypes.NewAccountRemoval( + valAddress, + ), + ) + + n.ev.Send("Broadcasting transaction", events.ProgressStarted()) + + res, err := n.cosmos.BroadcastTx(ctx, n.account, msg) + if err != nil { + return err + } + + var requestRes launchtypes.MsgSendRequestResponse + if err := res.Decode(&requestRes); err != nil { + return err + } + + if requestRes.AutoApproved { + n.ev.Send("Account removed from network by the coordinator!", events.ProgressFinished()) + } else { + n.ev.Send( + fmt.Sprintf( + "Request %d to remove account from the network has been submitted!", requestRes.RequestID, + ), + events.ProgressFinished(), + ) + } + return nil +} From 61d4728a7a44a73ccb91cfeadc9d20694dd6296d Mon Sep 17 00:00:00 2001 From: aljo242 Date: Wed, 26 Oct 2022 08:29:03 -0400 Subject: [PATCH 2/5] changelog --- changelog.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/changelog.md b/changelog.md index 415c200665..32d404772b 100644 --- a/changelog.md +++ b/changelog.md @@ -6,6 +6,8 @@ - [#2955](https://github.com/ignite/cli/pull/2955/) Add `ignite network request add-account` command. - [#2995](https://github.com/ignite/cli/pull/2995/) Add `ignite network request remove-validator` command. +- [#2999](https://github.com/ignite/cli/pull/2999/) Add `ignite network request remove-account` command. + ### Changes From a1b97ec1dd29315487f23a0ea33dbf5ab9bf7c3a Mon Sep 17 00:00:00 2001 From: aljo242 Date: Wed, 26 Oct 2022 08:31:01 -0400 Subject: [PATCH 3/5] rename variabel --- ignite/services/network/request.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ignite/services/network/request.go b/ignite/services/network/request.go index b5daa4434b..36b954cf7d 100644 --- a/ignite/services/network/request.go +++ b/ignite/services/network/request.go @@ -252,7 +252,7 @@ func (n Network) SendValidatorRemoveRequest( func (n Network) SendAccountRemoveRequest( ctx context.Context, launchID uint64, - valAddress string, + address string, ) error { addr, err := n.account.Address(networktypes.SPN) if err != nil { @@ -263,7 +263,7 @@ func (n Network) SendAccountRemoveRequest( addr, launchID, launchtypes.NewAccountRemoval( - valAddress, + address, ), ) From 17a5f93a956d888823f66447ba354ec54d7ec69b Mon Sep 17 00:00:00 2001 From: aljo242 Date: Wed, 26 Oct 2022 08:31:20 -0400 Subject: [PATCH 4/5] rename variabel --- changelog.md | 1 - 1 file changed, 1 deletion(-) diff --git a/changelog.md b/changelog.md index 32d404772b..d05f5443b6 100644 --- a/changelog.md +++ b/changelog.md @@ -8,7 +8,6 @@ - [#2995](https://github.com/ignite/cli/pull/2995/) Add `ignite network request remove-validator` command. - [#2999](https://github.com/ignite/cli/pull/2999/) Add `ignite network request remove-account` command. - ### Changes - [#2957](https://github.com/ignite/cli/pull/2957) Change generate commands to print the path to the generated code. From 226dffbadc00dec0384e1ce3e5f39121aeeb4761 Mon Sep 17 00:00:00 2001 From: Alex Johnson Date: Wed, 26 Oct 2022 10:45:10 -0400 Subject: [PATCH 5/5] Update ignite/cmd/network_request.go Co-authored-by: Lucas Bertrand --- ignite/cmd/network_request.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ignite/cmd/network_request.go b/ignite/cmd/network_request.go index cae459af91..38da01c7e3 100644 --- a/ignite/cmd/network_request.go +++ b/ignite/cmd/network_request.go @@ -17,8 +17,8 @@ func NewNetworkRequest() *cobra.Command { NewNetworkRequestReject(), NewNetworkRequestVerify(), NewNetworkRequestAddAccount(), - NewNetworkRequestRemoveValidator(), NewNetworkRequestRemoveAccount(), + NewNetworkRequestRemoveValidator(), ) return c