Skip to content
Closed
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
### Features

- [#4183](https://github.com/ignite/cli/pull/4183) Set `chain-id` in the client.toml
- [#4001](https://github.com/ignite/cli/pull/4001) Improve `xgenny` dry run

### Changes

Expand Down
6 changes: 3 additions & 3 deletions docs/docs/06-migration/v28.0.0.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,15 +81,15 @@ This guide provides a step-by-step process for developers to upgrade their appli
- **Old Code**:

```go
store := prefix.NewStore(ctx.KVStore(k.storeKey), types.KeyPrefix(types.PostKey))
store := prefix.NewStore(ctx.KVStore(k.storeKey), types.KeyPrefix(types.PostKey))

```

- **New Code**:

```go
storeAdapter := runtime.KVStoreAdapter(k.storeService.OpenKVStore(ctx))
store := prefix.NewStore(storeAdapter, types.KeyPrefix(types.PostKey))
storeAdapter := runtime.KVStoreAdapter(k.storeService.OpenKVStore(ctx))
store := prefix.NewStore(storeAdapter, types.KeyPrefix(types.PostKey))

```

Expand Down
4 changes: 3 additions & 1 deletion ignite/cmd/chain.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ import (
"github.com/ignite/cli/v28/ignite/pkg/goanalysis"
"github.com/ignite/cli/v28/ignite/pkg/gomodulepath"
"github.com/ignite/cli/v28/ignite/pkg/xast"
"github.com/ignite/cli/v28/ignite/pkg/xgenny"
"github.com/ignite/cli/v28/ignite/services/chain"
"github.com/ignite/cli/v28/ignite/services/doctor"
)
Expand Down Expand Up @@ -200,7 +201,8 @@ func bufMigrationPreRunHandler(cmd *cobra.Command, session *cliui.Session, appPa
}
}

sm, err := chain.BoxBufFiles(appPath)
runner := xgenny.NewRunner(cmd.Context(), appPath)
sm, err := chain.BoxBufFiles(runner, appPath)
if err != nil {
return err
}
Expand Down
12 changes: 7 additions & 5 deletions ignite/cmd/scaffold.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,6 @@ import (
"github.com/ignite/cli/v28/ignite/pkg/cosmosver"
"github.com/ignite/cli/v28/ignite/pkg/errors"
"github.com/ignite/cli/v28/ignite/pkg/gomodulepath"
"github.com/ignite/cli/v28/ignite/pkg/placeholder"
"github.com/ignite/cli/v28/ignite/pkg/xgenny"
"github.com/ignite/cli/v28/ignite/pkg/xgit"
"github.com/ignite/cli/v28/ignite/services/scaffolder"
"github.com/ignite/cli/v28/ignite/version"
Expand Down Expand Up @@ -207,7 +205,7 @@ func scaffoldType(
session := cliui.New(cliui.StartSpinnerWithText(statusScaffolding))
defer session.End()

sc, err := scaffolder.New(appPath)
sc, err := scaffolder.New(cmd.Context(), appPath)
if err != nil {
return err
}
Expand All @@ -217,16 +215,20 @@ func scaffoldType(
return err
}

sm, err := sc.AddType(cmd.Context(), cacheStorage, typeName, placeholder.New(), kind, options...)
err = sc.AddType(cmd.Context(), typeName, kind, options...)
if err != nil {
return err
}

modificationsStr, err := xgenny.SourceModificationToString(sm)
modificationsStr, err := sc.ApplyModifications()
if err != nil {
return err
}

if err := sc.PostScaffold(cmd.Context(), cacheStorage, false); err != nil {
return err
}

session.Println(modificationsStr)
session.Printf("\n🎉 %s added. \n\n", typeName)

Expand Down
26 changes: 20 additions & 6 deletions ignite/cmd/scaffold_chain.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,9 @@ import (

"github.com/ignite/cli/v28/ignite/pkg/cliui"
"github.com/ignite/cli/v28/ignite/pkg/errors"
"github.com/ignite/cli/v28/ignite/pkg/placeholder"
"github.com/ignite/cli/v28/ignite/pkg/xfilepath"
"github.com/ignite/cli/v28/ignite/pkg/xgenny"
"github.com/ignite/cli/v28/ignite/pkg/xgit"
"github.com/ignite/cli/v28/ignite/services/scaffolder"
)

Expand Down Expand Up @@ -117,16 +118,14 @@ func scaffoldChainHandler(cmd *cobra.Command, args []string) error {
return err
}

appDir, err := scaffolder.Init(
runner := xgenny.NewRunner(cmd.Context(), appPath)
appDir, goModule, err := scaffolder.Init(
cmd.Context(),
cacheStorage,
placeholder.New(),
runner,
appPath,
name,
addressPrefix,
noDefaultModule,
skipGit,
skipProto,
minimal,
isConsumer,
params,
Expand All @@ -140,5 +139,20 @@ func scaffoldChainHandler(cmd *cobra.Command, args []string) error {
return err
}

if _, err := runner.ApplyModifications(); err != nil {
return err
}

if err := scaffolder.PostScaffold(cmd.Context(), cacheStorage, appDir, goModule, skipProto); err != nil {
return err
}

if !skipGit {
// Initialize git repository and perform the first commit
if err := xgit.InitAndCommit(path); err != nil {
return err
}
}

return session.Printf(tplScaffoldChainSuccess, path)
}
82 changes: 82 additions & 0 deletions ignite/cmd/scaffold_configs.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
package ignitecmd

import (
"strings"

"github.com/spf13/cobra"

"github.com/ignite/cli/v28/ignite/pkg/cliui"
"github.com/ignite/cli/v28/ignite/services/scaffolder"
)

// NewScaffoldConfigs returns the command to scaffold a Cosmos SDK configs into a module.
func NewScaffoldConfigs() *cobra.Command {
c := &cobra.Command{
Use: "configs [configs]...",
Short: "Configs for a custom Cosmos SDK module",
Long: `Scaffold a new config for a Cosmos SDK module.

A Cosmos SDK module can have configurations. An example of a config is "address prefix" of the
"auth" module. A config can be scaffolded into a module using the "--module-configs" into
the scaffold module command or using the "scaffold configs" command. By default
configs are of type "string", but you can specify a type for each config. For example:

ignite scaffold configs foo baz:uint bar:bool

Refer to Cosmos SDK documentation to learn more about modules, dependencies and
configs.
`,
Args: cobra.MinimumNArgs(1),
PreRunE: migrationPreRunHandler,
RunE: scaffoldConfigsHandler,
}

flagSetPath(c)
flagSetClearCache(c)

c.Flags().AddFlagSet(flagSetYes())

c.Flags().String(flagModule, "", "module to add the query into (default: app's main module)")

return c
}

func scaffoldConfigsHandler(cmd *cobra.Command, args []string) error {
var (
configs = args[0:]
appPath = flagGetPath(cmd)
moduleName = flagGetModule(cmd)
)

session := cliui.New(cliui.StartSpinnerWithText(statusScaffolding))
defer session.End()

cacheStorage, err := newCache(cmd)
if err != nil {
return err
}

sc, err := scaffolder.New(cmd.Context(), appPath)
if err != nil {
return err
}

err = sc.CreateConfigs(moduleName, configs...)
if err != nil {
return err
}

modificationsStr, err := sc.ApplyModifications()
if err != nil {
return err
}

if err := sc.PostScaffold(cmd.Context(), cacheStorage, false); err != nil {
return err
}

session.Println(modificationsStr)
session.Printf("\n🎉 New configs added to the module:\n\n- %s\n\n", strings.Join(configs, "\n- "))

return nil
}
12 changes: 7 additions & 5 deletions ignite/cmd/scaffold_message.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@ import (
"github.com/spf13/cobra"

"github.com/ignite/cli/v28/ignite/pkg/cliui"
"github.com/ignite/cli/v28/ignite/pkg/placeholder"
"github.com/ignite/cli/v28/ignite/pkg/xgenny"
"github.com/ignite/cli/v28/ignite/services/scaffolder"
)

Expand Down Expand Up @@ -115,21 +113,25 @@ func messageHandler(cmd *cobra.Command, args []string) error {
options = append(options, scaffolder.WithoutSimulation())
}

sc, err := scaffolder.New(appPath)
sc, err := scaffolder.New(cmd.Context(), appPath)
if err != nil {
return err
}

sm, err := sc.AddMessage(cmd.Context(), cacheStorage, placeholder.New(), module, args[0], args[1:], resFields, options...)
err = sc.AddMessage(cmd.Context(), module, args[0], args[1:], resFields, options...)
if err != nil {
return err
}

modificationsStr, err := xgenny.SourceModificationToString(sm)
modificationsStr, err := sc.ApplyModifications()
if err != nil {
return err
}

if err := sc.PostScaffold(cmd.Context(), cacheStorage, false); err != nil {
return err
}

session.Println(modificationsStr)
session.Printf("\n🎉 Created a message `%[1]v`.\n\n", args[0])

Expand Down
39 changes: 10 additions & 29 deletions ignite/cmd/scaffold_module.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,7 @@ import (

"github.com/ignite/cli/v28/ignite/pkg/cliui"
"github.com/ignite/cli/v28/ignite/pkg/errors"
"github.com/ignite/cli/v28/ignite/pkg/placeholder"
"github.com/ignite/cli/v28/ignite/pkg/validation"
"github.com/ignite/cli/v28/ignite/pkg/xgenny"
"github.com/ignite/cli/v28/ignite/services/scaffolder"
modulecreate "github.com/ignite/cli/v28/ignite/templates/module/create"
)
Expand All @@ -28,14 +26,6 @@ const (
flagParams = "params"
flagIBCOrdering = "ordering"
flagRequireRegistration = "require-registration"

govDependencyWarning = `⚠️ If your app has been scaffolded with Ignite CLI 0.16.x or below
Please make sure that your module keeper definition is defined after gov module keeper definition in app/app.go:

app.GovKeeper = ...
...
[your module keeper definition]
`
)

// NewScaffoldModule returns the command to scaffold a Cosmos SDK module.
Expand Down Expand Up @@ -190,39 +180,30 @@ func scaffoldModuleHandler(cmd *cobra.Command, args []string) error {
var msg bytes.Buffer
fmt.Fprintf(&msg, "\n🎉 Module created %s.\n\n", name)

sc, err := scaffolder.New(appPath)
sc, err := scaffolder.New(cmd.Context(), appPath)
if err != nil {
return err
}

sm, err := sc.CreateModule(cmd.Context(), cacheStorage, placeholder.New(), name, options...)
if err != nil {
if err := sc.CreateModule(name, options...); err != nil {
var validationErr validation.Error
if !requireRegistration && errors.As(err, &validationErr) {
fmt.Fprintf(&msg, "Can't register module '%s'.\n", name)
fmt.Fprintln(&msg, validationErr.ValidationInfo())
} else {
return err
}
} else {
modificationsStr, err := xgenny.SourceModificationToString(sm)
if err != nil {
return err
}

session.Println(modificationsStr)
}
modificationsStr, err := sc.ApplyModifications()
if err != nil {
return err
}

// in previously scaffolded apps gov keeper is defined below the scaffolded module keeper definition
// therefore we must warn the user to manually move the definition if it's the case
// https://github.com/ignite/cli/issues/818#issuecomment-865736052
for _, name := range dependencies {
if name == "Gov" {
session.Print(govDependencyWarning)

break
}
if err := sc.PostScaffold(cmd.Context(), cacheStorage, false); err != nil {
return err
}

session.Println(modificationsStr)

return session.Print(msg.String())
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@ import (

"github.com/ignite/cli/v28/ignite/pkg/cliui"
"github.com/ignite/cli/v28/ignite/pkg/errors"
"github.com/ignite/cli/v28/ignite/pkg/placeholder"
"github.com/ignite/cli/v28/ignite/pkg/xgenny"
"github.com/ignite/cli/v28/ignite/services/scaffolder"
)

Expand Down Expand Up @@ -78,21 +76,25 @@ func createPacketHandler(cmd *cobra.Command, args []string) error {
options = append(options, scaffolder.PacketWithSigner(signer))
}

sc, err := scaffolder.New(appPath)
sc, err := scaffolder.New(cmd.Context(), appPath)
if err != nil {
return err
}

sm, err := sc.AddPacket(cmd.Context(), cacheStorage, placeholder.New(), module, packet, packetFields, ackFields, options...)
err = sc.AddPacket(cmd.Context(), module, packet, packetFields, ackFields, options...)
if err != nil {
return err
}

modificationsStr, err := xgenny.SourceModificationToString(sm)
modificationsStr, err := sc.ApplyModifications()
if err != nil {
return err
}

if err := sc.PostScaffold(cmd.Context(), cacheStorage, false); err != nil {
return err
}

session.Println(modificationsStr)
session.Printf("\n🎉 Created a packet `%[1]v`.\n\n", args[0])

Expand Down
Loading