diff --git a/changelog.md b/changelog.md index 67cf6446ec..a6295f1b42 100644 --- a/changelog.md +++ b/changelog.md @@ -45,6 +45,7 @@ - [#4317](https://github.com/ignite/cli/pull/4317) Remove xchisel dependency - [#4361](https://github.com/ignite/cli/pull/4361) Remove unused `KeyPrefix` method - [#4384](https://github.com/ignite/cli/pull/4384) Compare genesis params into chain genesis tests +- [#4463](https://github.com/ignite/cli/pull/4463) Run `chain simulation` with any simulation test case ### Fixes @@ -53,6 +54,19 @@ - [#4128](https://github.com/ignite/cli/pull/4128) Check for duplicate proto fields in config - [#4402](https://github.com/ignite/cli/pull/4402) Fix gentx parser into the cosmosutil package +## [`v28.7.0`](https://github.com/ignite/cli/releases/tag/v28.7.0) + +### Features + +- [#4457](https://github.com/ignite/cli/pull/4457) Add `skip-build` flag to `chain serve` command to avoid (re)building the chain +- [#4413](https://github.com/ignite/cli/pull/4413) Add `ignite s chain-registry` command + +## [`v28.6.1`](https://github.com/ignite/cli/releases/tag/v28.6.1) + +### Changes + +- [#4449](https://github.com/ignite/cli/pull/4449) Bump scaffolded chain to Cosmos SDK `v0.50.11`. Previous version have a high security vulnerability. + ## [`v28.6.0`](https://github.com/ignite/cli/releases/tag/v28.6.0) ### Features diff --git a/docs/docs/08-references/01-cli.md b/docs/docs/08-references/01-cli.md index be62af62e2..38732efc3f 100644 --- a/docs/docs/08-references/01-cli.md +++ b/docs/docs/08-references/01-cli.md @@ -876,6 +876,7 @@ ignite chain serve [flags] -p, --path string path of the app (default ".") --quit-on-fail quit program if the app fails to start -r, --reset-once reset the app state once on init + --skip-build skip initial build of the app (uses local binary) --skip-proto skip file generation from proto -v, --verbose verbose output ``` @@ -898,7 +899,7 @@ Run simulation testing for the blockchain **Synopsis** -Run simulation testing for the blockchain. It sends many randomized-input messages of each module to a simulated node and checks if invariants break +Run simulation testing for the blockchain. It sends many randomized-input messages of each module to a simulated node. ``` ignite chain simulate [flags] @@ -919,8 +920,8 @@ ignite chain simulate [flags] --lean lean simulation log output --numBlocks int number of new blocks to simulate from the initial block height (default 200) --params string custom simulation params file which overrides any random params; cannot be used with genesis - --period uint run slow invariants only once every period assertions --seed int simulation random seed (default 42) + --simName string name of the simulation to run (default "TestFullAppSimulation") ``` **Options inherited from parent commands** @@ -2598,6 +2599,7 @@ with an "--ibc" flag. Note that the default module is not IBC-enabled. * [ignite](#ignite) - Ignite CLI offers everything you need to scaffold, test, build, and launch your blockchain * [ignite scaffold chain](#ignite-scaffold-chain) - New Cosmos SDK blockchain +* [ignite scaffold chain-registry](#ignite-scaffold-chain-registry) - Configs for the chain registry * [ignite scaffold configs](#ignite-scaffold-configs) - Configs for a custom Cosmos SDK module * [ignite scaffold list](#ignite-scaffold-list) - CRUD for data stored as an array * [ignite scaffold map](#ignite-scaffold-map) - CRUD for data stored as key-value pairs @@ -2683,6 +2685,40 @@ ignite scaffold chain [name] [flags] * [ignite scaffold](#ignite-scaffold) - Create a new blockchain, module, message, query, and more +## ignite scaffold chain-registry + +Configs for the chain registry + +**Synopsis** + +Scaffold the chain registry chain.json and assets.json files. + +The chain registry is a GitHub repo, hosted at https://github.com/cosmos/cosmos-registry, that +contains the chain.json and assets.json files of most of chains in the Cosmos ecosystem. +It is good practices, when creating a new chain, and about to launch a testnet or mainnet, to +publish the chain's metadata in the chain registry. + +Read more about the chain.json at https://github.com/cosmos/chain-registry?tab=readme-ov-file#chainjson +Read more about the assets.json at https://github.com/cosmos/chain-registry?tab=readme-ov-file#assetlists + +``` +ignite scaffold chain-registry [flags] +``` + +**Options** + +``` + --clear-cache clear the build cache (advanced) + -h, --help help for chain-registry + -p, --path string path of the app (default ".") + -y, --yes answers interactive yes/no questions with yes +``` + +**SEE ALSO** + +* [ignite scaffold](#ignite-scaffold) - Create a new blockchain, module, message, query, and more + + ## ignite scaffold configs Configs for a custom Cosmos SDK module @@ -3367,7 +3403,7 @@ Run simulation testing for the blockchain **Synopsis** -Run simulation testing for the blockchain. It sends many randomized-input messages of each module to a simulated node and checks if invariants break +Run simulation testing for the blockchain. It sends many randomized-input messages of each module to a simulated node. ``` ignite testnet simulate [flags] @@ -3388,8 +3424,8 @@ ignite testnet simulate [flags] --lean lean simulation log output --numBlocks int number of new blocks to simulate from the initial block height (default 200) --params string custom simulation params file which overrides any random params; cannot be used with genesis - --period uint run slow invariants only once every period assertions --seed int simulation random seed (default 42) + --simName string name of the simulation to run (default "TestFullAppSimulation") ``` **SEE ALSO** diff --git a/docs/versioned_docs/version-v0.27/03-clients/03-vue.md b/docs/versioned_docs/version-v0.27/03-clients/03-vue.md index f6684f023a..e6a6f369ae 100644 --- a/docs/versioned_docs/version-v0.27/03-clients/03-vue.md +++ b/docs/versioned_docs/version-v0.27/03-clients/03-vue.md @@ -136,7 +136,7 @@ properly interact with a Cosmos chain. The address prefix is used to identify the chain that the app is connected to, and must match the prefix used by the chain. -By default, Ignite creates a chain with the the `cosmos` prefix. If you have +By default, Ignite creates a chain with the `cosmos` prefix. If you have created your chain with `ignite scaffold chain ... --adddress-prefix foo` or manually changed the prefix in the source code of the chain, you need to set the prefix in the Vue app. diff --git a/docs/versioned_docs/version-v0.27/04-network/02-introduction.md b/docs/versioned_docs/version-v0.27/04-network/02-introduction.md index dc4209c086..57bbf8825e 100644 --- a/docs/versioned_docs/version-v0.27/04-network/02-introduction.md +++ b/docs/versioned_docs/version-v0.27/04-network/02-introduction.md @@ -17,7 +17,7 @@ anyone can be a coordinator or a validator. ## Launching a chain on Ignite -Launching with the CLI can be as simple as a few short commands with the the CLI using `ignite network` command +Launching with the CLI can be as simple as a few short commands with the CLI using `ignite network` command namespace. > **NOTE:** `ignite n` can also be used as a shortcut for `ignite network`. diff --git a/docs/versioned_docs/version-v28/02-guide/06-tokenfactory/01-tokenfactory.md b/docs/versioned_docs/version-v28/02-guide/06-tokenfactory/01-tokenfactory.md index 046076e761..6bc4028eb4 100644 --- a/docs/versioned_docs/version-v28/02-guide/06-tokenfactory/01-tokenfactory.md +++ b/docs/versioned_docs/version-v28/02-guide/06-tokenfactory/01-tokenfactory.md @@ -279,7 +279,7 @@ func (k msgServer) UpdateDenom(goCtx context.Context, msg *types.MsgUpdateDenom) return nil, sdkerrors.Wrap(sdkerrors.ErrKeyNotFound, "Denom to update not found") } - // Checks if the the msg owner is the same as the current owner + // Checks if the msg owner is the same as the current owner if msg.Owner != valFound.Owner { return nil, sdkerrors.Wrap(sdkerrors.ErrUnauthorized, "incorrect owner") } @@ -418,7 +418,7 @@ func (k msgServer) MintAndSendTokens(goCtx context.Context, msg *types.MsgMintAn return nil, sdkerrors.Wrap(sdkerrors.ErrKeyNotFound, "denom does not exist") } - // Checks if the the msg owner is the same as the current owner + // Checks if the msg owner is the same as the current owner if msg.Owner != valFound.Owner { return nil, sdkerrors.Wrap(sdkerrors.ErrUnauthorized, "incorrect owner") } @@ -488,7 +488,7 @@ func (k msgServer) UpdateOwner(goCtx context.Context, msg *types.MsgUpdateOwner) return nil, sdkerrors.Wrap(sdkerrors.ErrKeyNotFound, "denom does not exist") } - // Checks if the the msg owner is the same as the current owner + // Checks if the msg owner is the same as the current owner if msg.Owner != valFound.Owner { return nil, sdkerrors.Wrap(sdkerrors.ErrUnauthorized, "incorrect owner") } diff --git a/go.mod b/go.mod index ca97c5546f..0e004648aa 100644 --- a/go.mod +++ b/go.mod @@ -1,17 +1,8 @@ module github.com/ignite/cli/v29 -go 1.23.3 +go 1.23.4 -// Cosmos SDK v0.52 integration -replace ( - cosmossdk.io/api => cosmossdk.io/api v0.7.3-0.20241202173430-9d9c19c0f854 // main - cosmossdk.io/core => cosmossdk.io/core v1.0.0-alpha.6 // main - cosmossdk.io/store => cosmossdk.io/store v1.0.0-rc.0.0.20241202173430-9d9c19c0f854 // main - cosmossdk.io/x/bank => cosmossdk.io/x/bank v0.0.0-20241202180139-76f8af9617cd // release/v0.52.x - cosmossdk.io/x/consensus => cosmossdk.io/x/consensus v0.0.0-20241202180139-76f8af9617cd // release/v0.52.x - cosmossdk.io/x/staking => cosmossdk.io/x/staking v0.0.0-20241202180139-76f8af9617cd // release/v0.52.x - github.com/cosmos/cosmos-sdk => github.com/cosmos/cosmos-sdk v0.52.0-beta.2.0.20241203223452-5a18da34d859 -) +replace github.com/cosmos/cosmos-sdk => github.com/cosmos/cosmos-sdk v0.52.0-rc.1.0.20250107080912-2bcc7678255f replace ( github.com/99designs/keyring => github.com/cosmos/keyring v1.2.0 @@ -25,9 +16,9 @@ replace ( require ( cosmossdk.io/core v1.0.0 - cosmossdk.io/math v1.4.0 - cosmossdk.io/x/bank v0.0.0-20240226161501-23359a0b6d91 - cosmossdk.io/x/staking v0.0.0-00010101000000-000000000000 + cosmossdk.io/math v1.5.0 + cosmossdk.io/x/bank v0.2.0-rc.1 + cosmossdk.io/x/staking v0.2.0-rc.1 github.com/99designs/keyring v1.2.2 github.com/AlecAivazis/survey/v2 v2.3.7 github.com/DATA-DOG/go-sqlmock v1.5.2 @@ -41,8 +32,8 @@ require ( github.com/charmbracelet/glow v1.4.1 github.com/charmbracelet/lipgloss v1.0.0 github.com/cockroachdb/errors v1.11.3 - github.com/cometbft/cometbft v1.0.0-rc2.0.20241127125717-4ce33b646ac9 - github.com/cometbft/cometbft/api v1.0.0-rc2 + github.com/cometbft/cometbft v1.0.0 + github.com/cometbft/cometbft/api v1.0.0 github.com/cosmos/cosmos-sdk v0.52.0 github.com/cosmos/go-bip39 v1.0.0 github.com/cosmos/gogoproto v1.7.0 @@ -89,8 +80,8 @@ require ( golang.org/x/text v0.21.0 golang.org/x/tools v0.27.0 golang.org/x/vuln v1.0.4 - google.golang.org/grpc v1.68.0 - google.golang.org/protobuf v1.35.2 + google.golang.org/grpc v1.69.2 + google.golang.org/protobuf v1.36.1 gopkg.in/yaml.v3 v3.0.1 mvdan.cc/gofumpt v0.7.0 sigs.k8s.io/yaml v1.4.0 @@ -102,19 +93,19 @@ require ( buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.34.1-20240508200655-46a4cf4ba109.1 // indirect buf.build/gen/go/bufbuild/registry/connectrpc/go v1.16.1-20240514010100-299bd9c9a0c4.1 // indirect buf.build/gen/go/bufbuild/registry/protocolbuffers/go v1.34.1-20240514010100-299bd9c9a0c4.1 // indirect - buf.build/gen/go/cometbft/cometbft/protocolbuffers/go v1.35.2-20241120201313-68e42a58b301.1 // indirect - buf.build/gen/go/cosmos/gogo-proto/protocolbuffers/go v1.35.2-20240130113600-88ef6483f90f.1 // indirect + buf.build/gen/go/cometbft/cometbft/protocolbuffers/go v1.36.1-20241120201313-68e42a58b301.1 // indirect + buf.build/gen/go/cosmos/gogo-proto/protocolbuffers/go v1.36.1-20240130113600-88ef6483f90f.1 // indirect connectrpc.com/connect v1.16.1 // indirect connectrpc.com/otelconnect v0.7.0 // indirect cosmossdk.io/api v0.8.0 // indirect - cosmossdk.io/collections v0.4.1-0.20241128094659-bd76b47e1d8b // indirect - cosmossdk.io/core/testing v0.0.0-20241108153815-606544c7be7e // indirect + cosmossdk.io/collections v1.0.0 // indirect + cosmossdk.io/core/testing v0.0.1 // indirect cosmossdk.io/depinject v1.1.0 // indirect cosmossdk.io/errors v1.0.1 // indirect cosmossdk.io/log v1.5.0 // indirect - cosmossdk.io/schema v0.3.1-0.20241128094659-bd76b47e1d8b // indirect - cosmossdk.io/store v1.1.1-0.20240909133312-50288938d1b6 // indirect - cosmossdk.io/x/tx v1.0.0-alpha.2 // indirect + cosmossdk.io/schema v1.0.0 // indirect + cosmossdk.io/store v1.10.0-rc.1.0.20241218084712-ca559989da43 // indirect + cosmossdk.io/x/tx v1.0.0 // indirect dario.cat/mergo v1.0.0 // indirect filippo.io/edwards25519 v1.1.0 // indirect github.com/4meepo/tagalign v1.3.4 // indirect @@ -159,7 +150,7 @@ require ( github.com/bufbuild/protoyaml-go v0.1.9 // indirect github.com/butuzov/ireturn v0.3.0 // indirect github.com/butuzov/mirror v1.2.0 // indirect - github.com/bytedance/sonic v1.12.4 // indirect + github.com/bytedance/sonic v1.12.6 // indirect github.com/bytedance/sonic/loader v0.2.1 // indirect github.com/calmh/randomart v1.1.0 // indirect github.com/catenacyber/perfsprint v0.7.1 // indirect @@ -178,6 +169,7 @@ require ( github.com/cloudflare/circl v1.3.7 // indirect github.com/cloudwego/base64x v0.1.4 // indirect github.com/cloudwego/iasm v0.2.0 // indirect + github.com/cockroachdb/apd/v3 v3.2.1 // indirect github.com/cockroachdb/fifo v0.0.0-20240816210425-c5d0cb0b6fc0 // indirect github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b // indirect github.com/cockroachdb/pebble v1.1.2 // indirect @@ -189,9 +181,9 @@ require ( github.com/cosmos/btcutil v1.0.5 // indirect github.com/cosmos/cosmos-proto v1.0.0-beta.5 // indirect github.com/cosmos/gogogateway v1.2.0 // indirect - github.com/cosmos/iavl v1.3.2 // indirect + github.com/cosmos/iavl v1.3.5 // indirect github.com/cosmos/ics23/go v0.11.0 // indirect - github.com/cosmos/ledger-cosmos-go v0.13.3 // indirect + github.com/cosmos/ledger-cosmos-go v0.14.0 // indirect github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect github.com/curioswitch/go-reassign v0.2.0 // indirect github.com/cyphar/filepath-securejoin v0.2.4 // indirect @@ -202,7 +194,7 @@ require ( github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 // indirect github.com/denis-tingaikin/go-header v0.5.0 // indirect github.com/derekparker/trie v0.0.0-20230829180723-39f4de51ef7d // indirect - github.com/dgraph-io/badger/v4 v4.4.0 // indirect + github.com/dgraph-io/badger/v4 v4.5.0 // indirect github.com/dgraph-io/ristretto/v2 v2.0.0 // indirect github.com/dgrijalva/jwt-go v3.2.0+incompatible // indirect github.com/distribution/reference v0.6.0 // indirect @@ -338,7 +330,7 @@ require ( github.com/lucasb-eyer/go-colorful v1.2.0 // indirect github.com/lufeee/execinquery v1.2.1 // indirect github.com/macabu/inamedparam v0.1.3 // indirect - github.com/magiconair/properties v1.8.7 // indirect + github.com/magiconair/properties v1.8.9 // indirect github.com/mailru/easyjson v0.7.7 // indirect github.com/maratori/testableexamples v1.0.0 // indirect github.com/maratori/testpackage v1.1.1 // indirect @@ -386,7 +378,7 @@ require ( github.com/polyfloyd/go-errorlint v1.6.0 // indirect github.com/prometheus/client_golang v1.20.5 // indirect github.com/prometheus/client_model v0.6.1 // indirect - github.com/prometheus/common v0.60.1 // indirect + github.com/prometheus/common v0.61.0 // indirect github.com/prometheus/procfs v0.15.1 // indirect github.com/quasilyte/go-ruleguard v0.4.2 // indirect github.com/quasilyte/go-ruleguard/dsl v0.3.22 // indirect @@ -422,7 +414,7 @@ require ( github.com/sourcegraph/go-diff v0.7.0 // indirect github.com/sourcegraph/syntaxhighlight v0.0.0-20170531221838-bd320f5d308e // indirect github.com/spf13/afero v1.11.0 // indirect - github.com/spf13/cast v1.7.0 // indirect + github.com/spf13/cast v1.7.1 // indirect github.com/spf13/viper v1.19.0 // indirect github.com/ssgreg/nlreturn/v2 v2.2.1 // indirect github.com/stbenjam/no-sprintf-host-port v0.1.1 // indirect @@ -452,7 +444,7 @@ require ( github.com/yuin/goldmark v1.4.13 // indirect github.com/yuin/goldmark-emoji v1.0.1 // indirect github.com/zondax/hid v0.9.2 // indirect - github.com/zondax/ledger-go v0.14.3 // indirect + github.com/zondax/ledger-go v1.0.0 // indirect gitlab.com/bosi/decorder v0.4.2 // indirect gitlab.com/yawning/secp256k1-voi v0.0.0-20230925100816-f2616030848b // indirect gitlab.com/yawning/tuplehash v0.0.0-20230713102510-df83abbf9a02 // indirect @@ -461,11 +453,11 @@ require ( go.mongodb.org/mongo-driver v1.14.0 // indirect go.opencensus.io v0.24.0 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.51.0 // indirect - go.opentelemetry.io/otel v1.26.0 // indirect + go.opentelemetry.io/otel v1.31.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 // indirect - go.opentelemetry.io/otel/metric v1.26.0 // indirect - go.opentelemetry.io/otel/sdk v1.24.0 // indirect - go.opentelemetry.io/otel/trace v1.26.0 // indirect + go.opentelemetry.io/otel/metric v1.31.0 // indirect + go.opentelemetry.io/otel/sdk v1.31.0 // indirect + go.opentelemetry.io/otel/trace v1.31.0 // indirect go.starlark.net v0.0.0-20231101134539-556fd59b42f6 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/automaxprocs v1.5.3 // indirect @@ -475,12 +467,12 @@ require ( golang.org/x/crypto v0.31.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect golang.org/x/exp/typeparams v0.0.0-20240314144324-c7f7c6466f7f // indirect - golang.org/x/net v0.31.0 // indirect + golang.org/x/net v0.33.0 // indirect golang.org/x/sys v0.28.0 // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20241015192408-796eee8c2d53 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20241219192143-6b3ec007d9bb // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/go.sum b/go.sum index ac31fd95c8..43038bb9ac 100644 --- a/go.sum +++ b/go.sum @@ -9,10 +9,10 @@ buf.build/gen/go/bufbuild/registry/connectrpc/go v1.16.1-20240514010100-299bd9c9 buf.build/gen/go/bufbuild/registry/connectrpc/go v1.16.1-20240514010100-299bd9c9a0c4.1/go.mod h1:3Vwq3HRCNOcnv99Ra+/8K5cntwO/Gw98cIjsjQVxf4E= buf.build/gen/go/bufbuild/registry/protocolbuffers/go v1.34.1-20240514010100-299bd9c9a0c4.1 h1:zrXXp1IT3qukIKorguvnrw/JzxYttBrXzktUQGiQHqA= buf.build/gen/go/bufbuild/registry/protocolbuffers/go v1.34.1-20240514010100-299bd9c9a0c4.1/go.mod h1:8ONhsyCTLQ9kBslWnMgPrXTcxzCkKlxZqN9ewUveui8= -buf.build/gen/go/cometbft/cometbft/protocolbuffers/go v1.35.2-20241120201313-68e42a58b301.1 h1:kAu+bRyXqQWarx/4mAdKFYW6bgvjGKhzvIXJvMHivC4= -buf.build/gen/go/cometbft/cometbft/protocolbuffers/go v1.35.2-20241120201313-68e42a58b301.1/go.mod h1:wqOtclGXqh+7m/L6fn0SatBJ+m9E5muF/41a3LgIPVI= -buf.build/gen/go/cosmos/gogo-proto/protocolbuffers/go v1.35.2-20240130113600-88ef6483f90f.1 h1:FYhA+EOS18QBdffLVpisUjBGsCtUljMx4bFOsZT81ZM= -buf.build/gen/go/cosmos/gogo-proto/protocolbuffers/go v1.35.2-20240130113600-88ef6483f90f.1/go.mod h1:17Ax38yd8pg56din4ecwSDBRCSX0qLcif5Cdf8ayto4= +buf.build/gen/go/cometbft/cometbft/protocolbuffers/go v1.36.1-20241120201313-68e42a58b301.1 h1:ETkPUd9encx5SP6yuo0BR7DOnQHDbmU0RMzHsu2dkuQ= +buf.build/gen/go/cometbft/cometbft/protocolbuffers/go v1.36.1-20241120201313-68e42a58b301.1/go.mod h1:HulBNxlqJNXVcysFv/RxTEWz+khiJg8SOmfgC1ktVTM= +buf.build/gen/go/cosmos/gogo-proto/protocolbuffers/go v1.36.1-20240130113600-88ef6483f90f.1 h1:X62BxjEhtx1/PWJPxg5BGahf1UXeFgM9dFfNpQ6kUPo= +buf.build/gen/go/cosmos/gogo-proto/protocolbuffers/go v1.36.1-20240130113600-88ef6483f90f.1/go.mod h1:GB5hdNJd6cahKmHcLArJo5wnV9TeZGMSz7ysK4YLvag= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= @@ -29,32 +29,32 @@ connectrpc.com/connect v1.16.1 h1:rOdrK/RTI/7TVnn3JsVxt3n028MlTRwmK5Q4heSpjis= connectrpc.com/connect v1.16.1/go.mod h1:XpZAduBQUySsb4/KO5JffORVkDI4B6/EYPi7N8xpNZw= connectrpc.com/otelconnect v0.7.0 h1:ZH55ZZtcJOTKWWLy3qmL4Pam4RzRWBJFOqTPyAqCXkY= connectrpc.com/otelconnect v0.7.0/go.mod h1:Bt2ivBymHZHqxvo4HkJ0EwHuUzQN6k2l0oH+mp/8nwc= -cosmossdk.io/api v0.7.3-0.20241202173430-9d9c19c0f854 h1:D1Zv36Z18p/HscNyaFn9oYC/ED/ivZ1yXffTQmyhDYg= -cosmossdk.io/api v0.7.3-0.20241202173430-9d9c19c0f854/go.mod h1:vZy0Ev95gwANXt5ssiDui4L5nlMYO5bzqR77hCjIz9s= -cosmossdk.io/collections v0.4.1-0.20241128094659-bd76b47e1d8b h1:MgU4EDOo/pXgepHCUFQFnIfUCxk/JO0AJGDTUQhhEhg= -cosmossdk.io/collections v0.4.1-0.20241128094659-bd76b47e1d8b/go.mod h1:uf12i1yKvzEIHt2ok7poNqFDQTb71O00RQLitSynmrg= -cosmossdk.io/core v1.0.0-alpha.6 h1:5ukC4JcQKmemLQXcAgu/QoOvJI50hpBkIIg4ZT2EN8E= -cosmossdk.io/core v1.0.0-alpha.6/go.mod h1:3u9cWq1FAVtiiCrDPpo4LhR+9V6k/ycSG4/Y/tREWCY= -cosmossdk.io/core/testing v0.0.0-20241108153815-606544c7be7e h1:F+ScucYxwrrDJU8guJXQXpGhdpziYSbxW6HMP2wCNxs= -cosmossdk.io/core/testing v0.0.0-20241108153815-606544c7be7e/go.mod h1:3YvVv9aJayjPhdX0DY1IMrGse4sR63hNBWx2VtDWjGQ= +cosmossdk.io/api v0.8.0 h1:E5Xifxu/3mPTLF79si9fyq4rR0wagubeVNmOz5duTUo= +cosmossdk.io/api v0.8.0/go.mod h1:hgJ83P0ZUu0rS1SZoVM6abk6ADOkiM259BVVlYtAPP0= +cosmossdk.io/collections v1.0.0 h1:YCYIe/pIMtc1iLDD0OrVdfWCnIkpwdy7k9NSQpaR5mg= +cosmossdk.io/collections v1.0.0/go.mod h1:mFfLxnYT1fV+B3Lx9GLap1qxmffIPqQCND4xBExerps= +cosmossdk.io/core v1.0.0 h1:e7XBbISOytLBOXMVwpRPixThXqEkeLGlg8no/qpgS8U= +cosmossdk.io/core v1.0.0/go.mod h1:mKIp3RkoEmtqdEdFHxHwWAULRe+79gfdOvmArrLDbDc= +cosmossdk.io/core/testing v0.0.1 h1:gYCTaftcRrz+HoNXmK7r9KgbG1jgBJ8pNzm/Pa/erFQ= +cosmossdk.io/core/testing v0.0.1/go.mod h1:2VDNz/25qtxgPa0+j8LW5e8Ev/xObqoJA7QuJS9/wIQ= cosmossdk.io/depinject v1.1.0 h1:wLan7LG35VM7Yo6ov0jId3RHWCGRhe8E8bsuARorl5E= cosmossdk.io/depinject v1.1.0/go.mod h1:kkI5H9jCGHeKeYWXTqYdruogYrEeWvBQCw1Pj4/eCFI= cosmossdk.io/errors v1.0.1 h1:bzu+Kcr0kS/1DuPBtUFdWjzLqyUuCiyHjyJB6srBV/0= cosmossdk.io/errors v1.0.1/go.mod h1:MeelVSZThMi4bEakzhhhE/CKqVv3nOJDA25bIqRDu/U= cosmossdk.io/log v1.5.0 h1:dVdzPJW9kMrnAYyMf1duqacoidB9uZIl+7c6z0mnq0g= cosmossdk.io/log v1.5.0/go.mod h1:Tr46PUJjiUthlwQ+hxYtUtPn4D/oCZXAkYevBeh5+FI= -cosmossdk.io/math v1.4.0 h1:XbgExXFnXmF/CccPPEto40gOO7FpWu9yWNAZPN3nkNQ= -cosmossdk.io/math v1.4.0/go.mod h1:O5PkD4apz2jZs4zqFdTr16e1dcaQCc5z6lkEnrrppuk= -cosmossdk.io/schema v0.3.1-0.20241128094659-bd76b47e1d8b h1:svpFdulZRrYz+RTHu2u9CeKkMKrIHx5354vjiHerovo= -cosmossdk.io/schema v0.3.1-0.20241128094659-bd76b47e1d8b/go.mod h1:RDAhxIeNB4bYqAlF4NBJwRrgtnciMcyyg0DOKnhNZQQ= -cosmossdk.io/store v1.0.0-rc.0.0.20241202173430-9d9c19c0f854 h1:5bOteDYvdoRIqJ5OlQgqgbYm+hZPH0/1pnwNWFob2Fw= -cosmossdk.io/store v1.0.0-rc.0.0.20241202173430-9d9c19c0f854/go.mod h1:oZBBY4BrkYnghr6MFL0MP5mGqpkPedHcWkXwXddd6tU= -cosmossdk.io/x/bank v0.0.0-20241202180139-76f8af9617cd h1:HhPL5mBMGxacUpcodhKF2X9UzedGmKYglL+vPTdQRKo= -cosmossdk.io/x/bank v0.0.0-20241202180139-76f8af9617cd/go.mod h1:XvLY9R3xNhCz6pcLnTaN3lLR0fdiiWQusdng6oafNmQ= -cosmossdk.io/x/staking v0.0.0-20241202180139-76f8af9617cd h1:Emi9MumD3E+TdwtpR0tmrPddf6fhOyMOAJTgHxYEURI= -cosmossdk.io/x/staking v0.0.0-20241202180139-76f8af9617cd/go.mod h1:vfK1iOZa/t6UMQ27dTGZenKGQjW4EdK5oVOLBW2hRNo= -cosmossdk.io/x/tx v1.0.0-alpha.2 h1:UW80FMm7B0fiAMsrfe5+HabSJ3XBg+tQa6/GK9prqWk= -cosmossdk.io/x/tx v1.0.0-alpha.2/go.mod h1:r4yTKSJ7ZCCR95YbBfY3nfvbgNw6m9F6f25efWYYQWo= +cosmossdk.io/math v1.5.0 h1:sbOASxee9Zxdjd6OkzogvBZ25/hP929vdcYcBJQbkLc= +cosmossdk.io/math v1.5.0/go.mod h1:AAwwBmUhqtk2nlku174JwSll+/DepUXW3rWIXN5q+Nw= +cosmossdk.io/schema v1.0.0 h1:/diH4XJjpV1JQwuIozwr+A4uFuuwanFdnw2kKeiXwwQ= +cosmossdk.io/schema v1.0.0/go.mod h1:RDAhxIeNB4bYqAlF4NBJwRrgtnciMcyyg0DOKnhNZQQ= +cosmossdk.io/store v1.10.0-rc.1.0.20241218084712-ca559989da43 h1:glZ6MpmD+5AhwJYV4jzx+rn7cgUB2owHgk9o+93luz0= +cosmossdk.io/store v1.10.0-rc.1.0.20241218084712-ca559989da43/go.mod h1:XCWpgfueHSBY+B7Cf2Aq/CcsU+6XoFH+EmseCKglFrU= +cosmossdk.io/x/bank v0.2.0-rc.1 h1:tLYxL2N0U19tU50euZZKdsixsQcU6V+eMfudn/Y7YyY= +cosmossdk.io/x/bank v0.2.0-rc.1/go.mod h1:y1HipKOoiieb2gEZOQJPGwbwUBSYbIY+vG7XZAUstAE= +cosmossdk.io/x/staking v0.2.0-rc.1 h1:AZRGddRuuTaLxxpBvC7/TR7Dmt0pjziXWk13dC1beIo= +cosmossdk.io/x/staking v0.2.0-rc.1/go.mod h1:7K4hgQ6tn0XLFb2BJ9oe8nEc4RkfQ4qHqgQy2b0kVNc= +cosmossdk.io/x/tx v1.0.0 h1:pUUKRvHiMUZC/MnO8v747k1lUEA1DfAq0j0y0Mqrz/o= +cosmossdk.io/x/tx v1.0.0/go.mod h1:AXYJ47btzkcWuT1OtA3M44dv1iiYbKomtopHEbQGgH4= dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= @@ -196,8 +196,8 @@ github.com/butuzov/ireturn v0.3.0/go.mod h1:A09nIiwiqzN/IoVo9ogpa0Hzi9fex1kd9PSD github.com/butuzov/mirror v1.2.0 h1:9YVK1qIjNspaqWutSv8gsge2e/Xpq1eqEkslEUHy5cs= github.com/butuzov/mirror v1.2.0/go.mod h1:DqZZDtzm42wIAIyHXeN8W/qb1EPlb9Qn/if9icBOpdQ= github.com/bwesterb/go-ristretto v1.2.3/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0= -github.com/bytedance/sonic v1.12.4 h1:9Csb3c9ZJhfUWeMtpCDCq6BUoH5ogfDFLUgQ/jG+R0k= -github.com/bytedance/sonic v1.12.4/go.mod h1:B8Gt/XvtZ3Fqj+iSKMypzymZxw/FVwgIGKzMzT9r/rk= +github.com/bytedance/sonic v1.12.6 h1:/isNmCUF2x3Sh8RAp/4mh4ZGkcFAX/hLrzrK3AvpRzk= +github.com/bytedance/sonic v1.12.6/go.mod h1:B8Gt/XvtZ3Fqj+iSKMypzymZxw/FVwgIGKzMzT9r/rk= github.com/bytedance/sonic/loader v0.1.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU= github.com/bytedance/sonic/loader v0.2.1 h1:1GgorWTqf12TA8mma4DDSbaQigE2wOgQo7iCjjJv3+E= github.com/bytedance/sonic/loader v0.2.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU= @@ -276,6 +276,8 @@ github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWH github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cockroachdb/apd/v3 v3.2.1 h1:U+8j7t0axsIgvQUqthuNm82HIrYXodOV2iWLWtEaIwg= +github.com/cockroachdb/apd/v3 v3.2.1/go.mod h1:klXJcjp+FffLTHlhIG69tezTDvdP065naDsHzKhYSqc= github.com/cockroachdb/datadriven v1.0.3-0.20230413201302-be42291fc80f h1:otljaYPt5hWxV3MUfO5dFPFiOXg9CyG5/kCfayTqsJ4= github.com/cockroachdb/datadriven v1.0.3-0.20230413201302-be42291fc80f/go.mod h1:a9RdTaap04u637JoCzcUoIcDmvwSUtcUFtT/C3kJlTU= github.com/cockroachdb/errors v1.11.3 h1:5bA+k2Y6r+oz/6Z/RFlNeVCesGARKuC6YymtcDrbC/I= @@ -290,12 +292,12 @@ github.com/cockroachdb/redact v1.1.5 h1:u1PMllDkdFfPWaNGMyLD1+so+aq3uUItthCFqzwP github.com/cockroachdb/redact v1.1.5/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 h1:zuQyyAKVxetITBuuhv3BI9cMrmStnpT18zmgmTxunpo= github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06/go.mod h1:7nc4anLGjupUW/PeY5qiNYsdNXj7zopG+eqsS7To5IQ= -github.com/cometbft/cometbft v1.0.0-rc2.0.20241127125717-4ce33b646ac9 h1:moNybQ29M6OzirXBd7DBg1FERRECndXCEnlJSCIaMvo= -github.com/cometbft/cometbft v1.0.0-rc2.0.20241127125717-4ce33b646ac9/go.mod h1:GMmx+Ol327wKu+M/aMIZgOaagm8CC24CqVaC4zTpEok= +github.com/cometbft/cometbft v1.0.0 h1:6Lihx2hP2BwZ/9ybNp3r4QdiV8e4uBYm+rE45GGH8HU= +github.com/cometbft/cometbft v1.0.0/go.mod h1:+hGB2I4vhCEwdceY35lf75XZZzMtm3VDOVt8hj7qkCs= github.com/cometbft/cometbft-db v1.0.1 h1:SylKuLseMLQKw3+i8y8KozZyJcQSL98qEe2CGMCGTYE= github.com/cometbft/cometbft-db v1.0.1/go.mod h1:EBrFs1GDRiTqrWXYi4v90Awf/gcdD5ExzdPbg4X8+mk= -github.com/cometbft/cometbft/api v1.0.0-rc2 h1:ThzvNaJq37htjzfSsohhDoEebW94p0lEjA39CMDJ4xs= -github.com/cometbft/cometbft/api v1.0.0-rc2/go.mod h1:EkQiqVSu/p2ebrZEnB2z6Re7r8XNe//M7ylR0qEwWm0= +github.com/cometbft/cometbft/api v1.0.0 h1:gGBwvsJi/gnHJEtwYfjPIGs2AKg/Vfa1ZuKCPD1/Ko4= +github.com/cometbft/cometbft/api v1.0.0/go.mod h1:EkQiqVSu/p2ebrZEnB2z6Re7r8XNe//M7ylR0qEwWm0= github.com/containerd/console v1.0.1/go.mod h1:XUsP6YE/mKtz6bxc+I8UiKKTP04qjQL4qcS3XoQ5xkw= github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= @@ -313,12 +315,12 @@ github.com/cosiner/argv v0.1.0 h1:BVDiEL32lwHukgJKP87btEPenzrrHUjajs/8yzaqcXg= github.com/cosiner/argv v0.1.0/go.mod h1:EusR6TucWKX+zFgtdUsKT2Cvg45K5rtpCcWz4hK06d8= github.com/cosmos/btcutil v1.0.5 h1:t+ZFcX77LpKtDBhjucvnOH8C2l2ioGsBNEQ3jef8xFk= github.com/cosmos/btcutil v1.0.5/go.mod h1:IyB7iuqZMJlthe2tkIFL33xPyzbFYP0XVdS8P5lUPis= -github.com/cosmos/cosmos-db v1.1.0 h1:KLHNVQ73h7vawXTpj9UJ7ZR2IXv51tsEHkQJJ9EBDzI= -github.com/cosmos/cosmos-db v1.1.0/go.mod h1:t7c4A6cfGdpUwwVxrQ0gQLeRQqGUBJu0yvE4F/26REg= +github.com/cosmos/cosmos-db v1.1.1 h1:FezFSU37AlBC8S98NlSagL76oqBRWq/prTPvFcEJNCM= +github.com/cosmos/cosmos-db v1.1.1/go.mod h1:AghjcIPqdhSLP/2Z0yha5xPH3nLnskz81pBx3tcVSAw= github.com/cosmos/cosmos-proto v1.0.0-beta.5 h1:eNcayDLpip+zVLRLYafhzLvQlSmyab+RC5W7ZfmxJLA= github.com/cosmos/cosmos-proto v1.0.0-beta.5/go.mod h1:hQGLpiIUloJBMdQMMWb/4wRApmI9hjHH05nefC0Ojec= -github.com/cosmos/cosmos-sdk v0.52.0-beta.2.0.20241203223452-5a18da34d859 h1:zu412u01uCGCjfozvAJnnEkuOCxsfR82ZkL4BKFY3PI= -github.com/cosmos/cosmos-sdk v0.52.0-beta.2.0.20241203223452-5a18da34d859/go.mod h1:FesLLSSRJl6o/2PoYUFPTtm+KnVyGQLbp5Jn2Ii2OX8= +github.com/cosmos/cosmos-sdk v0.52.0-rc.1.0.20250107080912-2bcc7678255f h1:4m+m8vgkCc5mHS9d3oEMTq09HOjrSTDxt0PbTPY/E7A= +github.com/cosmos/cosmos-sdk v0.52.0-rc.1.0.20250107080912-2bcc7678255f/go.mod h1:WDx31HY18jrJcTDbob6sRb5scTixBevLzmmfjkj/JCE= github.com/cosmos/go-bip39 v1.0.0 h1:pcomnQdrdH22njcAatO0yWojsUnCO3y2tNoV1cb6hHY= github.com/cosmos/go-bip39 v1.0.0/go.mod h1:RNJv0H/pOIVgxw6KS7QeX2a0Uo0aKUlfhZ4xuwvCdJw= github.com/cosmos/gogogateway v1.2.0 h1:Ae/OivNhp8DqBi/sh2A8a1D0y638GpL3tkmLQAiKxTE= @@ -326,14 +328,14 @@ github.com/cosmos/gogogateway v1.2.0/go.mod h1:iQpLkGWxYcnCdz5iAdLcRBSw3h7NXeOkZ github.com/cosmos/gogoproto v1.4.2/go.mod h1:cLxOsn1ljAHSV527CHOtaIP91kK6cCrZETRBrkzItWU= github.com/cosmos/gogoproto v1.7.0 h1:79USr0oyXAbxg3rspGh/m4SWNyoz/GLaAh0QlCe2fro= github.com/cosmos/gogoproto v1.7.0/go.mod h1:yWChEv5IUEYURQasfyBW5ffkMHR/90hiHgbNgrtp4j0= -github.com/cosmos/iavl v1.3.2 h1:pQyZMG+N/dzmpSV0IXXpSa86Dz7AmIwNjXku3xBrL60= -github.com/cosmos/iavl v1.3.2/go.mod h1:T6SfBcyhulVIY2G/ZtAtQm/QiJvsuhIos52V4dWYk88= +github.com/cosmos/iavl v1.3.5 h1:wTDFbaa/L0FVUrwTlzMnjN3fphtKgWxgcZmTc45MZuA= +github.com/cosmos/iavl v1.3.5/go.mod h1:T6SfBcyhulVIY2G/ZtAtQm/QiJvsuhIos52V4dWYk88= github.com/cosmos/ics23/go v0.11.0 h1:jk5skjT0TqX5e5QJbEnwXIS2yI2vnmLOgpQPeM5RtnU= github.com/cosmos/ics23/go v0.11.0/go.mod h1:A8OjxPE67hHST4Icw94hOxxFEJMBG031xIGF/JHNIY0= github.com/cosmos/keyring v1.2.0 h1:8C1lBP9xhImmIabyXW4c3vFjjLiBdGCmfLUfeZlV1Yo= github.com/cosmos/keyring v1.2.0/go.mod h1:fc+wB5KTk9wQ9sDx0kFXB3A0MaeGHM9AwRStKOQ5vOA= -github.com/cosmos/ledger-cosmos-go v0.13.3 h1:7ehuBGuyIytsXbd4MP43mLeoN2LTOEnk5nvue4rK+yM= -github.com/cosmos/ledger-cosmos-go v0.13.3/go.mod h1:HENcEP+VtahZFw38HZ3+LS3Iv5XV6svsnkk9vdJtLr8= +github.com/cosmos/ledger-cosmos-go v0.14.0 h1:WfCHricT3rPbkPSVKRH+L4fQGKYHuGOK9Edpel8TYpE= +github.com/cosmos/ledger-cosmos-go v0.14.0/go.mod h1:E07xCWSBl3mTGofZ2QnL4cIUzMbbGVyik84QYKbX3RA= github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.4 h1:wfIWP927BUkWJb2NmU/kNDYIBTh/ziUX91+lVfRxZq4= github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= @@ -364,8 +366,8 @@ github.com/denis-tingaikin/go-header v0.5.0/go.mod h1:mMenU5bWrok6Wl2UsZjy+1okeg github.com/derekparker/trie v0.0.0-20221213183930-4c74548207f4/go.mod h1:C7Es+DLenIpPc9J6IYw4jrK0h7S9bKj4DNl8+KxGEXU= github.com/derekparker/trie v0.0.0-20230829180723-39f4de51ef7d h1:hUWoLdw5kvo2xCsqlsIBMvWUc1QCSsCYD2J2+Fg6YoU= github.com/derekparker/trie v0.0.0-20230829180723-39f4de51ef7d/go.mod h1:C7Es+DLenIpPc9J6IYw4jrK0h7S9bKj4DNl8+KxGEXU= -github.com/dgraph-io/badger/v4 v4.4.0 h1:rA48XiDynZLyMdlaJl67p9+lqfqwxlgKtCpYLAio7Zk= -github.com/dgraph-io/badger/v4 v4.4.0/go.mod h1:sONMmPPfbnj9FPwS/etCqky/ULth6CQJuAZSuWCmixE= +github.com/dgraph-io/badger/v4 v4.5.0 h1:TeJE3I1pIWLBjYhIYCA1+uxrjWEoJXImFBMEBVSm16g= +github.com/dgraph-io/badger/v4 v4.5.0/go.mod h1:ysgYmIeG8dS/E8kwxT7xHyc7MkmwNYLRoYnFbr7387A= github.com/dgraph-io/ristretto/v2 v2.0.0 h1:l0yiSOtlJvc0otkqyMaDNysg8E9/F/TYZwMbxscNOAQ= github.com/dgraph-io/ristretto/v2 v2.0.0/go.mod h1:FVFokF2dRqXyPyeMnK1YDy8Fc6aTe0IKgbcd03CYeEk= github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 h1:fAjc9m62+UWV/WAFKLNi6ZS0675eEUC9y3AlwSbQu1Y= @@ -883,8 +885,8 @@ github.com/macabu/inamedparam v0.1.3 h1:2tk/phHkMlEL/1GNe/Yf6kkR/hkcUdAEY3L0hjYV github.com/macabu/inamedparam v0.1.3/go.mod h1:93FLICAIk/quk7eaPPQvbzihUdn/QkGDwIZEoLtpH6I= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= -github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= +github.com/magiconair/properties v1.8.9 h1:nWcCbLq1N2v/cpNsy5WvQ37Fb+YElfq20WJ/a8RkpQM= +github.com/magiconair/properties v1.8.9/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/manifoldco/promptui v0.9.0 h1:3V4HzJk1TtXW1MTZMP7mdlwbBpIinw3HztaIlYthEiA= @@ -1084,8 +1086,8 @@ github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7q github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= -github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPAaSc= -github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= +github.com/prometheus/common v0.61.0 h1:3gv/GThfX0cV2lpO7gkTUwZru38mxevy90Bj8YFSRQQ= +github.com/prometheus/common v0.61.0/go.mod h1:zr29OCN/2BsJRaFwG8QOBr41D6kkchKbpeNH7pAjb/s= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= @@ -1194,8 +1196,8 @@ github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= -github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= +github.com/spf13/cast v1.7.1 h1:cuNEagBQEHWN1FnbGEjCXL2szYEXqfJPbP2HNUaca9Y= +github.com/spf13/cast v1.7.1/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo= github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= @@ -1303,8 +1305,8 @@ github.com/yuin/goldmark-emoji v1.0.1 h1:ctuWEyzGBwiucEqxzwe0SOYDXPAucOrE9NQC18W github.com/yuin/goldmark-emoji v1.0.1/go.mod h1:2w1E6FEWLcDQkoTE+7HU6QF1F6SLlNGjRIBbIZQFqkQ= github.com/zondax/hid v0.9.2 h1:WCJFnEDMiqGF64nlZz28E9qLVZ0KSJ7xpc5DLEyma2U= github.com/zondax/hid v0.9.2/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWpEM= -github.com/zondax/ledger-go v0.14.3 h1:wEpJt2CEcBJ428md/5MgSLsXLBos98sBOyxNmCjfUCw= -github.com/zondax/ledger-go v0.14.3/go.mod h1:IKKaoxupuB43g4NxeQmbLXv7T9AlQyie1UpHb342ycI= +github.com/zondax/ledger-go v1.0.0 h1:BvNoksIyRqyQTW78rIZP9A44WwAminKiomQa7jXp9EI= +github.com/zondax/ledger-go v1.0.0/go.mod h1:HpgkgFh3Jkwi9iYLDATdyRxc8CxqxcywsFj6QerWzvo= gitlab.com/bosi/decorder v0.4.2 h1:qbQaV3zgwnBZ4zPMhGLW4KZe7A7NwxEhJx39R3shffo= gitlab.com/bosi/decorder v0.4.2/go.mod h1:muuhHoaJkA9QLcYHq4Mj8FJUwDZ+EirSHRiaTcTf6T8= gitlab.com/yawning/secp256k1-voi v0.0.0-20230925100816-f2616030848b h1:CzigHMRySiX3drau9C6Q5CAbNIApmLdat5jPMqChvDA= @@ -1328,20 +1330,20 @@ go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.51.0 h1:Xs2Ncz0gNihqu9iosIZ5SkBbWo5T8JhhLJFMQL1qmLI= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.51.0/go.mod h1:vy+2G/6NvVMpwGX/NyLqcC41fxepnuKHk16E6IZUcJc= -go.opentelemetry.io/otel v1.26.0 h1:LQwgL5s/1W7YiiRwxf03QGnWLb2HW4pLiAhaA5cZXBs= -go.opentelemetry.io/otel v1.26.0/go.mod h1:UmLkJHUAidDval2EICqBMbnAd0/m2vmpf/dAM+fvFs4= +go.opentelemetry.io/otel v1.31.0 h1:NsJcKPIW0D0H3NgzPDHmo0WW6SptzPdqg/L1zsIm2hY= +go.opentelemetry.io/otel v1.31.0/go.mod h1:O0C14Yl9FgkjqcCZAsE053C13OaddMYr/hz6clDkEJE= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0/go.mod h1:IPtUMKL4O3tH5y+iXVyAXqpAwMuzC1IrxVS81rummfE= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.24.0 h1:Xw8U6u2f8DK2XAkGRFV7BBLENgnTGX9i4rQRxJf+/vs= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.24.0/go.mod h1:6KW1Fm6R/s6Z3PGXwSJN2K4eT6wQB3vXX6CVnYX9NmM= -go.opentelemetry.io/otel/metric v1.26.0 h1:7S39CLuY5Jgg9CrnA9HHiEjGMF/X2VHvoXGgSllRz30= -go.opentelemetry.io/otel/metric v1.26.0/go.mod h1:SY+rHOI4cEawI9a7N1A4nIg/nTQXe1ccCNWYOJUrpX4= -go.opentelemetry.io/otel/sdk v1.24.0 h1:YMPPDNymmQN3ZgczicBY3B6sf9n62Dlj9pWD3ucgoDw= -go.opentelemetry.io/otel/sdk v1.24.0/go.mod h1:KVrIYw6tEubO9E96HQpcmpTKDVn9gdv35HoYiQWGDFg= -go.opentelemetry.io/otel/sdk/metric v1.19.0 h1:EJoTO5qysMsYCa+w4UghwFV/ptQgqSL/8Ni+hx+8i1k= -go.opentelemetry.io/otel/sdk/metric v1.19.0/go.mod h1:XjG0jQyFJrv2PbMvwND7LwCEhsJzCzV5210euduKcKY= -go.opentelemetry.io/otel/trace v1.26.0 h1:1ieeAUb4y0TE26jUFrCIXKpTuVK7uJGN9/Z/2LP5sQA= -go.opentelemetry.io/otel/trace v1.26.0/go.mod h1:4iDxvGDQuUkHve82hJJ8UqrwswHYsZuWCBllGV2U2y0= +go.opentelemetry.io/otel/metric v1.31.0 h1:FSErL0ATQAmYHUIzSezZibnyVlft1ybhy4ozRPcF2fE= +go.opentelemetry.io/otel/metric v1.31.0/go.mod h1:C3dEloVbLuYoX41KpmAhOqNriGbA+qqH6PQ5E5mUfnY= +go.opentelemetry.io/otel/sdk v1.31.0 h1:xLY3abVHYZ5HSfOg3l2E5LUj2Cwva5Y7yGxnSW9H5Gk= +go.opentelemetry.io/otel/sdk v1.31.0/go.mod h1:TfRbMdhvxIIr/B2N2LQW2S5v9m3gOQ/08KsbbO5BPT0= +go.opentelemetry.io/otel/sdk/metric v1.31.0 h1:i9hxxLJF/9kkvfHppyLL55aW7iIJz4JjxTeYusH7zMc= +go.opentelemetry.io/otel/sdk/metric v1.31.0/go.mod h1:CRInTMVvNhUKgSAMbKyTMxqOBC0zgyxzW55lZzX43Y8= +go.opentelemetry.io/otel/trace v1.31.0 h1:ffjsj1aRouKewfr85U2aGagJ46+MvodynlQ1HYdmJys= +go.opentelemetry.io/otel/trace v1.31.0/go.mod h1:TXZkRk7SM2ZQLtR6eoAWQFIHPvzQ06FJAsO1tJg480A= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= go.opentelemetry.io/proto/otlp v1.2.0 h1:pVeZGk7nXDC9O2hncA6nHldxEjm6LByfA2aN8IOkz94= go.opentelemetry.io/proto/otlp v1.2.0/go.mod h1:gGpR8txAl5M03pDhMC79G6SdqNV26naRm/KDsgaHD8A= @@ -1462,8 +1464,8 @@ golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= -golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo= -golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= +golang.org/x/net v0.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I= +golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4= 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= @@ -1660,10 +1662,10 @@ google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEY google.golang.org/genproto v0.0.0-20220314164441-57ef72a4c106/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de h1:F6qOa9AZTYJXOUEr4jDysRDLrm4PHePlge4v4TGAlxY= google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:VUhTRKeHn9wwcdrk73nvdC9gF178Tzhmt/qyaFcPLSo= -google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1 h1:hjSy6tcFQZ171igDaN5QHOw2n6vx40juYbC/x67CEhc= -google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:qpvKtACPCQhAdu3PyQgV4l3LMXZEtft7y8QcarRsp9I= -google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 h1:XVhgTWWV3kGQlwJHR3upFWZeTsei6Oks1apkZSeonIE= -google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= +google.golang.org/genproto/googleapis/api v0.0.0-20241015192408-796eee8c2d53 h1:fVoAXEKA4+yufmbdVYv+SE73+cPZbbbe8paLsHfkK+U= +google.golang.org/genproto/googleapis/api v0.0.0-20241015192408-796eee8c2d53/go.mod h1:riSXTwQ4+nqmPGtobMFyW5FqVAmIs0St6VPp4Ug7CE4= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241219192143-6b3ec007d9bb h1:3oy2tynMOP1QbTC0MsNNAV+Se8M2Bd0A5+x1QHyw+pI= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241219192143-6b3ec007d9bb/go.mod h1:lcTa1sDdWEIHMWlITnIczmw5w60CF9ffkb8Z+DVmmjA= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= @@ -1677,8 +1679,8 @@ google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= -google.golang.org/grpc v1.68.0 h1:aHQeeJbo8zAkAa3pRzrVjZlbz6uSfeOXlJNQM0RAbz0= -google.golang.org/grpc v1.68.0/go.mod h1:fmSPC5AsjSBCK54MyHRx48kpOti1/jRfOlwEWywNjWA= +google.golang.org/grpc v1.69.2 h1:U3S9QEtbXC0bYNvRtcoklF3xGtLViumSYxWykJS+7AU= +google.golang.org/grpc v1.69.2/go.mod h1:vyjdE6jLBI76dgpDojsFGNaHlxdjXN9ghpnd2o7JGZ4= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -1693,8 +1695,8 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= -google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= -google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.36.1 h1:yBPeRvTftaleIgM3PZ/WBIZ7XM/eEYAaEyCwvyjq/gk= +google.golang.org/protobuf v1.36.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/ignite/cmd/chain_serve.go b/ignite/cmd/chain_serve.go index bf23a6575c..27c6ede0d6 100644 --- a/ignite/cmd/chain_serve.go +++ b/ignite/cmd/chain_serve.go @@ -71,6 +71,7 @@ production, you may want to run "appd start" manually. c.Flags().AddFlagSet(flagSetHome()) c.Flags().AddFlagSet(flagSetCheckDependencies()) c.Flags().AddFlagSet(flagSetSkipProto()) + c.Flags().AddFlagSet(flagSetSkipBuild()) c.Flags().AddFlagSet(flagSetVerbose()) c.Flags().BoolP(flagForceReset, "f", false, "force reset of the app state on start and every source change") c.Flags().BoolP(flagResetOnce, "r", false, "reset the app state once on init") @@ -183,6 +184,10 @@ func chainServe(cmd *cobra.Command, session *cliui.Session) error { serveOptions = append(serveOptions, chain.ServeSkipProto()) } + if flagGetSkipBuild(cmd) { + serveOptions = append(serveOptions, chain.ServeSkipBuild()) + } + if quitOnFail { serveOptions = append(serveOptions, chain.QuitOnFail()) } diff --git a/ignite/cmd/chain_simulate.go b/ignite/cmd/chain_simulate.go index 253ffc79ed..af4e7d5f98 100644 --- a/ignite/cmd/chain_simulate.go +++ b/ignite/cmd/chain_simulate.go @@ -22,8 +22,8 @@ const ( flagSimappNumBlocks = "numBlocks" flagSimappBlockSize = "blockSize" flagSimappLean = "lean" - flagSimappPeriod = "period" flagSimappGenesisTime = "genesisTime" + flagSimName = "simName" ) // NewChainSimulate creates a new simulation command to run the blockchain simulation. @@ -31,7 +31,7 @@ func NewChainSimulate() *cobra.Command { c := &cobra.Command{ Use: "simulate", Short: "Run simulation testing for the blockchain", - Long: "Run simulation testing for the blockchain. It sends many randomized-input messages of each module to a simulated node and checks if invariants break", + Long: "Run simulation testing for the blockchain. It sends many randomized-input messages of each module to a simulated node.", Args: cobra.NoArgs, RunE: chainSimulationHandler, } @@ -41,8 +41,8 @@ func NewChainSimulate() *cobra.Command { func chainSimulationHandler(cmd *cobra.Command, _ []string) error { var ( - period, _ = cmd.Flags().GetUint(flagSimappPeriod) genesisTime, _ = cmd.Flags().GetInt64(flagSimappGenesisTime) + simName, _ = cmd.Flags().GetString(flagSimName) config = newConfigFromFlags(cmd) appPath = flagGetPath(cmd) ) @@ -62,7 +62,7 @@ func chainSimulationHandler(cmd *cobra.Command, _ []string) error { } return c.Simulate(cmd.Context(), - chain.SimappWithPeriod(period), + chain.SimappWithSimulationTestName(simName), chain.SimappWithGenesisTime(genesisTime), chain.SimappWithConfig(config), ) @@ -114,6 +114,6 @@ func simappFlags(c *cobra.Command) { c.Flags().Bool(flagSimappLean, false, "lean simulation log output") // simulation flags - c.Flags().Uint(flagSimappPeriod, 0, "run slow invariants only once every period assertions") + c.Flags().String(flagSimName, "TestFullAppSimulation", "name of the simulation to run") c.Flags().Int64(flagSimappGenesisTime, 0, "override genesis UNIX time instead of using a random UNIX time") } diff --git a/ignite/cmd/cmd.go b/ignite/cmd/cmd.go index e2ab8930b8..38f4cc1a76 100644 --- a/ignite/cmd/cmd.go +++ b/ignite/cmd/cmd.go @@ -37,6 +37,7 @@ const ( flagYes = "yes" flagClearCache = "clear-cache" flagSkipProto = "skip-proto" + flagSkipBuild = "skip-build" checkVersionTimeout = time.Millisecond * 600 cacheFileName = "ignite_cache.db" @@ -216,6 +217,17 @@ func flagGetSkipProto(cmd *cobra.Command) bool { return skip } +func flagSetSkipBuild() *flag.FlagSet { + fs := flag.NewFlagSet("", flag.ContinueOnError) + fs.Bool(flagSkipBuild, false, "skip initial build of the app (uses local binary)") + return fs +} + +func flagGetSkipBuild(cmd *cobra.Command) bool { + skip, _ := cmd.Flags().GetBool(flagSkipBuild) + return skip +} + func flagSetClearCache(cmd *cobra.Command) { cmd.PersistentFlags().Bool(flagClearCache, false, "clear the build cache (advanced)") } diff --git a/ignite/cmd/scaffold.go b/ignite/cmd/scaffold.go index e1a64e2173..f4b381523a 100644 --- a/ignite/cmd/scaffold.go +++ b/ignite/cmd/scaffold.go @@ -127,6 +127,7 @@ with an "--ibc" flag. Note that the default module is not IBC-enabled. NewScaffoldPacket(), NewScaffoldVue(), NewScaffoldReact(), + NewScaffoldChainRegistry(), ) return c diff --git a/ignite/cmd/scaffold_chain_registry.go b/ignite/cmd/scaffold_chain_registry.go new file mode 100644 index 0000000000..ba080a0952 --- /dev/null +++ b/ignite/cmd/scaffold_chain_registry.go @@ -0,0 +1,68 @@ +package ignitecmd + +import ( + "github.com/spf13/cobra" + + "github.com/ignite/cli/v29/ignite/pkg/cliui" + "github.com/ignite/cli/v29/ignite/services/chain" + "github.com/ignite/cli/v29/ignite/services/scaffolder" +) + +// NewScaffoldChainRegistry returns the command to scaffold the chain registry chain.json and assets.json files. +func NewScaffoldChainRegistry() *cobra.Command { + c := &cobra.Command{ + Use: "chain-registry", + Short: "Configs for the chain registry", + Long: `Scaffold the chain registry chain.json and assets.json files. + +The chain registry is a GitHub repo, hosted at https://github.com/cosmos/cosmos-registry, that +contains the chain.json and assets.json files of most of chains in the Cosmos ecosystem. +It is good practices, when creating a new chain, and about to launch a testnet or mainnet, to +publish the chain's metadata in the chain registry. + +Read more about the chain.json at https://github.com/cosmos/chain-registry?tab=readme-ov-file#chainjson +Read more about the assets.json at https://github.com/cosmos/chain-registry?tab=readme-ov-file#assetlists`, + Args: cobra.NoArgs, + PreRunE: migrationPreRunHandler, + RunE: scaffoldChainRegistryFiles, + } + + flagSetPath(c) + flagSetClearCache(c) + + c.Flags().AddFlagSet(flagSetYes()) + + return c +} + +func scaffoldChainRegistryFiles(cmd *cobra.Command, _ []string) error { + session := cliui.New(cliui.StartSpinnerWithText(statusScaffolding)) + defer session.End() + + cfg, _, err := getChainConfig(cmd) + if err != nil { + return err + } + + c, err := chain.NewWithHomeFlags(cmd) + if err != nil { + return err + } + + appPath := flagGetPath(cmd) + sc, err := scaffolder.New(cmd.Context(), appPath, cfg.Build.Proto.Path) + if err != nil { + return err + } + + if err = sc.AddChainRegistryFiles(c, cfg); err != nil { + return err + } + + // no need for post scaffolding, as we are just creating two files + // that are not part of the build process + + session.Printf("🎉 chain-registry files successfully scaffolded\n") + + return nil +} diff --git a/ignite/internal/plugin/execute.go b/ignite/internal/plugin/execute.go index 5539c5e9b6..e21f04a68a 100644 --- a/ignite/internal/plugin/execute.go +++ b/ignite/internal/plugin/execute.go @@ -3,6 +3,7 @@ package plugininternal import ( "bytes" "context" + "sync" "google.golang.org/grpc/status" @@ -14,6 +15,7 @@ import ( // Execute starts and executes a plugin, then shutdowns it. func Execute(ctx context.Context, path string, args []string, options ...plugin.APIOption) (string, error) { var buf bytes.Buffer + var mu sync.Mutex plugins, err := plugin.Load( ctx, []pluginsconfig.Plugin{{Path: path}}, @@ -38,5 +40,7 @@ func Execute(ctx context.Context, path string, args []string, options ...plugin. } plugins[0].KillClient() + mu.Lock() + defer mu.Unlock() return buf.String(), err } diff --git a/ignite/internal/plugin/testdata/execute_fail/go.mod b/ignite/internal/plugin/testdata/execute_fail/go.mod index eff3951e15..5615a48bb5 100644 --- a/ignite/internal/plugin/testdata/execute_fail/go.mod +++ b/ignite/internal/plugin/testdata/execute_fail/go.mod @@ -1,9 +1,9 @@ module execute_fail -go 1.23.3 +go 1.23.4 replace ( - github.com/cosmos/cosmos-sdk => github.com/cosmos/cosmos-sdk v0.52.0-beta.2 + github.com/cosmos/cosmos-sdk => github.com/cosmos/cosmos-sdk v0.52.0-rc.1 github.com/ignite/cli/v29 => ../../../../.. ) @@ -84,18 +84,18 @@ require ( github.com/spf13/pflag v1.0.5 // indirect github.com/xanzy/ssh-agent v0.3.3 // indirect go.etcd.io/bbolt v1.4.0-alpha.1 // indirect - golang.org/x/crypto v0.28.0 // indirect - golang.org/x/mod v0.21.0 // indirect - golang.org/x/net v0.30.0 // indirect - golang.org/x/sync v0.9.0 // indirect - golang.org/x/sys v0.27.0 // indirect - golang.org/x/term v0.25.0 // indirect - golang.org/x/text v0.19.0 // indirect - golang.org/x/tools v0.25.0 // indirect + golang.org/x/crypto v0.31.0 // indirect + golang.org/x/mod v0.22.0 // indirect + golang.org/x/net v0.33.0 // indirect + golang.org/x/sync v0.10.0 // indirect + golang.org/x/sys v0.28.0 // indirect + golang.org/x/term v0.27.0 // indirect + golang.org/x/text v0.21.0 // indirect + golang.org/x/tools v0.27.0 // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20241021214115-324edc3d5d38 // indirect - google.golang.org/grpc v1.67.1 // indirect - google.golang.org/protobuf v1.35.1 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20241219192143-6b3ec007d9bb // indirect + google.golang.org/grpc v1.69.2 // indirect + google.golang.org/protobuf v1.36.1 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/ignite/internal/plugin/testdata/execute_ok/go.mod b/ignite/internal/plugin/testdata/execute_ok/go.mod index 533815e834..61c31fd20b 100644 --- a/ignite/internal/plugin/testdata/execute_ok/go.mod +++ b/ignite/internal/plugin/testdata/execute_ok/go.mod @@ -1,9 +1,9 @@ module execute_ok -go 1.23.3 +go 1.23.4 replace ( - github.com/cosmos/cosmos-sdk => github.com/cosmos/cosmos-sdk v0.52.0-beta.2 + github.com/cosmos/cosmos-sdk => github.com/cosmos/cosmos-sdk v0.52.0-rc.1 github.com/ignite/cli/v29 => ../../../../.. ) @@ -84,18 +84,18 @@ require ( github.com/spf13/pflag v1.0.5 // indirect github.com/xanzy/ssh-agent v0.3.3 // indirect go.etcd.io/bbolt v1.4.0-alpha.1 // indirect - golang.org/x/crypto v0.28.0 // indirect - golang.org/x/mod v0.21.0 // indirect - golang.org/x/net v0.30.0 // indirect - golang.org/x/sync v0.9.0 // indirect - golang.org/x/sys v0.27.0 // indirect - golang.org/x/term v0.25.0 // indirect - golang.org/x/text v0.19.0 // indirect - golang.org/x/tools v0.25.0 // indirect + golang.org/x/crypto v0.31.0 // indirect + golang.org/x/mod v0.22.0 // indirect + golang.org/x/net v0.33.0 // indirect + golang.org/x/sync v0.10.0 // indirect + golang.org/x/sys v0.28.0 // indirect + golang.org/x/term v0.27.0 // indirect + golang.org/x/text v0.21.0 // indirect + golang.org/x/tools v0.27.0 // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20241021214115-324edc3d5d38 // indirect - google.golang.org/grpc v1.67.1 // indirect - google.golang.org/protobuf v1.35.1 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20241219192143-6b3ec007d9bb // indirect + google.golang.org/grpc v1.69.2 // indirect + google.golang.org/protobuf v1.36.1 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/ignite/internal/tools/gen-config-doc/go.mod b/ignite/internal/tools/gen-config-doc/go.mod index c446f4ec14..1925b9f35c 100644 --- a/ignite/internal/tools/gen-config-doc/go.mod +++ b/ignite/internal/tools/gen-config-doc/go.mod @@ -3,7 +3,7 @@ module github.com/ignite/cli/ignite/internal/tools/gen-config-doc go 1.23.1 replace ( - github.com/cosmos/cosmos-sdk => github.com/cosmos/cosmos-sdk v0.52.0-beta.2 + github.com/cosmos/cosmos-sdk => github.com/cosmos/cosmos-sdk v0.52.0-rc.1 github.com/ignite/cli/v29 => ../../../../ ) diff --git a/ignite/internal/tools/gen-mig-diffs/go.mod b/ignite/internal/tools/gen-mig-diffs/go.mod index ac286cd56c..87b3f9737b 100644 --- a/ignite/internal/tools/gen-mig-diffs/go.mod +++ b/ignite/internal/tools/gen-mig-diffs/go.mod @@ -1,10 +1,9 @@ module github.com/ignite/cli/ignite/internal/tools/gen-mig-diffs -go 1.23.1 -toolchain go1.23.4 +go 1.23.4 replace ( - github.com/cosmos/cosmos-sdk => github.com/cosmos/cosmos-sdk v0.52.0-beta.2 + github.com/cosmos/cosmos-sdk => github.com/cosmos/cosmos-sdk v0.52.0-rc.1 github.com/ignite/cli/v29 => ../../../../ ) diff --git a/ignite/pkg/chaincmd/runner/simulate.go b/ignite/pkg/chaincmd/runner/simulate.go index f805f0df41..65e882f807 100644 --- a/ignite/pkg/chaincmd/runner/simulate.go +++ b/ignite/pkg/chaincmd/runner/simulate.go @@ -12,15 +12,15 @@ import ( // Simulation run the chain simulation. func (r Runner) Simulation( ctx context.Context, - appPath string, + appPath, simName string, enabled bool, config simulation.Config, - period uint, genesisTime int64, ) error { return r.run(ctx, runOptions{stdout: os.Stdout}, chaincmd.SimulationCommand( appPath, + simName, chaincmd.SimappWithGenesis(config.GenesisFile), chaincmd.SimappWithParams(config.ParamsFile), chaincmd.SimappWithExportParamsPath(config.ExportParamsPath), @@ -34,7 +34,6 @@ func (r Runner) Simulation( chaincmd.SimappWithLean(config.Lean), chaincmd.SimappWithCommit(config.Commit), chaincmd.SimappWithEnable(enabled), - chaincmd.SimappWithPeriod(period), chaincmd.SimappWithGenesisTime(genesisTime), )) } diff --git a/ignite/pkg/chaincmd/simulate.go b/ignite/pkg/chaincmd/simulate.go index 225c95aa93..a50f943f74 100644 --- a/ignite/pkg/chaincmd/simulate.go +++ b/ignite/pkg/chaincmd/simulate.go @@ -1,12 +1,12 @@ package chaincmd import ( + "fmt" "path/filepath" "strconv" "github.com/ignite/cli/v29/ignite/pkg/cmdrunner/step" "github.com/ignite/cli/v29/ignite/pkg/gocmd" - "github.com/ignite/cli/v29/ignite/pkg/safeconverter" ) const ( @@ -23,13 +23,11 @@ const ( optionSimappLean = "-Lean" optionSimappCommit = "-Commit" optionSimappEnabled = "-Enabled" - optionSimappPeriod = "-Period" optionSimappGenesisTime = "-GenesisTime" - commandGoTest = "test" - optionGoBenchmem = "-benchmem" - optionGoSimappRun = "-run=^TestFullAppSimulation$" - optionGoSimsTags = "-tags='sims'" + commandGoTest = "test" + optionGoBenchmem = "-benchmem" + optionGoSimsTags = "-tags='sims'" ) // SimappOption for the SimulateCommand. @@ -157,13 +155,6 @@ func SimappWithEnable(enable bool) SimappOption { } } -// SimappWithPeriod provides period option for the simapp command. -func SimappWithPeriod(period uint) SimappOption { - return func(command []string) []string { - return append(command, optionSimappPeriod, strconv.Itoa(safeconverter.ToInt[uint](period))) - } -} - // SimappWithGenesisTime provides genesisTime option for the simapp command. func SimappWithGenesisTime(genesisTime int64) SimappOption { return func(command []string) []string { @@ -172,11 +163,16 @@ func SimappWithGenesisTime(genesisTime int64) SimappOption { } // SimulationCommand returns the cli command for simapp tests. -func SimulationCommand(appPath string, options ...SimappOption) step.Option { +// simName must be a test defined within the application (defaults to TestFullAppSimulation). +func SimulationCommand(appPath string, simName string, options ...SimappOption) step.Option { + if simName == "" { + simName = "TestFullAppSimulation" + } + command := []string{ commandGoTest, optionGoBenchmem, - optionGoSimappRun, + fmt.Sprintf("-run=^%s$", simName), optionGoSimsTags, filepath.Join(appPath, "app"), } diff --git a/ignite/pkg/xgit/xgit.go b/ignite/pkg/xgit/xgit.go index 54500b613f..3d62cdd84a 100644 --- a/ignite/pkg/xgit/xgit.go +++ b/ignite/pkg/xgit/xgit.go @@ -159,3 +159,23 @@ func IsRepository(path string) (bool, error) { } return true, nil } + +// RepositoryURL returns the URL of the origin remote of a Git repository. +func RepositoryURL(path string) (string, error) { + repo, err := git.PlainOpenWithOptions(path, &defaultOpenOpts) + if err != nil { + return "", err + } + + cfg, err := repo.Config() + if err != nil { + return "", err + } + + origin, ok := cfg.Remotes["origin"] + if !ok { + return "", errors.Errorf("no origin remote found in %s", path) + } + + return origin.URLs[0], nil +} diff --git a/ignite/services/chain/serve.go b/ignite/services/chain/serve.go index 99df738b80..415b1ed5d2 100644 --- a/ignite/services/chain/serve.go +++ b/ignite/services/chain/serve.go @@ -69,6 +69,7 @@ type serveOptions struct { forceReset bool resetOnce bool skipProto bool + skipBuild bool quitOnFail bool generateClients bool buildTags []string @@ -119,6 +120,14 @@ func ServeSkipProto() ServeOption { } } +// ServeSkipBuild allows to serve the app without rebuilding it. +// It looks up the binary in the PATH. +func ServeSkipBuild() ServeOption { + return func(c *serveOptions) { + c.skipBuild = true + } +} + // BuildTags set the build tags for the go build. func BuildTags(buildTags ...string) ServeOption { return func(c *serveOptions) { @@ -190,6 +199,7 @@ func (c *Chain) Serve(ctx context.Context, cacheStorage cache.Storage, options . serveOptions.buildTags, shouldReset, serveOptions.skipProto, + serveOptions.skipBuild, serveOptions.generateClients, ) serveOptions.resetOnce = false @@ -324,7 +334,7 @@ func (c *Chain) serve( ctx context.Context, cacheStorage cache.Storage, buildTags []string, - forceReset, skipProto, generateClients bool, + forceReset, skipProto, skipBuild, generateClients bool, ) error { conf, err := c.Config() if err != nil { @@ -406,7 +416,13 @@ func (c *Chain) serve( } // build phase - if !isInit || appModified { + // if the app is not initialized or the source/binary has been modified + // and if the --skip-build flag is not set + if skipBuild { + c.ev.SendInfo("Skip building activated. Binary won't be rebuilt, nor refresh on changes") + } + + if (!isInit || appModified) && !skipBuild { // build the blockchain app if err := c.build(ctx, cacheStorage, buildTags, "", skipProto, generateClients, true); err != nil { return err diff --git a/ignite/services/chain/simulate.go b/ignite/services/chain/simulate.go index 36863872e6..927c035ab3 100644 --- a/ignite/services/chain/simulate.go +++ b/ignite/services/chain/simulate.go @@ -7,10 +7,10 @@ import ( ) type simappOptions struct { - enabled bool - config simulation.Config - period uint - genesisTime int64 + simulationTestName string + enabled bool + config simulation.Config + genesisTime int64 } func newSimappOptions() simappOptions { @@ -19,7 +19,6 @@ func newSimappOptions() simappOptions { Commit: true, }, enabled: true, - period: 0, genesisTime: 0, } } @@ -27,13 +26,6 @@ func newSimappOptions() simappOptions { // SimappOption provides options for the simapp command. type SimappOption func(*simappOptions) -// SimappWithPeriod allows running slow invariants only once every period assertions. -func SimappWithPeriod(period uint) SimappOption { - return func(c *simappOptions) { - c.period = period - } -} - // SimappWithGenesisTime allows overriding genesis UNIX time instead of using a random UNIX time. func SimappWithGenesisTime(genesisTime int64) SimappOption { return func(c *simappOptions) { @@ -48,6 +40,13 @@ func SimappWithConfig(config simulation.Config) SimappOption { } } +// SimappWithSimulationTestName allows to set the simulation test name. +func SimappWithSimulationTestName(name string) SimappOption { + return func(c *simappOptions) { + c.simulationTestName = name + } +} + func (c *Chain) Simulate(ctx context.Context, options ...SimappOption) error { simappOptions := newSimappOptions() @@ -62,9 +61,9 @@ func (c *Chain) Simulate(ctx context.Context, options ...SimappOption) error { } return commands.Simulation(ctx, c.app.Path, + simappOptions.simulationTestName, simappOptions.enabled, simappOptions.config, - simappOptions.period, simappOptions.genesisTime, ) } diff --git a/ignite/services/plugin/plugin_test.go b/ignite/services/plugin/plugin_test.go index bda1e9013d..25acc45649 100644 --- a/ignite/services/plugin/plugin_test.go +++ b/ignite/services/plugin/plugin_test.go @@ -227,8 +227,6 @@ func (TestClientAPI) GetChainInfo(context.Context) (*ChainInfo, error) { } func TestPluginLoad(t *testing.T) { - t.Skip() // Re-enable when 0.52 integration finished - wd, err := os.Getwd() require.NoError(t, err) @@ -417,8 +415,6 @@ func TestPluginLoad(t *testing.T) { } func TestPluginLoadSharedHost(t *testing.T) { - t.Skip() // Re-enable when 0.52 integration finished - tests := []struct { name string instances int diff --git a/ignite/services/plugin/template/go.mod.plush b/ignite/services/plugin/template/go.mod.plush index 77bc1d2a9f..6ab2bdf96c 100644 --- a/ignite/services/plugin/template/go.mod.plush +++ b/ignite/services/plugin/template/go.mod.plush @@ -9,15 +9,4 @@ require ( ) replace github.com/ignite/cli/v29 => github.com/ignite/cli/v29 main - -// remove once everything is tagged in 0.52 -replace ( - cosmossdk.io/api => cosmossdk.io/api v0.7.3-0.20241106232657-2290c5ee5582 // main - cosmossdk.io/core => cosmossdk.io/core v1.0.0-alpha.4 // main - cosmossdk.io/store => cosmossdk.io/store v1.0.0-rc.0.0.20241106232657-2290c5ee5582 // main - cosmossdk.io/x/accounts => cosmossdk.io/x/accounts v0.0.0-20241106211233-535aa2f3508e // release/v0.52.x - cosmossdk.io/x/bank => cosmossdk.io/x/bank v0.0.0-20241106211233-535aa2f3508e // release/v0.52.x - cosmossdk.io/x/consensus => cosmossdk.io/x/consensus v0.0.0-20241106211233-535aa2f3508e // release/v0.52.x - cosmossdk.io/x/staking => cosmossdk.io/x/staking v0.0.0-20241106211233-535aa2f3508e // release/v0.52.x - github.com/cosmos/cosmos-sdk => github.com/cosmos/cosmos-sdk v0.52.0-beta.2 -) \ No newline at end of file +replace github.com/cosmos/cosmos-sdk => github.com/cosmos/cosmos-sdk v0.52.0-rc.1.0.20250107080912-2bcc7678255f \ No newline at end of file diff --git a/ignite/services/scaffolder/chain_registry.go b/ignite/services/scaffolder/chain_registry.go new file mode 100644 index 0000000000..29a9043cb4 --- /dev/null +++ b/ignite/services/scaffolder/chain_registry.go @@ -0,0 +1,368 @@ +package scaffolder + +import ( + "bufio" + "encoding/json" + "fmt" + "os" + "path/filepath" + "strings" + + sdk "github.com/cosmos/cosmos-sdk/types" + + chainconfig "github.com/ignite/cli/v29/ignite/config/chain" + "github.com/ignite/cli/v29/ignite/pkg/errors" + "github.com/ignite/cli/v29/ignite/pkg/xgit" + "github.com/ignite/cli/v29/ignite/services/chain" +) + +const ( + // DefaultChainType is the default chain type for the chain.json + // More value are allowed by the chain registry schema, but Ignite only scaffolds Cosmos chains. + DefaultChainType = "cosmos" + + // DefaultChainStatus is the default chain status for the chain.json + // More value are allowed by the chain registry schema, but Ignite only scaffolds upcoming chains. + DefaultChainStatus = "upcoming" + + // DefaultNetworkType is the default network type for the chain.json + // More value are allowed by the chain registry schema, but Ignite only scaffolds devnet chains. + DefaultNetworkType = "devnet" + + chainFilename = "chain.json" + assetListFilename = "assetlist.json" +) + +// https://raw.githubusercontent.com/cosmos/chain-registry/master/chain.schema.json +type chainJSON struct { + ChainName string `json:"chain_name"` + Status string `json:"status"` + NetworkType string `json:"network_type"` + Website string `json:"website"` + PrettyName string `json:"pretty_name"` + ChainType string `json:"chain_type"` + ChainID string `json:"chain_id"` + Bech32Prefix string `json:"bech32_prefix"` + DaemonName string `json:"daemon_name"` + NodeHome string `json:"node_home"` + KeyAlgos []string `json:"key_algos"` + Slip44 int `json:"slip44"` + Fees struct { + FeeTokens []feeToken `json:"fee_tokens"` + } `json:"fees"` + Staking staking `json:"staking"` + Codebase codebase `json:"codebase"` + Description string `json:"description"` + Apis apis `json:"apis"` +} + +type staking struct { + StakingTokens []stakingToken `json:"staking_tokens"` +} + +type stakingToken struct { + Denom string `json:"denom"` +} + +type codebase struct { + GitRepo string `json:"git_repo"` + Genesis codebaseGenesis `json:"genesis"` + RecommendedVersion string `json:"recommended_version"` + CompatibleVersions []string `json:"compatible_versions"` + Consensus codebaseConsensus `json:"consensus"` + Sdk codebaseSDK `json:"sdk"` + Ibc codebaseIBC `json:"ibc,omitempty"` + Cosmwasm codebaseCosmwasm `json:"cosmwasm,omitempty"` +} + +type codebaseGenesis struct { + GenesisURL string `json:"genesis_url"` +} + +type codebaseConsensus struct { + Type string `json:"type"` + Version string `json:"version"` +} + +type codebaseSDK struct { + Type string `json:"type"` + Version string `json:"version"` +} + +type codebaseIBC struct { + Type string `json:"type"` + Version string `json:"version"` +} + +type codebaseCosmwasm struct { + Version string `json:"version,omitempty"` + Enabled bool `json:"enabled"` +} + +type fees struct { + FeeTokens []feeToken `json:"fee_tokens"` +} + +type feeToken struct { + Denom string `json:"denom"` + FixedMinGasPrice float64 `json:"fixed_min_gas_price"` + LowGasPrice float64 `json:"low_gas_price"` + AverageGasPrice float64 `json:"average_gas_price"` + HighGasPrice float64 `json:"high_gas_price"` +} + +type apis struct { + RPC []apiProvider `json:"rpc"` + Rest []apiProvider `json:"rest"` + Grpc []apiProvider `json:"grpc"` +} + +type apiProvider struct { + Address string `json:"address"` + Provider string `json:"provider"` +} + +// SaveJSON saves the chainJSON to the given out directory. +func (c chainJSON) SaveJSON(out string) error { + bz, err := json.MarshalIndent(c, "", " ") + if err != nil { + return err + } + + return os.WriteFile(out, bz, 0o600) +} + +// https://raw.githubusercontent.com/cosmos/chain-registry/master/assetlist.schema.json +// https://github.com/cosmos/chain-registry?tab=readme-ov-file#assetlists +type assetListJSON struct { + ChainName string `json:"chain_name"` + Assets []asset `json:"assets"` +} + +type asset struct { + Description string `json:"description"` + DenomUnits []denomUnit `json:"denom_units"` + Base string `json:"base"` + Name string `json:"name"` + Display string `json:"display"` + Symbol string `json:"symbol"` + LogoURIs logoURIs `json:"logo_URIs"` + CoingeckoID string `json:"coingecko_id,omitempty"` + Socials socials `json:"socials,omitempty"` + TypeAsset string `json:"type_asset"` +} + +type denomUnit struct { + Denom string `json:"denom"` + Exponent int `json:"exponent"` +} + +type socials struct { + Website string `json:"website"` + Twitter string `json:"twitter"` +} + +type logoURIs struct { + Png string `json:"png"` + Svg string `json:"svg"` +} + +// SaveJSON saves the assetList to the given out directory. +func (c assetListJSON) SaveJSON(out string) error { + bz, err := json.MarshalIndent(c, "", " ") + if err != nil { + return err + } + + return os.WriteFile(out, bz, 0o600) +} + +// AddChainRegistryFiles generates the chain registry files in the scaffolded chains. +func (s Scaffolder) AddChainRegistryFiles(chain *chain.Chain, cfg *chainconfig.Config) error { + binaryName, err := chain.Binary() + if err != nil { + return errors.Wrap(err, "failed to get binary name") + } + + chainHome, err := chain.DefaultHome() + if err != nil { + return errors.Wrap(err, "failed to get default home directory") + } + + chainID, err := chain.ID() + if err != nil { + return errors.Wrap(err, "failed to get chain ID") + } + + chainGitURL, _ /* do not fail on non-existing git repo */ := xgit.RepositoryURL(chain.AppPath()) + + var ( + consensus codebaseConsensus + cosmwasm codebaseCosmwasm + ibc codebaseIBC + ) + + consensusVersion, err := getVersionOfFromGoMod(chain, "github.com/cometbft/cometbft") + if err == nil { + consensus = codebaseConsensus{ + Type: "cometbft", + Version: consensusVersion, + } + } + + cosmwasmVersion, err := getVersionOfFromGoMod(chain, "github.com/CosmWasm/wasmd") + if err == nil { + cosmwasm = codebaseCosmwasm{ + Version: cosmwasmVersion, + Enabled: true, + } + } + + ibcVersion, err := getVersionOfFromGoMod(chain, "github.com/cosmos/ibc-go") + if err == nil { + ibc = codebaseIBC{ + Type: "go", + Version: ibcVersion, + } + } + + // get validators from config and parse their coins + // we can assume it holds the base denom + defaultDenom := "stake" + if len(cfg.Validators) > 0 { + coin, err := sdk.ParseCoinNormalized(cfg.Validators[0].Bonded) + if err == nil { + defaultDenom = coin.Denom + } + } + + chainData := chainJSON{ + ChainName: chain.Name(), + PrettyName: chain.Name(), + ChainType: DefaultChainType, + Status: DefaultChainStatus, + NetworkType: DefaultNetworkType, + Website: "https://example.com", + ChainID: chainID, + Bech32Prefix: "cosmos", + DaemonName: binaryName, + NodeHome: chainHome, + KeyAlgos: []string{"secp256k1"}, + Slip44: 118, + Fees: fees{ + FeeTokens: []feeToken{ + { + Denom: defaultDenom, + FixedMinGasPrice: 0.025, + LowGasPrice: 0.01, + AverageGasPrice: 0.025, + HighGasPrice: 0.03, + }, + }, + }, + Staking: staking{ + StakingTokens: []stakingToken{ + { + Denom: defaultDenom, + }, + }, + }, + Codebase: codebase{ + GitRepo: chainGitURL, + RecommendedVersion: "v1.0.0", + CompatibleVersions: []string{"v1.0.0"}, + Sdk: codebaseSDK{ + Type: "cosmos", + Version: chain.Version.String(), + }, + Consensus: consensus, + Ibc: ibc, + Cosmwasm: cosmwasm, + }, + Apis: apis{ + RPC: []apiProvider{ + { + Address: "http://localhost:26657", + Provider: "localhost", + }, + }, + Rest: []apiProvider{ + { + Address: "http://localhost:1317", + Provider: "localhost", + }, + }, + Grpc: []apiProvider{ + { + Address: "localhost:9090", + Provider: "localhost", + }, + }, + }, + } + + assetListData := assetListJSON{ + ChainName: chainData.ChainName, + Assets: []asset{ + { + Description: fmt.Sprintf("The native token of the %s chain", chainData.ChainName), + DenomUnits: []denomUnit{ + { + Denom: defaultDenom, + Exponent: 0, + }, + }, + Base: defaultDenom, + Name: chainData.ChainName, + Symbol: strings.ToUpper(defaultDenom), + LogoURIs: logoURIs{ + Png: "https://ignite.com/favicon.ico", + Svg: "https://ignite.com/favicon.ico", + }, + TypeAsset: "sdk.coin", + Socials: socials{ + Website: "https://ignite.com", + Twitter: "https://x.com/ignite", + }, + }, + }, + } + + if err := chainData.SaveJSON(chainFilename); err != nil { + return err + } + + if err := assetListData.SaveJSON(assetListFilename); err != nil { + return err + } + + return nil +} + +func getVersionOfFromGoMod(chain *chain.Chain, pkg string) (string, error) { + chainPath := chain.AppPath() + + // get the version from the go.mod file + file, err := os.Open(filepath.Join(chainPath, "go.mod")) + if err != nil { + return "", err + } + defer file.Close() + + scanner := bufio.NewScanner(file) + for scanner.Scan() { + line := scanner.Text() + if strings.Contains(line, pkg) { + parts := strings.Fields(line) + if len(parts) > 1 { + return parts[len(parts)-1], nil + } + } + } + + if err := scanner.Err(); err != nil { + return "", err + } + + return "", errors.New("consensus version not found in go.mod") +} diff --git a/ignite/templates/app/files/app/app.go.plush b/ignite/templates/app/files/app/app.go.plush index 3b80c657af..162deff66c 100644 --- a/ignite/templates/app/files/app/app.go.plush +++ b/ignite/templates/app/files/app/app.go.plush @@ -79,7 +79,7 @@ type App struct { BankKeeper bankkeeper.Keeper StakingKeeper *stakingkeeper.Keeper SlashingKeeper slashingkeeper.Keeper - MintKeeper mintkeeper.Keeper + MintKeeper *mintkeeper.Keeper DistrKeeper distrkeeper.Keeper GovKeeper *govkeeper.Keeper UpgradeKeeper *upgradekeeper.Keeper diff --git a/ignite/templates/app/files/app/sim_test.go.plush b/ignite/templates/app/files/app/sim_test.go.plush index 76f6b486fe..f5103a7d52 100644 --- a/ignite/templates/app/files/app/sim_test.go.plush +++ b/ignite/templates/app/files/app/sim_test.go.plush @@ -101,7 +101,6 @@ func TestAppImportExport(t *testing.T) { skipPrefixes := map[string][][]byte{ stakingtypes.StoreKey: { stakingtypes.UnbondingQueueKey, stakingtypes.RedelegationQueueKey, stakingtypes.ValidatorQueueKey, - stakingtypes.UnbondingIDKey, stakingtypes.UnbondingIndexKey, stakingtypes.UnbondingTypeKey, }, authzkeeper.StoreKey: {authzkeeper.GrantQueuePrefix}, feegrant.StoreKey: {feegrant.FeeAllowanceQueueKeyPrefix}, diff --git a/ignite/templates/app/files/cmd/{{binaryNamePrefix}}d/cmd/commands.go.plush b/ignite/templates/app/files/cmd/{{binaryNamePrefix}}d/cmd/commands.go.plush index 5361937f59..87745316f7 100644 --- a/ignite/templates/app/files/cmd/{{binaryNamePrefix}}d/cmd/commands.go.plush +++ b/ignite/templates/app/files/cmd/{{binaryNamePrefix}}d/cmd/commands.go.plush @@ -137,15 +137,6 @@ func appExport( appOpts servertypes.AppOptions, modulesToExport []string, ) (servertypes.ExportedApp, error) { - viperAppOpts, ok := appOpts.(*viper.Viper) - if !ok { - return servertypes.ExportedApp{}, errors.New("appOpts is not viper.Viper") - } - - // overwrite the FlagInvCheckPeriod - viperAppOpts.Set(server.FlagInvCheckPeriod, 1) - appOpts = viperAppOpts - var bApp *app.App if height != -1 { bApp = app.New(logger, db, traceStore, false, appOpts) diff --git a/ignite/templates/app/files/go.mod.plush b/ignite/templates/app/files/go.mod.plush index fd35883063..dfa9bf1262 100644 --- a/ignite/templates/app/files/go.mod.plush +++ b/ignite/templates/app/files/go.mod.plush @@ -1,36 +1,8 @@ module <%= ModulePath %> -go 1.23.3 +go 1.23.4 -replace ( - cosmossdk.io/api => cosmossdk.io/api v0.7.3-0.20241202173430-9d9c19c0f854 - cosmossdk.io/client/v2 => cosmossdk.io/client/v2 v2.0.0-20241202180139-76f8af9617cd - cosmossdk.io/core => cosmossdk.io/core v1.0.0-alpha.6 - cosmossdk.io/core/testing => cosmossdk.io/core/testing v0.0.0-20241202173430-9d9c19c0f854 - cosmossdk.io/store => cosmossdk.io/store v1.0.0-rc.0.0.20241202173430-9d9c19c0f854 - cosmossdk.io/tools/confix => cosmossdk.io/tools/confix v0.0.0-20241202180139-76f8af9617cd - cosmossdk.io/x/accounts => cosmossdk.io/x/accounts v0.0.0-20241202180139-76f8af9617cd - cosmossdk.io/x/accounts/defaults/lockup => cosmossdk.io/x/accounts/defaults/lockup v0.0.0-20241202180139-76f8af9617cd - cosmossdk.io/x/accounts/defaults/multisig => cosmossdk.io/x/accounts/defaults/multisig v0.0.0-20241202180139-76f8af9617cd - cosmossdk.io/x/authz => cosmossdk.io/x/authz v0.0.0-20241202180139-76f8af9617cd - cosmossdk.io/x/bank => cosmossdk.io/x/bank v0.0.0-20241202180139-76f8af9617cd - cosmossdk.io/x/circuit => cosmossdk.io/x/circuit v0.0.0-20241202180139-76f8af9617cd - cosmossdk.io/x/consensus => cosmossdk.io/x/consensus v0.0.0-20241202180139-76f8af9617cd - cosmossdk.io/x/distribution => cosmossdk.io/x/distribution v0.0.0-20241202180139-76f8af9617cd - cosmossdk.io/x/epochs => cosmossdk.io/x/epochs v0.0.0-20241202180139-76f8af9617cd - cosmossdk.io/x/evidence => cosmossdk.io/x/evidence v0.0.0-20241202180139-76f8af9617cd - cosmossdk.io/x/feegrant => cosmossdk.io/x/feegrant v0.0.0-20241202180139-76f8af9617cd - cosmossdk.io/x/gov => cosmossdk.io/x/gov v0.0.0-20241202180139-76f8af9617cd - cosmossdk.io/x/group => cosmossdk.io/x/group v0.0.0-20241202180139-76f8af9617cd - cosmossdk.io/x/mint => cosmossdk.io/x/mint v0.0.0-20241202180139-76f8af9617cd - cosmossdk.io/x/nft => cosmossdk.io/x/nft v0.0.0-20241202180139-76f8af9617cd - cosmossdk.io/x/params => cosmossdk.io/x/params v0.0.0-20241202180139-76f8af9617cd - cosmossdk.io/x/protocolpool => cosmossdk.io/x/protocolpool v0.0.0-20241202180139-76f8af9617cd - cosmossdk.io/x/slashing => cosmossdk.io/x/slashing v0.0.0-20241202180139-76f8af9617cd - cosmossdk.io/x/staking => cosmossdk.io/x/staking v0.0.0-20241202180139-76f8af9617cd - cosmossdk.io/x/upgrade => cosmossdk.io/x/upgrade v0.0.0-20241202180139-76f8af9617cd - github.com/cosmos/cosmos-sdk => github.com/cosmos/cosmos-sdk v0.52.0-beta.2.0.20241203223452-5a18da34d859 -) +replace github.com/cosmos/cosmos-sdk => github.com/cosmos/cosmos-sdk v0.52.0-rc.1.0.20250107080912-2bcc7678255f replace ( // fix upstream GHSA-h395-qcrw-5vmq vulnerability. @@ -41,51 +13,51 @@ replace ( require ( cosmossdk.io/api v0.8.0 - cosmossdk.io/client/v2 v2.0.0 - cosmossdk.io/collections v0.4.1-0.20241128094659-bd76b47e1d8b + cosmossdk.io/client/v2 v2.10.0-beta.1 + cosmossdk.io/collections v1.0.0 cosmossdk.io/core v1.0.0 cosmossdk.io/depinject v1.1.0 cosmossdk.io/errors v1.0.1 - cosmossdk.io/errors/v2 v2.0.0-20241122152243-fdb7688804d1 + cosmossdk.io/errors/v2 v2.0.0 cosmossdk.io/log v1.5.0 - cosmossdk.io/math v1.4.0 - cosmossdk.io/store v1.1.1-0.20240909133312-50288938d1b6 - cosmossdk.io/tools/confix v0.1.2 - cosmossdk.io/x/accounts v0.0.0-20240913065641-0064ccbce64e - cosmossdk.io/x/authz v0.0.0-00010101000000-000000000000 - cosmossdk.io/x/bank v0.0.0-20240226161501-23359a0b6d91 - cosmossdk.io/x/circuit v0.1.1 - cosmossdk.io/x/consensus v0.0.0-00010101000000-000000000000 - cosmossdk.io/x/distribution v0.0.0-00010101000000-000000000000 - cosmossdk.io/x/epochs v0.0.0-20240522060652-a1ae4c3e0337 - cosmossdk.io/x/evidence v0.1.1 - cosmossdk.io/x/feegrant v0.1.1 - cosmossdk.io/x/gov v0.0.0-20231113122742-912390d5fc4a - cosmossdk.io/x/group v0.0.0-00010101000000-000000000000 - cosmossdk.io/x/mint v0.0.0-00010101000000-000000000000 - cosmossdk.io/x/nft v0.1.0 - cosmossdk.io/x/protocolpool v0.0.0-20230925135524-a1bc045b3190 - cosmossdk.io/x/slashing v0.0.0-00010101000000-000000000000 - cosmossdk.io/x/staking v0.0.0-00010101000000-000000000000 - cosmossdk.io/x/upgrade v0.1.4 + cosmossdk.io/math v1.5.0 + cosmossdk.io/store v1.10.0-rc.1.0.20241218084712-ca559989da43 + cosmossdk.io/tools/confix v0.2.0-rc.1 + cosmossdk.io/x/accounts v0.2.0-rc.1 + cosmossdk.io/x/authz v0.2.0-rc.1 + cosmossdk.io/x/bank v0.2.0-rc.1 + cosmossdk.io/x/circuit v0.2.0-rc.1 + cosmossdk.io/x/consensus v0.2.0-rc.1 + cosmossdk.io/x/distribution v0.2.0-rc.1 + cosmossdk.io/x/epochs v0.2.0-rc.1 + cosmossdk.io/x/evidence v0.2.0-rc.1 + cosmossdk.io/x/feegrant v0.2.0-rc.1 + cosmossdk.io/x/gov v0.2.0-rc.1 + cosmossdk.io/x/group v0.2.0-rc.1 + cosmossdk.io/x/mint v0.2.0-rc.1 + cosmossdk.io/x/nft v0.2.0-rc.1 + cosmossdk.io/x/protocolpool v0.2.0-rc.1 + cosmossdk.io/x/slashing v0.2.0-rc.1 + cosmossdk.io/x/staking v0.2.0-rc.1 + cosmossdk.io/x/upgrade v0.2.0-rc.1 github.com/bufbuild/buf v1.32.1 - github.com/cometbft/cometbft v1.0.0-rc2.0.20241127125717-4ce33b646ac9 - github.com/cometbft/cometbft/api v1.0.0-rc2 + github.com/cometbft/cometbft v1.0.0 + github.com/cometbft/cometbft/api v1.0.0 github.com/cosmos/cosmos-proto v1.0.0-beta.5 - github.com/cosmos/cosmos-sdk v0.52.0 + github.com/cosmos/cosmos-sdk v0.53.0 github.com/cosmos/gogoproto v1.7.0 github.com/golang/protobuf v1.5.4 github.com/gorilla/mux v1.8.1 github.com/grpc-ecosystem/grpc-gateway v1.16.0 - github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0 - github.com/spf13/cast v1.7.0 + github.com/grpc-ecosystem/grpc-gateway/v2 v2.24.0 + github.com/spf13/cast v1.7.1 github.com/spf13/cobra v1.8.1 github.com/spf13/pflag v1.0.5 github.com/spf13/viper v1.19.0 github.com/stretchr/testify v1.10.0 golang.org/x/tools v0.27.0 - google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1 - google.golang.org/grpc v1.68.0 + google.golang.org/genproto/googleapis/api v0.0.0-20241118233622-e639e219e697 + google.golang.org/grpc v1.69.2 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 - google.golang.org/protobuf v1.35.2 + google.golang.org/protobuf v1.36.1 ) \ No newline at end of file diff --git a/integration/other_components/cmd_chain_registry_test.go b/integration/other_components/cmd_chain_registry_test.go new file mode 100644 index 0000000000..0d7ae667a2 --- /dev/null +++ b/integration/other_components/cmd_chain_registry_test.go @@ -0,0 +1,38 @@ +//go:build !relayer + +package other_components_test + +import ( + "os" + "path/filepath" + "testing" + + "github.com/ignite/cli/v29/ignite/pkg/cmdrunner/step" + envtest "github.com/ignite/cli/v29/integration" + "github.com/stretchr/testify/require" +) + +func TestCreateChainRegistry(t *testing.T) { + var ( + env = envtest.New(t) + app = env.Scaffold("github.com/test/mars") + ) + + env.Must(env.Exec("create chain-registry files", + step.NewSteps(step.New( + step.Exec(envtest.IgniteApp, + "s", + "chain-registry", + ), + step.Workdir(app.SourcePath()), + )), + )) + + _, statErr := os.Stat(filepath.Join(app.SourcePath(), "chain.json")) + require.False(t, os.IsNotExist(statErr), "chain.json cannot be found") + + _, statErr = os.Stat(filepath.Join(app.SourcePath(), "assetlist.json")) + require.False(t, os.IsNotExist(statErr), "assetlist.json cannot be found") + + app.EnsureSteady() +} diff --git a/integration/plugin/testdata/example-plugin/go.mod b/integration/plugin/testdata/example-plugin/go.mod index cd0c8be008..b80a929971 100644 --- a/integration/plugin/testdata/example-plugin/go.mod +++ b/integration/plugin/testdata/example-plugin/go.mod @@ -3,7 +3,7 @@ module example-plugin go 1.23.1 replace ( - github.com/cosmos/cosmos-sdk => github.com/cosmos/cosmos-sdk v0.52.0-beta.2 + github.com/cosmos/cosmos-sdk => github.com/cosmos/cosmos-sdk v0.52.0-rc.1 github.com/ignite/cli/v29 => ../../../../ )