From c19da206db3baf0f5f4a6fe88e69095414a52694 Mon Sep 17 00:00:00 2001 From: Miguel Victoria Date: Sat, 19 Oct 2024 23:19:07 +0200 Subject: [PATCH 01/14] feat(genesis): deployerAddres passed as parameter Co-authored-by: 6h057 --- .../cmd/gnoland/genesis_txs_add_packages.go | 36 ++++++++++++++----- gno.land/cmd/gnoland/start.go | 16 +++++---- 2 files changed, 36 insertions(+), 16 deletions(-) diff --git a/gno.land/cmd/gnoland/genesis_txs_add_packages.go b/gno.land/cmd/gnoland/genesis_txs_add_packages.go index 56d165c070b..b5dee89419d 100644 --- a/gno.land/cmd/gnoland/genesis_txs_add_packages.go +++ b/gno.land/cmd/gnoland/genesis_txs_add_packages.go @@ -3,6 +3,7 @@ package main import ( "context" "errors" + "flag" "fmt" "github.com/gnolang/gno/gno.land/pkg/gnoland" @@ -15,13 +16,28 @@ import ( var errInvalidPackageDir = errors.New("invalid package directory") -var ( - genesisDeployAddress = crypto.MustAddressFromString("g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5") // test1 - genesisDeployFee = std.NewFee(50000, std.MustParseCoin(ugnot.ValueString(1000000))) -) +var genesisDeployFee = std.NewFee(50000, std.MustParseCoin(ugnot.ValueString(1000000))) + +type addPkgCfg struct { + txsCfg *txsCfg + deployerAdd string +} + +func (c *addPkgCfg) RegisterFlags(fs *flag.FlagSet) { + fs.StringVar( + &c.deployerAdd, + "deployer-address", + "g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5", // test1 + "The address that will create package on the transaction genesis", + ) +} // newTxsAddPackagesCmd creates the genesis txs add packages subcommand func newTxsAddPackagesCmd(txsCfg *txsCfg, io commands.IO) *commands.Command { + cfg := &addPkgCfg{ + txsCfg: txsCfg, + } + return commands.NewCommand( commands.Metadata{ Name: "packages", @@ -29,24 +45,26 @@ func newTxsAddPackagesCmd(txsCfg *txsCfg, io commands.IO) *commands.Command { ShortHelp: "imports transactions from the given packages into the genesis.json", LongHelp: "Imports the transactions from a given package directory recursively to the genesis.json", }, - commands.NewEmptyConfig(), + cfg, func(_ context.Context, args []string) error { - return execTxsAddPackages(txsCfg, io, args) + return execTxsAddPackages(cfg, io, args) }, ) } func execTxsAddPackages( - cfg *txsCfg, + cfg *addPkgCfg, io commands.IO, args []string, ) error { // Load the genesis - genesis, loadErr := types.GenesisDocFromFile(cfg.genesisPath) + genesis, loadErr := types.GenesisDocFromFile(cfg.txsCfg.genesisPath) if loadErr != nil { return fmt.Errorf("unable to load genesis, %w", loadErr) } + genesisDeployAddress := crypto.MustAddressFromString(cfg.deployerAdd) + // Make sure the package dir is set if len(args) == 0 { return errInvalidPackageDir @@ -69,7 +87,7 @@ func execTxsAddPackages( } // Save the updated genesis - if err := genesis.SaveAs(cfg.genesisPath); err != nil { + if err := genesis.SaveAs(cfg.txsCfg.genesisPath); err != nil { return fmt.Errorf("unable to save genesis.json, %w", err) } diff --git a/gno.land/cmd/gnoland/start.go b/gno.land/cmd/gnoland/start.go index 21f0cb4b1a6..c0fb45620f7 100644 --- a/gno.land/cmd/gnoland/start.go +++ b/gno.land/cmd/gnoland/start.go @@ -402,19 +402,21 @@ func generateGenesisFile(genesisFile string, pk crypto.PubKey, c *startCfg) erro return fmt.Errorf("unable to load genesis balances file %q: %w", c.genesisBalancesFile, err) } - // Load examples folder - examplesDir := filepath.Join(c.gnoRootDir, "examples") - pkgsTxs, err := gnoland.LoadPackagesFromDir(examplesDir, genesisDeployAddress, genesisDeployFee) - if err != nil { - return fmt.Errorf("unable to load examples folder: %w", err) - } - // Load Genesis TXs genesisTxs, err := gnoland.LoadGenesisTxsFile(c.genesisTxsFile, c.chainID, c.genesisRemote) if err != nil { return fmt.Errorf("unable to load genesis txs file: %w", err) } + signer := genesisTxs[0].Msgs[0].GetSigners()[0] + + // Load examples folder + examplesDir := filepath.Join(c.gnoRootDir, "examples") + pkgsTxs, err := gnoland.LoadPackagesFromDir(examplesDir, signer, genesisDeployFee) + if err != nil { + return fmt.Errorf("unable to load examples folder: %w", err) + } + genesisTxs = append(pkgsTxs, genesisTxs...) // Construct genesis AppState. From bf99a28d86ad109fd813ccfdaf1a9475a318ce8b Mon Sep 17 00:00:00 2001 From: Miguel Victoria Date: Tue, 29 Oct 2024 19:56:57 +0100 Subject: [PATCH 02/14] Deal with merges conflicts --- contribs/gnogenesis/internal/txs/txs_add_packages.go | 4 ++-- gno.land/cmd/gnoland/start.go | 3 +-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/contribs/gnogenesis/internal/txs/txs_add_packages.go b/contribs/gnogenesis/internal/txs/txs_add_packages.go index cc13a7e27a5..99f0413f0a1 100644 --- a/contribs/gnogenesis/internal/txs/txs_add_packages.go +++ b/contribs/gnogenesis/internal/txs/txs_add_packages.go @@ -58,7 +58,7 @@ func execTxsAddPackages( args []string, ) error { // Load the genesis - genesis, loadErr := types.GenesisDocFromFile(cfg.txsCfg.genesisPath) + genesis, loadErr := types.GenesisDocFromFile(cfg.txsCfg.GenesisPath) if loadErr != nil { return fmt.Errorf("unable to load genesis, %w", loadErr) } @@ -87,7 +87,7 @@ func execTxsAddPackages( } // Save the updated genesis - if err := genesis.SaveAs(cfg.txsCfg.genesisPath); err != nil { + if err := genesis.SaveAs(cfg.txsCfg.GenesisPath); err != nil { return fmt.Errorf("unable to save genesis.json, %w", err) } diff --git a/gno.land/cmd/gnoland/start.go b/gno.land/cmd/gnoland/start.go index 1331448176c..2f9bf373a77 100644 --- a/gno.land/cmd/gnoland/start.go +++ b/gno.land/cmd/gnoland/start.go @@ -46,8 +46,7 @@ var startGraphic = strings.ReplaceAll(` var ( // Keep in sync with contribs/gnogenesis/internal/txs/txs_add_packages.go - genesisDeployAddress = crypto.MustAddressFromString("g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5") // test1 - genesisDeployFee = std.NewFee(50000, std.MustParseCoin(ugnot.ValueString(1000000))) + genesisDeployFee = std.NewFee(50000, std.MustParseCoin(ugnot.ValueString(1000000))) ) type startCfg struct { From 616f65cc042b1e933084681d272e91ca309ff283 Mon Sep 17 00:00:00 2001 From: Miguel Victoria Date: Thu, 31 Oct 2024 08:56:57 +0100 Subject: [PATCH 03/14] fmt --- gno.land/cmd/gnoland/start.go | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/gno.land/cmd/gnoland/start.go b/gno.land/cmd/gnoland/start.go index 2f9bf373a77..5a4548d1beb 100644 --- a/gno.land/cmd/gnoland/start.go +++ b/gno.land/cmd/gnoland/start.go @@ -44,10 +44,8 @@ var startGraphic = strings.ReplaceAll(` /___/ `, "'", "`") -var ( - // Keep in sync with contribs/gnogenesis/internal/txs/txs_add_packages.go - genesisDeployFee = std.NewFee(50000, std.MustParseCoin(ugnot.ValueString(1000000))) -) +// Keep in sync with contribs/gnogenesis/internal/txs/txs_add_packages.go +var genesisDeployFee = std.NewFee(50000, std.MustParseCoin(ugnot.ValueString(1000000))) type startCfg struct { gnoRootDir string // TODO: remove as part of https://github.com/gnolang/gno/issues/1952 From fe837a41a4b299c1581506e6bb2c8209ef83b29e Mon Sep 17 00:00:00 2001 From: Miguel Victoria Date: Mon, 4 Nov 2024 21:36:25 +0100 Subject: [PATCH 04/14] remove modifications on gnolang/start.go --- gno.land/cmd/gnoland/start.go | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/gno.land/cmd/gnoland/start.go b/gno.land/cmd/gnoland/start.go index 5a4548d1beb..77d7e20b8ef 100644 --- a/gno.land/cmd/gnoland/start.go +++ b/gno.land/cmd/gnoland/start.go @@ -44,8 +44,11 @@ var startGraphic = strings.ReplaceAll(` /___/ `, "'", "`") -// Keep in sync with contribs/gnogenesis/internal/txs/txs_add_packages.go -var genesisDeployFee = std.NewFee(50000, std.MustParseCoin(ugnot.ValueString(1000000))) +var ( + // Keep in sync with contribs/gnogenesis/internal/txs/txs_add_packages.go + genesisDeployAddress = crypto.MustAddressFromString("g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5") // test1 + genesisDeployFee = std.NewFee(50000, std.MustParseCoin(ugnot.ValueString(1000000))) +) type startCfg struct { gnoRootDir string // TODO: remove as part of https://github.com/gnolang/gno/issues/1952 @@ -391,21 +394,19 @@ func generateGenesisFile(genesisFile string, pk crypto.PubKey, c *startCfg) erro return fmt.Errorf("unable to load genesis balances file %q: %w", c.genesisBalancesFile, err) } - // Load Genesis TXs - genesisTxs, err := gnoland.LoadGenesisTxsFile(c.genesisTxsFile, c.chainID, c.genesisRemote) - if err != nil { - return fmt.Errorf("unable to load genesis txs file: %w", err) - } - - signer := genesisTxs[0].Msgs[0].GetSigners()[0] - // Load examples folder examplesDir := filepath.Join(c.gnoRootDir, "examples") - pkgsTxs, err := gnoland.LoadPackagesFromDir(examplesDir, signer, genesisDeployFee) + pkgsTxs, err := gnoland.LoadPackagesFromDir(examplesDir, genesisDeployAddress, genesisDeployFee) if err != nil { return fmt.Errorf("unable to load examples folder: %w", err) } + // Load Genesis TXs + genesisTxs, err := gnoland.LoadGenesisTxsFile(c.genesisTxsFile, c.chainID, c.genesisRemote) + if err != nil { + return fmt.Errorf("unable to load genesis txs file: %w", err) + } + genesisTxs = append(pkgsTxs, genesisTxs...) // Construct genesis AppState. From a1c0ff75dcd43ddbfbcd1b3342bafcb6d6b6a066 Mon Sep 17 00:00:00 2001 From: Miguel Victoria Date: Sun, 24 Nov 2024 14:18:02 +0100 Subject: [PATCH 05/14] make it work with validateSignatures --- .../internal/txs/txs_add_packages.go | 17 ++++---- gno.land/cmd/gnoland/start.go | 6 +-- gno.land/pkg/gnoland/app.go | 2 +- gno.land/pkg/gnoland/genesis.go | 39 +++++++++++++++++-- gno.land/pkg/integration/testing_node.go | 6 +-- 5 files changed, 49 insertions(+), 21 deletions(-) diff --git a/contribs/gnogenesis/internal/txs/txs_add_packages.go b/contribs/gnogenesis/internal/txs/txs_add_packages.go index 381a387654a..5d234336b45 100644 --- a/contribs/gnogenesis/internal/txs/txs_add_packages.go +++ b/contribs/gnogenesis/internal/txs/txs_add_packages.go @@ -10,7 +10,6 @@ import ( "github.com/gnolang/gno/gno.land/pkg/gnoland/ugnot" "github.com/gnolang/gno/tm2/pkg/bft/types" "github.com/gnolang/gno/tm2/pkg/commands" - "github.com/gnolang/gno/tm2/pkg/crypto" "github.com/gnolang/gno/tm2/pkg/std" ) @@ -19,16 +18,16 @@ var errInvalidPackageDir = errors.New("invalid package directory") var genesisDeployFee = std.NewFee(50000, std.MustParseCoin(ugnot.ValueString(1000000))) type addPkgCfg struct { - txsCfg *txsCfg - deployerAdd string + txsCfg *txsCfg + deployerMnemonic string } func (c *addPkgCfg) RegisterFlags(fs *flag.FlagSet) { fs.StringVar( - &c.deployerAdd, - "deployer-address", - "g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5", // test1 - "The address that will create package on the transaction genesis", + &c.deployerMnemonic, + "deployer-mnemonic", + "source bonus chronic canvas draft south burst lottery vacant surface solve popular case indicate oppose farm nothing bullet exhibit title speed wink action roast", // test1 + "The mnemonic of the wallet that will create packages on the transaction genesis", ) } @@ -63,8 +62,6 @@ func execTxsAddPackages( return fmt.Errorf("unable to load genesis, %w", loadErr) } - genesisDeployAddress := crypto.MustAddressFromString(cfg.deployerAdd) - // Make sure the package dir is set if len(args) == 0 { return errInvalidPackageDir @@ -73,7 +70,7 @@ func execTxsAddPackages( parsedTxs := make([]gnoland.TxWithMetadata, 0) for _, path := range args { // Generate transactions from the packages (recursively) - txs, err := gnoland.LoadPackagesFromDir(path, genesisDeployAddress, genesisDeployFee) + txs, err := gnoland.LoadPackagesFromDir(path, cfg.deployerMnemonic, genesisDeployFee) if err != nil { return fmt.Errorf("unable to load txs from directory, %w", err) } diff --git a/gno.land/cmd/gnoland/start.go b/gno.land/cmd/gnoland/start.go index 77d7e20b8ef..a347b1c1691 100644 --- a/gno.land/cmd/gnoland/start.go +++ b/gno.land/cmd/gnoland/start.go @@ -46,8 +46,8 @@ var startGraphic = strings.ReplaceAll(` var ( // Keep in sync with contribs/gnogenesis/internal/txs/txs_add_packages.go - genesisDeployAddress = crypto.MustAddressFromString("g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5") // test1 - genesisDeployFee = std.NewFee(50000, std.MustParseCoin(ugnot.ValueString(1000000))) + deployerMnemonic = "source bonus chronic canvas draft south burst lottery vacant surface solve popular case indicate oppose farm nothing bullet exhibit title speed wink action roast" // test1 + genesisDeployFee = std.NewFee(50000, std.MustParseCoin(ugnot.ValueString(1000000))) ) type startCfg struct { @@ -396,7 +396,7 @@ func generateGenesisFile(genesisFile string, pk crypto.PubKey, c *startCfg) erro // Load examples folder examplesDir := filepath.Join(c.gnoRootDir, "examples") - pkgsTxs, err := gnoland.LoadPackagesFromDir(examplesDir, genesisDeployAddress, genesisDeployFee) + pkgsTxs, err := gnoland.LoadPackagesFromDir(examplesDir, deployerMnemonic, genesisDeployFee) if err != nil { return fmt.Errorf("unable to load examples folder: %w", err) } diff --git a/gno.land/pkg/gnoland/app.go b/gno.land/pkg/gnoland/app.go index e0c93f6194f..aef8e95ebe9 100644 --- a/gno.land/pkg/gnoland/app.go +++ b/gno.land/pkg/gnoland/app.go @@ -103,7 +103,7 @@ func NewAppWithOptions(cfg *AppOptions) (abci.Application, error) { // Set AnteHandler authOptions := auth.AnteOptions{ - VerifyGenesisSignatures: false, // for development + VerifyGenesisSignatures: true, // for development } authAnteHandler := auth.NewAnteHandler( acctKpr, bankKpr, auth.DefaultSigVerificationGasConsumer, authOptions) diff --git a/gno.land/pkg/gnoland/genesis.go b/gno.land/pkg/gnoland/genesis.go index ea692bcaf0d..27de685ad44 100644 --- a/gno.land/pkg/gnoland/genesis.go +++ b/gno.land/pkg/gnoland/genesis.go @@ -9,8 +9,8 @@ import ( gno "github.com/gnolang/gno/gnovm/pkg/gnolang" "github.com/gnolang/gno/gnovm/pkg/gnomod" "github.com/gnolang/gno/tm2/pkg/amino" - bft "github.com/gnolang/gno/tm2/pkg/bft/types" "github.com/gnolang/gno/tm2/pkg/crypto" + "github.com/gnolang/gno/tm2/pkg/crypto/keys" osm "github.com/gnolang/gno/tm2/pkg/os" "github.com/gnolang/gno/tm2/pkg/std" "github.com/pelletier/go-toml" @@ -133,7 +133,7 @@ func LoadGenesisTxsFile(path string, chainID string, genesisRemote string) ([]Tx // LoadPackagesFromDir loads gno packages from a directory. // It creates and returns a list of transactions based on these packages. -func LoadPackagesFromDir(dir string, creator bft.Address, fee std.Fee) ([]TxWithMetadata, error) { +func LoadPackagesFromDir(dir string, creatorMnemonic string, fee std.Fee) ([]TxWithMetadata, error) { // list all packages from target path pkgs, err := gnomod.ListPkgs(dir) if err != nil { @@ -146,25 +146,56 @@ func LoadPackagesFromDir(dir string, creator bft.Address, fee std.Fee) ([]TxWith return nil, fmt.Errorf("sorting packages: %w", err) } + kb := keys.NewInMemory() + // Save the account + info, err := kb.CreateAccount( + "deployer", + creatorMnemonic, + "", + "", + 0, + 0, + ) + if err != nil { + return nil, fmt.Errorf("unable to create account, %w", err) + } + // Filter out draft packages. nonDraftPkgs := sortedPkgs.GetNonDraftPkgs() txs := make([]TxWithMetadata, 0, len(nonDraftPkgs)) + + baseAccount := std.NewBaseAccountWithAddress(info.GetAddress()) + for _, pkg := range nonDraftPkgs { - tx, err := LoadPackage(pkg, creator, fee, nil) + accountSequence := baseAccount.GetSequence() + tx, err := LoadPackage(pkg, info.GetAddress(), fee, nil) if err != nil { return nil, fmt.Errorf("unable to load package %q: %w", pkg.Dir, err) } + txData, err := tx.GetSignBytes("dev", 0, accountSequence) + if err != nil { + return nil, fmt.Errorf("unable to generate mnemonic, %w", err) + } + sig, pub, err := kb.Sign("deployer", "", txData) + if err != nil { + return nil, err + } + tx.Signatures = []std.Signature{{ + PubKey: pub, + Signature: sig, + }} txs = append(txs, TxWithMetadata{ Tx: tx, }) + baseAccount.SetSequence(accountSequence + 1) } return txs, nil } // LoadPackage loads a single package into a `std.Tx` -func LoadPackage(pkg gnomod.Pkg, creator bft.Address, fee std.Fee, deposit std.Coins) (std.Tx, error) { +func LoadPackage(pkg gnomod.Pkg, creator crypto.Address, fee std.Fee, deposit std.Coins) (std.Tx, error) { var tx std.Tx // Open files in directory as MemPackage. diff --git a/gno.land/pkg/integration/testing_node.go b/gno.land/pkg/integration/testing_node.go index 7e34049d352..3dcff28bbdf 100644 --- a/gno.land/pkg/integration/testing_node.go +++ b/gno.land/pkg/integration/testing_node.go @@ -62,7 +62,7 @@ func TestingNodeConfig(t TestingTS, gnoroot string, additionalTxs ...gnoland.TxW params := LoadDefaultGenesisParamFile(t, gnoroot) balances := LoadDefaultGenesisBalanceFile(t, gnoroot) txs := make([]gnoland.TxWithMetadata, 0) - txs = append(txs, LoadDefaultPackages(t, creator, gnoroot)...) + txs = append(txs, LoadDefaultPackages(t, DefaultAccount_Seed, gnoroot)...) txs = append(txs, additionalTxs...) cfg.Genesis.AppState = gnoland.GnoGenesisState{ @@ -130,11 +130,11 @@ func DefaultTestingGenesisConfig(t TestingTS, gnoroot string, self crypto.PubKey } // LoadDefaultPackages loads the default packages for testing using a given creator address and gnoroot directory. -func LoadDefaultPackages(t TestingTS, creator bft.Address, gnoroot string) []gnoland.TxWithMetadata { +func LoadDefaultPackages(t TestingTS, creatorMnemonic string, gnoroot string) []gnoland.TxWithMetadata { examplesDir := filepath.Join(gnoroot, "examples") defaultFee := std.NewFee(50000, std.MustParseCoin(ugnot.ValueString(1000000))) - txs, err := gnoland.LoadPackagesFromDir(examplesDir, creator, defaultFee) + txs, err := gnoland.LoadPackagesFromDir(examplesDir, creatorMnemonic, defaultFee) require.NoError(t, err) return txs From 4e28eee771f603b7851933f2d6feb446dfc2d65e Mon Sep 17 00:00:00 2001 From: Miguel Victoria Date: Sun, 24 Nov 2024 14:43:19 +0100 Subject: [PATCH 06/14] revert type on loadPackage func --- gno.land/pkg/gnoland/genesis.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gno.land/pkg/gnoland/genesis.go b/gno.land/pkg/gnoland/genesis.go index 27de685ad44..28c43e319bd 100644 --- a/gno.land/pkg/gnoland/genesis.go +++ b/gno.land/pkg/gnoland/genesis.go @@ -9,6 +9,7 @@ import ( gno "github.com/gnolang/gno/gnovm/pkg/gnolang" "github.com/gnolang/gno/gnovm/pkg/gnomod" "github.com/gnolang/gno/tm2/pkg/amino" + bft "github.com/gnolang/gno/tm2/pkg/bft/types" "github.com/gnolang/gno/tm2/pkg/crypto" "github.com/gnolang/gno/tm2/pkg/crypto/keys" osm "github.com/gnolang/gno/tm2/pkg/os" @@ -195,7 +196,7 @@ func LoadPackagesFromDir(dir string, creatorMnemonic string, fee std.Fee) ([]TxW } // LoadPackage loads a single package into a `std.Tx` -func LoadPackage(pkg gnomod.Pkg, creator crypto.Address, fee std.Fee, deposit std.Coins) (std.Tx, error) { +func LoadPackage(pkg gnomod.Pkg, creator bft.Address, fee std.Fee, deposit std.Coins) (std.Tx, error) { var tx std.Tx // Open files in directory as MemPackage. From 1805ebc91055e43256765dc61cf58379be6a6b8f Mon Sep 17 00:00:00 2001 From: Miguel Victoria Date: Sun, 24 Nov 2024 14:48:47 +0100 Subject: [PATCH 07/14] make tidy --- contribs/gnomigrate/go.mod | 5 +++++ misc/loop/go.mod | 3 +++ 2 files changed, 8 insertions(+) diff --git a/contribs/gnomigrate/go.mod b/contribs/gnomigrate/go.mod index c492ae7c818..f74148b6bc0 100644 --- a/contribs/gnomigrate/go.mod +++ b/contribs/gnomigrate/go.mod @@ -15,11 +15,13 @@ require ( github.com/btcsuite/btcd/btcutil v1.1.6 // indirect github.com/cenkalti/backoff/v4 v4.3.0 // indirect github.com/cockroachdb/apd/v3 v3.2.1 // indirect + github.com/cosmos/ledger-cosmos-go v0.13.3 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 // indirect github.com/gnolang/overflow v0.0.0-20170615021017-4d914c927216 // indirect github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect + github.com/golang/protobuf v1.5.4 // indirect github.com/golang/snappy v0.0.4 // indirect github.com/google/uuid v1.6.0 // indirect github.com/gorilla/websocket v1.5.3 // indirect @@ -27,10 +29,13 @@ require ( github.com/libp2p/go-buffer-pool v0.1.0 // indirect github.com/pelletier/go-toml v1.9.5 // indirect github.com/peterbourgon/ff/v3 v3.4.0 // indirect + github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/rs/cors v1.11.1 // indirect github.com/rs/xid v1.6.0 // indirect github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 // indirect + github.com/zondax/hid v0.9.2 // indirect + github.com/zondax/ledger-go v0.14.3 // indirect go.etcd.io/bbolt v1.3.11 // indirect go.opentelemetry.io/otel v1.29.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.29.0 // indirect diff --git a/misc/loop/go.mod b/misc/loop/go.mod index f1c09cd9f82..2ec8a48142c 100644 --- a/misc/loop/go.mod +++ b/misc/loop/go.mod @@ -24,6 +24,7 @@ require ( github.com/cenkalti/backoff/v4 v4.3.0 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/cockroachdb/apd/v3 v3.2.1 // indirect + github.com/cosmos/ledger-cosmos-go v0.13.3 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 // indirect github.com/distribution/reference v0.5.0 // indirect @@ -55,6 +56,8 @@ require ( github.com/rs/xid v1.6.0 // indirect github.com/stretchr/testify v1.9.0 // indirect github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 // indirect + github.com/zondax/hid v0.9.2 // indirect + github.com/zondax/ledger-go v0.14.3 // indirect go.etcd.io/bbolt v1.3.11 // indirect go.opentelemetry.io/otel v1.29.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.29.0 // indirect From 82d9b88cbe20c77da374a537ef39b932929540f0 Mon Sep 17 00:00:00 2001 From: Miguel Victoria Date: Sun, 24 Nov 2024 14:54:35 +0100 Subject: [PATCH 08/14] temporarilly remove signature verification --- gno.land/pkg/gnoland/app.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gno.land/pkg/gnoland/app.go b/gno.land/pkg/gnoland/app.go index aef8e95ebe9..e0c93f6194f 100644 --- a/gno.land/pkg/gnoland/app.go +++ b/gno.land/pkg/gnoland/app.go @@ -103,7 +103,7 @@ func NewAppWithOptions(cfg *AppOptions) (abci.Application, error) { // Set AnteHandler authOptions := auth.AnteOptions{ - VerifyGenesisSignatures: true, // for development + VerifyGenesisSignatures: false, // for development } authAnteHandler := auth.NewAnteHandler( acctKpr, bankKpr, auth.DefaultSigVerificationGasConsumer, authOptions) From 5e2ca66a307d6a2557790e1efd5c4d8ff25fd618 Mon Sep 17 00:00:00 2001 From: Miguel Victoria Date: Sun, 24 Nov 2024 16:08:48 +0100 Subject: [PATCH 09/14] Fix tests --- contribs/gnogenesis/internal/txs/txs_add_packages.go | 2 +- gno.land/cmd/gnoland/start.go | 2 +- gno.land/cmd/gnoland/start_test.go | 5 +++-- gno.land/pkg/gnoland/genesis.go | 4 ++-- gno.land/pkg/integration/testing_node.go | 2 +- 5 files changed, 8 insertions(+), 7 deletions(-) diff --git a/contribs/gnogenesis/internal/txs/txs_add_packages.go b/contribs/gnogenesis/internal/txs/txs_add_packages.go index 5d234336b45..26867505db2 100644 --- a/contribs/gnogenesis/internal/txs/txs_add_packages.go +++ b/contribs/gnogenesis/internal/txs/txs_add_packages.go @@ -70,7 +70,7 @@ func execTxsAddPackages( parsedTxs := make([]gnoland.TxWithMetadata, 0) for _, path := range args { // Generate transactions from the packages (recursively) - txs, err := gnoland.LoadPackagesFromDir(path, cfg.deployerMnemonic, genesisDeployFee) + txs, err := gnoland.LoadPackagesFromDir(path, cfg.deployerMnemonic, genesis.ChainID, genesisDeployFee) if err != nil { return fmt.Errorf("unable to load txs from directory, %w", err) } diff --git a/gno.land/cmd/gnoland/start.go b/gno.land/cmd/gnoland/start.go index a347b1c1691..947b3381e66 100644 --- a/gno.land/cmd/gnoland/start.go +++ b/gno.land/cmd/gnoland/start.go @@ -396,7 +396,7 @@ func generateGenesisFile(genesisFile string, pk crypto.PubKey, c *startCfg) erro // Load examples folder examplesDir := filepath.Join(c.gnoRootDir, "examples") - pkgsTxs, err := gnoland.LoadPackagesFromDir(examplesDir, deployerMnemonic, genesisDeployFee) + pkgsTxs, err := gnoland.LoadPackagesFromDir(examplesDir, deployerMnemonic, c.chainID, genesisDeployFee) if err != nil { return fmt.Errorf("unable to load examples folder: %w", err) } diff --git a/gno.land/cmd/gnoland/start_test.go b/gno.land/cmd/gnoland/start_test.go index 2f620fcd360..f5c9b90e36e 100644 --- a/gno.land/cmd/gnoland/start_test.go +++ b/gno.land/cmd/gnoland/start_test.go @@ -116,7 +116,8 @@ func TestStart_Lazy(t *testing.T) { io.SetErr(commands.WriteNopCloser(mockErr)) // Create and run the command - ctx, cancelFn := context.WithTimeout(context.Background(), 10*time.Second) + // Now lazy init takes longer as we're signing each transaction + ctx, cancelFn := context.WithTimeout(context.Background(), 100*time.Second) defer cancelFn() // Set up the command ctx @@ -128,7 +129,7 @@ func TestStart_Lazy(t *testing.T) { }) // Set up the retry ctx - retryCtx, retryCtxCancelFn := context.WithTimeout(ctx, 5*time.Second) + retryCtx, retryCtxCancelFn := context.WithTimeout(ctx, 100*time.Hour) defer retryCtxCancelFn() // This is a very janky way to verify the node has started. diff --git a/gno.land/pkg/gnoland/genesis.go b/gno.land/pkg/gnoland/genesis.go index 28c43e319bd..f076eae0728 100644 --- a/gno.land/pkg/gnoland/genesis.go +++ b/gno.land/pkg/gnoland/genesis.go @@ -134,7 +134,7 @@ func LoadGenesisTxsFile(path string, chainID string, genesisRemote string) ([]Tx // LoadPackagesFromDir loads gno packages from a directory. // It creates and returns a list of transactions based on these packages. -func LoadPackagesFromDir(dir string, creatorMnemonic string, fee std.Fee) ([]TxWithMetadata, error) { +func LoadPackagesFromDir(dir string, creatorMnemonic string, chainID string, fee std.Fee) ([]TxWithMetadata, error) { // list all packages from target path pkgs, err := gnomod.ListPkgs(dir) if err != nil { @@ -174,7 +174,7 @@ func LoadPackagesFromDir(dir string, creatorMnemonic string, fee std.Fee) ([]TxW return nil, fmt.Errorf("unable to load package %q: %w", pkg.Dir, err) } - txData, err := tx.GetSignBytes("dev", 0, accountSequence) + txData, err := tx.GetSignBytes(chainID, 0, accountSequence) if err != nil { return nil, fmt.Errorf("unable to generate mnemonic, %w", err) } diff --git a/gno.land/pkg/integration/testing_node.go b/gno.land/pkg/integration/testing_node.go index 3dcff28bbdf..af6df426aa2 100644 --- a/gno.land/pkg/integration/testing_node.go +++ b/gno.land/pkg/integration/testing_node.go @@ -134,7 +134,7 @@ func LoadDefaultPackages(t TestingTS, creatorMnemonic string, gnoroot string) [] examplesDir := filepath.Join(gnoroot, "examples") defaultFee := std.NewFee(50000, std.MustParseCoin(ugnot.ValueString(1000000))) - txs, err := gnoland.LoadPackagesFromDir(examplesDir, creatorMnemonic, defaultFee) + txs, err := gnoland.LoadPackagesFromDir(examplesDir, creatorMnemonic, "dev", defaultFee) require.NoError(t, err) return txs From d25215a8c9c5bdc7e869e2ce7ef9ef06c828eae7 Mon Sep 17 00:00:00 2001 From: Miguel Victoria Date: Sun, 24 Nov 2024 16:21:14 +0100 Subject: [PATCH 10/14] accountSequence zero on genesis transactions --- gno.land/pkg/gnoland/genesis.go | 7 ++----- tm2/pkg/sdk/auth/ante.go | 4 +++- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/gno.land/pkg/gnoland/genesis.go b/gno.land/pkg/gnoland/genesis.go index f076eae0728..7d03758bcc9 100644 --- a/gno.land/pkg/gnoland/genesis.go +++ b/gno.land/pkg/gnoland/genesis.go @@ -165,16 +165,14 @@ func LoadPackagesFromDir(dir string, creatorMnemonic string, chainID string, fee nonDraftPkgs := sortedPkgs.GetNonDraftPkgs() txs := make([]TxWithMetadata, 0, len(nonDraftPkgs)) - baseAccount := std.NewBaseAccountWithAddress(info.GetAddress()) - for _, pkg := range nonDraftPkgs { - accountSequence := baseAccount.GetSequence() tx, err := LoadPackage(pkg, info.GetAddress(), fee, nil) if err != nil { return nil, fmt.Errorf("unable to load package %q: %w", pkg.Dir, err) } - txData, err := tx.GetSignBytes(chainID, 0, accountSequence) + // Both account number and account sequence are 0 on genesis transactions + txData, err := tx.GetSignBytes(chainID, 0, 0) if err != nil { return nil, fmt.Errorf("unable to generate mnemonic, %w", err) } @@ -189,7 +187,6 @@ func LoadPackagesFromDir(dir string, creatorMnemonic string, chainID string, fee txs = append(txs, TxWithMetadata{ Tx: tx, }) - baseAccount.SetSequence(accountSequence + 1) } return txs, nil diff --git a/tm2/pkg/sdk/auth/ante.go b/tm2/pkg/sdk/auth/ante.go index 49662b47a55..4d77b25455f 100644 --- a/tm2/pkg/sdk/auth/ante.go +++ b/tm2/pkg/sdk/auth/ante.go @@ -435,15 +435,17 @@ func SetGasMeter(simulate bool, ctx sdk.Context, gasLimit int64) sdk.Context { // and an account. func GetSignBytes(chainID string, tx std.Tx, acc std.Account, genesis bool) ([]byte, error) { var accNum uint64 + var accSequence uint64 if !genesis { accNum = acc.GetAccountNumber() + accSequence = acc.GetSequence() } return std.GetSignaturePayload( std.SignDoc{ ChainID: chainID, AccountNumber: accNum, - Sequence: acc.GetSequence(), + Sequence: accSequence, Fee: tx.Fee, Msgs: tx.Msgs, Memo: tx.Memo, From c0fa3db7af618e69805bfa6b1e138cf8bc8523a7 Mon Sep 17 00:00:00 2001 From: Miguel Victoria Date: Sun, 24 Nov 2024 16:31:55 +0100 Subject: [PATCH 11/14] Fix test on ante.go --- tm2/pkg/sdk/auth/ante_test.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tm2/pkg/sdk/auth/ante_test.go b/tm2/pkg/sdk/auth/ante_test.go index be4167a6238..42c18ae2971 100644 --- a/tm2/pkg/sdk/auth/ante_test.go +++ b/tm2/pkg/sdk/auth/ante_test.go @@ -188,7 +188,7 @@ func TestAnteHandlerAccountNumbersAtBlockHeightZero(t *testing.T) { env.acck.SetAccount(ctx, acc1) acc2 := env.acck.NewAccountWithAddress(ctx, addr2) acc2.SetCoins(tu.NewTestCoins()) - require.NoError(t, acc2.SetAccountNumber(1)) + require.NoError(t, acc2.SetAccountNumber(0)) env.acck.SetAccount(ctx, acc2) // msg and signatures @@ -204,12 +204,12 @@ func TestAnteHandlerAccountNumbersAtBlockHeightZero(t *testing.T) { checkValidTx(t, anteHandler, ctx, tx, false) // new tx from wrong account number - seqs = []uint64{1} + seqs = []uint64{0} tx = tu.NewTestTx(t, ctx.ChainID(), msgs, privs, []uint64{1}, seqs, fee) checkInvalidTx(t, anteHandler, ctx, tx, false, std.UnauthorizedError{}) // from correct account number - seqs = []uint64{1} + seqs = []uint64{0} tx = tu.NewTestTx(t, ctx.ChainID(), msgs, privs, []uint64{0}, seqs, fee) checkValidTx(t, anteHandler, ctx, tx, false) @@ -217,12 +217,12 @@ func TestAnteHandlerAccountNumbersAtBlockHeightZero(t *testing.T) { msg1 := tu.NewTestMsg(addr1, addr2) msg2 := tu.NewTestMsg(addr2, addr1) msgs = []std.Msg{msg1, msg2} - privs, accnums, seqs = []crypto.PrivKey{priv1, priv2}, []uint64{1, 0}, []uint64{2, 0} + privs, accnums, seqs = []crypto.PrivKey{priv1, priv2}, []uint64{1, 0}, []uint64{0, 0} tx = tu.NewTestTx(t, ctx.ChainID(), msgs, privs, accnums, seqs, fee) checkInvalidTx(t, anteHandler, ctx, tx, false, std.UnauthorizedError{}) // correct account numbers - privs, accnums, seqs = []crypto.PrivKey{priv1, priv2}, []uint64{0, 0}, []uint64{2, 0} + privs, accnums, seqs = []crypto.PrivKey{priv1, priv2}, []uint64{0, 0}, []uint64{0, 0} tx = tu.NewTestTx(t, ctx.ChainID(), msgs, privs, accnums, seqs, fee) checkValidTx(t, anteHandler, ctx, tx, false) } From a9d7766fcd463a3eb79b8c12b395a07a3dec4f38 Mon Sep 17 00:00:00 2001 From: Miguel Victoria Date: Sun, 24 Nov 2024 16:55:34 +0100 Subject: [PATCH 12/14] raise time test --- gno.land/cmd/gnoland/start_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gno.land/cmd/gnoland/start_test.go b/gno.land/cmd/gnoland/start_test.go index f5c9b90e36e..1680f7b7068 100644 --- a/gno.land/cmd/gnoland/start_test.go +++ b/gno.land/cmd/gnoland/start_test.go @@ -117,7 +117,7 @@ func TestStart_Lazy(t *testing.T) { // Create and run the command // Now lazy init takes longer as we're signing each transaction - ctx, cancelFn := context.WithTimeout(context.Background(), 100*time.Second) + ctx, cancelFn := context.WithTimeout(context.Background(), 250*time.Second) defer cancelFn() // Set up the command ctx @@ -129,7 +129,7 @@ func TestStart_Lazy(t *testing.T) { }) // Set up the retry ctx - retryCtx, retryCtxCancelFn := context.WithTimeout(ctx, 100*time.Hour) + retryCtx, retryCtxCancelFn := context.WithTimeout(ctx, 250*time.Second) defer retryCtxCancelFn() // This is a very janky way to verify the node has started. From fa9a1570165b5cf78c6daddd1898b7ee04b1a777 Mon Sep 17 00:00:00 2001 From: Miguel Victoria Date: Fri, 29 Nov 2024 13:17:57 -0500 Subject: [PATCH 13/14] add key-name param --- .../internal/txs/txs_add_packages.go | 39 +++++++++++++++---- gno.land/cmd/gnoland/start.go | 6 +-- gno.land/cmd/gnoland/start_test.go | 5 +-- gno.land/pkg/gnoland/genesis.go | 33 +--------------- gno.land/pkg/integration/testing_node.go | 6 +-- tm2/pkg/sdk/auth/ante.go | 4 +- tm2/pkg/sdk/auth/ante_test.go | 10 ++--- 7 files changed, 47 insertions(+), 56 deletions(-) diff --git a/contribs/gnogenesis/internal/txs/txs_add_packages.go b/contribs/gnogenesis/internal/txs/txs_add_packages.go index 26867505db2..f51f1100d87 100644 --- a/contribs/gnogenesis/internal/txs/txs_add_packages.go +++ b/contribs/gnogenesis/internal/txs/txs_add_packages.go @@ -6,28 +6,36 @@ import ( "flag" "fmt" + "github.com/gnolang/gno/tm2/pkg/crypto" + "github.com/gnolang/gno/gno.land/pkg/gnoland" "github.com/gnolang/gno/gno.land/pkg/gnoland/ugnot" + "github.com/gnolang/gno/gnovm/pkg/gnoenv" "github.com/gnolang/gno/tm2/pkg/bft/types" "github.com/gnolang/gno/tm2/pkg/commands" + "github.com/gnolang/gno/tm2/pkg/crypto/keys" "github.com/gnolang/gno/tm2/pkg/std" ) var errInvalidPackageDir = errors.New("invalid package directory") -var genesisDeployFee = std.NewFee(50000, std.MustParseCoin(ugnot.ValueString(1000000))) +var ( + // Keep in sync with gno.land/cmd/start.go + genesisDeployAddress = crypto.MustAddressFromString("g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5") // test1 + genesisDeployFee = std.NewFee(50000, std.MustParseCoin(ugnot.ValueString(1000000))) +) type addPkgCfg struct { - txsCfg *txsCfg - deployerMnemonic string + txsCfg *txsCfg + keyName string } func (c *addPkgCfg) RegisterFlags(fs *flag.FlagSet) { fs.StringVar( - &c.deployerMnemonic, - "deployer-mnemonic", - "source bonus chronic canvas draft south burst lottery vacant surface solve popular case indicate oppose farm nothing bullet exhibit title speed wink action roast", // test1 - "The mnemonic of the wallet that will create packages on the transaction genesis", + &c.keyName, + "key-name", + "", + "The package deployer key name or address", ) } @@ -66,11 +74,26 @@ func execTxsAddPackages( if len(args) == 0 { return errInvalidPackageDir } + var creator crypto.Address + if cfg.keyName != "" { + + kb, err := keys.NewKeyBaseFromDir(gnoenv.HomeDir()) + if err != nil { + return err + } + info, err := kb.GetByNameOrAddress(cfg.keyName) + if err != nil { + return err + } + creator = info.GetAddress() + } else { + creator = genesisDeployAddress + } parsedTxs := make([]gnoland.TxWithMetadata, 0) for _, path := range args { // Generate transactions from the packages (recursively) - txs, err := gnoland.LoadPackagesFromDir(path, cfg.deployerMnemonic, genesis.ChainID, genesisDeployFee) + txs, err := gnoland.LoadPackagesFromDir(path, creator, genesisDeployFee) if err != nil { return fmt.Errorf("unable to load txs from directory, %w", err) } diff --git a/gno.land/cmd/gnoland/start.go b/gno.land/cmd/gnoland/start.go index 947b3381e66..77d7e20b8ef 100644 --- a/gno.land/cmd/gnoland/start.go +++ b/gno.land/cmd/gnoland/start.go @@ -46,8 +46,8 @@ var startGraphic = strings.ReplaceAll(` var ( // Keep in sync with contribs/gnogenesis/internal/txs/txs_add_packages.go - deployerMnemonic = "source bonus chronic canvas draft south burst lottery vacant surface solve popular case indicate oppose farm nothing bullet exhibit title speed wink action roast" // test1 - genesisDeployFee = std.NewFee(50000, std.MustParseCoin(ugnot.ValueString(1000000))) + genesisDeployAddress = crypto.MustAddressFromString("g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5") // test1 + genesisDeployFee = std.NewFee(50000, std.MustParseCoin(ugnot.ValueString(1000000))) ) type startCfg struct { @@ -396,7 +396,7 @@ func generateGenesisFile(genesisFile string, pk crypto.PubKey, c *startCfg) erro // Load examples folder examplesDir := filepath.Join(c.gnoRootDir, "examples") - pkgsTxs, err := gnoland.LoadPackagesFromDir(examplesDir, deployerMnemonic, c.chainID, genesisDeployFee) + pkgsTxs, err := gnoland.LoadPackagesFromDir(examplesDir, genesisDeployAddress, genesisDeployFee) if err != nil { return fmt.Errorf("unable to load examples folder: %w", err) } diff --git a/gno.land/cmd/gnoland/start_test.go b/gno.land/cmd/gnoland/start_test.go index 1680f7b7068..2f620fcd360 100644 --- a/gno.land/cmd/gnoland/start_test.go +++ b/gno.land/cmd/gnoland/start_test.go @@ -116,8 +116,7 @@ func TestStart_Lazy(t *testing.T) { io.SetErr(commands.WriteNopCloser(mockErr)) // Create and run the command - // Now lazy init takes longer as we're signing each transaction - ctx, cancelFn := context.WithTimeout(context.Background(), 250*time.Second) + ctx, cancelFn := context.WithTimeout(context.Background(), 10*time.Second) defer cancelFn() // Set up the command ctx @@ -129,7 +128,7 @@ func TestStart_Lazy(t *testing.T) { }) // Set up the retry ctx - retryCtx, retryCtxCancelFn := context.WithTimeout(ctx, 250*time.Second) + retryCtx, retryCtxCancelFn := context.WithTimeout(ctx, 5*time.Second) defer retryCtxCancelFn() // This is a very janky way to verify the node has started. diff --git a/gno.land/pkg/gnoland/genesis.go b/gno.land/pkg/gnoland/genesis.go index 7d03758bcc9..ea692bcaf0d 100644 --- a/gno.land/pkg/gnoland/genesis.go +++ b/gno.land/pkg/gnoland/genesis.go @@ -11,7 +11,6 @@ import ( "github.com/gnolang/gno/tm2/pkg/amino" bft "github.com/gnolang/gno/tm2/pkg/bft/types" "github.com/gnolang/gno/tm2/pkg/crypto" - "github.com/gnolang/gno/tm2/pkg/crypto/keys" osm "github.com/gnolang/gno/tm2/pkg/os" "github.com/gnolang/gno/tm2/pkg/std" "github.com/pelletier/go-toml" @@ -134,7 +133,7 @@ func LoadGenesisTxsFile(path string, chainID string, genesisRemote string) ([]Tx // LoadPackagesFromDir loads gno packages from a directory. // It creates and returns a list of transactions based on these packages. -func LoadPackagesFromDir(dir string, creatorMnemonic string, chainID string, fee std.Fee) ([]TxWithMetadata, error) { +func LoadPackagesFromDir(dir string, creator bft.Address, fee std.Fee) ([]TxWithMetadata, error) { // list all packages from target path pkgs, err := gnomod.ListPkgs(dir) if err != nil { @@ -147,43 +146,15 @@ func LoadPackagesFromDir(dir string, creatorMnemonic string, chainID string, fee return nil, fmt.Errorf("sorting packages: %w", err) } - kb := keys.NewInMemory() - // Save the account - info, err := kb.CreateAccount( - "deployer", - creatorMnemonic, - "", - "", - 0, - 0, - ) - if err != nil { - return nil, fmt.Errorf("unable to create account, %w", err) - } - // Filter out draft packages. nonDraftPkgs := sortedPkgs.GetNonDraftPkgs() txs := make([]TxWithMetadata, 0, len(nonDraftPkgs)) - for _, pkg := range nonDraftPkgs { - tx, err := LoadPackage(pkg, info.GetAddress(), fee, nil) + tx, err := LoadPackage(pkg, creator, fee, nil) if err != nil { return nil, fmt.Errorf("unable to load package %q: %w", pkg.Dir, err) } - // Both account number and account sequence are 0 on genesis transactions - txData, err := tx.GetSignBytes(chainID, 0, 0) - if err != nil { - return nil, fmt.Errorf("unable to generate mnemonic, %w", err) - } - sig, pub, err := kb.Sign("deployer", "", txData) - if err != nil { - return nil, err - } - tx.Signatures = []std.Signature{{ - PubKey: pub, - Signature: sig, - }} txs = append(txs, TxWithMetadata{ Tx: tx, }) diff --git a/gno.land/pkg/integration/testing_node.go b/gno.land/pkg/integration/testing_node.go index af6df426aa2..7e34049d352 100644 --- a/gno.land/pkg/integration/testing_node.go +++ b/gno.land/pkg/integration/testing_node.go @@ -62,7 +62,7 @@ func TestingNodeConfig(t TestingTS, gnoroot string, additionalTxs ...gnoland.TxW params := LoadDefaultGenesisParamFile(t, gnoroot) balances := LoadDefaultGenesisBalanceFile(t, gnoroot) txs := make([]gnoland.TxWithMetadata, 0) - txs = append(txs, LoadDefaultPackages(t, DefaultAccount_Seed, gnoroot)...) + txs = append(txs, LoadDefaultPackages(t, creator, gnoroot)...) txs = append(txs, additionalTxs...) cfg.Genesis.AppState = gnoland.GnoGenesisState{ @@ -130,11 +130,11 @@ func DefaultTestingGenesisConfig(t TestingTS, gnoroot string, self crypto.PubKey } // LoadDefaultPackages loads the default packages for testing using a given creator address and gnoroot directory. -func LoadDefaultPackages(t TestingTS, creatorMnemonic string, gnoroot string) []gnoland.TxWithMetadata { +func LoadDefaultPackages(t TestingTS, creator bft.Address, gnoroot string) []gnoland.TxWithMetadata { examplesDir := filepath.Join(gnoroot, "examples") defaultFee := std.NewFee(50000, std.MustParseCoin(ugnot.ValueString(1000000))) - txs, err := gnoland.LoadPackagesFromDir(examplesDir, creatorMnemonic, "dev", defaultFee) + txs, err := gnoland.LoadPackagesFromDir(examplesDir, creator, defaultFee) require.NoError(t, err) return txs diff --git a/tm2/pkg/sdk/auth/ante.go b/tm2/pkg/sdk/auth/ante.go index 4d77b25455f..49662b47a55 100644 --- a/tm2/pkg/sdk/auth/ante.go +++ b/tm2/pkg/sdk/auth/ante.go @@ -435,17 +435,15 @@ func SetGasMeter(simulate bool, ctx sdk.Context, gasLimit int64) sdk.Context { // and an account. func GetSignBytes(chainID string, tx std.Tx, acc std.Account, genesis bool) ([]byte, error) { var accNum uint64 - var accSequence uint64 if !genesis { accNum = acc.GetAccountNumber() - accSequence = acc.GetSequence() } return std.GetSignaturePayload( std.SignDoc{ ChainID: chainID, AccountNumber: accNum, - Sequence: accSequence, + Sequence: acc.GetSequence(), Fee: tx.Fee, Msgs: tx.Msgs, Memo: tx.Memo, diff --git a/tm2/pkg/sdk/auth/ante_test.go b/tm2/pkg/sdk/auth/ante_test.go index 42c18ae2971..be4167a6238 100644 --- a/tm2/pkg/sdk/auth/ante_test.go +++ b/tm2/pkg/sdk/auth/ante_test.go @@ -188,7 +188,7 @@ func TestAnteHandlerAccountNumbersAtBlockHeightZero(t *testing.T) { env.acck.SetAccount(ctx, acc1) acc2 := env.acck.NewAccountWithAddress(ctx, addr2) acc2.SetCoins(tu.NewTestCoins()) - require.NoError(t, acc2.SetAccountNumber(0)) + require.NoError(t, acc2.SetAccountNumber(1)) env.acck.SetAccount(ctx, acc2) // msg and signatures @@ -204,12 +204,12 @@ func TestAnteHandlerAccountNumbersAtBlockHeightZero(t *testing.T) { checkValidTx(t, anteHandler, ctx, tx, false) // new tx from wrong account number - seqs = []uint64{0} + seqs = []uint64{1} tx = tu.NewTestTx(t, ctx.ChainID(), msgs, privs, []uint64{1}, seqs, fee) checkInvalidTx(t, anteHandler, ctx, tx, false, std.UnauthorizedError{}) // from correct account number - seqs = []uint64{0} + seqs = []uint64{1} tx = tu.NewTestTx(t, ctx.ChainID(), msgs, privs, []uint64{0}, seqs, fee) checkValidTx(t, anteHandler, ctx, tx, false) @@ -217,12 +217,12 @@ func TestAnteHandlerAccountNumbersAtBlockHeightZero(t *testing.T) { msg1 := tu.NewTestMsg(addr1, addr2) msg2 := tu.NewTestMsg(addr2, addr1) msgs = []std.Msg{msg1, msg2} - privs, accnums, seqs = []crypto.PrivKey{priv1, priv2}, []uint64{1, 0}, []uint64{0, 0} + privs, accnums, seqs = []crypto.PrivKey{priv1, priv2}, []uint64{1, 0}, []uint64{2, 0} tx = tu.NewTestTx(t, ctx.ChainID(), msgs, privs, accnums, seqs, fee) checkInvalidTx(t, anteHandler, ctx, tx, false, std.UnauthorizedError{}) // correct account numbers - privs, accnums, seqs = []crypto.PrivKey{priv1, priv2}, []uint64{0, 0}, []uint64{0, 0} + privs, accnums, seqs = []crypto.PrivKey{priv1, priv2}, []uint64{0, 0}, []uint64{2, 0} tx = tu.NewTestTx(t, ctx.ChainID(), msgs, privs, accnums, seqs, fee) checkValidTx(t, anteHandler, ctx, tx, false) } From 4bfa3c38ec9fea723cdd935d7e71f047312a0565 Mon Sep 17 00:00:00 2001 From: Miguel Victoria Date: Fri, 29 Nov 2024 21:38:39 -0500 Subject: [PATCH 14/14] fix linter --- contribs/gnogenesis/internal/txs/txs_add_packages.go | 1 - contribs/gnomigrate/go.mod | 5 ----- misc/loop/go.mod | 3 --- 3 files changed, 9 deletions(-) diff --git a/contribs/gnogenesis/internal/txs/txs_add_packages.go b/contribs/gnogenesis/internal/txs/txs_add_packages.go index f51f1100d87..ebdbe07e47a 100644 --- a/contribs/gnogenesis/internal/txs/txs_add_packages.go +++ b/contribs/gnogenesis/internal/txs/txs_add_packages.go @@ -76,7 +76,6 @@ func execTxsAddPackages( } var creator crypto.Address if cfg.keyName != "" { - kb, err := keys.NewKeyBaseFromDir(gnoenv.HomeDir()) if err != nil { return err diff --git a/contribs/gnomigrate/go.mod b/contribs/gnomigrate/go.mod index f74148b6bc0..c492ae7c818 100644 --- a/contribs/gnomigrate/go.mod +++ b/contribs/gnomigrate/go.mod @@ -15,13 +15,11 @@ require ( github.com/btcsuite/btcd/btcutil v1.1.6 // indirect github.com/cenkalti/backoff/v4 v4.3.0 // indirect github.com/cockroachdb/apd/v3 v3.2.1 // indirect - github.com/cosmos/ledger-cosmos-go v0.13.3 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 // indirect github.com/gnolang/overflow v0.0.0-20170615021017-4d914c927216 // indirect github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect - github.com/golang/protobuf v1.5.4 // indirect github.com/golang/snappy v0.0.4 // indirect github.com/google/uuid v1.6.0 // indirect github.com/gorilla/websocket v1.5.3 // indirect @@ -29,13 +27,10 @@ require ( github.com/libp2p/go-buffer-pool v0.1.0 // indirect github.com/pelletier/go-toml v1.9.5 // indirect github.com/peterbourgon/ff/v3 v3.4.0 // indirect - github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/rs/cors v1.11.1 // indirect github.com/rs/xid v1.6.0 // indirect github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 // indirect - github.com/zondax/hid v0.9.2 // indirect - github.com/zondax/ledger-go v0.14.3 // indirect go.etcd.io/bbolt v1.3.11 // indirect go.opentelemetry.io/otel v1.29.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.29.0 // indirect diff --git a/misc/loop/go.mod b/misc/loop/go.mod index 2ec8a48142c..f1c09cd9f82 100644 --- a/misc/loop/go.mod +++ b/misc/loop/go.mod @@ -24,7 +24,6 @@ require ( github.com/cenkalti/backoff/v4 v4.3.0 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/cockroachdb/apd/v3 v3.2.1 // indirect - github.com/cosmos/ledger-cosmos-go v0.13.3 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 // indirect github.com/distribution/reference v0.5.0 // indirect @@ -56,8 +55,6 @@ require ( github.com/rs/xid v1.6.0 // indirect github.com/stretchr/testify v1.9.0 // indirect github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 // indirect - github.com/zondax/hid v0.9.2 // indirect - github.com/zondax/ledger-go v0.14.3 // indirect go.etcd.io/bbolt v1.3.11 // indirect go.opentelemetry.io/otel v1.29.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.29.0 // indirect