From cb7f773dfd25a9a032928109a38a74ed63e8550a Mon Sep 17 00:00:00 2001 From: Danilo Pantani Date: Mon, 14 Feb 2022 16:53:44 -0300 Subject: [PATCH 01/26] add `n chain reward-set` command --- go.mod | 2 +- go.sum | 4 ++ starport/cmd/network_chain.go | 1 + starport/cmd/network_chain_reward.go | 19 ++++++++ starport/cmd/network_chain_reward_set.go | 58 ++++++++++++++++++++++++ starport/services/network/reward.go | 35 ++++++++++++++ 6 files changed, 118 insertions(+), 1 deletion(-) create mode 100644 starport/cmd/network_chain_reward.go create mode 100644 starport/cmd/network_chain_reward_set.go create mode 100644 starport/services/network/reward.go diff --git a/go.mod b/go.mod index 09b4885a10..4fabf80bfe 100644 --- a/go.mod +++ b/go.mod @@ -45,7 +45,7 @@ require ( github.com/stretchr/testify v1.7.0 github.com/takuoki/gocase v1.0.0 github.com/tendermint/flutter/v2 v2.0.3 - github.com/tendermint/spn v0.1.1-0.20220201164838-2464b6474c82 + github.com/tendermint/spn v0.1.1-0.20220213170259-32dfa040356b github.com/tendermint/tendermint v0.34.14 github.com/tendermint/tm-db v0.6.4 github.com/tendermint/vue v0.1.58 diff --git a/go.sum b/go.sum index b4652b4787..e02b843c03 100644 --- a/go.sum +++ b/go.sum @@ -1511,6 +1511,10 @@ github.com/tendermint/spm v0.1.8/go.mod h1:iHgfQ5YOI6ONc9E7ugGQolVdfSMHpeXfZ/OpX github.com/tendermint/spn v0.1.1-0.20211210094128-4ca78a240c57/go.mod h1:p4BO8YC6kOKSKqMfySqaLHfwBmuPE/QcLwnnVhh7H9M= github.com/tendermint/spn v0.1.1-0.20220201164838-2464b6474c82 h1:qxeAiKDPJ/Yw2dtNp2lLRV1bqEc0UKidoOhXOzLS0iQ= github.com/tendermint/spn v0.1.1-0.20220201164838-2464b6474c82/go.mod h1:aPUMZ2zCuwpu98HIhaG+hWjOKgw23k5202P0LAIbFHw= +github.com/tendermint/spn v0.1.1-0.20220211171546-93c7314fc789 h1:gI9xkJl02pUc95DK4en6YLTgEtleeM8QB7IJrBRepOk= +github.com/tendermint/spn v0.1.1-0.20220211171546-93c7314fc789/go.mod h1:aPUMZ2zCuwpu98HIhaG+hWjOKgw23k5202P0LAIbFHw= +github.com/tendermint/spn v0.1.1-0.20220213170259-32dfa040356b h1:0ZJ7TCrYXTvfv2vXNw9w+Cku84f5p7iRQ9xhglD5f/8= +github.com/tendermint/spn v0.1.1-0.20220213170259-32dfa040356b/go.mod h1:aPUMZ2zCuwpu98HIhaG+hWjOKgw23k5202P0LAIbFHw= github.com/tendermint/starport v0.19.3/go.mod h1:1BlPohoDtLl8CFqTHbMSN3rhq5YLBHlTQ9mJhcRuvwI= github.com/tendermint/tendermint v0.34.0-rc4/go.mod h1:yotsojf2C1QBOw4dZrTcxbyxmPUrT4hNuOQWX9XUwB4= github.com/tendermint/tendermint v0.34.0-rc6/go.mod h1:ugzyZO5foutZImv0Iyx/gOFCX6mjJTgbLHTwi17VDVg= diff --git a/starport/cmd/network_chain.go b/starport/cmd/network_chain.go index ffa42d18ee..8a8cf726a9 100644 --- a/starport/cmd/network_chain.go +++ b/starport/cmd/network_chain.go @@ -20,6 +20,7 @@ func NewNetworkChain() *cobra.Command { NewNetworkChainPrepare(), NewNetworkChainShow(), NewNetworkChainLaunch(), + NewNetworkChainReward(), ) return c diff --git a/starport/cmd/network_chain_reward.go b/starport/cmd/network_chain_reward.go new file mode 100644 index 0000000000..49b0a1f52d --- /dev/null +++ b/starport/cmd/network_chain_reward.go @@ -0,0 +1,19 @@ +package starportcmd + +import ( + "github.com/spf13/cobra" +) + +// NewNetworkChainReward creates a new chain reward command +func NewNetworkChainReward() *cobra.Command { + c := &cobra.Command{ + Use: "reward", + Short: "Handle network rewards", + } + + c.AddCommand( + NewNetworkChainRewardSet(), + ) + + return c +} diff --git a/starport/cmd/network_chain_reward_set.go b/starport/cmd/network_chain_reward_set.go new file mode 100644 index 0000000000..07a6b8e51c --- /dev/null +++ b/starport/cmd/network_chain_reward_set.go @@ -0,0 +1,58 @@ +package starportcmd + +import ( + "fmt" + "strconv" + + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/spf13/cobra" + "github.com/tendermint/starport/starport/services/network" +) + +// NewNetworkChainRewardSet creates a new chain reward set command to +// add the chain reward to the network as a coordinator. +func NewNetworkChainRewardSet() *cobra.Command { + c := &cobra.Command{ + Use: "set [launch-id] [last-reward-height] [coins]", + Short: "set a network chain reward", + Args: cobra.ExactArgs(3), + RunE: networkChainRewardSetHandler, + } + + c.Flags().AddFlagSet(flagNetworkFrom()) + c.Flags().AddFlagSet(flagSetKeyringBackend()) + + return c +} + +func networkChainRewardSetHandler(cmd *cobra.Command, args []string) error { + nb, err := newNetworkBuilder(cmd) + if err != nil { + return err + } + defer nb.Cleanup() + + // parse launch ID + launchID, err := network.ParseLaunchID(args[0]) + if err != nil { + return err + } + + // parse launch ID + lastRewardHeight, err := strconv.ParseUint(args[1], 10, 64) + if err != nil { + return err + } + + coins, err := sdk.ParseCoinsNormalized(args[2]) + if err != nil { + return fmt.Errorf("failed to parse coins: %w", err) + } + + n, err := nb.Network() + if err != nil { + return err + } + + return n.SetReward(launchID, lastRewardHeight, coins) +} diff --git a/starport/services/network/reward.go b/starport/services/network/reward.go new file mode 100644 index 0000000000..98f85895fd --- /dev/null +++ b/starport/services/network/reward.go @@ -0,0 +1,35 @@ +package network + +import ( + "fmt" + + sdk "github.com/cosmos/cosmos-sdk/types" + rewardtypes "github.com/tendermint/spn/x/reward/types" + "github.com/tendermint/starport/starport/pkg/events" + "github.com/tendermint/starport/starport/services/network/networktypes" +) + +// SetReward set a chain reward +func (n Network) SetReward(launchID, lastRewardHeight uint64, coins sdk.Coins) error { + n.ev.Send(events.New(events.StatusOngoing, fmt.Sprintf("Setting reward %s to chain %d", coins.String(), launchID))) + + msg := rewardtypes.NewMsgSetRewards( + n.account.Address(networktypes.SPN), + launchID, + lastRewardHeight, + coins) + res, err := n.cosmos.BroadcastTx(n.account.Name, msg) + if err != nil { + return err + } + + var setRewardRes rewardtypes.MsgSetRewardsResponse + if err := res.Decode(&setRewardRes); err != nil { + return err + } + + n.ev.Send(events.New(events.StatusDone, + fmt.Sprintf("Chain %d reward set: %s", launchID, coins.String()), + )) + return nil +} From 2559b614a832b8e90cd991ed27374190dd7ed69d Mon Sep 17 00:00:00 2001 From: Danilo Pantani Date: Mon, 14 Feb 2022 16:58:25 -0300 Subject: [PATCH 02/26] fix comments for reward-set cmd --- starport/cmd/network_chain_reward_set.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/starport/cmd/network_chain_reward_set.go b/starport/cmd/network_chain_reward_set.go index 07a6b8e51c..bacf1deb69 100644 --- a/starport/cmd/network_chain_reward_set.go +++ b/starport/cmd/network_chain_reward_set.go @@ -38,7 +38,7 @@ func networkChainRewardSetHandler(cmd *cobra.Command, args []string) error { return err } - // parse launch ID + // parse the last reward height lastRewardHeight, err := strconv.ParseUint(args[1], 10, 64) if err != nil { return err From d00debb0af3e0f512e71a8eb152977866f9a0bbb Mon Sep 17 00:00:00 2001 From: Danilo Pantani Date: Tue, 15 Feb 2022 01:46:45 -0300 Subject: [PATCH 03/26] improve the log messages --- starport/services/network/reward.go | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/starport/services/network/reward.go b/starport/services/network/reward.go index 98f85895fd..36386d8c2d 100644 --- a/starport/services/network/reward.go +++ b/starport/services/network/reward.go @@ -11,7 +11,14 @@ import ( // SetReward set a chain reward func (n Network) SetReward(launchID, lastRewardHeight uint64, coins sdk.Coins) error { - n.ev.Send(events.New(events.StatusOngoing, fmt.Sprintf("Setting reward %s to chain %d", coins.String(), launchID))) + n.ev.Send(events.New( + events.StatusOngoing, + fmt.Sprintf("Setting reward %s to the chain %d at height %d", + coins.String(), + launchID, + lastRewardHeight, + ), + )) msg := rewardtypes.NewMsgSetRewards( n.account.Address(networktypes.SPN), @@ -29,7 +36,12 @@ func (n Network) SetReward(launchID, lastRewardHeight uint64, coins sdk.Coins) e } n.ev.Send(events.New(events.StatusDone, - fmt.Sprintf("Chain %d reward set: %s", launchID, coins.String()), + fmt.Sprintf( + "%s will be distributed to validators at height %d. The chain %d is now an incentivized testnet", + coins.String(), + lastRewardHeight, + launchID, + ), )) return nil } From 1b1da0f61d3d447626d7901d29c6db4c203c01eb Mon Sep 17 00:00:00 2001 From: Danilo Pantani Date: Wed, 16 Feb 2022 13:13:56 -0300 Subject: [PATCH 04/26] fix block indentation --- starport/services/network/reward.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/starport/services/network/reward.go b/starport/services/network/reward.go index 36386d8c2d..7b196c96ec 100644 --- a/starport/services/network/reward.go +++ b/starport/services/network/reward.go @@ -24,7 +24,8 @@ func (n Network) SetReward(launchID, lastRewardHeight uint64, coins sdk.Coins) e n.account.Address(networktypes.SPN), launchID, lastRewardHeight, - coins) + coins, + ) res, err := n.cosmos.BroadcastTx(n.account.Name, msg) if err != nil { return err From f6ad87a7949b77ec903bac266675f9e0524dc0b1 Mon Sep 17 00:00:00 2001 From: Danilo Pantani Date: Wed, 16 Feb 2022 22:45:04 -0300 Subject: [PATCH 05/26] add reward flags to the publish command --- starport/cmd/network_chain_publish.go | 56 ++++++++++++++++++++------- 1 file changed, 41 insertions(+), 15 deletions(-) diff --git a/starport/cmd/network_chain_publish.go b/starport/cmd/network_chain_publish.go index ad45086fef..c5aa8deb81 100644 --- a/starport/cmd/network_chain_publish.go +++ b/starport/cmd/network_chain_publish.go @@ -4,6 +4,7 @@ import ( "fmt" "os" + sdk "github.com/cosmos/cosmos-sdk/types" "github.com/spf13/cobra" "github.com/tendermint/starport/starport/pkg/clispinner" "github.com/tendermint/starport/starport/services/network" @@ -11,13 +12,15 @@ import ( ) const ( - flagTag = "tag" - flagBranch = "branch" - flagHash = "hash" - flagGenesis = "genesis" - flagCampaign = "campaign" - flagNoCheck = "no-check" - flagChainID = "chain-id" + flagTag = "tag" + flagBranch = "branch" + flagHash = "hash" + flagGenesis = "genesis" + flagCampaign = "campaign" + flagNoCheck = "no-check" + flagChainID = "chain-id" + flagRewardCoins = "reward.coins" + flagRewardDuration = "reward.duration" ) // NewNetworkChainPublish returns a new command to publish a new chain to start a new network. @@ -36,6 +39,8 @@ func NewNetworkChainPublish() *cobra.Command { c.Flags().String(flagChainID, "", "Chain ID to use for this network") c.Flags().Uint64(flagCampaign, 0, "Campaign ID to use for this network") c.Flags().Bool(flagNoCheck, false, "Skip verifying chain's integrity") + c.Flags().String(flagRewardCoins, "", "Reward coins") + c.Flags().Uint64(flagRewardDuration, 0, "Last reward height") c.Flags().AddFlagSet(flagNetworkFrom()) c.Flags().AddFlagSet(flagSetKeyringBackend()) c.Flags().AddFlagSet(flagSetHome()) @@ -46,16 +51,30 @@ func NewNetworkChainPublish() *cobra.Command { func networkChainPublishHandler(cmd *cobra.Command, args []string) error { var ( - source = args[0] - tag, _ = cmd.Flags().GetString(flagTag) - branch, _ = cmd.Flags().GetString(flagBranch) - hash, _ = cmd.Flags().GetString(flagHash) - genesisURL, _ = cmd.Flags().GetString(flagGenesis) - chainID, _ = cmd.Flags().GetString(flagChainID) - campaign, _ = cmd.Flags().GetUint64(flagCampaign) - noCheck, _ = cmd.Flags().GetBool(flagNoCheck) + source = args[0] + tag, _ = cmd.Flags().GetString(flagTag) + branch, _ = cmd.Flags().GetString(flagBranch) + hash, _ = cmd.Flags().GetString(flagHash) + genesisURL, _ = cmd.Flags().GetString(flagGenesis) + chainID, _ = cmd.Flags().GetString(flagChainID) + campaign, _ = cmd.Flags().GetUint64(flagCampaign) + noCheck, _ = cmd.Flags().GetBool(flagNoCheck) + rewardCoinsStr, _ = cmd.Flags().GetString(flagRewardCoins) + rewardDuration, _ = cmd.Flags().GetUint64(flagRewardDuration) ) + rewardCoins, err := sdk.ParseCoinsNormalized(rewardCoinsStr) + if err != nil { + return err + } + + if !rewardCoins.Empty() && rewardDuration == 0 { + return fmt.Errorf("the reward duration flag (%s) should provide", flagRewardDuration) + } + if rewardCoins.Empty() && rewardDuration > 0 { + return fmt.Errorf("the reward coins flag (%s) should provide", flagRewardCoins) + } + nb, err := newNetworkBuilder(cmd) if err != nil { return err @@ -129,6 +148,13 @@ func networkChainPublishHandler(cmd *cobra.Command, args []string) error { return err } + if !rewardCoins.Empty() && rewardDuration > 0 { + err := n.SetReward(launchID, rewardDuration, rewardCoins) + if err != nil { + return err + } + } + nb.Spinner.Stop() fmt.Printf("%s Network published \n", clispinner.OK) From dabf70b45682e8e08e748a59d818cfd65136e0aa Mon Sep 17 00:00:00 2001 From: Danilo Pantani Date: Thu, 17 Feb 2022 10:58:37 -0300 Subject: [PATCH 06/26] run make format --- starport/cmd/network_chain_reward_set.go | 1 + starport/services/network/reward.go | 1 + 2 files changed, 2 insertions(+) diff --git a/starport/cmd/network_chain_reward_set.go b/starport/cmd/network_chain_reward_set.go index bacf1deb69..57675161d0 100644 --- a/starport/cmd/network_chain_reward_set.go +++ b/starport/cmd/network_chain_reward_set.go @@ -6,6 +6,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" "github.com/spf13/cobra" + "github.com/tendermint/starport/starport/services/network" ) diff --git a/starport/services/network/reward.go b/starport/services/network/reward.go index 7b196c96ec..62d664794f 100644 --- a/starport/services/network/reward.go +++ b/starport/services/network/reward.go @@ -5,6 +5,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" rewardtypes "github.com/tendermint/spn/x/reward/types" + "github.com/tendermint/starport/starport/pkg/events" "github.com/tendermint/starport/starport/services/network/networktypes" ) From 44a5dd3e638456db523ac653272b7daab6cb7dd0 Mon Sep 17 00:00:00 2001 From: Danilo Pantani Date: Wed, 23 Feb 2022 17:29:27 -0300 Subject: [PATCH 07/26] fix the spn upgrade version --- starport/cmd/network_chain_reward_set.go | 2 +- starport/services/network/publish.go | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/starport/cmd/network_chain_reward_set.go b/starport/cmd/network_chain_reward_set.go index 57675161d0..9114aff593 100644 --- a/starport/cmd/network_chain_reward_set.go +++ b/starport/cmd/network_chain_reward_set.go @@ -34,7 +34,7 @@ func networkChainRewardSetHandler(cmd *cobra.Command, args []string) error { defer nb.Cleanup() // parse launch ID - launchID, err := network.ParseLaunchID(args[0]) + launchID, err := network.ParseID(args[0]) if err != nil { return err } diff --git a/starport/services/network/publish.go b/starport/services/network/publish.go index 3eef1c5740..1169ca81b2 100644 --- a/starport/services/network/publish.go +++ b/starport/services/network/publish.go @@ -114,6 +114,7 @@ func (n Network) Publish(ctx context.Context, c Chain, options ...PublishOption) coordinatorAddress, c.Name(), nil, + nil, ) res, err := n.cosmos.BroadcastTx(n.account.Name, msgCreateCampaign) if err != nil { From aa193c789ad7f5198ab893ac3400b9858360d8b3 Mon Sep 17 00:00:00 2001 From: Danilo Pantani Date: Wed, 23 Feb 2022 18:03:12 -0300 Subject: [PATCH 08/26] improve the log message --- starport/cmd/network_chain_reward_set.go | 2 -- starport/services/network/reward.go | 22 +++++++++++++++------- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/starport/cmd/network_chain_reward_set.go b/starport/cmd/network_chain_reward_set.go index 9114aff593..c3a7f3f05e 100644 --- a/starport/cmd/network_chain_reward_set.go +++ b/starport/cmd/network_chain_reward_set.go @@ -19,10 +19,8 @@ func NewNetworkChainRewardSet() *cobra.Command { Args: cobra.ExactArgs(3), RunE: networkChainRewardSetHandler, } - c.Flags().AddFlagSet(flagNetworkFrom()) c.Flags().AddFlagSet(flagSetKeyringBackend()) - return c } diff --git a/starport/services/network/reward.go b/starport/services/network/reward.go index 62d664794f..981aeb3443 100644 --- a/starport/services/network/reward.go +++ b/starport/services/network/reward.go @@ -37,13 +37,21 @@ func (n Network) SetReward(launchID, lastRewardHeight uint64, coins sdk.Coins) e return err } - n.ev.Send(events.New(events.StatusDone, - fmt.Sprintf( - "%s will be distributed to validators at height %d. The chain %d is now an incentivized testnet", - coins.String(), - lastRewardHeight, + doneMsg := fmt.Sprintf("%s will be distributed to validators at height %d.", coins.String(), lastRewardHeight) + if setRewardRes.PreviousCoins.Empty() { + doneMsg = fmt.Sprintf("New reward pool was created.\n%s", doneMsg) + } else { + doneMsg = fmt.Sprintf("Previous reward pool was overwritten.\n%s", doneMsg) + } + + if setRewardRes.NewCoins.Empty() { + n.ev.Send(events.New(events.StatusDone, "The reward pool was removed.")) + } else { + n.ev.Send(events.New(events.StatusDone, fmt.Sprintf( + "%s.\nThe chain %d is now an incentivized testnet", + doneMsg, launchID, - ), - )) + ))) + } return nil } From bff928c3452f74d26ef5924d3bdabbc48221c9ec Mon Sep 17 00:00:00 2001 From: Danilo Pantani Date: Wed, 23 Feb 2022 18:10:27 -0300 Subject: [PATCH 09/26] add validator account flag --- starport/cmd/network_chain_init.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/starport/cmd/network_chain_init.go b/starport/cmd/network_chain_init.go index 86be866e4e..1caefcacc4 100644 --- a/starport/cmd/network_chain_init.go +++ b/starport/cmd/network_chain_init.go @@ -3,6 +3,8 @@ package starportcmd import ( "fmt" + "github.com/tendermint/starport/starport/pkg/cosmosaccount" + "github.com/manifoldco/promptui" "github.com/spf13/cobra" @@ -33,6 +35,7 @@ func NewNetworkChainInit() *cobra.Command { Args: cobra.ExactArgs(1), RunE: networkChainInitHandler, } + c.Flags().String(flagValidatorAccount, cosmosaccount.DefaultAccount, "Account for the chain validator") c.Flags().String(flagValidatorWebsite, "", "Associate a website with the validator") c.Flags().String(flagValidatorDetails, "", "Details about the validator") c.Flags().String(flagValidatorSecurityContact, "", "Validator security contact email") From 5986754b39fff206357a5e1dc5b4802492b118bc Mon Sep 17 00:00:00 2001 From: Danilo Pantani Date: Wed, 23 Feb 2022 19:02:35 -0300 Subject: [PATCH 10/26] improve the reward log with the new message response --- starport/services/network/reward.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/starport/services/network/reward.go b/starport/services/network/reward.go index 981aeb3443..02f958c65a 100644 --- a/starport/services/network/reward.go +++ b/starport/services/network/reward.go @@ -37,11 +37,15 @@ func (n Network) SetReward(launchID, lastRewardHeight uint64, coins sdk.Coins) e return err } - doneMsg := fmt.Sprintf("%s will be distributed to validators at height %d.", coins.String(), lastRewardHeight) + doneMsg := fmt.Sprintf("%s will be distributed to validators at height %d", coins.String(), lastRewardHeight) if setRewardRes.PreviousCoins.Empty() { doneMsg = fmt.Sprintf("New reward pool was created.\n%s", doneMsg) } else { - doneMsg = fmt.Sprintf("Previous reward pool was overwritten.\n%s", doneMsg) + doneMsg = fmt.Sprintf("Previous reward pool %s at height %d was overwritten.\n%s", + coins.String(), + lastRewardHeight, + doneMsg, + ) } if setRewardRes.NewCoins.Empty() { From b1a2ec28860506545780d73114e21e05124b5a9d Mon Sep 17 00:00:00 2001 From: Danilo Pantani Date: Thu, 24 Feb 2022 01:55:47 -0300 Subject: [PATCH 11/26] improve the events messages and logs --- starport/cmd/cmd.go | 8 +++- starport/cmd/network_chain_publish.go | 34 ++++++++--------- starport/cmd/network_chain_reward.go | 4 +- starport/pkg/clispinner/icon.go | 5 ++- starport/pkg/events/events.go | 53 ++++++++++++++++++++------- starport/services/network/reward.go | 26 ++++++++----- 6 files changed, 83 insertions(+), 47 deletions(-) diff --git a/starport/cmd/cmd.go b/starport/cmd/cmd.go index a6cfaacf3e..234bed5a85 100644 --- a/starport/cmd/cmd.go +++ b/starport/cmd/cmd.go @@ -86,12 +86,16 @@ func printEvents(wg *sync.WaitGroup, bus events.Bus, s *clispinner.Spinner) { defer wg.Done() for event := range bus { - if event.IsOngoing() { + switch event.Status { + case events.StatusOngoing: s.SetText(event.Text()) s.Start() - } else { + case events.StatusDone: s.Stop() fmt.Printf("%s %s\n", clispinner.OK, event.Description) + case events.StatusInfo: + s.Stop() + fmt.Printf("%s %s\n", clispinner.Info, event.Description) } } } diff --git a/starport/cmd/network_chain_publish.go b/starport/cmd/network_chain_publish.go index fde4e0ece2..9256f6ba9e 100644 --- a/starport/cmd/network_chain_publish.go +++ b/starport/cmd/network_chain_publish.go @@ -1,6 +1,7 @@ package starportcmd import ( + "errors" "fmt" "os" @@ -13,15 +14,15 @@ import ( ) const ( - flagTag = "tag" - flagBranch = "branch" - flagHash = "hash" - flagGenesis = "genesis" - flagCampaign = "campaign" - flagNoCheck = "no-check" - flagChainID = "chain-id" - flagRewardCoins = "reward.coins" - flagRewardDuration = "reward.duration" + flagTag = "tag" + flagBranch = "branch" + flagHash = "hash" + flagGenesis = "genesis" + flagCampaign = "campaign" + flagNoCheck = "no-check" + flagChainID = "chain-id" + flagRewardCoins = "reward.coins" + flagRewardHeight = "reward.height" ) // NewNetworkChainPublish returns a new command to publish a new chain to start a new network. @@ -41,7 +42,7 @@ func NewNetworkChainPublish() *cobra.Command { c.Flags().Uint64(flagCampaign, 0, "Campaign ID to use for this network") c.Flags().Bool(flagNoCheck, false, "Skip verifying chain's integrity") c.Flags().String(flagRewardCoins, "", "Reward coins") - c.Flags().Uint64(flagRewardDuration, 0, "Last reward height") + c.Flags().Uint64(flagRewardHeight, 0, "Last reward height") c.Flags().AddFlagSet(flagNetworkFrom()) c.Flags().AddFlagSet(flagSetKeyringBackend()) c.Flags().AddFlagSet(flagSetHome()) @@ -61,7 +62,7 @@ func networkChainPublishHandler(cmd *cobra.Command, args []string) error { campaign, _ = cmd.Flags().GetUint64(flagCampaign) noCheck, _ = cmd.Flags().GetBool(flagNoCheck) rewardCoinsStr, _ = cmd.Flags().GetString(flagRewardCoins) - rewardDuration, _ = cmd.Flags().GetUint64(flagRewardDuration) + rewardDuration, _ = cmd.Flags().GetUint64(flagRewardHeight) ) rewardCoins, err := sdk.ParseCoinsNormalized(rewardCoinsStr) @@ -69,11 +70,9 @@ func networkChainPublishHandler(cmd *cobra.Command, args []string) error { return err } - if !rewardCoins.Empty() && rewardDuration == 0 { - return fmt.Errorf("the reward duration flag (%s) should provide", flagRewardDuration) - } - if rewardCoins.Empty() && rewardDuration > 0 { - return fmt.Errorf("the reward coins flag (%s) should provide", flagRewardCoins) + if (!rewardCoins.Empty() && rewardDuration == 0) || + (rewardCoins.Empty() && rewardDuration > 0) { + return errors.New("--reward.coins and --reward.duration flags must be provided together") } nb, err := newNetworkBuilder(cmd) @@ -150,8 +149,7 @@ func networkChainPublishHandler(cmd *cobra.Command, args []string) error { } if !rewardCoins.Empty() && rewardDuration > 0 { - err := n.SetReward(launchID, rewardDuration, rewardCoins) - if err != nil { + if err := n.SetReward(launchID, rewardDuration, rewardCoins); err != nil { return err } } diff --git a/starport/cmd/network_chain_reward.go b/starport/cmd/network_chain_reward.go index 49b0a1f52d..4ac20e12e6 100644 --- a/starport/cmd/network_chain_reward.go +++ b/starport/cmd/network_chain_reward.go @@ -8,12 +8,10 @@ import ( func NewNetworkChainReward() *cobra.Command { c := &cobra.Command{ Use: "reward", - Short: "Handle network rewards", + Short: "Manage network rewards", } - c.AddCommand( NewNetworkChainRewardSet(), ) - return c } diff --git a/starport/pkg/clispinner/icon.go b/starport/pkg/clispinner/icon.go index b0a4c1be17..af0807fa8a 100644 --- a/starport/pkg/clispinner/icon.go +++ b/starport/pkg/clispinner/icon.go @@ -6,6 +6,9 @@ var ( // OK is an OK mark. OK = color.New(color.FgGreen).SprintFunc()("✔") // NotOK is a red cross mark - NotOK = color.New(color.FgRed).SprintFunc()("✘") + NotOK = color.New(color.FgRed).SprintFunc()("✘") + // Bullet is a bullet mark Bullet = color.New(color.FgYellow).SprintFunc()("⋆") + // Info is an info mark + Info = color.New(color.FgYellow).SprintFunc()("𝓲") ) diff --git a/starport/pkg/events/events.go b/starport/pkg/events/events.go index 3864c7e8da..1c74753d7b 100644 --- a/starport/pkg/events/events.go +++ b/starport/pkg/events/events.go @@ -2,41 +2,66 @@ // for others to consume and display to end users in meaningful ways. package events -import "fmt" +import ( + "fmt" + + "github.com/gookit/color" +) // Event represents a state. -type Event struct { - // Status shows the current status of event. - status Status +type ( + Event struct { + // Description of the state. + Description string - // Description of the state. - Description string -} + // Status shows the current status of event. + Status Status -// Status shows if state is ongoing or completed. -type Status int + // Color of the text. + Color color.Color + } + + // Status shows if state is ongoing or completed. + Status int + + // Option event options + Option func(*Event) +) const ( StatusOngoing Status = iota StatusDone + StatusInfo ) +// Color sets the text color +func Color(c color.Color) Option { + return func(e *Event) { + e.Color = c + } +} + // New creates a new event with given config. -func New(status Status, description string) Event { - return Event{status, description} +func New(status Status, description string, options ...Option) Event { + ev := Event{Status: status, Description: description} + for _, applyOption := range options { + applyOption(&ev) + } + return ev } // IsOngoing checks if state change that triggered this event is still ongoing. func (e Event) IsOngoing() bool { - return e.status == StatusOngoing + return e.Status == StatusOngoing } // Text returns the text state of event. func (e Event) Text() string { + text := e.Description if e.IsOngoing() { - return fmt.Sprintf("%s...", e.Description) + text = fmt.Sprintf("%s...", e.Description) } - return e.Description + return e.Color.Render(text) } // Bus is a send/receive event bus. diff --git a/starport/services/network/reward.go b/starport/services/network/reward.go index 02f958c65a..8e4cd7be4c 100644 --- a/starport/services/network/reward.go +++ b/starport/services/network/reward.go @@ -4,6 +4,7 @@ import ( "fmt" sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/gookit/color" rewardtypes "github.com/tendermint/spn/x/reward/types" "github.com/tendermint/starport/starport/pkg/events" @@ -37,23 +38,30 @@ func (n Network) SetReward(launchID, lastRewardHeight uint64, coins sdk.Coins) e return err } - doneMsg := fmt.Sprintf("%s will be distributed to validators at height %d", coins.String(), lastRewardHeight) if setRewardRes.PreviousCoins.Empty() { - doneMsg = fmt.Sprintf("New reward pool was created.\n%s", doneMsg) + n.ev.Send(events.New( + events.StatusInfo, + "The reward pool was removed.", + events.Color(color.Yellow), + )) } else { - doneMsg = fmt.Sprintf("Previous reward pool %s at height %d was overwritten.\n%s", - coins.String(), - lastRewardHeight, - doneMsg, - ) + n.ev.Send(events.New(events.StatusInfo, + fmt.Sprintf( + "Previous reward pool %s at height %d was overwritten.", + coins.String(), + lastRewardHeight, + ), + events.Color(color.Yellow), + )) } if setRewardRes.NewCoins.Empty() { n.ev.Send(events.New(events.StatusDone, "The reward pool was removed.")) } else { n.ev.Send(events.New(events.StatusDone, fmt.Sprintf( - "%s.\nThe chain %d is now an incentivized testnet", - doneMsg, + "%s will be distributed to validators at height %d. The chain %d is now an incentivized testnet", + coins.String(), + lastRewardHeight, launchID, ))) } From c885f783ee33e867dd10e3e6c0e3564f881fb74a Mon Sep 17 00:00:00 2001 From: Danilo Pantani Date: Thu, 24 Feb 2022 12:32:49 -0300 Subject: [PATCH 12/26] improve the event message options adding the icon --- starport/cmd/cmd.go | 9 +++++---- starport/pkg/events/events.go | 11 ++++++++++- starport/services/network/reward.go | 7 +++++-- 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/starport/cmd/cmd.go b/starport/cmd/cmd.go index 234bed5a85..d317086861 100644 --- a/starport/cmd/cmd.go +++ b/starport/cmd/cmd.go @@ -91,11 +91,12 @@ func printEvents(wg *sync.WaitGroup, bus events.Bus, s *clispinner.Spinner) { s.SetText(event.Text()) s.Start() case events.StatusDone: + icon := event.Icon + if icon == "" { + icon = clispinner.OK + } s.Stop() - fmt.Printf("%s %s\n", clispinner.OK, event.Description) - case events.StatusInfo: - s.Stop() - fmt.Printf("%s %s\n", clispinner.Info, event.Description) + fmt.Printf("%s %s\n", icon, event.Description) } } } diff --git a/starport/pkg/events/events.go b/starport/pkg/events/events.go index 1c74753d7b..c0b680bd03 100644 --- a/starport/pkg/events/events.go +++ b/starport/pkg/events/events.go @@ -19,6 +19,9 @@ type ( // Color of the text. Color color.Color + + // Icon of the text. + Icon string } // Status shows if state is ongoing or completed. @@ -31,7 +34,6 @@ type ( const ( StatusOngoing Status = iota StatusDone - StatusInfo ) // Color sets the text color @@ -41,6 +43,13 @@ func Color(c color.Color) Option { } } +// Icon sets the text icon prefix +func Icon(icon string) Option { + return func(e *Event) { + e.Icon = icon + } +} + // New creates a new event with given config. func New(status Status, description string, options ...Option) Event { ev := Event{Status: status, Description: description} diff --git a/starport/services/network/reward.go b/starport/services/network/reward.go index 8e4cd7be4c..0e928ac0c4 100644 --- a/starport/services/network/reward.go +++ b/starport/services/network/reward.go @@ -7,6 +7,7 @@ import ( "github.com/gookit/color" rewardtypes "github.com/tendermint/spn/x/reward/types" + "github.com/tendermint/starport/starport/pkg/clispinner" "github.com/tendermint/starport/starport/pkg/events" "github.com/tendermint/starport/starport/services/network/networktypes" ) @@ -40,18 +41,20 @@ func (n Network) SetReward(launchID, lastRewardHeight uint64, coins sdk.Coins) e if setRewardRes.PreviousCoins.Empty() { n.ev.Send(events.New( - events.StatusInfo, + events.StatusDone, "The reward pool was removed.", events.Color(color.Yellow), + events.Icon(clispinner.Info), )) } else { - n.ev.Send(events.New(events.StatusInfo, + n.ev.Send(events.New(events.StatusDone, fmt.Sprintf( "Previous reward pool %s at height %d was overwritten.", coins.String(), lastRewardHeight, ), events.Color(color.Yellow), + events.Icon(clispinner.Info), )) } From 891266a823a46264fac5e7956fd2f7b59bc017d8 Mon Sep 17 00:00:00 2001 From: Danilo Pantani Date: Thu, 24 Feb 2022 13:25:09 -0300 Subject: [PATCH 13/26] fix method names and text color --- starport/cmd/cmd.go | 2 +- starport/pkg/events/events.go | 12 ++++++------ starport/services/network/reward.go | 3 --- 3 files changed, 7 insertions(+), 10 deletions(-) diff --git a/starport/cmd/cmd.go b/starport/cmd/cmd.go index d317086861..a395ed33ff 100644 --- a/starport/cmd/cmd.go +++ b/starport/cmd/cmd.go @@ -96,7 +96,7 @@ func printEvents(wg *sync.WaitGroup, bus events.Bus, s *clispinner.Spinner) { icon = clispinner.OK } s.Stop() - fmt.Printf("%s %s\n", icon, event.Description) + fmt.Printf("%s %s\n", icon, event.Text()) } } } diff --git a/starport/pkg/events/events.go b/starport/pkg/events/events.go index c0b680bd03..f0d219eebb 100644 --- a/starport/pkg/events/events.go +++ b/starport/pkg/events/events.go @@ -17,8 +17,8 @@ type ( // Status shows the current status of event. Status Status - // Color of the text. - Color color.Color + // TextColor of the text. + TextColor color.Color // Icon of the text. Icon string @@ -36,10 +36,10 @@ const ( StatusDone ) -// Color sets the text color -func Color(c color.Color) Option { +// TextColor sets the text color +func TextColor(c color.Color) Option { return func(e *Event) { - e.Color = c + e.TextColor = c } } @@ -70,7 +70,7 @@ func (e Event) Text() string { if e.IsOngoing() { text = fmt.Sprintf("%s...", e.Description) } - return e.Color.Render(text) + return e.TextColor.Render(text) } // Bus is a send/receive event bus. diff --git a/starport/services/network/reward.go b/starport/services/network/reward.go index 0e928ac0c4..022667d2ea 100644 --- a/starport/services/network/reward.go +++ b/starport/services/network/reward.go @@ -4,7 +4,6 @@ import ( "fmt" sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/gookit/color" rewardtypes "github.com/tendermint/spn/x/reward/types" "github.com/tendermint/starport/starport/pkg/clispinner" @@ -43,7 +42,6 @@ func (n Network) SetReward(launchID, lastRewardHeight uint64, coins sdk.Coins) e n.ev.Send(events.New( events.StatusDone, "The reward pool was removed.", - events.Color(color.Yellow), events.Icon(clispinner.Info), )) } else { @@ -53,7 +51,6 @@ func (n Network) SetReward(launchID, lastRewardHeight uint64, coins sdk.Coins) e coins.String(), lastRewardHeight, ), - events.Color(color.Yellow), events.Icon(clispinner.Info), )) } From 6ded79c0524a95f5c2165d1d6058a12751ff33b7 Mon Sep 17 00:00:00 2001 From: Danilo Pantani Date: Thu, 24 Feb 2022 13:35:44 -0300 Subject: [PATCH 14/26] fix events struct comment --- starport/pkg/events/events.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/starport/pkg/events/events.go b/starport/pkg/events/events.go index f0d219eebb..2a76fd6cfa 100644 --- a/starport/pkg/events/events.go +++ b/starport/pkg/events/events.go @@ -8,8 +8,8 @@ import ( "github.com/gookit/color" ) -// Event represents a state. type ( + // Event represents a state. Event struct { // Description of the state. Description string From e080ca99db18a8b0a4d6557d6b518f78d56bc5d3 Mon Sep 17 00:00:00 2001 From: Danilo Pantani Date: Thu, 24 Feb 2022 18:44:18 -0300 Subject: [PATCH 15/26] fix lint --- starport/cmd/network_chain_init.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/starport/cmd/network_chain_init.go b/starport/cmd/network_chain_init.go index 74eae9056b..2177ef1735 100644 --- a/starport/cmd/network_chain_init.go +++ b/starport/cmd/network_chain_init.go @@ -3,8 +3,6 @@ package starportcmd import ( "fmt" - "github.com/tendermint/starport/starport/pkg/cosmosaccount" - "github.com/manifoldco/promptui" "github.com/spf13/cobra" From e07214fd4fcc4d91291f15eaf463a988847eb847 Mon Sep 17 00:00:00 2001 From: Danilo Pantani Date: Fri, 25 Feb 2022 01:02:51 -0300 Subject: [PATCH 16/26] move chain reward to reward --- starport/cmd/network.go | 1 + starport/cmd/network_chain.go | 1 - starport/cmd/{network_chain_reward.go => network_reward.go} | 6 +++--- .../{network_chain_reward_set.go => network_reward_set.go} | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) rename starport/cmd/{network_chain_reward.go => network_reward.go} (55%) rename starport/cmd/{network_chain_reward_set.go => network_reward_set.go} (90%) diff --git a/starport/cmd/network.go b/starport/cmd/network.go index 06d05f6faa..17e1d9d465 100644 --- a/starport/cmd/network.go +++ b/starport/cmd/network.go @@ -63,6 +63,7 @@ func NewNetwork() *cobra.Command { NewNetworkChain(), NewNetworkCampaign(), NewNetworkRequest(), + NewNetworkReward(), ) return c diff --git a/starport/cmd/network_chain.go b/starport/cmd/network_chain.go index 8a8cf726a9..ffa42d18ee 100644 --- a/starport/cmd/network_chain.go +++ b/starport/cmd/network_chain.go @@ -20,7 +20,6 @@ func NewNetworkChain() *cobra.Command { NewNetworkChainPrepare(), NewNetworkChainShow(), NewNetworkChainLaunch(), - NewNetworkChainReward(), ) return c diff --git a/starport/cmd/network_chain_reward.go b/starport/cmd/network_reward.go similarity index 55% rename from starport/cmd/network_chain_reward.go rename to starport/cmd/network_reward.go index 4ac20e12e6..6474562752 100644 --- a/starport/cmd/network_chain_reward.go +++ b/starport/cmd/network_reward.go @@ -4,14 +4,14 @@ import ( "github.com/spf13/cobra" ) -// NewNetworkChainReward creates a new chain reward command -func NewNetworkChainReward() *cobra.Command { +// NewNetworkReward creates a new chain reward command +func NewNetworkReward() *cobra.Command { c := &cobra.Command{ Use: "reward", Short: "Manage network rewards", } c.AddCommand( - NewNetworkChainRewardSet(), + NewNetworkRewardSet(), ) return c } diff --git a/starport/cmd/network_chain_reward_set.go b/starport/cmd/network_reward_set.go similarity index 90% rename from starport/cmd/network_chain_reward_set.go rename to starport/cmd/network_reward_set.go index c3a7f3f05e..a78ba69c13 100644 --- a/starport/cmd/network_chain_reward_set.go +++ b/starport/cmd/network_reward_set.go @@ -10,9 +10,9 @@ import ( "github.com/tendermint/starport/starport/services/network" ) -// NewNetworkChainRewardSet creates a new chain reward set command to +// NewNetworkRewardSet creates a new chain reward set command to // add the chain reward to the network as a coordinator. -func NewNetworkChainRewardSet() *cobra.Command { +func NewNetworkRewardSet() *cobra.Command { c := &cobra.Command{ Use: "set [launch-id] [last-reward-height] [coins]", Short: "set a network chain reward", From d8a963504d91b32b6734603aa7f3268b83c6b0f8 Mon Sep 17 00:00:00 2001 From: Danilo Pantani Date: Thu, 3 Mar 2022 18:26:05 -0300 Subject: [PATCH 17/26] improve the error return message --- starport/cmd/network_chain_publish.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/starport/cmd/network_chain_publish.go b/starport/cmd/network_chain_publish.go index 9256f6ba9e..fb5a966557 100644 --- a/starport/cmd/network_chain_publish.go +++ b/starport/cmd/network_chain_publish.go @@ -1,7 +1,6 @@ package starportcmd import ( - "errors" "fmt" "os" @@ -72,7 +71,7 @@ func networkChainPublishHandler(cmd *cobra.Command, args []string) error { if (!rewardCoins.Empty() && rewardDuration == 0) || (rewardCoins.Empty() && rewardDuration > 0) { - return errors.New("--reward.coins and --reward.duration flags must be provided together") + return fmt.Errorf("%s and %s flags must be provided together", flagRewardCoins, flagRewardHeight) } nb, err := newNetworkBuilder(cmd) From b9768477759d6ee2da1cebd2befb6c30c4c6e528 Mon Sep 17 00:00:00 2001 From: Danilo Pantani Date: Fri, 4 Mar 2022 19:31:43 -0300 Subject: [PATCH 18/26] update spn version --- go.mod | 6 ++--- go.sum | 32 +++++++++++---------------- starport/cmd/network_chain_publish.go | 2 +- starport/cmd/network_reward_set.go | 2 +- starport/pkg/xtime/unix.go | 2 +- starport/pkg/xtime/unix_test.go | 4 ++-- starport/services/network/launch.go | 6 ++--- starport/services/network/reward.go | 2 +- 8 files changed, 25 insertions(+), 31 deletions(-) diff --git a/go.mod b/go.mod index 80017c7c8a..56f55509c9 100644 --- a/go.mod +++ b/go.mod @@ -45,14 +45,14 @@ require ( github.com/stretchr/testify v1.7.0 github.com/takuoki/gocase v1.0.0 github.com/tendermint/flutter/v2 v2.0.3 - github.com/tendermint/spn v0.1.1-0.20220223181013-9b803b7972cc + github.com/tendermint/spn v0.1.1-0.20220304162453-5bad450e5dfd github.com/tendermint/tendermint v0.34.14 github.com/tendermint/tm-db v0.6.4 github.com/tendermint/vue v0.3.0 golang.org/x/mod v0.4.2 golang.org/x/sync v0.0.0-20210220032951-036812b2e83c - golang.org/x/term v0.0.0-20210615171337-6886f2dfbf5b - google.golang.org/grpc v1.43.0 + golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 + google.golang.org/grpc v1.44.0 ) replace ( diff --git a/go.sum b/go.sum index 272d1f112d..81ecdaf34d 100644 --- a/go.sum +++ b/go.sum @@ -403,7 +403,6 @@ github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfc github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/cosmos/btcutil v1.0.4 h1:n7C2ngKXo7UC9gNyMNLbzqz7Asuf+7Qv4gnX/rOdQ44= github.com/cosmos/btcutil v1.0.4/go.mod h1:Ffqc8Hn6TJUdDgHBwIZLtrLQC1KdJ9jGJl/TvgUaxbU= -github.com/cosmos/cosmos-sdk v0.44.0/go.mod h1:orG0jzFJ2KsDfzLd/X0JSOMzF4Oxc/BQz2GkcYF4gRE= github.com/cosmos/cosmos-sdk v0.44.2/go.mod h1:fwQJdw+aECatpTvQTo1tSfHEsxACdZYU80QCZUPnHr4= github.com/cosmos/cosmos-sdk v0.44.3/go.mod h1:bA3+VenaR/l/vDiYzaiwbWvRPWHMBX2jG0ygiFtiBp0= github.com/cosmos/cosmos-sdk v0.44.4/go.mod h1:0QTCOkE8IWu5LZyfnbbjFjxYRIcV4pBOr7+zPpJwl58= @@ -416,12 +415,10 @@ github.com/cosmos/go-bip39 v1.0.0/go.mod h1:RNJv0H/pOIVgxw6KS7QeX2a0Uo0aKUlfhZ4x github.com/cosmos/iavl v0.15.0-rc3.0.20201009144442-230e9bdf52cd/go.mod h1:3xOIaNNX19p0QrX0VqWa6voPRoJRGGYtny+DH8NEPvE= github.com/cosmos/iavl v0.15.0-rc5/go.mod h1:WqoPL9yPTQ85QBMT45OOUzPxG/U/JcJoN7uMjgxke/I= github.com/cosmos/iavl v0.15.3/go.mod h1:OLjQiAQ4fGD2KDZooyJG9yz+p2ao2IAYSbke8mVvSA4= -github.com/cosmos/iavl v0.16.0/go.mod h1:2A8O/Jz9YwtjqXMO0CjnnbTYEEaovE8jWcwrakH3PoE= github.com/cosmos/iavl v0.17.1/go.mod h1:7aisPZK8yCpQdy3PMvKeO+bhq1NwDjUwjzxwwROUxFk= github.com/cosmos/iavl v0.17.2/go.mod h1:prJoErZFABYZGDHka1R6Oay4z9PrNeFFiMKHDAMOi4w= github.com/cosmos/iavl v0.17.3 h1:s2N819a2olOmiauVa0WAhoIJq9EhSXE9HDBAoR9k+8Y= github.com/cosmos/iavl v0.17.3/go.mod h1:prJoErZFABYZGDHka1R6Oay4z9PrNeFFiMKHDAMOi4w= -github.com/cosmos/ibc-go v1.2.0/go.mod h1:wGjeNd+T4kpGrt0OC8DTiE/qXLrlmTPNpdoYsBZUjKI= github.com/cosmos/ibc-go v1.2.2 h1:bs6TZ8Es1kycIu2AHlRZ9dzJ+mveqlLN/0sjWtRH88o= github.com/cosmos/ibc-go v1.2.2/go.mod h1:XmYjsRFOs6Q9Cz+CSsX21icNoH27vQKb3squgnCOCbs= github.com/cosmos/ibc-go/v2 v2.0.2/go.mod h1:XUmW7wmubCRhIEAGtMGS+5IjiSSmcAwihoN/yPGd6Kk= @@ -900,7 +897,6 @@ github.com/imdario/mergo v0.3.10/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= github.com/imdario/mergo v0.3.12 h1:b6R2BslTbIEToALKP7LxUvijTsNI9TAe80pLWN2g/HU= github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= -github.com/improbable-eng/grpc-web v0.14.0/go.mod h1:6hRR09jOEG81ADP5wCQju1z71g6OL4eEvELdran/3cs= github.com/improbable-eng/grpc-web v0.14.1 h1:NrN4PY71A6tAz2sKDvC5JCauENWp0ykG8Oq1H3cpFvw= github.com/improbable-eng/grpc-web v0.14.1/go.mod h1:zEjGHa8DAlkoOXmswrNvhUGEYQA9UI7DhrGeHR1DMGU= github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= @@ -916,7 +912,6 @@ github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jgautheron/goconst v1.5.1/go.mod h1:aAosetZ5zaeC/2EfMeRswtxUFBpe2Hr7HzkgX4fanO4= github.com/jhump/protoreflect v1.6.1/go.mod h1:RZQ/lnuN+zqeRVpQigTwO6o0AJUkxbnSnpuG7toUTG4= -github.com/jhump/protoreflect v1.8.2/go.mod h1:7GcYQDdMU/O/BBrl/cX6PNHpXh6cenjd8pneu5yW7Tg= github.com/jhump/protoreflect v1.9.0 h1:npqHz788dryJiR/l6K/RUQAyh2SwV91+d1dnh4RjO9w= github.com/jhump/protoreflect v1.9.0/go.mod h1:7GcYQDdMU/O/BBrl/cX6PNHpXh6cenjd8pneu5yW7Tg= github.com/jingyugao/rowserrcheck v1.1.0/go.mod h1:TOQpc2SLx6huPfoFGK3UOnEG+u02D3C1GeosjupAKCA= @@ -1047,7 +1042,6 @@ github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hd github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84= github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= -github.com/mattn/go-isatty v0.0.13/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= @@ -1461,7 +1455,6 @@ github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DM github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= github.com/spf13/viper v1.7.1/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= -github.com/spf13/viper v1.8.0/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns= github.com/spf13/viper v1.8.1 h1:Kq1fyeebqsBfbjZj4EL7gj2IO0mMaiyjYUWcUsl2O44= github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns= github.com/ssgreg/nlreturn/v2 v2.1.0/go.mod h1:E/iiPB78hV7Szg2YfRgyIrk1AD6JVMTRkkxBiELzh2I= @@ -1507,20 +1500,17 @@ github.com/tendermint/crypto v0.0.0-20191022145703-50d29ede1e15 h1:hqAk8riJvK4RM github.com/tendermint/crypto v0.0.0-20191022145703-50d29ede1e15/go.mod h1:z4YtwM70uOnk8h0pjJYlj3zdYwi9l03By6iAIF5j/Pk= github.com/tendermint/flutter/v2 v2.0.3 h1:+J3Q6FRdcDTLkrcPQHY306J7wRPEKxfU2K2xCVFJGqs= github.com/tendermint/flutter/v2 v2.0.3/go.mod h1:hnaVhWhzv2Od1LqZFWrRKwiOHeMonsB9EIWP0AGMPw0= -github.com/tendermint/fundraising v0.1.1-0.20220120023412-21f96392d57e/go.mod h1:abSJIfCub3X91Hq66X622CawkXEqPLFlRULjnyb0aj0= +github.com/tendermint/fundraising v0.1.1/go.mod h1:5QEwrPzpkIqCeGSK9HgI2DxO5RKC5Jk8nXWqowUW0to= github.com/tendermint/go-amino v0.16.0 h1:GyhmgQKvqF82e2oZeuMSp9JTN0N09emoSZlb2lyGa2E= github.com/tendermint/go-amino v0.16.0/go.mod h1:TQU0M1i/ImAo+tYpZi73AU3V/dKeCoMC9Sphe2ZwGME= -github.com/tendermint/spm v0.1.5/go.mod h1:+rHrI1axfSX1R0DY6KA4IbrHPgJ0WVNJKhey71ulXO8= github.com/tendermint/spm v0.1.8/go.mod h1:iHgfQ5YOI6ONc9E7ugGQolVdfSMHpeXfZ/OpXuN/42Q= github.com/tendermint/spn v0.1.1-0.20211210094128-4ca78a240c57/go.mod h1:p4BO8YC6kOKSKqMfySqaLHfwBmuPE/QcLwnnVhh7H9M= -github.com/tendermint/spn v0.1.1-0.20220223181013-9b803b7972cc h1:37wEtEUGmgSzB0XD3KVR1tlOaWEu49ScTfD4L5y0hfU= -github.com/tendermint/spn v0.1.1-0.20220223181013-9b803b7972cc/go.mod h1:K9AO5C3xAcavM2gqCN5LyETKoYICU+UoaB+zBcuwmhM= +github.com/tendermint/spn v0.1.1-0.20220304162453-5bad450e5dfd h1:LKMvtcQvQfrNhFY8EndFOuCvNnZdxGX1clxeJoIQrhE= +github.com/tendermint/spn v0.1.1-0.20220304162453-5bad450e5dfd/go.mod h1:E1/XLH8W9U3B+E/Lyytly+HXbpkIXqy5nbhdra14paU= github.com/tendermint/starport v0.19.3/go.mod h1:1BlPohoDtLl8CFqTHbMSN3rhq5YLBHlTQ9mJhcRuvwI= github.com/tendermint/tendermint v0.34.0-rc4/go.mod h1:yotsojf2C1QBOw4dZrTcxbyxmPUrT4hNuOQWX9XUwB4= github.com/tendermint/tendermint v0.34.0-rc6/go.mod h1:ugzyZO5foutZImv0Iyx/gOFCX6mjJTgbLHTwi17VDVg= github.com/tendermint/tendermint v0.34.0/go.mod h1:Aj3PIipBFSNO21r+Lq3TtzQ+uKESxkbA3yo/INM4QwQ= -github.com/tendermint/tendermint v0.34.10/go.mod h1:aeHL7alPh4uTBIJQ8mgFEE8VwJLXI1VD3rVOmH2Mcy0= -github.com/tendermint/tendermint v0.34.12/go.mod h1:aeHL7alPh4uTBIJQ8mgFEE8VwJLXI1VD3rVOmH2Mcy0= github.com/tendermint/tendermint v0.34.13/go.mod h1:6RVVRBqwtKhA+H59APKumO+B7Nye4QXSFc6+TYxAxCI= github.com/tendermint/tendermint v0.34.14 h1:GCXmlS8Bqd2Ix3TQCpwYLUNHe+Y+QyJsm5YE+S/FkPo= github.com/tendermint/tendermint v0.34.14/go.mod h1:FrwVm3TvsVicI9Z7FlucHV6Znfd5KBc/Lpp69cCwtk0= @@ -1777,8 +1767,9 @@ golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96b golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210614182718-04defd469f4e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20210903162142-ad29c8ab022f h1:w6wWR0H+nyVpbSAQbzVEIACVyr/h8l/BEkY6Sokc7Eg= golang.org/x/net v0.0.0-20210903162142-ad29c8ab022f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd h1:O7DYs+zxREGLKzKoMQrtrEacpb0ZVXA5rIwylE2Xchk= +golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1913,13 +1904,15 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210903071746-97244b99971b/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359 h1:2B5p2L5IfGiD7+b9BOoRMC6DgObAVZV+Fsp050NqXik= golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e h1:fLOSk5Q00efkSvAm+4xcoXD+RRmLmmulPn5I3Y9F2EM= +golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20201210144234-2321bbc49cbf/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210615171337-6886f2dfbf5b h1:9zKuko04nR4gjZ4+DNjHqRlAJqbJETHwiNKDqTfOjfE= golang.org/x/term v0.0.0-20210615171337-6886f2dfbf5b/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 h1:JGgROgKl9N8DuW20oFS5gxc+lE67/N3FcwmBPMe7ArY= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1927,8 +1920,9 @@ golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -2134,9 +2128,9 @@ google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaE google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= google.golang.org/genproto v0.0.0-20210828152312-66f60bf46e71/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= google.golang.org/genproto v0.0.0-20211129164237-f09f9a12af12/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20211208223120-3a66f561d7aa/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20220118154757-00ab72f36ad5 h1:zzNejm+EgrbLfDZ6lu9Uud2IVvHySPl8vQzf04laR5Q= google.golang.org/genproto v0.0.0-20220118154757-00ab72f36ad5/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20220302033224-9aa15565e42a h1:uqouglH745GoGeZ1YFZbPBiu961tgi/9Qm5jaorajjQ= +google.golang.org/genproto v0.0.0-20220302033224-9aa15565e42a/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= google.golang.org/grpc v1.33.2 h1:EQyQC3sa8M+p6Ulc8yy9SWSS2GVwyRc83gAbG8lrl4o= google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= diff --git a/starport/cmd/network_chain_publish.go b/starport/cmd/network_chain_publish.go index fb5a966557..dff9c2f0bb 100644 --- a/starport/cmd/network_chain_publish.go +++ b/starport/cmd/network_chain_publish.go @@ -61,7 +61,7 @@ func networkChainPublishHandler(cmd *cobra.Command, args []string) error { campaign, _ = cmd.Flags().GetUint64(flagCampaign) noCheck, _ = cmd.Flags().GetBool(flagNoCheck) rewardCoinsStr, _ = cmd.Flags().GetString(flagRewardCoins) - rewardDuration, _ = cmd.Flags().GetUint64(flagRewardHeight) + rewardDuration, _ = cmd.Flags().GetInt64(flagRewardHeight) ) rewardCoins, err := sdk.ParseCoinsNormalized(rewardCoinsStr) diff --git a/starport/cmd/network_reward_set.go b/starport/cmd/network_reward_set.go index a78ba69c13..810f18cc0d 100644 --- a/starport/cmd/network_reward_set.go +++ b/starport/cmd/network_reward_set.go @@ -38,7 +38,7 @@ func networkChainRewardSetHandler(cmd *cobra.Command, args []string) error { } // parse the last reward height - lastRewardHeight, err := strconv.ParseUint(args[1], 10, 64) + lastRewardHeight, err := strconv.ParseInt(args[1], 10, 64) if err != nil { return err } diff --git a/starport/pkg/xtime/unix.go b/starport/pkg/xtime/unix.go index 6dfe5d8e11..b5f063c6f5 100644 --- a/starport/pkg/xtime/unix.go +++ b/starport/pkg/xtime/unix.go @@ -5,7 +5,7 @@ import ( ) // Seconds creates a time.Duration based on the seconds parameter -func Seconds(seconds uint64) time.Duration { +func Seconds(seconds int64) time.Duration { return time.Duration(seconds) * time.Second } diff --git a/starport/pkg/xtime/unix_test.go b/starport/pkg/xtime/unix_test.go index 069743d336..7b40122ed5 100644 --- a/starport/pkg/xtime/unix_test.go +++ b/starport/pkg/xtime/unix_test.go @@ -9,7 +9,7 @@ import ( ) func TestSeconds(t *testing.T) { - tests := []uint64{ + tests := []int64{ 9999999999, 10000, 100, @@ -24,7 +24,7 @@ func TestSeconds(t *testing.T) { } func TestNowAfter(t *testing.T) { - tests := []uint64{ + tests := []int64{ 9999999999, 10000, 100, diff --git a/starport/services/network/launch.go b/starport/services/network/launch.go index a33074b43b..0e39399f4f 100644 --- a/starport/services/network/launch.go +++ b/starport/services/network/launch.go @@ -30,8 +30,8 @@ func (n Network) TriggerLaunch(ctx context.Context, launchID uint64, remainingTi } var ( - minLaunch = xtime.Seconds(params.MinLaunchTime) - maxLaunch = xtime.Seconds(params.MaxLaunchTime) + minLaunch = xtime.Seconds(params.LaunchTimeRange.MinLaunchTime) + maxLaunch = xtime.Seconds(params.LaunchTimeRange.MaxLaunchTime) address = n.account.Address(networktypes.SPN) ) switch { @@ -48,7 +48,7 @@ func (n Network) TriggerLaunch(ctx context.Context, launchID uint64, remainingTi xtime.NowAfter(maxLaunch)) } - msg := launchtypes.NewMsgTriggerLaunch(address, launchID, uint64(remainingTime.Seconds())) + msg := launchtypes.NewMsgTriggerLaunch(address, launchID, int64(remainingTime.Seconds())) n.ev.Send(events.New(events.StatusOngoing, "Setting launch time")) res, err := n.cosmos.BroadcastTx(n.account.Name, msg) if err != nil { diff --git a/starport/services/network/reward.go b/starport/services/network/reward.go index 022667d2ea..75e29b2390 100644 --- a/starport/services/network/reward.go +++ b/starport/services/network/reward.go @@ -12,7 +12,7 @@ import ( ) // SetReward set a chain reward -func (n Network) SetReward(launchID, lastRewardHeight uint64, coins sdk.Coins) error { +func (n Network) SetReward(launchID uint64, lastRewardHeight int64, coins sdk.Coins) error { n.ev.Send(events.New( events.StatusOngoing, fmt.Sprintf("Setting reward %s to the chain %d at height %d", From 58ba196d2ce030c7ade2f3bbc730658010138129 Mon Sep 17 00:00:00 2001 From: Danilo Pantani Date: Mon, 7 Mar 2022 22:27:50 -0300 Subject: [PATCH 19/26] fix events unit tests --- starport/pkg/events/events_test.go | 66 +++++++++++++++++++----------- 1 file changed, 41 insertions(+), 25 deletions(-) diff --git a/starport/pkg/events/events_test.go b/starport/pkg/events/events_test.go index 73bc672d15..c8e18cde9f 100644 --- a/starport/pkg/events/events_test.go +++ b/starport/pkg/events/events_test.go @@ -1,8 +1,10 @@ package events import ( - "github.com/stretchr/testify/require" "testing" + + "github.com/gookit/color" + "github.com/stretchr/testify/require" ) func TestBusSend(t *testing.T) { @@ -15,7 +17,7 @@ func TestBusSend(t *testing.T) { name: "send status ongoing event", bus: make(Bus), event: Event{ - status: StatusOngoing, + Status: StatusOngoing, Description: "description", }, }, @@ -23,7 +25,7 @@ func TestBusSend(t *testing.T) { name: "send status done event", bus: make(Bus), event: Event{ - status: StatusDone, + Status: StatusDone, Description: "description", }, }, @@ -31,7 +33,7 @@ func TestBusSend(t *testing.T) { name: "send event on nil bus", bus: nil, event: Event{ - status: StatusDone, + Status: StatusDone, Description: "description", }, }, @@ -75,7 +77,7 @@ func TestBusShutdown(t *testing.T) { func TestEventIsOngoing(t *testing.T) { type fields struct { status Status - Description string + description string } tests := []struct { name string @@ -88,8 +90,8 @@ func TestEventIsOngoing(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { e := Event{ - status: tt.fields.status, - Description: tt.fields.Description, + Status: tt.fields.status, + Description: tt.fields.description, } require.Equal(t, tt.want, e.IsOngoing()) }) @@ -99,7 +101,8 @@ func TestEventIsOngoing(t *testing.T) { func TestEventText(t *testing.T) { type fields struct { status Status - Description string + description string + textColor color.Color } tests := []struct { name string @@ -107,28 +110,41 @@ func TestEventText(t *testing.T) { want string }{ { - name: "status done", - fields: fields{StatusDone, "description"}, - want: "description", + name: "status done", + fields: fields{ + status: StatusDone, + description: "description", + textColor: color.Red, + }, + want: "description", }, { - name: "status ongoing", - fields: fields{StatusOngoing, "description"}, - want: "description...", + name: "status ongoing", + fields: fields{ + status: StatusOngoing, + description: "description", + textColor: color.Red, + }, + want: "description...", }, { - name: "status ongoing with empty description", - fields: fields{StatusOngoing, ""}, - want: "...", + name: "status ongoing with empty description", + fields: fields{ + status: StatusOngoing, + description: "", + textColor: color.Red, + }, + want: "...", }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { e := Event{ - status: tt.fields.status, - Description: tt.fields.Description, + Status: tt.fields.status, + Description: tt.fields.description, + TextColor: tt.fields.textColor, } - require.Equal(t, tt.want, e.Text()) + require.Equal(t, e.TextColor.Render(tt.want), e.Text()) }) } } @@ -144,9 +160,9 @@ func TestNew(t *testing.T) { want Event }{ {"zero value args", args{}, Event{}}, - {"large value args", args{99999, "description"}, Event{99999, "description"}}, - {"status ongoing", args{StatusOngoing, "description"}, Event{0, "description"}}, - {"status done", args{StatusDone, "description"}, Event{1, "description"}}, + {"large value args", args{status: 99999, description: "description"}, Event{Status: 99999, Description: "description"}}, + {"status ongoing", args{status: StatusOngoing, description: "description"}, Event{Status: 0, Description: "description"}}, + {"status done", args{status: StatusDone, description: "description"}, Event{Status: 1, Description: "description"}}, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { @@ -160,8 +176,8 @@ func TestNewBus(t *testing.T) { name string event Event }{ - {"new bus with status done event", Event{StatusDone, "description"}}, - {"new bus with status ongoing event", Event{StatusOngoing, "description"}}, + {"new bus with status done event", Event{Status: StatusDone, Description: "description"}}, + {"new bus with status ongoing event", Event{Status: StatusOngoing, Description: "description"}}, {"new bus with zero value event", Event{}}, } for _, tt := range tests { From 1c8438d8c150e446f681aa67a8c376cf1b30f5d9 Mon Sep 17 00:00:00 2001 From: Danilo Pantani Date: Tue, 8 Mar 2022 21:08:32 -0300 Subject: [PATCH 20/26] fix duplicated log message --- starport/cmd/network_reward_set.go | 3 ++- starport/services/network/reward.go | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/starport/cmd/network_reward_set.go b/starport/cmd/network_reward_set.go index 810f18cc0d..52c01b6e0d 100644 --- a/starport/cmd/network_reward_set.go +++ b/starport/cmd/network_reward_set.go @@ -19,8 +19,9 @@ func NewNetworkRewardSet() *cobra.Command { Args: cobra.ExactArgs(3), RunE: networkChainRewardSetHandler, } - c.Flags().AddFlagSet(flagNetworkFrom()) c.Flags().AddFlagSet(flagSetKeyringBackend()) + c.Flags().AddFlagSet(flagNetworkFrom()) + c.Flags().AddFlagSet(flagSetHome()) return c } diff --git a/starport/services/network/reward.go b/starport/services/network/reward.go index 75e29b2390..14deaa2ef5 100644 --- a/starport/services/network/reward.go +++ b/starport/services/network/reward.go @@ -41,7 +41,7 @@ func (n Network) SetReward(launchID uint64, lastRewardHeight int64, coins sdk.Co if setRewardRes.PreviousCoins.Empty() { n.ev.Send(events.New( events.StatusDone, - "The reward pool was removed.", + "The reward pool is empty.", events.Icon(clispinner.Info), )) } else { From 45a05835196686fe20eea0bbcc2506c8b77689b8 Mon Sep 17 00:00:00 2001 From: Danilo Pantani Date: Tue, 8 Mar 2022 21:27:18 -0300 Subject: [PATCH 21/26] fix reward height flag --- starport/cmd/network_chain_publish.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/starport/cmd/network_chain_publish.go b/starport/cmd/network_chain_publish.go index dff9c2f0bb..55c61a6437 100644 --- a/starport/cmd/network_chain_publish.go +++ b/starport/cmd/network_chain_publish.go @@ -41,7 +41,7 @@ func NewNetworkChainPublish() *cobra.Command { c.Flags().Uint64(flagCampaign, 0, "Campaign ID to use for this network") c.Flags().Bool(flagNoCheck, false, "Skip verifying chain's integrity") c.Flags().String(flagRewardCoins, "", "Reward coins") - c.Flags().Uint64(flagRewardHeight, 0, "Last reward height") + c.Flags().Int64(flagRewardHeight, 0, "Last reward height") c.Flags().AddFlagSet(flagNetworkFrom()) c.Flags().AddFlagSet(flagSetKeyringBackend()) c.Flags().AddFlagSet(flagSetHome()) From 2800591ee012ce1fbf23f4bfdb824deb5eaa4b0c Mon Sep 17 00:00:00 2001 From: Danilo Pantani Date: Wed, 9 Mar 2022 19:46:08 -0300 Subject: [PATCH 22/26] update spn version --- go.mod | 2 +- go.sum | 4 ++-- starport/cmd/network_chain_init.go | 1 + starport/cmd/network_chain_publish.go | 1 + starport/services/network/networkchain/prepare.go | 1 + 5 files changed, 6 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index b717eb3d58..916386f812 100644 --- a/go.mod +++ b/go.mod @@ -45,7 +45,7 @@ require ( github.com/stretchr/testify v1.7.0 github.com/takuoki/gocase v1.0.0 github.com/tendermint/flutter/v2 v2.0.3 - github.com/tendermint/spn v0.1.1-0.20220307175754-0b579dc934ec + github.com/tendermint/spn v0.1.1-0.20220309210912-ae38eed8fbee github.com/tendermint/tendermint v0.34.14 github.com/tendermint/tm-db v0.6.4 github.com/tendermint/vue v0.3.0 diff --git a/go.sum b/go.sum index 7b5d25ad7e..ea91737458 100644 --- a/go.sum +++ b/go.sum @@ -1505,8 +1505,8 @@ github.com/tendermint/go-amino v0.16.0 h1:GyhmgQKvqF82e2oZeuMSp9JTN0N09emoSZlb2l github.com/tendermint/go-amino v0.16.0/go.mod h1:TQU0M1i/ImAo+tYpZi73AU3V/dKeCoMC9Sphe2ZwGME= github.com/tendermint/spm v0.1.8/go.mod h1:iHgfQ5YOI6ONc9E7ugGQolVdfSMHpeXfZ/OpXuN/42Q= github.com/tendermint/spn v0.1.1-0.20211210094128-4ca78a240c57/go.mod h1:p4BO8YC6kOKSKqMfySqaLHfwBmuPE/QcLwnnVhh7H9M= -github.com/tendermint/spn v0.1.1-0.20220307175754-0b579dc934ec h1:D6iJ2DGu6iGTbxCp0ye5KM1OlabfoyrueH672qXtZMQ= -github.com/tendermint/spn v0.1.1-0.20220307175754-0b579dc934ec/go.mod h1:E1/XLH8W9U3B+E/Lyytly+HXbpkIXqy5nbhdra14paU= +github.com/tendermint/spn v0.1.1-0.20220309210912-ae38eed8fbee h1:V4aDFMIRRTEqDAOyxg9o1CweDifo8JECJTjwNdWEww4= +github.com/tendermint/spn v0.1.1-0.20220309210912-ae38eed8fbee/go.mod h1:E1/XLH8W9U3B+E/Lyytly+HXbpkIXqy5nbhdra14paU= github.com/tendermint/starport v0.19.3/go.mod h1:1BlPohoDtLl8CFqTHbMSN3rhq5YLBHlTQ9mJhcRuvwI= github.com/tendermint/tendermint v0.34.0-rc4/go.mod h1:yotsojf2C1QBOw4dZrTcxbyxmPUrT4hNuOQWX9XUwB4= github.com/tendermint/tendermint v0.34.0-rc6/go.mod h1:ugzyZO5foutZImv0Iyx/gOFCX6mjJTgbLHTwi17VDVg= diff --git a/starport/cmd/network_chain_init.go b/starport/cmd/network_chain_init.go index f1b8b953af..2177ef1735 100644 --- a/starport/cmd/network_chain_init.go +++ b/starport/cmd/network_chain_init.go @@ -5,6 +5,7 @@ import ( "github.com/manifoldco/promptui" "github.com/spf13/cobra" + "github.com/tendermint/starport/starport/pkg/cliquiz" "github.com/tendermint/starport/starport/pkg/clispinner" "github.com/tendermint/starport/starport/pkg/cosmosaccount" diff --git a/starport/cmd/network_chain_publish.go b/starport/cmd/network_chain_publish.go index 581b450ead..55c61a6437 100644 --- a/starport/cmd/network_chain_publish.go +++ b/starport/cmd/network_chain_publish.go @@ -6,6 +6,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" "github.com/spf13/cobra" + "github.com/tendermint/starport/starport/pkg/clispinner" "github.com/tendermint/starport/starport/services/network" "github.com/tendermint/starport/starport/services/network/networkchain" diff --git a/starport/services/network/networkchain/prepare.go b/starport/services/network/networkchain/prepare.go index f03aceb23c..2dfcad4be6 100644 --- a/starport/services/network/networkchain/prepare.go +++ b/starport/services/network/networkchain/prepare.go @@ -12,6 +12,7 @@ import ( "github.com/pelletier/go-toml" "github.com/pkg/errors" launchtypes "github.com/tendermint/spn/x/launch/types" + "github.com/tendermint/starport/starport/pkg/clispinner" "github.com/tendermint/starport/starport/pkg/cosmosutil" "github.com/tendermint/starport/starport/pkg/events" From 9558771e025a977cda25ffe94b3e70ee73af22fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=B0lker=20G=2E=20=C3=96zt=C3=BCrk?= Date: Fri, 11 Mar 2022 13:04:01 +0300 Subject: [PATCH 23/26] Apply suggestions from code review --- starport/services/network/reward.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/starport/services/network/reward.go b/starport/services/network/reward.go index 14deaa2ef5..d42af27358 100644 --- a/starport/services/network/reward.go +++ b/starport/services/network/reward.go @@ -41,13 +41,13 @@ func (n Network) SetReward(launchID uint64, lastRewardHeight int64, coins sdk.Co if setRewardRes.PreviousCoins.Empty() { n.ev.Send(events.New( events.StatusDone, - "The reward pool is empty.", + "The reward pool is empty", events.Icon(clispinner.Info), )) } else { n.ev.Send(events.New(events.StatusDone, fmt.Sprintf( - "Previous reward pool %s at height %d was overwritten.", + "Previous reward pool %s at height %d was overwritten", coins.String(), lastRewardHeight, ), @@ -56,7 +56,7 @@ func (n Network) SetReward(launchID uint64, lastRewardHeight int64, coins sdk.Co } if setRewardRes.NewCoins.Empty() { - n.ev.Send(events.New(events.StatusDone, "The reward pool was removed.")) + n.ev.Send(events.New(events.StatusDone, "The reward pool was removed")) } else { n.ev.Send(events.New(events.StatusDone, fmt.Sprintf( "%s will be distributed to validators at height %d. The chain %d is now an incentivized testnet", From 427e6c727221d8cc05b5a72d2ca236298447a12a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=B0lker=20G=2E=20=C3=96zt=C3=BCrk?= Date: Fri, 11 Mar 2022 13:13:53 +0300 Subject: [PATCH 24/26] Apply suggestions from code review --- starport/services/network/reward.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/starport/services/network/reward.go b/starport/services/network/reward.go index d42af27358..56f55c348c 100644 --- a/starport/services/network/reward.go +++ b/starport/services/network/reward.go @@ -41,7 +41,7 @@ func (n Network) SetReward(launchID uint64, lastRewardHeight int64, coins sdk.Co if setRewardRes.PreviousCoins.Empty() { n.ev.Send(events.New( events.StatusDone, - "The reward pool is empty", + "The reward pool was empty", events.Icon(clispinner.Info), )) } else { From ad1e38d327575b1c62c64a49c8b4d30815cf8ee4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=B0lker=20G=2E=20=C3=96zt=C3=BCrk?= Date: Fri, 11 Mar 2022 13:15:19 +0300 Subject: [PATCH 25/26] Apply suggestions from code review --- starport/services/network/reward.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/starport/services/network/reward.go b/starport/services/network/reward.go index 56f55c348c..c3e7ba8343 100644 --- a/starport/services/network/reward.go +++ b/starport/services/network/reward.go @@ -56,7 +56,7 @@ func (n Network) SetReward(launchID uint64, lastRewardHeight int64, coins sdk.Co } if setRewardRes.NewCoins.Empty() { - n.ev.Send(events.New(events.StatusDone, "The reward pool was removed")) + n.ev.Send(events.New(events.StatusDone, "The reward pool is removed")) } else { n.ev.Send(events.New(events.StatusDone, fmt.Sprintf( "%s will be distributed to validators at height %d. The chain %d is now an incentivized testnet", From 99ee6654c2608bc379e64274a83ff0463cc42a76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=B0lker=20G=2E=20=C3=96zt=C3=BCrk?= Date: Fri, 11 Mar 2022 13:16:24 +0300 Subject: [PATCH 26/26] Apply suggestions from code review --- starport/services/network/reward.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/starport/services/network/reward.go b/starport/services/network/reward.go index c3e7ba8343..02992ad6bd 100644 --- a/starport/services/network/reward.go +++ b/starport/services/network/reward.go @@ -47,7 +47,7 @@ func (n Network) SetReward(launchID uint64, lastRewardHeight int64, coins sdk.Co } else { n.ev.Send(events.New(events.StatusDone, fmt.Sprintf( - "Previous reward pool %s at height %d was overwritten", + "Previous reward pool %s at height %d is overwritten", coins.String(), lastRewardHeight, ),