Skip to content

Commit

Permalink
remove module genesis placeholders
Browse files Browse the repository at this point in the history
  • Loading branch information
Pantani committed Dec 5, 2024
1 parent 6179d70 commit 282d15d
Show file tree
Hide file tree
Showing 10 changed files with 109 additions and 78 deletions.
18 changes: 12 additions & 6 deletions ignite/templates/ibc/packet.go
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ func NewPacket(replacer placeholder.Replacer, opts *PacketOptions) (*genny.Gener
// Add the send message
if !opts.NoMessage {
g.RunFn(protoTxModify(opts))
g.RunFn(clientCliTxModify(replacer, opts))
g.RunFn(clientCliTxModify(opts))
g.RunFn(codecModify(opts))
if err := g.Box(messagesTemplate); err != nil {
return g, err
Expand Down Expand Up @@ -362,17 +362,23 @@ func protoTxModify(opts *PacketOptions) genny.RunFn {
}

// clientCliTxModify does not use AutoCLI here, because it as a better UX as it is.
func clientCliTxModify(replacer placeholder.Replacer, opts *PacketOptions) genny.RunFn {
func clientCliTxModify(opts *PacketOptions) genny.RunFn {
return func(r *genny.Runner) error {
filePath := filepath.Join(opts.AppPath, "x", opts.ModuleName, "client/cli/tx.go")
f, err := r.Disk.Find(filePath)
if err != nil {
return err
}
template := `cmd.AddCommand(CmdSend%[2]v())
%[1]v`
replacement := fmt.Sprintf(template, Placeholder, opts.PacketName.UpperCamel)
content := replacer.Replace(f.String(), Placeholder, replacement)
replacement := fmt.Sprintf("cmd.AddCommand(CmdSend%[1]v())", opts.PacketName.UpperCamel)
content, err := xast.ModifyFunction(
f.String(),
"GetTxCmd",
xast.AppendFuncCode(replacement),
)
if err != nil {
return err
}

newFile := genny.NewFileS(filePath, content)
return r.File(newFile)
}
Expand Down
2 changes: 0 additions & 2 deletions ignite/templates/ibc/placeholders.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@ package ibc

//nolint:godot
const (
Placeholder = "// this line is used by starport scaffolding # 1"

// Placeholders IBC packets
PlaceholderIBCPacketEvent = "// this line is used by starport scaffolding # ibc/packet/event"
PlaceholderIBCPacketModuleRecv = "// this line is used by starport scaffolding # ibc/packet/module/recv"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ import (

// InitGenesis initializes the module's state from a provided genesis state.
func (k Keeper) InitGenesis(ctx context.Context, genState types.GenesisState) error {
// this line is used by starport scaffolding # genesis/module/init
return k.Params.Set(ctx, genState.Params)
}

Expand All @@ -22,7 +21,6 @@ func (k Keeper) ExportGenesis(ctx context.Context) (*types.GenesisState, error)
return nil, err
}

// this line is used by starport scaffolding # genesis/module/export

return genesis, nil
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,6 @@ import (
<%= if (isIBC) { %>capabilitykeeper "github.com/cosmos/ibc-go/modules/capability/keeper"
ibckeeper "github.com/cosmos/ibc-go/v8/modules/core/keeper"<% } %>

// this line is used by starport scaffolding # 1

"<%= modulePath %>/x/<%= moduleName %>/keeper"
"<%= modulePath %>/x/<%= moduleName %>/types"
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,6 @@ import (
<%= if (isIBC) { %>porttypes "github.com/cosmos/ibc-go/v8/modules/core/05-port/types"
"github.com/spf13/cobra"<% } %>

// this line is used by starport scaffolding # 1

"<%= modulePath %>/x/<%= moduleName %>/keeper"
"<%= modulePath %>/x/<%= moduleName %>/types"
<%= if (isIBC) { %>"<%= modulePath %>/x/<%= moduleName %>/client/cli"<% } %>
Expand Down
31 changes: 20 additions & 11 deletions ignite/templates/module/create/ibc.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ import (
"github.com/ignite/cli/v29/ignite/pkg/xstrings"
"github.com/ignite/cli/v29/ignite/templates/field/plushhelpers"
"github.com/ignite/cli/v29/ignite/templates/module"
"github.com/ignite/cli/v29/ignite/templates/typed"
)

// NewIBC returns the generator to scaffold the implementation of the IBCModule interface inside a module.
Expand All @@ -26,7 +25,7 @@ func NewIBC(replacer placeholder.Replacer, opts *CreateOptions) (*genny.Generato
template = xgenny.NewEmbedWalker(fsIBC, "files/ibc/", opts.AppPath)
)

g.RunFn(genesisModify(replacer, opts))
g.RunFn(genesisModify(opts))
g.RunFn(genesisTypesModify(opts))
g.RunFn(genesisProtoModify(opts))
g.RunFn(keysModify(replacer, opts))
Expand Down Expand Up @@ -56,7 +55,7 @@ func NewIBC(replacer placeholder.Replacer, opts *CreateOptions) (*genny.Generato
return g, nil
}

func genesisModify(replacer placeholder.Replacer, opts *CreateOptions) genny.RunFn {
func genesisModify(opts *CreateOptions) genny.RunFn {
return func(r *genny.Runner) error {
path := filepath.Join(opts.AppPath, "x", opts.ModuleName, "keeper/genesis.go")
f, err := r.Disk.Find(path)
Expand All @@ -74,8 +73,7 @@ func genesisModify(replacer placeholder.Replacer, opts *CreateOptions) genny.Run
}

// Genesis init
templateInit := `%s
k.SetPort(ctx, genState.PortId)
replacementModuleInit := `k.SetPort(ctx, genState.PortId)
// Only try to bind to port if it is not already bound, since we may already own
// port capability from capability InitGenesis
if k.ShouldBound(ctx, genState.PortId) {
Expand All @@ -86,14 +84,25 @@ if k.ShouldBound(ctx, genState.PortId) {
return errors.Wrap(err, "could not claim port capability")
}
}`
replacementInit := fmt.Sprintf(templateInit, typed.PlaceholderGenesisModuleInit)
content = replacer.Replace(content, typed.PlaceholderGenesisModuleInit, replacementInit)
content, err = xast.ModifyFunction(
content,
"InitGenesis",
xast.AppendFuncCode(replacementModuleInit),
)
if err != nil {
return err
}

// Genesis export
templateExport := `genesis.PortId = k.GetPort(ctx)
%s`
replacementExport := fmt.Sprintf(templateExport, typed.PlaceholderGenesisModuleExport)
content = replacer.Replace(content, typed.PlaceholderGenesisModuleExport, replacementExport)
replacementModuleExport := "genesis.PortId = k.GetPort(ctx)"
content, err = xast.ModifyFunction(
content,
"ExportGenesis",
xast.AppendFuncCode(replacementModuleExport),
)
if err != nil {
return err
}

newFile := genny.NewFileS(path, content)
return r.File(newFile)
Expand Down
47 changes: 28 additions & 19 deletions ignite/templates/typed/list/genesis.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ import (
func genesisModify(replacer placeholder.Replacer, opts *typed.Options, g *genny.Generator) {
g.RunFn(genesisProtoModify(opts))
g.RunFn(genesisTypesModify(opts))
g.RunFn(genesisModuleModify(replacer, opts))
g.RunFn(genesisModuleModify(opts))
g.RunFn(genesisTestsModify(replacer, opts))
g.RunFn(genesisTypesTestsModify(replacer, opts))
}
Expand Down Expand Up @@ -122,55 +122,64 @@ for _, elem := range gs.%[2]vList {
}
}

func genesisModuleModify(replacer placeholder.Replacer, opts *typed.Options) genny.RunFn {
func genesisModuleModify(opts *typed.Options) genny.RunFn {
return func(r *genny.Runner) error {
path := filepath.Join(opts.AppPath, "x", opts.ModuleName, "keeper/genesis.go")
f, err := r.Disk.Find(path)
if err != nil {
return err
}

templateModuleInit := `// Set all the %[2]v
for _, elem := range genState.%[3]vList {
if err := k.%[3]v.Set(ctx, elem.Id, elem); err != nil {
templateModuleInit := `// Set all the %[1]v
for _, elem := range genState.%[2]vList {
if err := k.%[2]v.Set(ctx, elem.Id, elem); err != nil {
return err
}
}
// Set %[2]v count
if err := k.%[3]vSeq.Set(ctx, genState.%[3]vCount); err != nil {
// Set %[1]v count
if err := k.%[2]vSeq.Set(ctx, genState.%[2]vCount); err != nil {
return err
}
%[1]v`
}`
replacementModuleInit := fmt.Sprintf(
templateModuleInit,
typed.PlaceholderGenesisModuleInit,
opts.TypeName.LowerCamel,
opts.TypeName.UpperCamel,
)
content := replacer.Replace(f.String(), typed.PlaceholderGenesisModuleInit, replacementModuleInit)
content, err := xast.ModifyFunction(
f.String(),
"InitGenesis",
xast.AppendFuncCode(replacementModuleInit),
)
if err != nil {
return err
}

templateModuleExport := `
err = k.%[2]v.Walk(ctx, nil, func(key uint64, elem types.%[2]v) (bool, error) {
genesis.%[2]vList = append(genesis.%[2]vList, elem)
err = k.%[1]v.Walk(ctx, nil, func(key uint64, elem types.%[1]v) (bool, error) {
genesis.%[1]vList = append(genesis.%[1]vList, elem)
return false, nil
})
if err != nil {
return nil, err
}
genesis.%[2]vCount, err = k.%[2]vSeq.Peek(ctx)
genesis.%[1]vCount, err = k.%[1]vSeq.Peek(ctx)
if err != nil {
return nil, err
}
%[1]v`
}`
replacementModuleExport := fmt.Sprintf(
templateModuleExport,
typed.PlaceholderGenesisModuleExport,
opts.TypeName.UpperCamel,
)
content = replacer.Replace(content, typed.PlaceholderGenesisModuleExport, replacementModuleExport)
content, err = xast.ModifyFunction(
content,
"ExportGenesis",
xast.AppendFuncCode(replacementModuleExport),
)
if err != nil {
return err
}

newFile := genny.NewFileS(path, content)
return r.File(newFile)
Expand Down
40 changes: 25 additions & 15 deletions ignite/templates/typed/map/map.go
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ func NewGenerator(replacer placeholder.Replacer, opts *typed.Options) (*genny.Ge
g.RunFn(clientCliQueryModify(replacer, opts))
g.RunFn(genesisProtoModify(opts))
g.RunFn(genesisTypesModify(opts))
g.RunFn(genesisModuleModify(replacer, opts))
g.RunFn(genesisModuleModify(opts))
g.RunFn(genesisTestsModify(replacer, opts))
g.RunFn(genesisTypesTestsModify(replacer, opts))

Expand Down Expand Up @@ -397,44 +397,54 @@ for _, elem := range gs.%[2]vList {
}
}

func genesisModuleModify(replacer placeholder.Replacer, opts *typed.Options) genny.RunFn {
func genesisModuleModify(opts *typed.Options) genny.RunFn {
return func(r *genny.Runner) error {
path := filepath.Join(opts.AppPath, "x", opts.ModuleName, "keeper/genesis.go")
f, err := r.Disk.Find(path)
if err != nil {
return err
}

templateModuleInit := `// Set all the %[2]v
for _, elem := range genState.%[3]vList {
if err := k.%[3]v.Set(ctx, elem.%[4]v, elem); err != nil {
templateModuleInit := `// Set all the %[1]v
for _, elem := range genState.%[2]vList {
if err := k.%[2]v.Set(ctx, elem.%[3]v, elem); err != nil {
return err
}
}
%[1]v`
}`
replacementModuleInit := fmt.Sprintf(
templateModuleInit,
typed.PlaceholderGenesisModuleInit,
opts.TypeName.LowerCamel,
opts.TypeName.UpperCamel,
opts.Index.Name.UpperCamel,
)
content := replacer.Replace(f.String(), typed.PlaceholderGenesisModuleInit, replacementModuleInit)
content, err := xast.ModifyFunction(
f.String(),
"InitGenesis",
xast.AppendFuncCode(replacementModuleInit),
)
if err != nil {
return err
}

templateModuleExport := `if err := k.%[2]v.Walk(ctx, nil, func(_ %[3]v, val types.%[2]v) (stop bool, err error) {
genesis.%[2]vList = append(genesis.%[2]vList, val)
templateModuleExport := `if err := k.%[1]v.Walk(ctx, nil, func(_ %[2]v, val types.%[1]v) (stop bool, err error) {
genesis.%[1]vList = append(genesis.%[1]vList, val)
return false, nil
}); err != nil {
return nil, err
}
%[1]v`
}`
replacementModuleExport := fmt.Sprintf(
templateModuleExport,
typed.PlaceholderGenesisModuleExport,
opts.TypeName.UpperCamel,
opts.Index.DataType(),
)
content = replacer.Replace(content, typed.PlaceholderGenesisModuleExport, replacementModuleExport)
content, err = xast.ModifyFunction(
content,
"ExportGenesis",
xast.AppendFuncCode(replacementModuleExport),
)
if err != nil {
return err
}

newFile := genny.NewFileS(path, content)
return r.File(newFile)
Expand Down
4 changes: 0 additions & 4 deletions ignite/templates/typed/placeholders.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,6 @@ package typed
const (
Placeholder4 = "<!-- this line is used by starport scaffolding # 4 -->"

// Genesis
PlaceholderGenesisModuleInit = "// this line is used by starport scaffolding # genesis/module/init"
PlaceholderGenesisModuleExport = "// this line is used by starport scaffolding # genesis/module/export"

PlaceholderSimappConst = "// this line is used by starport scaffolding # simapp/module/const"
PlaceholderSimappGenesisState = "// this line is used by starport scaffolding # simapp/module/genesisState"
PlaceholderSimappOperation = "// this line is used by starport scaffolding # simapp/module/operation"
Expand Down
Loading

0 comments on commit 282d15d

Please sign in to comment.