From 282d15d46cd4c6d6d249a72c2b053d3ceac2013c Mon Sep 17 00:00:00 2001 From: Danilo Pantani Date: Thu, 5 Dec 2024 02:31:32 -0300 Subject: [PATCH] remove module genesis placeholders --- ignite/templates/ibc/packet.go | 18 ++++--- ignite/templates/ibc/placeholders.go | 2 - .../x/{{moduleName}}/keeper/genesis.go.plush | 2 - .../{{moduleName}}/module/depinject.go.plush | 2 - .../x/{{moduleName}}/module/module.go.plush | 2 - ignite/templates/module/create/ibc.go | 31 +++++++----- ignite/templates/typed/list/genesis.go | 47 +++++++++++-------- ignite/templates/typed/map/map.go | 40 ++++++++++------ ignite/templates/typed/placeholders.go | 4 -- ignite/templates/typed/singleton/singleton.go | 39 +++++++++------ 10 files changed, 109 insertions(+), 78 deletions(-) diff --git a/ignite/templates/ibc/packet.go b/ignite/templates/ibc/packet.go index 280bc0de57..d6440d8d21 100644 --- a/ignite/templates/ibc/packet.go +++ b/ignite/templates/ibc/packet.go @@ -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 @@ -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) } diff --git a/ignite/templates/ibc/placeholders.go b/ignite/templates/ibc/placeholders.go index d1dfd154b9..d6f2be019c 100644 --- a/ignite/templates/ibc/placeholders.go +++ b/ignite/templates/ibc/placeholders.go @@ -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" diff --git a/ignite/templates/module/create/files/base/x/{{moduleName}}/keeper/genesis.go.plush b/ignite/templates/module/create/files/base/x/{{moduleName}}/keeper/genesis.go.plush index 04a3a06bfe..1dd1c745a6 100644 --- a/ignite/templates/module/create/files/base/x/{{moduleName}}/keeper/genesis.go.plush +++ b/ignite/templates/module/create/files/base/x/{{moduleName}}/keeper/genesis.go.plush @@ -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) } @@ -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 } diff --git a/ignite/templates/module/create/files/base/x/{{moduleName}}/module/depinject.go.plush b/ignite/templates/module/create/files/base/x/{{moduleName}}/module/depinject.go.plush index 7335ce59ea..5e007ce952 100644 --- a/ignite/templates/module/create/files/base/x/{{moduleName}}/module/depinject.go.plush +++ b/ignite/templates/module/create/files/base/x/{{moduleName}}/module/depinject.go.plush @@ -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" ) diff --git a/ignite/templates/module/create/files/base/x/{{moduleName}}/module/module.go.plush b/ignite/templates/module/create/files/base/x/{{moduleName}}/module/module.go.plush index c296a1bbc8..eb2c9df6d5 100644 --- a/ignite/templates/module/create/files/base/x/{{moduleName}}/module/module.go.plush +++ b/ignite/templates/module/create/files/base/x/{{moduleName}}/module/module.go.plush @@ -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"<% } %> diff --git a/ignite/templates/module/create/ibc.go b/ignite/templates/module/create/ibc.go index 0713720cfb..45d2d2f695 100644 --- a/ignite/templates/module/create/ibc.go +++ b/ignite/templates/module/create/ibc.go @@ -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. @@ -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)) @@ -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) @@ -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) { @@ -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) diff --git a/ignite/templates/typed/list/genesis.go b/ignite/templates/typed/list/genesis.go index c00e02d635..d80094dd3a 100644 --- a/ignite/templates/typed/list/genesis.go +++ b/ignite/templates/typed/list/genesis.go @@ -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)) } @@ -122,7 +122,7 @@ 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) @@ -130,47 +130,56 @@ func genesisModuleModify(replacer placeholder.Replacer, opts *typed.Options) gen 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) diff --git a/ignite/templates/typed/map/map.go b/ignite/templates/typed/map/map.go index 59d2a56641..cecc8503a8 100644 --- a/ignite/templates/typed/map/map.go +++ b/ignite/templates/typed/map/map.go @@ -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)) @@ -397,7 +397,7 @@ 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) @@ -405,36 +405,46 @@ func genesisModuleModify(replacer placeholder.Replacer, opts *typed.Options) gen 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) diff --git a/ignite/templates/typed/placeholders.go b/ignite/templates/typed/placeholders.go index c348e2c739..4df3802f28 100644 --- a/ignite/templates/typed/placeholders.go +++ b/ignite/templates/typed/placeholders.go @@ -4,10 +4,6 @@ package typed const ( Placeholder4 = "" - // 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" diff --git a/ignite/templates/typed/singleton/singleton.go b/ignite/templates/typed/singleton/singleton.go index 9a1e08c643..fe84f77f8f 100644 --- a/ignite/templates/typed/singleton/singleton.go +++ b/ignite/templates/typed/singleton/singleton.go @@ -60,7 +60,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(opts)) @@ -370,7 +370,7 @@ func genesisTypesTestsModify(opts *typed.Options) genny.RunFn { } } -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) @@ -379,34 +379,43 @@ func genesisModuleModify(replacer placeholder.Replacer, opts *typed.Options) gen } templateModuleInit := `// Set if defined -if genState.%[3]v != nil { - if err := k.%[3]v.Set(ctx, *genState.%[3]v); err != nil { +if genState.%[1]v != nil { + if err := k.%[1]v.Set(ctx, *genState.%[1]v); 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 := `// Get all %[2]v -%[2]v, err := k.%[3]v.Get(ctx) + templateModuleExport := `// Get all %[1]v +%[1]v, err := k.%[2]v.Get(ctx) if err != nil { return nil, err } -genesis.%[3]v = &%[2]v -%[1]v` +genesis.%[2]v = &%[1]v` replacementModuleExport := fmt.Sprintf( templateModuleExport, - typed.PlaceholderGenesisModuleExport, opts.TypeName.LowerCamel, 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)