From 70c8e54303cf1d76e3205f8b0aff03b7c2300126 Mon Sep 17 00:00:00 2001 From: Julien Robert Date: Tue, 18 Mar 2025 13:20:40 +0100 Subject: [PATCH] docs: skip beta docs --- .github/workflows/gen-docs-version.yml | 11 +- .../version-v29/01-welcome/01-index.md | 60 - .../version-v29/01-welcome/02-install.md | 125 - .../version-v29/01-welcome/03-tutorials.md | 40 - .../version-v29/01-welcome/_category_.json | 4 - .../version-v29/02-guide/02-introduction.md | 150 - .../version-v29/02-guide/03-hello-world.md | 100 - .../version-v29/02-guide/04-ibc.md | 667 --- .../version-v29/02-guide/05-debug.md | 209 - .../version-v29/02-guide/06-docker.md | 142 - .../version-v29/02-guide/07-simapp.md | 164 - .../version-v29/02-guide/_category_.json | 4 - .../02-guide/images/packet_sendpost.png | Bin 402229 -> 0 bytes .../03-CLI-Commands/01-cli-commands.md | 3784 ----------------- .../03-CLI-Commands/_category_.json | 4 - .../version-v29/04-clients/01-go-client.md | 300 -- .../version-v29/04-clients/02-typescript.md | 430 -- .../version-v29/04-clients/03-vue.md | 174 - .../version-v29/04-clients/04-react.md | 130 - .../version-v29/04-clients/_category_.json | 4 - .../version-v29/04-network/01-chain.md | 237 -- .../version-v29/04-network/02-introduction.md | 75 - .../version-v29/04-network/03-coordinator.md | 146 - .../version-v29/04-network/04-validator.md | 161 - .../version-v29/04-network/05-coordination.md | 72 - .../version-v29/04-network/_category_.json | 4 - .../04-network/assets/generation.png | Bin 93425 -> 0 bytes .../version-v29/04-network/assets/genesis.png | Bin 135189 -> 0 bytes .../version-v29/04-network/assets/launch.png | Bin 198418 -> 0 bytes .../version-v29/04-network/assets/process.png | Bin 56924 -> 0 bytes .../04-network/assets/requests.png | Bin 109980 -> 0 bytes .../version-v29/05-contributing/01-docs.md | 105 - .../05-contributing/_category_.json | 4 - .../version-v29/06-migration/_category_.json | 4 - .../version-v29/06-migration/readme.md | 74 - .../version-v29/06-migration/v0.18.md | 458 -- .../version-v29/06-migration/v0.19.2.md | 26 - .../version-v29/06-migration/v0.20.0.md | 12 - .../version-v29/06-migration/v0.22.0.md | 36 - .../version-v29/06-migration/v0.24.0.md | 330 -- .../version-v29/06-migration/v0.25.0.md | 1187 ------ .../version-v29/06-migration/v0.25.1.md | 67 - .../version-v29/06-migration/v0.26.0.md | 263 -- .../version-v29/06-migration/v0.27.1.md | 1208 ------ .../version-v29/06-migration/v28.0.0.md | 124 - .../version-v29/07-packages/_category_.json | 4 - .../07-packages/cosmostxcollector.md | 200 - .../version-v29/08-references/01-cli.md | 3458 --------------- .../version-v29/08-references/02-config.md | 272 -- .../08-references/03-config_example.md | 87 - .../version-v29/08-references/_category_.json | 5 - .../version-v29/apps/01-using-apps.md | 42 - .../version-v29/apps/02-developing-apps.md | 258 -- .../version-v29/apps/_category_.json | 5 - .../version-v29-sidebars.json | 30 - docs/versions.json | 3 +- 56 files changed, 11 insertions(+), 15448 deletions(-) delete mode 100644 docs/versioned_docs/version-v29/01-welcome/01-index.md delete mode 100644 docs/versioned_docs/version-v29/01-welcome/02-install.md delete mode 100644 docs/versioned_docs/version-v29/01-welcome/03-tutorials.md delete mode 100644 docs/versioned_docs/version-v29/01-welcome/_category_.json delete mode 100644 docs/versioned_docs/version-v29/02-guide/02-introduction.md delete mode 100644 docs/versioned_docs/version-v29/02-guide/03-hello-world.md delete mode 100644 docs/versioned_docs/version-v29/02-guide/04-ibc.md delete mode 100644 docs/versioned_docs/version-v29/02-guide/05-debug.md delete mode 100644 docs/versioned_docs/version-v29/02-guide/06-docker.md delete mode 100644 docs/versioned_docs/version-v29/02-guide/07-simapp.md delete mode 100644 docs/versioned_docs/version-v29/02-guide/_category_.json delete mode 100644 docs/versioned_docs/version-v29/02-guide/images/packet_sendpost.png delete mode 100644 docs/versioned_docs/version-v29/03-CLI-Commands/01-cli-commands.md delete mode 100644 docs/versioned_docs/version-v29/03-CLI-Commands/_category_.json delete mode 100644 docs/versioned_docs/version-v29/04-clients/01-go-client.md delete mode 100644 docs/versioned_docs/version-v29/04-clients/02-typescript.md delete mode 100644 docs/versioned_docs/version-v29/04-clients/03-vue.md delete mode 100644 docs/versioned_docs/version-v29/04-clients/04-react.md delete mode 100644 docs/versioned_docs/version-v29/04-clients/_category_.json delete mode 100644 docs/versioned_docs/version-v29/04-network/01-chain.md delete mode 100644 docs/versioned_docs/version-v29/04-network/02-introduction.md delete mode 100644 docs/versioned_docs/version-v29/04-network/03-coordinator.md delete mode 100644 docs/versioned_docs/version-v29/04-network/04-validator.md delete mode 100644 docs/versioned_docs/version-v29/04-network/05-coordination.md delete mode 100644 docs/versioned_docs/version-v29/04-network/_category_.json delete mode 100644 docs/versioned_docs/version-v29/04-network/assets/generation.png delete mode 100644 docs/versioned_docs/version-v29/04-network/assets/genesis.png delete mode 100644 docs/versioned_docs/version-v29/04-network/assets/launch.png delete mode 100644 docs/versioned_docs/version-v29/04-network/assets/process.png delete mode 100644 docs/versioned_docs/version-v29/04-network/assets/requests.png delete mode 100644 docs/versioned_docs/version-v29/05-contributing/01-docs.md delete mode 100644 docs/versioned_docs/version-v29/05-contributing/_category_.json delete mode 100644 docs/versioned_docs/version-v29/06-migration/_category_.json delete mode 100644 docs/versioned_docs/version-v29/06-migration/readme.md delete mode 100644 docs/versioned_docs/version-v29/06-migration/v0.18.md delete mode 100644 docs/versioned_docs/version-v29/06-migration/v0.19.2.md delete mode 100644 docs/versioned_docs/version-v29/06-migration/v0.20.0.md delete mode 100644 docs/versioned_docs/version-v29/06-migration/v0.22.0.md delete mode 100644 docs/versioned_docs/version-v29/06-migration/v0.24.0.md delete mode 100644 docs/versioned_docs/version-v29/06-migration/v0.25.0.md delete mode 100644 docs/versioned_docs/version-v29/06-migration/v0.25.1.md delete mode 100644 docs/versioned_docs/version-v29/06-migration/v0.26.0.md delete mode 100644 docs/versioned_docs/version-v29/06-migration/v0.27.1.md delete mode 100644 docs/versioned_docs/version-v29/06-migration/v28.0.0.md delete mode 100644 docs/versioned_docs/version-v29/07-packages/_category_.json delete mode 100644 docs/versioned_docs/version-v29/07-packages/cosmostxcollector.md delete mode 100644 docs/versioned_docs/version-v29/08-references/01-cli.md delete mode 100644 docs/versioned_docs/version-v29/08-references/02-config.md delete mode 100644 docs/versioned_docs/version-v29/08-references/03-config_example.md delete mode 100644 docs/versioned_docs/version-v29/08-references/_category_.json delete mode 100644 docs/versioned_docs/version-v29/apps/01-using-apps.md delete mode 100644 docs/versioned_docs/version-v29/apps/02-developing-apps.md delete mode 100644 docs/versioned_docs/version-v29/apps/_category_.json delete mode 100644 docs/versioned_sidebars/version-v29-sidebars.json diff --git a/.github/workflows/gen-docs-version.yml b/.github/workflows/gen-docs-version.yml index 3b5ea175e5..a156416745 100644 --- a/.github/workflows/gen-docs-version.yml +++ b/.github/workflows/gen-docs-version.yml @@ -1,7 +1,7 @@ name: Docusaurus add version on: release: - types: [ published ] + types: [published] jobs: gen-docs-version: @@ -27,6 +27,15 @@ jobs: run: yarn install working-directory: ./docs + - name: Skip beta versions + continue-on-error: false + run: | + VERSION=${{ github.ref_name }} + if [[ $VERSION == *beta* ]]; then + echo "Skipping beta version" + exit 1 + fi + - name: Generate docusaurus docs for major version run: | VERSION=${{ github.ref_name }} diff --git a/docs/versioned_docs/version-v29/01-welcome/01-index.md b/docs/versioned_docs/version-v29/01-welcome/01-index.md deleted file mode 100644 index 5ec736cfd2..0000000000 --- a/docs/versioned_docs/version-v29/01-welcome/01-index.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -slug: / ---- - -import ProjectsTable from '@site/src/components/ProjectsTable'; - -# Introduction to Ignite CLI: Your Gateway to Blockchain Innovation - -[Ignite CLI](https://github.com/ignite/cli) is a powerful tool that simplifies the journey of building, testing, and launching diverse blockchain applications. Developed on top of the [Cosmos SDK](https://docs.cosmos.network), the leading framework for blockchain technology, Ignite CLI is pivotal in streamlining the development process. It enables developers to focus on the unique aspects of their projects, from DeFi and NFTs to supply chain solutions and smart contracts. -Beyond these, Ignite has been instrumental in a wide array of blockchain applications, ranging from VPNs and gaming platforms to blogs, oracle systems, and innovative consensus mechanisms. This demonstrates its versatility in supporting a broad spectrum of blockchain-based solutions. - -## Key Features of Ignite CLI - -- **Simplified Blockchain Development:** Ignite CLI, leveraging Cosmos SDK, makes building sovereign application-specific blockchains intuitive and efficient. -- **Comprehensive Scaffolding:** Easily scaffold modules, messages, CRUD operations, IBC packets, and more, expediting the development of complex functionalities. -- **Development with Live Reloading:** Start and test your blockchain node with real-time updates, enhancing your development workflow. -- **Frontend Flexibility:** Utilize pre-built templates for Vue.js, React, Typescript or Go, catering to diverse frontend development needs. -- **Inter-Blockchain Communication (IBC):** Seamlessly connect and interact with other blockchains using an integrated IBC relayer, a key feature of the Cosmos SDK. -- **CometBFT Integration:** Built with the CometBFT consensus engine (formerly Tendermint), ensuring robust consensus mechanisms in your blockchain solutions. -- **Cross-Domain Applications:** Ignite is perfectly suited for developing a diverse array of use cases across various sectors. These include DeFi, NFTs, supply chain management, smart contracts (both EVM and WASM), and decentralized exchanges (DEXes). - -## Install Ignite CLI - -Get started with Ignite CLI by running this simple installation command: - -``` -curl https://get.ignite.com/cli! | bash -``` - -## Embracing the Cosmos Ecosystem - -Ignite CLI is your entry point into the vibrant Cosmos ecosystem, a hub of innovation where you can explore a range of applications, from wallets and explorers to smart contracts and DEXes, all powered by CometBFT and the Cosmos SDK. -This ecosystem is home to over [$50 billion worth of blockchain projects](https://cosmos.network/ecosystem/tokens/), showcasing the scalability and versatility of the technologies at play. - -## Projects using Tendermint and Cosmos SDK - -Many projects already showcase the Tendermint BFT consensus engine and the Cosmos SDK. Explore -the [Cosmos ecosystem](https://cosmos.network/ecosystem/apps) to discover a wide variety of apps, blockchains, wallets, -and explorers that are built in the Cosmos ecosystem. - -## Projects building with Ignite CLI - - diff --git a/docs/versioned_docs/version-v29/01-welcome/02-install.md b/docs/versioned_docs/version-v29/01-welcome/02-install.md deleted file mode 100644 index 50af550c5d..0000000000 --- a/docs/versioned_docs/version-v29/01-welcome/02-install.md +++ /dev/null @@ -1,125 +0,0 @@ ---- -sidebar_position: 1 -description: Steps to install Ignite CLI on your local computer. ---- - -# Install Ignite CLI - -You can run [Ignite CLI](https://github.com/ignite/cli) in a web-based IDE or you can install Ignite CLI on your local computer. - -## Prerequisites - -Be sure you have met the prerequisites before you install and use Ignite CLI. - -### Operating systems - -Ignite CLI is supported for the following operating systems: - -- GNU/Linux -- macOS -- Windows Subsystem for Linux (WSL) - -### Go - -Ignite CLI is written in the Go programming language. To use Ignite CLI on a local system: - -- Install [Go](https://golang.org/doc/install) (**version 1.23** or higher) -- Ensure the Go environment variables are [set properly](https://golang.org/doc/gopath_code#GOPATH) on your system - -## Verify your Ignite CLI version - -To verify the version of Ignite CLI you have installed, run the following command: - -```bash -ignite version -``` - -## Installing Ignite CLI - -To install the latest version of Ignite use [HomeBrew](https://formulae.brew.sh/formula/ignite) on macOS and GNU/Linux: - -```sh -brew install ignite -``` - -Or use Snap on GNU/Linux: - -```sh -snap install ignite --classic -``` - -### Install manually - -Alternatively, you can install the latest version of the `ignite` binary use the following command: - -```bash -curl https://get.ignite.com/cli! | bash -``` - -This command invokes `curl` to download the installation script and pipes the output to `bash` to perform the -installation. The `ignite` binary is installed in `/usr/local/bin`. - -Ignite CLI installation requires write permission to the `/usr/local/bin/` directory. If the installation fails because -you do not have write permission to `/usr/local/bin/`, run the following command: - -```bash -curl https://get.ignite.com/cli | bash -``` - -Then run this command to move the `ignite` executable to `/usr/local/bin/`: - -```bash -sudo mv ignite /usr/local/bin/ -``` - -On some machines, a permissions error occurs: - -```bash -mv: rename ./ignite to /usr/local/bin/ignite: Permission denied -============ -Error: mv failed -``` - -In this case, use sudo before `curl` and before `bash`: - -```bash -sudo curl https://get.ignite.com/cli | sudo bash -``` - -To learn more or customize the installation process, see the [installer docs](https://github.com/ignite/installer) on -GitHub. - -## Upgrading your Ignite CLI installation {#upgrade} - -Before you install a new version of Ignite CLI, remove all existing Ignite CLI installations. - -To remove the current Ignite CLI installation: - -1. On your terminal window, press `Ctrl+C` to stop the chain that you started with `ignite chain serve`. -2. Remove the Ignite CLI binary with `rm $(which ignite)`. - Depending on your user permissions, run the command with or without `sudo`. -3. Repeat this step until all `ignite` installations are removed from your system. - -After all existing Ignite CLI installations are removed, follow the [Installing Ignite CLI](#installing-ignite-cli) -instructions. - -For details on version features and changes, see -the [changelog.md](https://github.com/ignite/cli/blob/main/changelog.md) -in the repo. - -## Build from source - -To experiment with the source code, you can build from source: - -```bash -git clone https://github.com/ignite/cli --depth=1 -cd cli && make install -``` - -## Summary - -- Verify the prerequisites. -- To set up a local development environment, install Ignite CLI locally on your computer. -- Install Ignite CLI by fetching the binary using cURL or by building from source. -- The latest version is installed by default. You can install previous versions of the precompiled `ignite` binary. -- Stop the chain and remove existing versions before installing a new version. diff --git a/docs/versioned_docs/version-v29/01-welcome/03-tutorials.md b/docs/versioned_docs/version-v29/01-welcome/03-tutorials.md deleted file mode 100644 index 1e2a4a42a1..0000000000 --- a/docs/versioned_docs/version-v29/01-welcome/03-tutorials.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -sidebar_position: 2 -description: Try out our tutorials ---- - -# Tutorials - -Welcome to the Ignite Developer Tutorials, your gateway to mastering blockchain development. These comprehensive tutorials are designed for learners at all levels, from beginners to seasoned developers, offering both foundational knowledge and hands-on experience. - -## What You Will Learn - -- **Getting Started with Ignite CLI**: Install the Ignite CLI and set up your development environment. This foundational step is necessary for all the tutorials that follow. - -- **Create and Run Your First Blockchain**: Learn to create and run your own blockchain, understanding how to start and manage a node locally for development purposes. - -- **Hello World Tutorial**: Engage in the excitement of blockchain development by making your blockchain respond with "Hello, World!" This includes learning to scaffold a Cosmos SDK query and modify keeper methods. - -- **Debugging a Blockchain**: Develop essential skills in debugging to maintain efficient and effective blockchain development. - -- **Running in a Docker Container**: Learn how to use Docker to containerize your blockchain environment, ensuring consistency and portability across development stages. - -- **Chain Simulation**: Understand the importance and method of simulating blockchain environments for testing and validating functionality under various scenarios. - -If you want to learn more about creating modules and how to work with your blockchain: - -Visit the Tutorials at [tutorials.ignite.com](https://tutorials.ignite.com). - -You will find our evergreen tutorials like: - -- How to build a Blog - -- Create a DeFi Loan Module - -- How to create a Rollkit Sovereign Rollup Blockchain - -- Use Ignite Extensions, like Hermes or add CosmWasm to your Blockchain. - -- And many more! - -Embark on your journey to become a proficient Blockchain Developer with Ignite's Developer Tutorials! \ No newline at end of file diff --git a/docs/versioned_docs/version-v29/01-welcome/_category_.json b/docs/versioned_docs/version-v29/01-welcome/_category_.json deleted file mode 100644 index 5437d69109..0000000000 --- a/docs/versioned_docs/version-v29/01-welcome/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Welcome", - "link": null -} \ No newline at end of file diff --git a/docs/versioned_docs/version-v29/02-guide/02-introduction.md b/docs/versioned_docs/version-v29/02-guide/02-introduction.md deleted file mode 100644 index bcd2f8bbd2..0000000000 --- a/docs/versioned_docs/version-v29/02-guide/02-introduction.md +++ /dev/null @@ -1,150 +0,0 @@ ---- -sidebar_position: 2 ---- - -# Introduction - -In this tutorial, we will be using Ignite CLI to create a new blockchain. Ignite -CLI is a command line interface that allows users to quickly and easily create -blockchain networks. By using Ignite CLI, we can quickly create a new blockchain -without having to manually set up all the necessary components. - -Once we have created our blockchain with Ignite CLI, we will take a look at the -directory structure and files that were created. This will give us an -understanding of how the blockchain is organized and how the different -components of the blockchain interact with each other. - -By the end of this tutorial, you will have a basic understanding of how to use -Ignite CLI to create a new blockchain, and you will have a high-level -understanding of the directory structure and files that make up a blockchain. -This knowledge will be useful as you continue to explore the world of blockchain -development. - -## Creating a new blockchain - -To create a new blockchain project with Ignite, you will need to run the -following command: - -``` -ignite scaffold chain example -``` - -The `ignite scaffold chain` command will create a new blockchain in a new -directory `example`. - -The new blockchain is built using the Cosmos SDK framework and imports several -standard modules to provide a range of functionality. These modules include -`staking`, which enables a delegated Proof-of-Stake consensus mechanism, `bank` -for facilitating fungible token transfers between accounts, and `gov` for -on-chain governance. In addition to these modules, the blockchain also imports -other modules from the Cosmos SDK framework. - -The `example` directory contains the generated files and directories that make -up the structure of a Cosmos SDK blockchain. This directory includes files for -the chain's configuration, application logic, and tests, among others. It -provides a starting point for developers to quickly set up a new Cosmos SDK -blockchain and build their desired functionality on top of it. - -By default, Ignite creates a new empty custom module with the same name as the -blockchain being created (in this case, `example`) in the `x/` directory. This -module doesn't have any functionality by itself, but can serve as a starting -point for building out the features of your application. If you don't want to -create this module, you can use the `--no-module` flag to skip it. - -## Directory structure - -In order to understand what the Ignite CLI has generated for your project, you -can inspect the contents of the `example/` directory. - -The `app/` directory contains the files that connect the different parts of the -blockchain together. The most important file in this directory is `app.go`, -which includes the type definition of the blockchain and functions for creating -and initializing it. This file is responsible for wiring together the various -components of the blockchain and defining how they will interact with each -other. - -The `cmd/` directory contains the main package responsible for the command-line -interface (CLI) of the compiled binary. This package defines the commands that -can be run from the CLI and how they should be executed. It is an important part -of the blockchain project as it provides a way for developers and users to -interact with the blockchain and perform various tasks, such as querying the -blockchain state or sending transactions. - -The `docs/` directory is used for storing project documentation. By default, -this directory includes an OpenAPI specification file, which is a -machine-readable format for defining the API of a software project. The OpenAPI -specification can be used to automatically generate human-readable documentation -for the project, as well as provide a way for other tools and services to -interact with the API. The `docs/` directory can be used to store any additional -documentation that is relevant to the project. - -The `proto/` directory contains protocol buffer files, which are used to -describe the data structure of the blockchain. Protocol buffers are a language- -and platform-neutral mechanism for serializing structured data, and are often -used in the development of distributed systems, such as blockchain networks. The -protocol buffer files in the `proto/` directory define the data structures and -messages that are used by the blockchain, and are used to generate code for -various programming languages that can be used to interact with the blockchain. -In the context of the Cosmos SDK, protocol buffer files are used to define the -specific types of data that can be sent and received by the blockchain, as well -as the specific RPC endpoints that can be used to access the blockchain's -functionality. - -The `testutil/` directory contains helper functions that are used for testing. -These functions provide a convenient way to perform common tasks that are needed -when writing tests for the blockchain, such as creating test accounts, -generating transactions, and checking the state of the blockchain. By using the -helper functions in the `testutil/` directory, developers can write tests more -quickly and efficiently, and can ensure that their tests are comprehensive and -effective. - -The `x/` directory contains custom Cosmos SDK modules that have been added to -the blockchain. Standard Cosmos SDK modules are pre-built components that -provide common functionality for Cosmos SDK-based blockchains, such as support -for staking and governance. Custom modules, on the other hand, are modules that -have been developed specifically for the blockchain project and provide -project-specific functionality. - -The `config.yml` file is a configuration file that can be used to customize the -blockchain during development. This file includes settings that control various -aspects of the blockchain, such as the network's ID, account balances, and the -node parameters. - -The `.github` directory contains a GitHub Actions workflow that can be used to -automatically build and release a blockchain binary. GitHub Actions is a tool -that allows developers to automate their software development workflows, -including building, testing, and deploying their projects. The workflow in the -`.github` directory is used to automate the process of building the blockchain -binary and releasing it, which can save time and effort for developers. - -The `readme.md` file is a readme file that provides an overview of the -blockchain project. This file typically includes information such as the -project's name and purpose, as well as instructions on how to build and run the -blockchain. By reading the `readme.md` file, developers and users can quickly -understand the purpose and capabilities of the blockchain project and get -started using it. - -## Starting a blockchain node - -To start a blockchain node in development, you can run the following command: - -``` -ignite chain serve -``` - -The `ignite chain serve` command is used to start a blockchain node in -development mode. It first compiles and installs the binary using the -`ignite chain build` command, then initializes the blockchain's data directory -for a single validator using the `ignite chain init` command. After that, it -starts the node locally and enables automatic code reloading so that changes to -the code can be reflected in the running blockchain without having to restart -the node. This allows for faster development and testing of the blockchain. - -Congratulations! 🥳 You have successfully created a brand-new Cosmos blockchain -using the Ignite CLI. This blockchain uses the delegated proof of stake (DPoS) -consensus algorithm, and comes with a set of standard modules for token -transfers, governance, and inflation. Now that you have a basic understanding of -your Cosmos blockchain, it's time to start building custom functionality. In the -following tutorials, you will learn how to build custom modules and add new -features to your blockchain, allowing you to create a unique and powerful -decentralized application. diff --git a/docs/versioned_docs/version-v29/02-guide/03-hello-world.md b/docs/versioned_docs/version-v29/02-guide/03-hello-world.md deleted file mode 100644 index b0666d0d73..0000000000 --- a/docs/versioned_docs/version-v29/02-guide/03-hello-world.md +++ /dev/null @@ -1,100 +0,0 @@ ---- -description: Build your first blockchain and your first Cosmos SDK query. -title: Hello World ---- - -# "Hello world!" Blockchain Tutorial with Ignite CLI - -**Introduction** - -In this tutorial, you'll build a simple blockchain using Ignite CLI that responds to a custom query with "Hello %s!", where "%s" is a name passed in the query. -This will enhance your understanding of creating custom queries in a Cosmos SDK blockchain. - -## Setup and Scaffold - -1. **Create a New Blockchain:** - -```bash -ignite scaffold chain hello -``` - -2. **Navigate to the Blockchain Directory:** - -```bash -cd hello -``` - -## Adding a Custom Query - -- **Scaffold the Query:** - -```bash -ignite scaffold query say-hello name --response name -``` - -This command generates code for a new query, `say-hello`, which accepts a name, an input, and returns it in the response. - -- **Understanding the Scaffolded Code:** - - - `proto/hello/hello/query.proto`: Defines the request and response structure. - - `x/hello/client/cli/query_say_hello.go`: Contains the CLI commands for the query. - - `x/hello/keeper/query_say_hello.go`: Houses the logic for the query response. - - -## Customizing the Query Response - -In the Cosmos SDK, queries are requests for information from the blockchain, used to access data like the ledger's current state or transaction details. While the SDK offers several built-in query methods, developers can also craft custom queries for specific data retrieval or complex operations. - -- **Modify `query_say_hello.go`:** - -Update the `SayHello` function in `x/hello/keeper/query_say_hello.go` to return a personalized greeting query. - -```go title="x/hello/keeper/query_say_hello.go" -package keeper - -import ( - "context" - "fmt" - - "hello/x/hello/types" - - sdk "github.com/cosmos/cosmos-sdk/types" - "google.golang.org/grpc/codes" - "google.golang.org/grpc/status" -) - -func (q queryServer) SayHello(ctx context.Context, req *types.QuerySayHelloRequest) (*types.QuerySayHelloResponse, error) { - if req == nil { - return nil, status.Error(codes.InvalidArgument, "invalid request") - } - - // Validation and Context unwrapping - sdkCtx := sdk.UnwrapSDKContext(ctx) - - _ = sdkCtx - // Custom Response - return &types.QuerySayHelloResponse{Name: fmt.Sprintf("Hello %s!", req.Name)}, nil -} -``` - -## Running the Blockchain - -1. **Start the Blockchain:** - -```bash -ignite chain serve -``` - -2. **Test the Query:** - -Use the command-line interface to submit a query. - -``` -hellod q hello say-hello world -``` - -Expect a response: `Hello world!` - -## Conclusion - -Congratulations! 🎉 You've successfully created a blockchain module with a custom query using Ignite CLI. Through this tutorial, you've learned how to scaffold a chain, add a custom query, and modify the logic for personalized responses. This experience illustrates the power of Ignite CLI in streamlining blockchain development and the importance of understanding the underlying code for customization. \ No newline at end of file diff --git a/docs/versioned_docs/version-v29/02-guide/04-ibc.md b/docs/versioned_docs/version-v29/02-guide/04-ibc.md deleted file mode 100644 index e351f85ace..0000000000 --- a/docs/versioned_docs/version-v29/02-guide/04-ibc.md +++ /dev/null @@ -1,667 +0,0 @@ ---- -sidebar_position: 7 -description: Build an understanding of how to create and send packets across blockchains and navigate between blockchains. -title: "Inter-Blockchain Communication: Basics" ---- - -# Inter-Blockchain Communication: Basics - -The Inter-Blockchain Communication protocol (IBC) is an important part of the -Cosmos SDK ecosystem. The Hello World tutorial is a time-honored tradition in -computer programming. This tutorial builds an understanding of how to create and -send packets across blockchain. This foundational knowledge helps you navigate -between blockchains with the Cosmos SDK. - -**You will learn how to** - -- Use IBC to create and send packets between blockchains. -- Navigate between blockchains using the Cosmos SDK and the Ignite CLI Relayer. -- Create a basic blog post and save the post on another blockchain. - -## What is IBC? - -The Inter-Blockchain Communication protocol (IBC) allows blockchains to talk to -each other. IBC handles transport across different sovereign blockchains. This -end-to-end, connection-oriented, stateful protocol provides reliable, ordered, -and authenticated communication between heterogeneous blockchains. - -The [IBC protocol in the Cosmos -SDK](https://ibc.cosmos.network/main/ibc/overview) is the standard for the -interaction between two blockchains. The IBCmodule interface defines how packets -and messages are constructed to be interpreted by the sending and the receiving -blockchain. - -The IBC relayer lets you connect between sets of IBC-enabled chains. This -tutorial teaches you how to create two blockchains and then start and use the -relayer with Ignite CLI to connect two blockchains. - -This tutorial covers essentials like modules, IBC packets, relayer, and the -lifecycle of packets routed through IBC. - -## Create a blockchain - -Create a blockchain app with a blog module to write posts on other blockchains -that contain the Hello World message. For this tutorial, you can write posts for -the Cosmos SDK universe that contain Hello Mars, Hello Cosmos, and Hello Earth -messages. - -For this simple example, create an app that contains a blog module that has a -post transaction with title and text. - -After you define the logic, run two blockchains that have this module installed. - -- The chains can send posts between each other using IBC. - -- On the sending chain, save the `acknowledged` and `timed out` posts. - -After the transaction is acknowledged by the receiving chain, you know that the -post is saved on both blockchains. - -- The sending chain has the additional data `postID`. - -- Sent posts that are acknowledged and timed out contain the title and the - target chain of the post. These identifiers -- are visible on the parameter `chain`. The following chart shows the lifecycle - of a packet that travels through IBC. - -![The Lifecycle of an IBC packet](./images/packet_sendpost.png) - -## Build your blockchain app - -Use Ignite CLI to scaffold the blockchain app and the blog module. - -### Build a new blockchain - -To scaffold a new blockchain named `planet`: - -```bash -ignite scaffold chain planet --no-module -cd planet -``` - -A new directory named `planet` is created in your home directory. The `planet` -directory contains a working blockchain app. - -### Scaffold the blog module inside your blockchain - -Next, use Ignite CLI to scaffold a blog module with IBC capabilities. The blog -module contains the logic for creating blog posts and routing them through IBC -to the second blockchain. - -To scaffold a module named `blog`: - -```bash -ignite scaffold module blog --ibc -``` - -A new directory with the code for an IBC module is created in `planet/x/blog`. -Modules scaffolded with the `--ibc` flag include all the logic for the -scaffolded IBC module. - -### Generate CRUD actions for types - -Next, create the CRUD actions for the blog module types. - -Use the `ignite scaffold list` command to scaffold the boilerplate code for the -create, read, update, and delete (CRUD) actions. - -These `ignite scaffold list` commands create CRUD code for the following -transactions: - -- Creating blog posts - -```bash -ignite scaffold list post title content creator --no-message --module blog -``` - -- Processing acknowledgments for sent posts - -```bash -ignite scaffold list sentPost postID:uint title chain creator --no-message --module blog -``` - -- Managing post timeouts - -```bash -ignite scaffold list timeoutPost title chain creator --no-message --module blog -``` - -The scaffolded code includes proto files for defining data structures, messages, -messages handlers, keepers for modifying the state, and CLI commands. - -### Ignite CLI Scaffold List Command Overview - -``` -ignite scaffold list [typeName] [field1] [field2] ... [flags] -``` - -The first argument of the `ignite scaffold list [typeName]` command specifies -the name of the type being created. For the blog app, you created `post`, -`sentPost`, and `timeoutPost` types. - -The next arguments define the fields that are associated with the type. For the -blog app, you created `title`, `content`, `postID`, and `chain` fields. - -The `--module` flag defines which module the new transaction type is added to. -This optional flag lets you manage multiple modules within your Ignite CLI app. -When the flag is not present, the type is scaffolded in the module that matches -the name of the repo. - -When a new type is scaffolded, the default behavior is to scaffold messages that -can be sent by users for CRUD operations. The `--no-message` flag disables this -feature. Disable the messages option for the app since you want the posts to be -created upon reception of IBC packets and not directly created from a user's -messages. - -### Scaffold a sendable and interpretable IBC packet - -You must generate code for a packet that contains the title and the content of -the blog post. - -The `ignite packet` command creates the logic for an IBC packet that can be sent -to another blockchain. - -- The `title` and `content` are stored on the target chain. - -- The `postID` is acknowledged on the sending chain. - -To scaffold a sendable and interpretable IBC packet: - -```bash -ignite scaffold packet ibcPost title content --ack postID:uint --module blog -``` - -Notice the fields in the `ibcPost` packet match the fields in the `post` type -that you created earlier. - -- The `--ack` flag defines which identifier is returned to the sending - blockchain. - -- The `--module` flag specifies to create the packet in a particular IBC module. - -The `ignite packet` command also scaffolds the CLI command that is capable of -sending an IBC packet: - -```bash -planetd tx blog send-ibcPost [portID] [channelID] [title] [content] -``` - -## Modify the source code - -After you create the types and transactions, you must manually insert the logic -to manage updates in the database. Modify the source code to save the data as -specified earlier in this tutorial. - -### Add creator to the blog post packet - -Start with the proto file that defines the structure of the IBC packet. - -To identify the creator of the post in the receiving blockchain, add the -`creator` field inside the packet. This field was not specified directly in the -command because it would automatically become a parameter in the `SendIbcPost` -CLI command. - -```protobuf title="proto/planet/blog/packet.proto" -message IbcPostPacketData { - string title = 1; - string content = 2; - // highlight-next-line - string creator = 3; -} -``` - -To make sure the receiving chain has content on the creator of a blog post, add -the `msg.Creator` value to the IBC `packet`. - -- The content of the `sender` of the message is automatically included in - `SendIbcPost` message. -- The sender is verified as the signer of the message, so you can add the - `msg.Sender` as the creator to the new packet -- before it is sent over IBC. - -```go title="x/blog/keeper/msg_server_ibc_post.go" -package keeper - -func (k msgServer) SendIbcPost(goCtx context.Context, msg *types.MsgSendIbcPost) (*types.MsgSendIbcPostResponse, error) { - // validate incoming message - if _, err := k.addressCodec.StringToBytes(msg.Creator); err != nil { - return nil, errorsmod.Wrap(sdkerrors.ErrInvalidAddress, fmt.Sprintf("invalid address: %s", err)) - } - - if msg.Port == "" { - return nil, errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "invalid packet port") - } - - if msg.ChannelID == "" { - return nil, errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "invalid packet channel") - } - - if msg.TimeoutTimestamp == 0 { - return nil, errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "invalid packet timeout") - } - - // TODO: logic before transmitting the packet - - // Construct the packet - var packet types.IbcPostPacketData - - packet.Title = msg.Title - packet.Content = msg.Content - // highlight-next-line - packet.Creator = msg.Creator - - // Transmit the packet - ctx := sdk.UnwrapSDKContext(goCtx) - _, err := k.TransmitIbcPostPacket( - ctx, - packet, - msg.Port, - msg.ChannelID, - clienttypes.ZeroHeight(), - msg.TimeoutTimestamp, - ) - if err != nil { - return nil, err - } - - return &types.MsgSendIbcPostResponse{}, nil -} -``` - -### Receive the post - -The methods for primary transaction logic are in the `x/blog/keeper/ibc_post.go` -file. Use these methods to manage IBC packets: - -- `TransmitIbcPostPacket` is called manually to send the packet over IBC. This - method also defines the logic before the packet is sent over IBC to another - blockchain app. -- `OnRecvIbcPostPacket` hook is automatically called when a packet is received - on the chain. This method defines the packet reception logic. -- `OnAcknowledgementIbcPostPacket` hook is called when a sent packet is - acknowledged on the source chain. This method defines the logic when the - packet has been received. -- `OnTimeoutIbcPostPacket` hook is called when a sent packet times out. This - method defines the logic when the packet is not received on the target chain - -You must modify the source code to add the logic inside those functions so that -the data tables are modified accordingly. - -On reception of the post message, create a new post with the title and the -content on the receiving chain. - -To identify the blockchain app that a message is originating from and who -created the message, use an identifier in the following format: - -`--` - -Finally, the Ignite CLI-generated AppendPost function returns the ID of the new -appended post. You can return this value to the source chain through -acknowledgment. - -Append the type instance as `PostId` on receiving the packet: - -- The context `ctx` is an [immutable data - structure](https://docs.cosmos.network/main/core/context#go-context-package) - that has header data from the transaction. See [how the context is - initiated](https://github.com/cosmos/cosmos-sdk/blob/main/types/context.go#L71) -- The identifier format that you defined earlier -- The `title` is the Title of the blog post -- The `content` is the Content of the blog post - -Then modify the `OnRecvIbcPostPacket` keeper function with the following code: - -```go title="x/blog/keeper/ibc_post.go" -package keeper - -func (k Keeper) OnRecvIbcPostPacket(ctx sdk.Context, packet channeltypes.Packet, data types.IbcPostPacketData) (packetAck types.IbcPostPacketAck, err error) { - packetAck.PostId, err = k.PostSeq.Next(ctx) - if err != nil { - return packetAck, err - } - return packetAck, k.Post.Set(ctx, packetAck.PostId, types.Post{Title: data.Title, Content: data.Content}) -} -``` - -### Receive the post acknowledgement - -On the sending blockchain, store a `sentPost` so you know that the post has been -received on the target chain. - -Store the title and the target to identify the post. - -When a packet is scaffolded, the default type for the received acknowledgment -data is a type that identifies if the packet treatment has failed. The -`Acknowledgement_Error` type is set if `OnRecvIbcPostPacket` returns an error -from the packet. - -```go title="x/blog/keeper/ibc_post.go" -package keeper - -func (k Keeper) OnAcknowledgementIbcPostPacket(ctx sdk.Context, packet channeltypes.Packet, data types.IbcPostPacketData, ack channeltypes.Acknowledgement) error { - switch dispatchedAck := ack.Response.(type) { - case *channeltypes.Acknowledgement_Error: - // We will not treat acknowledgment error in this tutorial - return nil - case *channeltypes.Acknowledgement_Result: - // Decode the packet acknowledgment - var packetAck types.IbcPostPacketAck - if err := types.ModuleCdc.UnmarshalJSON(dispatchedAck.Result, &packetAck); err != nil { - // The counter-party module doesn't implement the correct acknowledgment format - return errors.New("cannot unmarshal acknowledgment") - } - - seq, err := k.SentPostSeq.Next(ctx) - if err != nil { - return err - } - - return k.SentPost.Set(ctx, seq, - types.SentPost{ - PostId: packetAck.PostId, - Title: data.Title, - Chain: packet.DestinationPort + "-" + packet.DestinationChannel, - }, - ) - default: - return errors.New("the counter-party module does not implement the correct acknowledgment format") - } -} -``` - -### Store information about the timed-out packet - -Store posts that have not been received by target chains in `timeoutPost` -posts. This logic follows the same format as `sentPost`. - -```go title="x/blog/keeper/ibc_post.go" -func (k Keeper) OnTimeoutIbcPostPacket(ctx sdk.Context, packet channeltypes.Packet, data types.IbcPostPacketData) error { - seq, err := k.TimeoutPostSeq.Next(ctx) - if err != nil { - return err - } - - return k.TimeoutPost.Set(ctx, seq, - types.TimeoutPost{ - Title: data.Title, - Chain: packet.DestinationPort + "-" + packet.DestinationChannel, - }, - ) -} -``` - -This last step completes the basic `blog` module setup. The blockchain is now -ready! - -## Use the IBC modules - -You can now spin up the blockchain and send a blog post from one blockchain app -to the other. Multiple terminal windows are required to complete these next -steps. - -### Test the IBC modules - -To test the IBC module, start two blockchain networks on the same machine. Both -blockchains use the same source code. Each blockchain has a unique chain ID. - -One blockchain is named `earth` and the other blockchain is named `mars`. - -The `earth.yml` and `mars.yml` files are required in the project directory: - -```yaml title="earth.yml" -version: 1 -build: - proto: - path: proto -accounts: -- name: alice - coins: - - 1000token - - 100000000stake -- name: bob - coins: - - 500token - - 100000000stake -faucet: - name: bob - coins: - - 5token - - 100000stake - host: 0.0.0.0:4500 -genesis: - chain_id: earth -validators: -- name: alice - bonded: 100000000stake - home: $HOME/.earth -``` - -```yaml title="mars.yml" -version: 1 -build: - proto: - path: proto -accounts: -- name: alice - coins: - - 1000token - - 1000000000stake -- name: bob - coins: - - 500token - - 100000000stake -faucet: - name: bob - coins: - - 5token - - 100000stake - host: :4501 -genesis: - chain_id: mars -validators: -- name: alice - bonded: 100000000stake - app: - api: - address: :1318 - grpc: - address: :9092 - grpc-web: - address: :9093 - config: - p2p: - laddr: :26658 - rpc: - laddr: :26659 - pprof_laddr: :6061 - home: $HOME/.mars -``` - -Open a terminal window and run the following command to start the `earth` -blockchain: - -```bash -ignite chain serve -c earth.yml -``` - -Open a different terminal window and run the following command to start the -`mars` blockchain: - -```bash -ignite chain serve -c mars.yml -``` - -### Remove Existing Relayer and Ignite CLI Configurations - -If you previously used the relayer, follow these steps to remove exiting relayer -and Ignite CLI configurations: - -- Stop your blockchains and delete previous configuration files: - - ```bash - rm -rf ~/.ignite/relayer - ``` - -If existing relayer configurations do not exist, the command returns `no matches -found` and no action is taken. - -### Configure and start the relayer - -First, add the Hermes relayer app. - -```bash -ignite app install -g github.com/ignite/apps/hermes -``` - -and after configure the relayer. - -```bash -ignite relayer hermes configure \ -"earth" "http://localhost:26657" "http://localhost:9090" \ -"mars" "http://localhost:26659" "http://localhost:9092" \ ---chain-a-faucet "http://0.0.0.0:4500" \ ---chain-b-faucet "http://0.0.0.0:4501" \ ---chain-a-port-id "blog" \ ---chain-b-port-id "blog" \ ---channel-version "blog-1" -``` - -When prompted, press Enter to accept the default values for `Chain A Account` and -`Chain B Account`. - -The output looks like: - -``` -Hermes config created at /Users/danilopantani/.ignite/relayer/hermes/earth_mars -? Chain earth doesn't have a default Hermes key. Type your mnemonic to continue or type enter to generate a new one: (optional) -New mnemonic generated: danger plate flavor twist chimney myself sketch assist copy expand core tattoo ignore ensure quote mean forum carbon enroll gadget immense grab early maze -Chain earth key created -Chain earth relayer wallet: cosmos1jk6wmyl880j6t9vw6umy9v8ex0yhrfwgx0vv2d -New balance from faucet: 100000stake,5token -? Chain mars doesn't have a default Hermes key. Type your mnemonic to continue or type enter to generate a new one: (optional) -New mnemonic generated: invest box icon session lens demise purse link boss dwarf give minimum jazz eye vocal seven sunset coach express want ask version anger ranch -Chain mars key created -Chain mars relayer wallet: cosmos1x9kt37c0sutanaqwy9gxpvq5990yt0qnpqntmp -New balance from faucet: 100000stake,5token -Client '07-tendermint-0' created (earth -> mars) -Client 07-tendermint-0' created (mars -> earth) -Connection 'earth (connection-0) <-> mars (connection-0)' created -Channel 'earth (channel-0) <-> mars (channel-0)' created -``` - -Now start the relayer: - -```bash -ignite relayer hermes start "earth" "mars" -``` - -### Send packets - -You can now send packets and verify the received posts: - -```bash -planetd tx blog send-ibc-post blog channel-0 "Hello" "Hello Mars, I'm Alice from Earth" --from alice --chain-id earth --home ~/.earth -``` - -To verify that the post has been received on Mars: - -```bash -planetd q blog list-post --node tcp://localhost:26659 -``` - -The packet has been received: - -```yaml -Post: - - content: Hello Mars, I'm Alice from Earth - creator: blog-channel-0-cosmos1aew8dk9cs3uzzgeldatgzvm5ca2k4m98xhy20x - id: "0" - title: Hello -pagination: - next_key: null - total: "1" -``` - -To check if the packet has been acknowledged on Earth: - -```bash -planetd q blog list-sent-post -``` - -Output: - -```yaml -SentPost: - - chain: blog-channel-0 - creator: cosmos1aew8dk9cs3uzzgeldatgzvm5ca2k4m98xhy20x - id: "0" - postID: "0" - title: Hello -pagination: - next_key: null - total: "1" -``` - -To test timeout, set the timeout time of a packet to 1 nanosecond, verify that -the packet is timed out, and check the timed-out posts: - -```bash -planetd tx blog send-ibc-post blog channel-0 "Sorry" "Sorry Mars, you will never see this post" --from alice --chain-id earth --home ~/.earth --packet-timeout-timestamp 1 -``` - -Check the timed-out posts: - -```bash -planetd q blog list-timeout-post -``` - -Results: - -```yaml -TimeoutPost: - - chain: blog-channel-0 - creator: cosmos1fhpcsxn0g8uask73xpcgwxlfxtuunn3ey5ptjv - id: "0" - title: Sorry -pagination: - next_key: null - total: "2" -``` - -You can also send a post from Mars: - -```bash -planetd tx blog send-ibc-post blog channel-0 "Hello" "Hello Earth, I'm Alice from Mars" --from alice --chain-id mars --home ~/.mars --node tcp://localhost:26659 -``` - -List post on Earth: - -```bash -planetd q blog list-post -``` - -Results: - -```yaml -Post: - - content: Hello Earth, I'm Alice from Mars - creator: blog-channel-0-cosmos1xtpx43l826348s59au24p22pxg6q248638q2tf - id: "0" - title: Hello -pagination: - next_key: null - total: "1" -``` - -## Congratulations 🎉 - -By completing this tutorial, you've learned to use the Inter-Blockchain -Communication protocol (IBC). - -Here's what you accomplished in this tutorial: - -- Built two Hello blockchain apps as IBC modules -- Modified the generated code to add CRUD action logic -- Configured and used the Ignite CLI relayer to connect two blockchains with - each other -- Transferred IBC packets from one blockchain to another diff --git a/docs/versioned_docs/version-v29/02-guide/05-debug.md b/docs/versioned_docs/version-v29/02-guide/05-debug.md deleted file mode 100644 index ee73027510..0000000000 --- a/docs/versioned_docs/version-v29/02-guide/05-debug.md +++ /dev/null @@ -1,209 +0,0 @@ ---- -description: Debugging your Cosmos SDK blockchain ---- - -# Debugging a chain - -Ignite chain debug command can help you find issues during development. It uses -[Delve](https://github.com/go-delve/delve) debugger which enables you to -interact with your blockchain app by controlling the execution of the process, -evaluating variables, and providing information of thread / goroutine state, CPU -register state and more. - -## Debug Command - -The debug command requires that the blockchain app binary is build with -debugging support by removing optimizations and inlining. A debug binary is -built by default by the `ignite chain serve` command or can optionally be -created using the `--debug` flag when running `ignite chain init` or `ignite -chain build` sub-commands. - -To start a debugging session in the terminal run: - -``` -ignite chain debug -``` - -The command runs your blockchain app in the background, attaches to it and -launches a terminal debugger shell: - -``` -Type 'help' for list of commands. -(dlv) -``` - -At this point the blockchain app blocks execution, so you can set one or more -breakpoints before continuing execution. - -Use the -[break](https://github.com/go-delve/delve/blob/master/Documentation/cli/README.md#break) -(alias `b`) command to set any number of breakpoints using, for example the -`:` notation: - -``` -(dlv) break x/hello/client/cli/query_say_hello.go:14 -``` - -This command adds a breakpoint to the `x/hello/client/cli/query_say_hello.go` -file at line 14. - -Once all breakpoints are set resume blockchain execution using the -[continue](https://github.com/go-delve/delve/blob/master/Documentation/cli/README.md#continue) -(alias `c`) command: - -``` -(dlv) continue -``` - -The debugger will launch the shell and stop blockchain execution again when a -breakpoint is triggered. - -Within the debugger shell use the `quit` (alias `q`) or `exit` commands to stop -the blockchain app and exit the debugger. - -## Debug Server - -A debug server can optionally be started in cases where the default terminal -client is not desirable. When the server starts it first runs the blockchain -app, attaches to it and finally waits for a client connection. The default -server address is *tcp://127.0.0.1:30500* and it accepts both JSON-RPC or DAP -client connections. - -To start a debug server use the following flag: - -``` -ignite chain debug --server -``` - -To start a debug server with a custom address use the following flags: - -``` -ignite chain debug --server --server-address 127.0.0.1:30500 -``` - -The debug server stops automatically when the client connection is closed. - -## Debugging Clients - -### Gdlv: Multiplatform Delve UI - -[Gdlv](https://github.com/aarzilli/gdlv) is a graphical frontend to Delve for -Linux, Windows and macOS. - -Using it as debugging client is straightforward as it doesn't require any -configuration. Once the debug server is running and listening for client -requests connect to it by running: - -``` -gdlv connect 127.0.0.1:30500 -``` - -Setting breakpoints and continuing execution is done in the same way as Delve, -by using the `break` and `continue` commands. - -### Visual Studio Code - -Using [Visual Studio Code](https://code.visualstudio.com/) as debugging client -requires an initial configuration to allow it to connect to the debug server. - -Make sure that the [Go](https://code.visualstudio.com/docs/languages/go) -extension is installed. - -VS Code debugging is configured using the `launch.json` file which is usually -located inside the `.vscode` folder in your workspace. - -You can use the following launch configuration to set up VS Code as debugging -client: - -```json title=launch.json -{ - "version": "0.2.0", - "configurations": [ - { - "name": "Connect to Debug Server", - "type": "go", - "request": "attach", - "mode": "remote", - "remotePath": "${workspaceFolder}", - "port": 30500, - "host": "127.0.0.1" - } - ] -} -``` - -Alternatively it's possible to create a custom `launch.json` file from the "Run -and Debug" panel. When prompted choose the Go debugger option labeled "Go: -Connect to Server" and enter the debug host address and then the port number. - -## Example: Debugging a Blockchain App - -In this short example we will be using Ignite CLI to create a new blockchain and -a query to be able to trigger a debugging breakpoint when the query is called. - -Create a new blockchain: - -``` -ignite scaffold chain hello -``` - -Scaffold a new query in the `hello` directory: - -``` -ignite scaffold query say-hello name --response name -``` - -The next step initializes the blockchain's data directory and compiles a debug -binary: - -``` -ignite chain init --debug -``` - -Once the initialization finishes launch the debugger shell: - -``` -ignite chain debug -``` - -Within the debugger shell create a breakpoint that will be triggered when the -`SayHello` function is called and then continue execution: - -``` -(dlv) break x/hello/keeper/query_say_hello.go:12 -(dlv) continue -``` - -From a different terminal use the `hellod` binary to call the query: - -``` -hellod query hello say-hello bob -``` - -A debugger shell will be launched when the breakpoint is triggered: - -``` - 7: "google.golang.org/grpc/codes" - 8: "google.golang.org/grpc/status" - 9: "hello/x/hello/types" - 10: ) - 11: -=> 12: func (k Keeper) SayHello(goCtx context.Context, req *types.QuerySayHelloRequest) (*types.QuerySayHelloResponse, error) { - 13: if req == nil { - 14: return nil, status.Error(codes.InvalidArgument, "invalid request") - 15: } - 16: - 17: ctx := sdk.UnwrapSDKContext(goCtx) -``` - -From then on you can use Delve commands like `next` (alias `n`) or `print` -(alias `p`) to control execution and print values. For example, to print the -*name* argument value use the `print` command followed by "req.Name": - -``` -(dlv) print req.Name -"bob" -``` - -Finally, use `quit` (alias `q`) to stop the blockchain app and finish the -debugging session. diff --git a/docs/versioned_docs/version-v29/02-guide/06-docker.md b/docs/versioned_docs/version-v29/02-guide/06-docker.md deleted file mode 100644 index f1c27d3fa6..0000000000 --- a/docs/versioned_docs/version-v29/02-guide/06-docker.md +++ /dev/null @@ -1,142 +0,0 @@ ---- -description: Run Ignite CLI using a Docker container. ---- - -# Running inside a Docker container - -You can run Ignite CLI inside a Docker container without installing the Ignite -CLI binary directly on your machine. - -Running Ignite CLI in Docker can be useful for various reasons; isolating your -test environment, running Ignite CLI on an unsupported operating system, or -experimenting with a different version of Ignite CLI without installing it. - -Docker containers are like virtual machines because they provide an isolated -environment to programs that runs inside them. In this case, you can run Ignite -CLI in an isolated environment. - -Experimentation and file system impact is limited to the Docker instance. The -host machine is not impacted by changes to the container. - -## Prerequisites - -Docker must be installed. See [Get Started with -Docker](https://www.docker.com/get-started). - -## Ignite CLI Commands in Docker - -After you scaffold and start a chain in your Docker container, all Ignite CLI -commands are available. Just type the commands after `docker run -ti -ignite/cli`. For example: - -```bash -docker run -ti ignitehq/cli -h -docker run -ti ignitehq/cli scaffold chain planet -docker run -ti ignitehq/cli chain serve -``` - -## Scaffolding a chain - -When Docker is installed, you can build a blockchain with a single command. - -Ignite CLI, and the chains you serve with Ignite CLI, persist some files. When -using the CLI binary directly, those files are located in `$HOME/.ignite` and -`$HOME/.cache`, but in the context of Docker it's better to use a directory -different from `$HOME`, so we use `$HOME/sdh`. This folder should be created -manually prior to the docker commands below, or else Docker creates it with the -root user. - -```bash -mkdir $HOME/sdh -``` - -To scaffold a blockchain `planet` in the `/apps` directory in the container, run -this command in a terminal window: - -```bash -docker run -ti -v $HOME/sdh:/home/tendermint -v $PWD:/apps ignitehq/cli:0.25.2 scaffold chain planet -``` - -Be patient, this command takes a minute or two to run because it does everything -for you: - -- Creates a container that runs from the `ignitehq/cli:0.25.2` image. -- Executes the Ignite CLI binary inside the image. -- `-v $HOME/sdh:/home/tendermint` maps the `$HOME/sdh` directory in your local - computer (the host machine) to the home directory `/home/tendermint` inside - the container. -- `-v $PWD:/apps` maps the current directory in the terminal window on the host - machine to the `/apps` directory in the container. You can optionally specify - an absolute path instead of `$PWD`. - - Using `-w` and `-v` together provides file persistence on the host machine. - The application source code on the Docker container is mirrored to the file - system of the host machine. - - **Note:** The directory name for the `-w` and `-v` flags can be a name other - than `/app`, but the same directory must be specified for both flags. If you - omit `-w` and `-v`, the changes are made in the container only and are lost - when that container is shut down. - -## Starting a blockchain - -To start the blockchain node in the Docker container you just created, run this -command: - -```bash -docker run -ti -v $HOME/sdh:/home/tendermint -v $PWD:/apps -p 1317:1317 -p 26657:26657 ignitehq/cli:0.25.2 chain serve -p planet -``` - -This command does the following: - -- `-v $HOME/sdh:/home/tendermint` maps the `$HOME/sdh` directory in your local - computer (the host machine) to the home directory `/home/tendermint` inside - the container. -- `-v $PWD:/apps` persists the scaffolded app in the container to the host - machine at current working directory. -- `serve -p planet` specifies to use the `planet` directory that contains the - source code of the blockchain. -- `-p 1317:1317` maps the API server port (cosmos-sdk) to the host machine to - forward port 1317 listening inside the container to port 1317 on the host - machine. -- `-p 26657:26657` maps RPC server port 26657 (tendermint) on the host machine - to port 26657 in Docker. -- After the blockchain is started, open `http://localhost:26657` to see the - Tendermint API. -- The `-v` flag specifies for the container to access the application's source - code from the host machine, so it can build and run it. - -## Versioning - -You can specify which version of Ignite CLI to install and run in your Docker -container. - -### Latest version - -- By default, `ignite/cli` resolves to `ignite/cli:latest`. -- The `latest` image tag is always the latest stable [Ignite CLI - release](https://github.com/ignite/cli/releases). - -For example, if latest release is -[v0.25.2](https://github.com/ignite/cli/releases/tag/v0.25.2), the `latest` tag -points to the `0.25.2` tag. - -### Specific version - -You can specify to use a specific version of Ignite CLI. All available tags are -in the [ignite/cli -image](https://hub.docker.com/r/ignitehq/cli/tags?page=1&ordering=last_updated) on -Docker Hub. - -For example: - -- Use `ignitehq/cli:0.25.2` (without the `v` prefix) to use version `0.25.2`. -- Use `ignitehq/cli` to use the latest version. -- Use `ignitehq/cli:main` to use the `main` branch, so you can experiment with - the upcoming version. - -To get the latest image, run `docker pull`. - -```bash -docker pull ignitehq/cli:main -``` diff --git a/docs/versioned_docs/version-v29/02-guide/07-simapp.md b/docs/versioned_docs/version-v29/02-guide/07-simapp.md deleted file mode 100644 index a6aff362b9..0000000000 --- a/docs/versioned_docs/version-v29/02-guide/07-simapp.md +++ /dev/null @@ -1,164 +0,0 @@ ---- -sidebar_position: 10 -description: Test different scenarios for your chain. ---- - -# Chain simulation - -The Ignite CLI chain simulator can help you to run your chain based in -randomized inputs for you can make fuzz testing and also benchmark test for your -chain, simulating the messages, blocks, and accounts. You can scaffold a -template to perform simulation testing in each module along with a boilerplate -simulation methods for each scaffolded message. - -## Module simulation - -Every new module that is scaffolded with Ignite CLI implements the Cosmos SDK -[Module -Simulation](https://docs.cosmos.network/main/building-modules/simulator). - -- Each new message creates a file with the simulation methods required for the - tests. -- Scaffolding a `CRUD` type like a `list` or `map` creates a simulation file - with `create`, `update`, and `delete` simulation methods in the - `x//simulation` folder and registers these methods in - `x//module_simulation.go`. -- Scaffolding a single message creates an empty simulation method to be - implemented by the user. - -We recommend that you maintain the simulation methods for each new modification -into the message keeper methods. - -Every simulation is weighted because the sender of the operation is assigned -randomly. The weight defines how much the simulation calls the message. - -For better randomizations, you can define a random seed. The simulation with the -same random seed is deterministic with the same output. - -## Scaffold a simulation - -To create a new chain: - -``` -ignite scaffold chain mars -``` - -Review the empty `x/mars/simulation` folder and the -`x/mars/module_simulation.go` file to see that a simulation is not registered. - -Now, scaffold a new message: - -``` -ignite scaffold list user address balance:uint state -``` - -A new file `x/mars/simulation/user.go` is created and is registered with the -weight in the `x/mars/module_simulation.go` file. - -Be sure to define the proper simulation weight with a minimum weight of 0 and a -maximum weight of 100. - -For this example, change the `defaultWeightMsgDeleteUser` to 30 and the -`defaultWeightMsgUpdateUser` to 50. - -Run the `BenchmarkSimulation` method into `app/simulation_test.go` to run -simulation tests for all modules: - -``` -ignite chain simulate -``` - -You can also define flags that are provided by the simulation. Flags are defined -by the method `simapp.GetSimulatorFlags()`: - -``` -ignite chain simulate -v --numBlocks 200 --blockSize 50 --seed 33 -``` - -Wait for the entire simulation to finish and check the result of the messages. - -The default `go test` command works to run the simulation: - -``` -go test -v -benchmem -run=^$ -bench ^BenchmarkSimulation -cpuprofile cpu.out ./app -Commit=true -``` - -### Skip message - -Use logic to avoid sending a message without returning an error. Return only -`simtypes.NoOpMsg(...)` into the simulation message handler. - -## Params - -Scaffolding a module with params automatically adds the module in the -`module_simulaton.go` file: - -``` -ignite s module earth --params channel:string,minLaunch:uint,maxLaunch:int -``` - -After the parameters are scaffolded, change the -`x//module_simulation.go` file to set the random parameters into the -`RandomizedParams` method. The simulation will change the params randomly -according to call the function. - -## Invariants - -Simulating a chain can help you prevent [chain invariants -errors](https://docs.cosmos.network/main/building-modules/invariants). An -invariant is a function called by the chain to check if something broke, -invalidating the chain data. To create a new invariant and check the chain -integrity, you must create a method to validate the invariants and register all -invariants. - - -For example, in `x/earth/keeper/invariants.go`: - -```go title="x/earth/keeper/invariants.go" -package keeper - -import ( - "fmt" - - sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/tendermint/spn/x/launch/types" -) - -const zeroLaunchTimestampRoute = "zero-launch-timestamp" - -// RegisterInvariants registers all module invariants -func RegisterInvariants(ir sdk.InvariantRegistry, k Keeper) { - ir.RegisterRoute(types.ModuleName, zeroLaunchTimestampRoute, - ZeroLaunchTimestampInvariant(k)) -} - -// ZeroLaunchTimestampInvariant invariant that checks if the -// `LaunchTimestamp is zero -func ZeroLaunchTimestampInvariant(k Keeper) sdk.Invariant { - return func(ctx sdk.Context) (string, bool) { - all := k.GetAllChain(ctx) - for _, chain := range all { - if chain.LaunchTimestamp == 0 { - return sdk.FormatInvariant( - types.ModuleName, zeroLaunchTimestampRoute, - "LaunchTimestamp is not set while LaunchTriggered is set", - ), true - } - } - return "", false - } -} -``` - -Now, register the keeper invariants into the `x/earth/module.go` file: - -```go -package earth - -// ... - -// RegisterInvariants registers the capability module's invariants. -func (am AppModule) RegisterInvariants(ir sdk.InvariantRegistry) { - keeper.RegisterInvariants(ir, am.keeper) -} -``` diff --git a/docs/versioned_docs/version-v29/02-guide/_category_.json b/docs/versioned_docs/version-v29/02-guide/_category_.json deleted file mode 100644 index ba16a05dc5..0000000000 --- a/docs/versioned_docs/version-v29/02-guide/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Getting Started", - "link": null -} \ No newline at end of file diff --git a/docs/versioned_docs/version-v29/02-guide/images/packet_sendpost.png b/docs/versioned_docs/version-v29/02-guide/images/packet_sendpost.png deleted file mode 100644 index c96cdcdd3e6c3e1637c46bc368c89fca52d85012..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 402229 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 d+F7Fu!S78Bjz>Pmd=p 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⩔7{smITr}MG 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 z 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%0A?=RMVZFR)NX9W#4$roT_N5ddr_~OZ%~tZ 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 diff --git a/docs/versioned_docs/version-v29/03-CLI-Commands/01-cli-commands.md b/docs/versioned_docs/version-v29/03-CLI-Commands/01-cli-commands.md deleted file mode 100644 index b70e8d627b..0000000000 --- a/docs/versioned_docs/version-v29/03-CLI-Commands/01-cli-commands.md +++ /dev/null @@ -1,3784 +0,0 @@ ---- -description: Ignite CLI docs. ---- - -# CLI commands - -Documentation for Ignite CLI. -## ignite - -Ignite CLI offers everything you need to scaffold, test, build, and launch your blockchain - -**Synopsis** - -Ignite CLI is a tool for creating sovereign blockchains built with Cosmos SDK, the world's -most popular modular blockchain framework. Ignite CLI offers everything you need to scaffold, -test, build, and launch your blockchain. - -To get started, create a blockchain: - - ignite scaffold chain example - - -**Options** - -``` - -h, --help help for ignite -``` - -**SEE ALSO** - -* [ignite account](#ignite-account) - Create, delete, and show Ignite accounts -* [ignite app](#ignite-app) - Create and manage Ignite Apps -* [ignite chain](#ignite-chain) - Build, init and start a blockchain node -* [ignite completion](#ignite-completion) - Generates shell completion script. -* [ignite docs](#ignite-docs) - Show Ignite CLI docs -* [ignite generate](#ignite-generate) - Generate clients, API docs from source code -* [ignite network](#ignite-network) - Launch a blockchain in production -* [ignite node](#ignite-node) - Make requests to a live blockchain node -* [ignite relayer](#ignite-relayer) - Connect blockchains with an IBC relayer -* [ignite scaffold](#ignite-scaffold) - Create a new blockchain, module, message, query, and more -* [ignite version](#ignite-version) - Print the current build information -* [ignite testnet](#ignite-testnet) - Start a testnet local - - -## ignite account - -Create, delete, and show Ignite accounts - -**Synopsis** - -Commands for managing Ignite accounts. An Ignite account is a private/public -keypair stored in a keyring. Currently Ignite accounts are used when interacting -with Ignite relayer commands and when using "ignite network" commands. - -Note: Ignite account commands are not for managing your chain's keys and accounts. Use -you chain's binary to manage accounts from "config.yml". For example, if your -blockchain is called "mychain", use "mychaind keys" to manage keys for the -chain. - - -**Options** - -``` - -h, --help help for account - --keyring-backend string keyring backend to store your account keys (default "test") - --keyring-dir string accounts keyring directory (default "/home/runner/.ignite/accounts") -``` - -**SEE ALSO** - -* [ignite](#ignite) - Ignite CLI offers everything you need to scaffold, test, build, and launch your blockchain -* [ignite account create](#ignite-account-create) - Create a new account -* [ignite account delete](#ignite-account-delete) - Delete an account by name -* [ignite account export](#ignite-account-export) - Export an account as a private key -* [ignite account import](#ignite-account-import) - Import an account by using a mnemonic or a private key -* [ignite account list](#ignite-account-list) - Show a list of all accounts -* [ignite account show](#ignite-account-show) - Show detailed information about a particular account - - -## ignite account create - -Create a new account - -``` -ignite account create [name] [flags] -``` - -**Options** - -``` - -h, --help help for create -``` - -**Options inherited from parent commands** - -``` - --keyring-backend string keyring backend to store your account keys (default "test") - --keyring-dir string accounts keyring directory (default "/home/runner/.ignite/accounts") -``` - -**SEE ALSO** - -* [ignite account](#ignite-account) - Create, delete, and show Ignite accounts - - -## ignite account delete - -Delete an account by name - -``` -ignite account delete [name] [flags] -``` - -**Options** - -``` - -h, --help help for delete -``` - -**Options inherited from parent commands** - -``` - --keyring-backend string keyring backend to store your account keys (default "test") - --keyring-dir string accounts keyring directory (default "/home/runner/.ignite/accounts") -``` - -**SEE ALSO** - -* [ignite account](#ignite-account) - Create, delete, and show Ignite accounts - - -## ignite account export - -Export an account as a private key - -``` -ignite account export [name] [flags] -``` - -**Options** - -``` - -h, --help help for export - --non-interactive do not enter into interactive mode - --passphrase string passphrase to encrypt the exported key - --path string path to export private key. default: ./key_[name] -``` - -**Options inherited from parent commands** - -``` - --keyring-backend string keyring backend to store your account keys (default "test") - --keyring-dir string accounts keyring directory (default "/home/runner/.ignite/accounts") -``` - -**SEE ALSO** - -* [ignite account](#ignite-account) - Create, delete, and show Ignite accounts - - -## ignite account import - -Import an account by using a mnemonic or a private key - -``` -ignite account import [name] [flags] -``` - -**Options** - -``` - -h, --help help for import - --non-interactive do not enter into interactive mode - --passphrase string passphrase to decrypt the imported key (ignored when secret is a mnemonic) - --secret string Your mnemonic or path to your private key (use interactive mode instead to securely pass your mnemonic) -``` - -**Options inherited from parent commands** - -``` - --keyring-backend string keyring backend to store your account keys (default "test") - --keyring-dir string accounts keyring directory (default "/home/runner/.ignite/accounts") -``` - -**SEE ALSO** - -* [ignite account](#ignite-account) - Create, delete, and show Ignite accounts - - -## ignite account list - -Show a list of all accounts - -``` -ignite account list [flags] -``` - -**Options** - -``` - --address-prefix string account address prefix (default "cosmos") - -h, --help help for list -``` - -**Options inherited from parent commands** - -``` - --keyring-backend string keyring backend to store your account keys (default "test") - --keyring-dir string accounts keyring directory (default "/home/runner/.ignite/accounts") -``` - -**SEE ALSO** - -* [ignite account](#ignite-account) - Create, delete, and show Ignite accounts - - -## ignite account show - -Show detailed information about a particular account - -``` -ignite account show [name] [flags] -``` - -**Options** - -``` - --address-prefix string account address prefix (default "cosmos") - -h, --help help for show -``` - -**Options inherited from parent commands** - -``` - --keyring-backend string keyring backend to store your account keys (default "test") - --keyring-dir string accounts keyring directory (default "/home/runner/.ignite/accounts") -``` - -**SEE ALSO** - -* [ignite account](#ignite-account) - Create, delete, and show Ignite accounts - - -## ignite app - -Create and manage Ignite Apps - -**Options** - -``` - -h, --help help for app -``` - -**SEE ALSO** - -* [ignite](#ignite) - Ignite CLI offers everything you need to scaffold, test, build, and launch your blockchain -* [ignite app describe](#ignite-app-describe) - Print information about installed apps -* [ignite app install](#ignite-app-install) - Install app -* [ignite app list](#ignite-app-list) - List installed apps -* [ignite app scaffold](#ignite-app-scaffold) - Scaffold a new Ignite App -* [ignite app uninstall](#ignite-app-uninstall) - Uninstall app -* [ignite app update](#ignite-app-update) - Update app - - -## ignite app describe - -Print information about installed apps - -**Synopsis** - -Print information about an installed Ignite App commands and hooks. - -``` -ignite app describe [path] [flags] -``` - -**Examples** - -``` -ignite app describe github.com/org/my-app/ -``` - -**Options** - -``` - -h, --help help for describe -``` - -**SEE ALSO** - -* [ignite app](#ignite-app) - Create and manage Ignite Apps - - -## ignite app install - -Install app - -**Synopsis** - -Installs an Ignite App. - -Respects key value pairs declared after the app path to be added to the generated configuration definition. - -``` -ignite app install [path] [key=value]... [flags] -``` - -**Examples** - -``` -ignite app install github.com/org/my-app/ foo=bar baz=qux -``` - -**Options** - -``` - -g, --global use global plugins configuration ($HOME/.ignite/apps/igniteapps.yml) - -h, --help help for install -``` - -**SEE ALSO** - -* [ignite app](#ignite-app) - Create and manage Ignite Apps - - -## ignite app list - -List installed apps - -**Synopsis** - -Prints status and information of all installed Ignite Apps. - -``` -ignite app list [flags] -``` - -**Options** - -``` - -h, --help help for list -``` - -**SEE ALSO** - -* [ignite app](#ignite-app) - Create and manage Ignite Apps - - -## ignite app scaffold - -Scaffold a new Ignite App - -**Synopsis** - -Scaffolds a new Ignite App in the current directory. - -A git repository will be created with the given module name, unless the current directory is already a git repository. - -``` -ignite app scaffold [name] [flags] -``` - -**Examples** - -``` -ignite app scaffold github.com/org/my-app/ -``` - -**Options** - -``` - -h, --help help for scaffold -``` - -**SEE ALSO** - -* [ignite app](#ignite-app) - Create and manage Ignite Apps - - -## ignite app uninstall - -Uninstall app - -**Synopsis** - -Uninstalls an Ignite App specified by path. - -``` -ignite app uninstall [path] [flags] -``` - -**Examples** - -``` -ignite app uninstall github.com/org/my-app/ -``` - -**Options** - -``` - -g, --global use global plugins configuration ($HOME/.ignite/apps/igniteapps.yml) - -h, --help help for uninstall -``` - -**SEE ALSO** - -* [ignite app](#ignite-app) - Create and manage Ignite Apps - - -## ignite app update - -Update app - -**Synopsis** - -Updates an Ignite App specified by path. - -If no path is specified all declared apps are updated. - -``` -ignite app update [path] [flags] -``` - -**Examples** - -``` -ignite app update github.com/org/my-app/ -``` - -**Options** - -``` - -h, --help help for update -``` - -**SEE ALSO** - -* [ignite app](#ignite-app) - Create and manage Ignite Apps - - -## ignite chain - -Build, init and start a blockchain node - -**Synopsis** - -Commands in this namespace let you to build, initialize, and start your -blockchain node locally for development purposes. - -To run these commands you should be inside the project's directory so that -Ignite can find the source code. To ensure that you are, run "ls", you should -see the following files in the output: "go.mod", "x", "proto", "app", etc. - -By default the "build" command will identify the "main" package of the project, -install dependencies if necessary, set build flags, compile the project into a -binary and install the binary. The "build" command is useful if you just want -the compiled binary, for example, to initialize and start the chain manually. It -can also be used to release your chain's binaries automatically as part of -continuous integration workflow. - -The "init" command will build the chain's binary and use it to initialize a -local validator node. By default the validator node will be initialized in your -$HOME directory in a hidden directory that matches the name of your project. -This directory is called a data directory and contains a chain's genesis file -and a validator key. This command is useful if you want to quickly build and -initialize the data directory and use the chain's binary to manually start the -blockchain. The "init" command is meant only for development purposes, not -production. - -The "serve" command builds, initializes, and starts your blockchain locally with -a single validator node for development purposes. "serve" also watches the -source code directory for file changes and intelligently -re-builds/initializes/starts the chain, essentially providing "code-reloading". -The "serve" command is meant only for development purposes, not production. - -To distinguish between production and development consider the following. - -In production, blockchains often run the same software on many validator nodes -that are run by different people and entities. To launch a blockchain in -production, the validator entities coordinate the launch process to start their -nodes simultaneously. - -During development, a blockchain can be started locally on a single validator -node. This convenient process lets you restart a chain quickly and iterate -faster. Starting a chain on a single node in development is similar to starting -a traditional web application on a local server. - -The "faucet" command lets you send tokens to an address from the "faucet" -account defined in "config.yml". Alternatively, you can use the chain's binary -to send token from any other account that exists on chain. - -The "simulate" command helps you start a simulation testing process for your -chain. - - -**Options** - -``` - -c, --config string path to Ignite config file (default: ./config.yml) - -h, --help help for chain - -y, --yes answers interactive yes/no questions with yes -``` - -**SEE ALSO** - -* [ignite](#ignite) - Ignite CLI offers everything you need to scaffold, test, build, and launch your blockchain -* [ignite chain build](#ignite-chain-build) - Build a node binary -* [ignite chain debug](#ignite-chain-debug) - Launch a debugger for a blockchain app -* [ignite chain faucet](#ignite-chain-faucet) - Send coins to an account -* [ignite chain init](#ignite-chain-init) - Initialize your chain -* [ignite chain lint](#ignite-chain-lint) - Lint codebase using golangci-lint -* [ignite chain serve](#ignite-chain-serve) - Start a blockchain node in development -* [ignite chain simulate](#ignite-chain-simulate) - Run simulation testing for the blockchain - - -## ignite chain build - -Build a node binary - -**Synopsis** - - -The build command compiles the source code of the project into a binary and -installs the binary in the $(go env GOPATH)/bin directory. - -You can customize the output directory for the binary using a flag: - - ignite chain build --output dist - -To compile the binary Ignite first compiles protocol buffer (proto) files into -Go source code. Proto files contain required type and services definitions. If -you're using another program to compile proto files, you can use a flag to tell -Ignite to skip the proto compilation step: - - ignite chain build --skip-proto - -Afterwards, Ignite install dependencies specified in the go.mod file. By default -Ignite doesn't check that dependencies of the main module stored in the module -cache have not been modified since they were downloaded. To enforce dependency -checking (essentially, running "go mod verify") use a flag: - - ignite chain build --check-dependencies - -Next, Ignite identifies the "main" package of the project. By default the "main" -package is located in "cmd/{app}d" directory, where "{app}" is the name of the -scaffolded project and "d" stands for daemon. If your project contains more -than one "main" package, specify the path to the one that Ignite should compile -in config.yml: - - build: - main: custom/path/to/main - -By default the binary name will match the top-level module name (specified in -go.mod) with a suffix "d". This can be customized in config.yml: - - build: - binary: mychaind - -You can also specify custom linker flags: - - build: - ldflags: - - "-X main.Version=development" - - "-X main.Date=01/05/2022T19:54" - -To build binaries for a release, use the --release flag. The binaries for one or -more specified release targets are built in a "release/" directory in the -project's source directory. Specify the release targets with GOOS:GOARCH build -tags. If the optional --release.targets is not specified, a binary is created -for your current environment. - - ignite chain build --release -t linux:amd64 -t darwin:amd64 -t darwin:arm64 - - -``` -ignite chain build [flags] -``` - -**Options** - -``` - --build.tags strings parameters to build the chain binary - --check-dependencies verify that cached dependencies have not been modified since they were downloaded - --clear-cache clear the build cache (advanced) - --debug build a debug binary - -h, --help help for build - -o, --output string binary output path - -p, --path string path of the app (default ".") - --release build for a release - --release.prefix string tarball prefix for each release target. Available only with --release flag - -t, --release.targets strings release targets. Available only with --release flag - --skip-proto skip file generation from proto - -v, --verbose verbose output -``` - -**Options inherited from parent commands** - -``` - -c, --config string path to Ignite config file (default: ./config.yml) - -y, --yes answers interactive yes/no questions with yes -``` - -**SEE ALSO** - -* [ignite chain](#ignite-chain) - Build, init and start a blockchain node - - -## ignite chain debug - -Launch a debugger for a blockchain app - -**Synopsis** - -The debug command starts a debug server and launches a debugger. - -Ignite uses the Delve debugger by default. Delve enables you to interact with -your program by controlling the execution of the process, evaluating variables, -and providing information of thread / goroutine state, CPU register state and -more. - -A debug server can optionally be started in cases where default terminal client -is not desirable. When the server starts it first runs the blockchain app, -attaches to it and finally waits for a client connection. It accepts both -JSON-RPC or DAP client connections. - -To start a debug server use the following flag: - - ignite chain debug --server - -To start a debug server with a custom address use the following flags: - - ignite chain debug --server --server-address 127.0.0.1:30500 - -The debug server stops automatically when the client connection is closed. - - -``` -ignite chain debug [flags] -``` - -**Options** - -``` - -h, --help help for debug - -p, --path string path of the app (default ".") - --server start a debug server - --server-address string debug server address (default "127.0.0.1:30500") -``` - -**Options inherited from parent commands** - -``` - -c, --config string path to Ignite config file (default: ./config.yml) - -y, --yes answers interactive yes/no questions with yes -``` - -**SEE ALSO** - -* [ignite chain](#ignite-chain) - Build, init and start a blockchain node - - -## ignite chain faucet - -Send coins to an account - -``` -ignite chain faucet [address] [coin<,...>] [flags] -``` - -**Options** - -``` - -h, --help help for faucet - --home string directory where the blockchain node is initialized - -p, --path string path of the app (default ".") - -v, --verbose verbose output -``` - -**Options inherited from parent commands** - -``` - -c, --config string path to Ignite config file (default: ./config.yml) - -y, --yes answers interactive yes/no questions with yes -``` - -**SEE ALSO** - -* [ignite chain](#ignite-chain) - Build, init and start a blockchain node - - -## ignite chain init - -Initialize your chain - -**Synopsis** - -The init command compiles and installs the binary (like "ignite chain build") -and uses that binary to initialize the blockchain's data directory for one -validator. To learn how the build process works, refer to "ignite chain build ---help". - -By default, the data directory will be initialized in $HOME/.mychain, where -"mychain" is the name of the project. To set a custom data directory use the ---home flag or set the value in config.yml: - - validators: - - name: alice - bonded: '100000000stake' - home: "~/.customdir" - -The data directory contains three files in the "config" directory: app.toml, -config.toml, client.toml. These files let you customize the behavior of your -blockchain node and the client executable. When a chain is re-initialized the -data directory can be reset. To make some values in these files persistent, set -them in config.yml: - - validators: - - name: alice - bonded: '100000000stake' - app: - minimum-gas-prices: "0.025stake" - config: - consensus: - timeout_commit: "5s" - timeout_propose: "5s" - client: - output: "json" - -The configuration above changes the minimum gas price of the validator (by -default the gas price is set to 0 to allow "free" transactions), sets the block -time to 5s, and changes the output format to JSON. To see what kind of values -this configuration accepts see the generated TOML files in the data directory. - -As part of the initialization process Ignite creates on-chain accounts with -token balances. By default, config.yml has two accounts in the top-level -"accounts" property. You can add more accounts and change their token balances. -Refer to config.yml guide to see which values you can set. - -One of these accounts is a validator account and the amount of self-delegated -tokens can be set in the top-level "validator" property. - -One of the most important components of an initialized chain is the genesis -file, the 0th block of the chain. The genesis file is stored in the data -directory "config" subdirectory and contains the initial state of the chain, -including consensus and module parameters. You can customize the values of the -genesis in config.yml: - - genesis: - app_state: - staking: - params: - bond_denom: "foo" - -The example above changes the staking token to "foo". If you change the staking -denom, make sure the validator account has the right tokens. - -The init command is meant to be used ONLY FOR DEVELOPMENT PURPOSES. Under the -hood it runs commands like "appd init", "appd add-genesis-account", "appd -gentx", and "appd collect-gentx". For production, you may want to run these -commands manually to ensure a production-level node initialization. - - -``` -ignite chain init [flags] -``` - -**Options** - -``` - --build.tags strings parameters to build the chain binary - --check-dependencies verify that cached dependencies have not been modified since they were downloaded - --clear-cache clear the build cache (advanced) - --debug build a debug binary - -h, --help help for init - --home string directory where the blockchain node is initialized - -p, --path string path of the app (default ".") - --skip-proto skip file generation from proto -``` - -**Options inherited from parent commands** - -``` - -c, --config string path to Ignite config file (default: ./config.yml) - -y, --yes answers interactive yes/no questions with yes -``` - -**SEE ALSO** - -* [ignite chain](#ignite-chain) - Build, init and start a blockchain node - - -## ignite chain lint - -Lint codebase using golangci-lint - -**Synopsis** - -The lint command runs the golangci-lint tool to lint the codebase. - -``` -ignite chain lint [flags] -``` - -**Options** - -``` - -h, --help help for lint -``` - -**Options inherited from parent commands** - -``` - -c, --config string path to Ignite config file (default: ./config.yml) - -y, --yes answers interactive yes/no questions with yes -``` - -**SEE ALSO** - -* [ignite chain](#ignite-chain) - Build, init and start a blockchain node - - -## ignite chain serve - -Start a blockchain node in development - -**Synopsis** - -The serve command compiles and installs the binary (like "ignite chain build"), -uses that binary to initialize the blockchain's data directory for one validator -(like "ignite chain init"), and starts the node locally for development purposes -with automatic code reloading. - -Automatic code reloading means Ignite starts watching the project directory. -Whenever a file change is detected, Ignite automatically rebuilds, reinitializes -and restarts the node. - -Whenever possible Ignite will try to keep the current state of the chain by -exporting and importing the genesis file. - -To force Ignite to start from a clean slate even if a genesis file exists, use -the following flag: - - ignite chain serve --reset-once - -To force Ignite to reset the state every time the source code is modified, use -the following flag: - - ignite chain serve --force-reset - -With Ignite it's possible to start more than one blockchain from the same source -code using different config files. This is handy if you're building -inter-blockchain functionality and, for example, want to try sending packets -from one blockchain to another. To start a node using a specific config file: - - ignite chain serve --config mars.yml - -The serve command is meant to be used ONLY FOR DEVELOPMENT PURPOSES. Under the -hood, it runs "appd start", where "appd" is the name of your chain's binary. For -production, you may want to run "appd start" manually. - - -``` -ignite chain serve [flags] -``` - -**Options** - -``` - --build.tags strings parameters to build the chain binary - --check-dependencies verify that cached dependencies have not been modified since they were downloaded - --clear-cache clear the build cache (advanced) - -f, --force-reset force reset of the app state on start and every source change - --generate-clients generate code for the configured clients on reset or source code change - -h, --help help for serve - --home string directory where the blockchain node is initialized - -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-proto skip file generation from proto - -v, --verbose verbose output -``` - -**Options inherited from parent commands** - -``` - -c, --config string path to Ignite config file (default: ./config.yml) - -y, --yes answers interactive yes/no questions with yes -``` - -**SEE ALSO** - -* [ignite chain](#ignite-chain) - Build, init and start a blockchain node - - -## ignite chain simulate - -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 - -``` -ignite chain simulate [flags] -``` - -**Options** - -``` - --blockSize int operations per block (default 30) - --exportParamsHeight int height to which export the randomly generated params - --exportParamsPath string custom file path to save the exported params JSON - --exportStatePath string custom file path to save the exported app state JSON - --exportStatsPath string custom file path to save the exported simulation statistics JSON - --genesis string custom simulation genesis file; cannot be used with params file - --genesisTime int override genesis UNIX time instead of using a random UNIX time - -h, --help help for simulate - --initialBlockHeight int initial block to start the simulation (default 1) - --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 - --printAllInvariants print all invariants if a broken invariant is found - --seed int simulation random seed (default 42) - --simulateEveryOperation run slow invariants every operation - -v, --verbose verbose log output -``` - -**Options inherited from parent commands** - -``` - -c, --config string path to Ignite config file (default: ./config.yml) - -y, --yes answers interactive yes/no questions with yes -``` - -**SEE ALSO** - -* [ignite chain](#ignite-chain) - Build, init and start a blockchain node - - -## ignite completion - -Generates shell completion script. - -``` -ignite completion [bash|zsh|fish|powershell] [flags] -``` - -**Options** - -``` - -h, --help help for completion -``` - -**SEE ALSO** - -* [ignite](#ignite) - Ignite CLI offers everything you need to scaffold, test, build, and launch your blockchain - - -## ignite docs - -Show Ignite CLI docs - -``` -ignite docs [flags] -``` - -**Options** - -``` - -h, --help help for docs -``` - -**SEE ALSO** - -* [ignite](#ignite) - Ignite CLI offers everything you need to scaffold, test, build, and launch your blockchain - - -## ignite generate - -Generate clients, API docs from source code - -**Synopsis** - -Generate clients, API docs from source code. - -Such as compiling protocol buffer files into Go or implement particular -functionality, for example, generating an OpenAPI spec. - -Produced source code can be regenerated by running a command again and is not -meant to be edited by hand. - - -**Options** - -``` - --clear-cache clear the build cache (advanced) - --enable-proto-vendor enable proto package vendor for missing Buf dependencies - -h, --help help for generate - -p, --path string path of the app (default ".") -``` - -**SEE ALSO** - -* [ignite](#ignite) - Ignite CLI offers everything you need to scaffold, test, build, and launch your blockchain -* [ignite generate composables](#ignite-generate-composables) - TypeScript frontend client and Vue 3 composables -* [ignite generate hooks](#ignite-generate-hooks) - TypeScript frontend client and React hooks -* [ignite generate openapi](#ignite-generate-openapi) - OpenAPI spec for your chain -* [ignite generate proto-go](#ignite-generate-proto-go) - Compile protocol buffer files to Go source code required by Cosmos SDK -* [ignite generate ts-client](#ignite-generate-ts-client) - TypeScript frontend client - - -## ignite generate composables - -TypeScript frontend client and Vue 3 composables - -``` -ignite generate composables [flags] -``` - -**Options** - -``` - -h, --help help for composables - -o, --output string Vue 3 composables output path - -y, --yes answers interactive yes/no questions with yes -``` - -**Options inherited from parent commands** - -``` - --clear-cache clear the build cache (advanced) - --enable-proto-vendor enable proto package vendor for missing Buf dependencies - -p, --path string path of the app (default ".") -``` - -**SEE ALSO** - -* [ignite generate](#ignite-generate) - Generate clients, API docs from source code - - -## ignite generate hooks - -TypeScript frontend client and React hooks - -``` -ignite generate hooks [flags] -``` - -**Options** - -``` - -h, --help help for hooks - -o, --output string React hooks output path - -y, --yes answers interactive yes/no questions with yes -``` - -**Options inherited from parent commands** - -``` - --clear-cache clear the build cache (advanced) - --enable-proto-vendor enable proto package vendor for missing Buf dependencies - -p, --path string path of the app (default ".") -``` - -**SEE ALSO** - -* [ignite generate](#ignite-generate) - Generate clients, API docs from source code - - -## ignite generate openapi - -OpenAPI spec for your chain - -``` -ignite generate openapi [flags] -``` - -**Options** - -``` - -h, --help help for openapi - -y, --yes answers interactive yes/no questions with yes -``` - -**Options inherited from parent commands** - -``` - --clear-cache clear the build cache (advanced) - --enable-proto-vendor enable proto package vendor for missing Buf dependencies - -p, --path string path of the app (default ".") -``` - -**SEE ALSO** - -* [ignite generate](#ignite-generate) - Generate clients, API docs from source code - - -## ignite generate proto-go - -Compile protocol buffer files to Go source code required by Cosmos SDK - -``` -ignite generate proto-go [flags] -``` - -**Options** - -``` - -h, --help help for proto-go - -y, --yes answers interactive yes/no questions with yes -``` - -**Options inherited from parent commands** - -``` - --clear-cache clear the build cache (advanced) - --enable-proto-vendor enable proto package vendor for missing Buf dependencies - -p, --path string path of the app (default ".") -``` - -**SEE ALSO** - -* [ignite generate](#ignite-generate) - Generate clients, API docs from source code - - -## ignite generate ts-client - -TypeScript frontend client - -**Synopsis** - -Generate a framework agnostic TypeScript client for your blockchain project. - -By default the TypeScript client is generated in the "ts-client/" directory. You -can customize the output directory in config.yml: - - client: - typescript: - path: new-path - -Output can also be customized by using a flag: - - ignite generate ts-client --output new-path - -TypeScript client code can be automatically regenerated on reset or source code -changes when the blockchain is started with a flag: - - ignite chain serve --generate-clients - - -``` -ignite generate ts-client [flags] -``` - -**Options** - -``` - -h, --help help for ts-client - -o, --output string TypeScript client output path - --use-cache use build cache to speed-up generation - -y, --yes answers interactive yes/no questions with yes -``` - -**Options inherited from parent commands** - -``` - --clear-cache clear the build cache (advanced) - --enable-proto-vendor enable proto package vendor for missing Buf dependencies - -p, --path string path of the app (default ".") -``` - -**SEE ALSO** - -* [ignite generate](#ignite-generate) - Generate clients, API docs from source code - - -## ignite network - -Launch a blockchain in production - -**Synopsis** - - -Ignite Network commands allow to coordinate the launch of sovereign Cosmos blockchains. - -To launch a Cosmos blockchain you need someone to be a coordinator and others to -be validators. These are just roles, anyone can be a coordinator or a validator. -A coordinator publishes information about a chain to be launched on the Ignite -blockchain, approves validator requests and coordinates the launch. Validators -send requests to join a chain and start their nodes when a blockchain is ready -for launch. - -To publish the information about your chain as a coordinator run the following -command (the URL should point to a repository with a Cosmos SDK chain): - - ignite network chain publish github.com/ignite/example - -This command will return a launch identifier you will be using in the following -commands. Let's say this identifier is 42. - -Next, ask validators to initialize their nodes and request to join the network -as validators. For a testnet you can use the default values suggested by the -CLI. - - ignite network chain init 42 - - ignite network chain join 42 --amount 95000000stake - -As a coordinator list all validator requests: - - ignite network request list 42 - -Approve validator requests: - - ignite network request approve 42 1,2 - -Once you've approved all validators you need in the validator set, announce that -the chain is ready for launch: - - ignite network chain launch 42 - -Validators can now prepare their nodes for launch: - - ignite network chain prepare 42 - -The output of this command will show a command that a validator would use to -launch their node, for example “exampled --home ~/.example”. After enough -validators launch their nodes, a blockchain will be live. - - -**Options** - -``` - -h, --help help for network - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite](#ignite) - Ignite CLI offers everything you need to scaffold, test, build, and launch your blockchain -* [ignite network chain](#ignite-network-chain) - Publish a chain, join as a validator and prepare node for launch -* [ignite network coordinator](#ignite-network-coordinator) - Show and update a coordinator profile -* [ignite network request](#ignite-network-request) - Create, show, reject and approve requests -* [ignite network tool](#ignite-network-tool) - Commands to run subsidiary tools -* [ignite network validator](#ignite-network-validator) - Show and update a validator profile -* [ignite network version](#ignite-network-version) - Version of the plugin - - -## ignite network chain - -Publish a chain, join as a validator and prepare node for launch - -**Synopsis** - -The "chain" namespace features the most commonly used commands for launching -blockchains with Ignite. - -As a coordinator you "publish" your blockchain to Ignite. When enough validators -are approved for the genesis and no changes are excepted to be made to the -genesis, a coordinator announces that the chain is ready for launch with the -"launch" command. In the case of an unsuccessful launch, the coordinator can revert it -using the "revert-launch" command. - -As a validator, you "init" your node and apply to become a validator for a -blockchain with the "join" command. After the launch of the chain is announced, -validators can generate the finalized genesis and download the list of peers with the -"prepare" command. - -The "install" command can be used to download, compile the source code and -install the chain's binary locally. The binary can be used, for example, to -initialize a validator node or to interact with the chain after it has been -launched. - -All chains published to Ignite can be listed by using the "list" command. - - -**Options** - -``` - -h, --help help for chain -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network](#ignite-network) - Launch a blockchain in production -* [ignite network chain init](#ignite-network-chain-init) - Initialize a chain from a published chain ID -* [ignite network chain install](#ignite-network-chain-install) - Install chain binary for a launch -* [ignite network chain join](#ignite-network-chain-join) - Request to join a network as a validator -* [ignite network chain launch](#ignite-network-chain-launch) - Trigger the launch of a chain -* [ignite network chain list](#ignite-network-chain-list) - List published chains -* [ignite network chain prepare](#ignite-network-chain-prepare) - Prepare the chain for launch -* [ignite network chain publish](#ignite-network-chain-publish) - Publish a new chain to start a new network -* [ignite network chain revert-launch](#ignite-network-chain-revert-launch) - Revert launch of a network as a coordinator -* [ignite network chain show](#ignite-network-chain-show) - Show details of a chain - - -## ignite network chain init - -Initialize a chain from a published chain ID - -**Synopsis** - -Ignite network chain init is a command used by validators to initialize a -validator node for a blockchain from the information stored on the Ignite chain. - - ignite network chain init 42 - -This command fetches the information about a chain with launch ID 42. The source -code of the chain is cloned in a temporary directory, and the node's binary is -compiled from the source. The binary is then used to initialize the node. By -default, Ignite uses "~/spn/[launch-id]/" as the home directory for the blockchain. - -An important part of initializing a validator node is creation of the gentx (a -transaction that adds a validator at the genesis of the chain). - -The "init" command will prompt for values like self-delegation and commission. -These values will be used in the validator's gentx. You can use flags to provide -the values in non-interactive mode. - -Use the "--home" flag to choose a different path for the home directory of the -blockchain: - - ignite network chain init 42 --home ~/mychain - -The end result of the "init" command is a validator home directory with a -genesis validator transaction (gentx) file. - -``` -ignite network chain init [launch-id] [flags] -``` - -**Options** - -``` - --check-dependencies verify that cached dependencies have not been modified since they were downloaded - --clear-cache clear the build cache (advanced) - --from string account name to use for sending transactions to SPN (default "default") - -h, --help help for init - --home string home directory used for blockchains - --keyring-backend string keyring backend to store your account keys (default "test") - --keyring-dir string accounts keyring directory (default "/home/runner/.ignite/accounts") - --validator-account string account for the chain validator (default "default") - --validator-details string details about the validator - --validator-gas-price string validator gas price - --validator-identity string validator identity signature (ex. UPort or Keybase) - --validator-moniker string custom validator moniker - --validator-security-contact string validator security contact email - --validator-self-delegation string validator minimum self delegation - --validator-website string associate a website with the validator - -y, --yes answers interactive yes/no questions with yes -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network chain](#ignite-network-chain) - Publish a chain, join as a validator and prepare node for launch - - -## ignite network chain install - -Install chain binary for a launch - -``` -ignite network chain install [launch-id] [flags] -``` - -**Options** - -``` - --check-dependencies verify that cached dependencies have not been modified since they were downloaded - --clear-cache clear the build cache (advanced) - --from string account name to use for sending transactions to SPN (default "default") - -h, --help help for install -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network chain](#ignite-network-chain) - Publish a chain, join as a validator and prepare node for launch - - -## ignite network chain join - -Request to join a network as a validator - -**Synopsis** - -The "join" command is used by validators to send a request to join a blockchain. -The required argument is a launch ID of a blockchain. The "join" command expects -that the validator has already setup a home directory for the blockchain and has -a gentx either by running "ignite network chain init" or initializing the data -directory manually with the chain's binary. - -By default the "join" command just sends the request to join as a validator. -However, often a validator also needs to request an genesis account with a token -balance to afford self-delegation. - -The following command will send a request to join blockchain with launch ID 42 -as a validator and request to be added as an account with a token balance of -95000000 STAKE. - - ignite network chain join 42 --amount 95000000stake - -A request to join as a validator contains a gentx file. Ignite looks for gentx -in a home directory used by "ignite network chain init" by default. To use a -different directory, use the "--home" flag or pass a gentx file directly with -the "--gentx" flag. - -To join a chain as a validator, you must provide the IP address of your node so -that other validators can connect to it. The join command will ask you for the -IP address and will attempt to automatically detect and fill in the value. If -you want to manually specify the IP address, you can use the "--peer-address" -flag: - - ignite network chain join 42 --peer-address 0.0.0.0 - -Since "join" broadcasts a transaction to the Ignite blockchain, you will need an -account on the Ignite blockchain. During the testnet phase, however, Ignite -automatically requests tokens from a faucet. - - -``` -ignite network chain join [launch-id] [flags] -``` - -**Options** - -``` - --amount string amount of coins for account request (ignored if coordinator has fixed the account balances or if --no-acount flag is set) - --check-dependencies verify that cached dependencies have not been modified since they were downloaded - --from string account name to use for sending transactions to SPN (default "default") - --gentx string path to a gentx json file - -h, --help help for join - --home string home directory used for blockchains - --keyring-backend string keyring backend to store your account keys (default "test") - --keyring-dir string accounts keyring directory (default "/home/runner/.ignite/accounts") - --no-account prevent sending a request for a genesis account - --peer-address string peer's address - -y, --yes answers interactive yes/no questions with yes -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network chain](#ignite-network-chain) - Publish a chain, join as a validator and prepare node for launch - - -## ignite network chain launch - -Trigger the launch of a chain - -**Synopsis** - -The launch command communicates to the world that the chain is ready to be -launched. - -Only the coordinator of the chain can execute the launch command. - - ignite network chain launch 42 - -After the launch command is executed no changes to the genesis are accepted. For -example, validators will no longer be able to successfully execute the "ignite -network chain join" command to apply as a validator. - -The launch command sets the date and time after which the chain will start. By -default, the current time is set. To give validators more time to prepare for -the launch, set the time with the "--launch-time" flag: - - ignite network chain launch 42 --launch-time 2023-01-01T00:00:00Z - -After the launch command is executed, validators can generate the finalized -genesis and prepare their nodes for the launch. For example, validators can run -"ignite network chain prepare" to generate the genesis and populate the peer -list. - -If you want to change the launch time or open up the genesis file for changes -you can use "ignite network chain revert-launch" to make it possible, for -example, to accept new validators and add accounts. - - -``` -ignite network chain launch [launch-id] [flags] -``` - -**Options** - -``` - --from string account name to use for sending transactions to SPN (default "default") - -h, --help help for launch - --keyring-backend string keyring backend to store your account keys (default "test") - --keyring-dir string accounts keyring directory (default "/home/runner/.ignite/accounts") - --launch-time string timestamp the chain is effectively launched (example "2022-01-01T00:00:00Z") -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network chain](#ignite-network-chain) - Publish a chain, join as a validator and prepare node for launch - - -## ignite network chain list - -List published chains - -``` -ignite network chain list [flags] -``` - -**Options** - -``` - --advanced show advanced information about the chains - -h, --help help for list - --limit uint limit of results per page (default 100) - --page uint page for chain list result (default 1) -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network chain](#ignite-network-chain) - Publish a chain, join as a validator and prepare node for launch - - -## ignite network chain prepare - -Prepare the chain for launch - -**Synopsis** - -The prepare command prepares a validator node for the chain launch by generating -the final genesis and adding IP addresses of peers to the validator's -configuration file. - - ignite network chain prepare 42 - -By default, Ignite uses "$HOME/spn/LAUNCH_ID" as the data directory. If you used -a different data directory when initializing the node, use the "--home" flag and -set the correct path to the data directory. - -Ignite generates the genesis file in "config/genesis.json" and adds peer IPs by -modifying "config/config.toml". - -The prepare command should be executed after the coordinator has triggered the -chain launch and finalized the genesis with "ignite network chain launch". You -can force Ignite to run the prepare command without checking if the launch has -been triggered with the "--force" flag (this is not recommended). - -After the prepare command is executed the node is ready to be started. - - -``` -ignite network chain prepare [launch-id] [flags] -``` - -**Options** - -``` - --check-dependencies verify that cached dependencies have not been modified since they were downloaded - --clear-cache clear the build cache (advanced) - -f, --force force the prepare command to run even if the chain is not launched - --from string account name to use for sending transactions to SPN (default "default") - -h, --help help for prepare - --home string home directory used for blockchains - --keyring-backend string keyring backend to store your account keys (default "test") - --keyring-dir string accounts keyring directory (default "/home/runner/.ignite/accounts") -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network chain](#ignite-network-chain) - Publish a chain, join as a validator and prepare node for launch - - -## ignite network chain publish - -Publish a new chain to start a new network - -**Synopsis** - -To begin the process of launching a blockchain with Ignite, a coordinator needs -to publish the information about a blockchain. The only required bit of -information is the URL of the source code of the blockchain. - -The following command publishes the information about an example blockchain: - - ignite network chain publish github.com/ignite/example - -This command fetches the source code of the blockchain, compiles the binary, -verifies that a blockchain can be started with the binary, and publishes the -information about the blockchain to Ignite. Currently, only public repositories -are supported. The command returns an integer number that acts as an identifier -of the chain on Ignite. - -By publishing a blockchain on Ignite you become the "coordinator" of this -blockchain. A coordinator is an account that has the authority to approve and -reject validator requests, set parameters of the blockchain and trigger the -launch of the chain. - -The default Git branch is used when publishing a chain. If you want to use a -specific branch, tag or a commit hash, use "--branch", "--tag", or "--hash" -flags respectively. - -The repository name is used as the default chain ID. Ignite does not ensure that -chain IDs are unique, but they have to have a valid format: [string]-[integer]. -To set a custom chain ID use the "--chain-id" flag. - - ignite network chain publish github.com/ignite/example --chain-id foo-1 - -Once the chain is published users can request accounts with coin balances to be -added to the chain's genesis. By default, users are free to request any number -of tokens. If you want all users requesting tokens to get the same amount, use -the "--account-balance" flag with a list of coins. - - ignite network chain publish github.com/ignite/example --account-balance 2000foocoin - - -``` -ignite network chain publish [source-url] [flags] -``` - -**Options** - -``` - --account-balance string balance for each approved genesis account for the chain - --amount string amount of coins for account request - --branch string Git branch to use for the repo - --chain-id string chain ID to use for this network - --check-dependencies verify that cached dependencies have not been modified since they were downloaded - --clear-cache clear the build cache (advanced) - --from string account name to use for sending transactions to SPN (default "default") - --genesis-config string name of an Ignite config file in the repo for custom Genesis - --genesis-url string URL to a custom Genesis - --hash string Git hash to use for the repo - -h, --help help for publish - --home string home directory used for blockchains - --keyring-backend string keyring backend to store your account keys (default "test") - --keyring-dir string accounts keyring directory (default "/home/runner/.ignite/accounts") - --mainnet initialize a mainnet project - --metadata string add chain metadata - --no-check skip verifying chain's integrity - --project uint project ID to use for this network - --reward.coins string reward coins - --reward.height int last reward height - --shares string add shares for the project - --tag string Git tag to use for the repo - --total-supply string add a total of the mainnet of a project - -y, --yes answers interactive yes/no questions with yes -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network chain](#ignite-network-chain) - Publish a chain, join as a validator and prepare node for launch - - -## ignite network chain revert-launch - -Revert launch of a network as a coordinator - -**Synopsis** - -The revert launch command reverts the previously scheduled launch of a chain. - -Only the coordinator of the chain can execute the launch command. - - ignite network chain revert-launch 42 - -After the revert launch command is executed, changes to the genesis of the chain -are allowed again. For example, validators will be able to request to join the -chain. Revert launch also resets the launch time. - - -``` -ignite network chain revert-launch [launch-id] [flags] -``` - -**Options** - -``` - --from string account name to use for sending transactions to SPN (default "default") - -h, --help help for revert-launch - --keyring-backend string keyring backend to store your account keys (default "test") - --keyring-dir string accounts keyring directory (default "/home/runner/.ignite/accounts") -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network chain](#ignite-network-chain) - Publish a chain, join as a validator and prepare node for launch - - -## ignite network chain show - -Show details of a chain - -**Options** - -``` - -h, --help help for show -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network chain](#ignite-network-chain) - Publish a chain, join as a validator and prepare node for launch -* [ignite network chain show accounts](#ignite-network-chain-show-accounts) - Show all vesting and genesis accounts of the chain -* [ignite network chain show genesis](#ignite-network-chain-show-genesis) - Show the chain genesis file -* [ignite network chain show info](#ignite-network-chain-show-info) - Show info details of the chain -* [ignite network chain show peers](#ignite-network-chain-show-peers) - Show peers list of the chain -* [ignite network chain show validators](#ignite-network-chain-show-validators) - Show all validators of the chain - - -## ignite network chain show accounts - -Show all vesting and genesis accounts of the chain - -``` -ignite network chain show accounts [launch-id] [flags] -``` - -**Options** - -``` - -h, --help help for accounts - --prefix string account address prefix (default "spn") -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network chain show](#ignite-network-chain-show) - Show details of a chain - - -## ignite network chain show genesis - -Show the chain genesis file - -``` -ignite network chain show genesis [launch-id] [flags] -``` - -**Options** - -``` - --clear-cache clear the build cache (advanced) - -h, --help help for genesis - --out string path to output Genesis file (default "./genesis.json") -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network chain show](#ignite-network-chain-show) - Show details of a chain - - -## ignite network chain show info - -Show info details of the chain - -``` -ignite network chain show info [launch-id] [flags] -``` - -**Options** - -``` - -h, --help help for info -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network chain show](#ignite-network-chain-show) - Show details of a chain - - -## ignite network chain show peers - -Show peers list of the chain - -``` -ignite network chain show peers [launch-id] [flags] -``` - -**Options** - -``` - -h, --help help for peers - --out string path to output peers list (default "./peers.txt") -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network chain show](#ignite-network-chain-show) - Show details of a chain - - -## ignite network chain show validators - -Show all validators of the chain - -``` -ignite network chain show validators [launch-id] [flags] -``` - -**Options** - -``` - -h, --help help for validators - --prefix string account address prefix (default "spn") -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network chain show](#ignite-network-chain-show) - Show details of a chain - - -## ignite network coordinator - -Show and update a coordinator profile - -**Options** - -``` - -h, --help help for coordinator -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network](#ignite-network) - Launch a blockchain in production -* [ignite network coordinator set](#ignite-network-coordinator-set) - Set an information in a coordinator profile -* [ignite network coordinator show](#ignite-network-coordinator-show) - Show a coordinator profile - - -## ignite network coordinator set - -Set an information in a coordinator profile - -**Synopsis** - -Coordinators on Ignite can set a profile containing a description for the coordinator. -The coordinator set command allows to set information for the coordinator. -The following information can be set: -- details: general information about the coordinator. -- identity: a piece of information to verify the identity of the coordinator with a system like Keybase or Veramo. -- website: website of the coordinator. - - -``` -ignite network coordinator set details|identity|website [value] [flags] -``` - -**Options** - -``` - --from string account name to use for sending transactions to SPN (default "default") - -h, --help help for set - --home string home directory used for blockchains - --keyring-backend string keyring backend to store your account keys (default "test") - --keyring-dir string accounts keyring directory (default "/home/runner/.ignite/accounts") -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network coordinator](#ignite-network-coordinator) - Show and update a coordinator profile - - -## ignite network coordinator show - -Show a coordinator profile - -``` -ignite network coordinator show [address] [flags] -``` - -**Options** - -``` - -h, --help help for show -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network coordinator](#ignite-network-coordinator) - Show and update a coordinator profile - - -## ignite network request - -Create, show, reject and approve requests - -**Synopsis** - -The "request" namespace contains commands for creating, showing, approving, and -rejecting requests. - -A request is mechanism in Ignite that allows changes to be made to the genesis -file like adding accounts with token balances and validators. Anyone can submit -a request, but only the coordinator of a chain can approve or reject a request. - -Each request has a status: - -* Pending: waiting for the approval of the coordinator -* Approved: approved by the coordinator, its content has been applied to the - launch information -* Rejected: rejected by the coordinator or the request creator - - -**Options** - -``` - -h, --help help for request -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network](#ignite-network) - Launch a blockchain in production -* [ignite network request add-account](#ignite-network-request-add-account) - Send request to add account -* [ignite network request approve](#ignite-network-request-approve) - Approve requests -* [ignite network request change-param](#ignite-network-request-change-param) - Send request to change a module param -* [ignite network request list](#ignite-network-request-list) - List all requests for a chain -* [ignite network request reject](#ignite-network-request-reject) - Reject requests -* [ignite network request remove-account](#ignite-network-request-remove-account) - Send request to remove a genesis account -* [ignite network request remove-validator](#ignite-network-request-remove-validator) - Send request to remove a validator -* [ignite network request show](#ignite-network-request-show) - Show detailed information about a request -* [ignite network request verify](#ignite-network-request-verify) - Verify the request and simulate the chain genesis from them - - -## ignite network request add-account - -Send request to add account - -**Synopsis** - -The "add account" command creates a new request to add an account with a given -address and a specified coin balance to the genesis of the chain. - -The request automatically fails to be applied if a genesis account or a vesting -account with an identical address is already specified in the launch -information. - -If a coordinator has specified that all genesis accounts on a chain should have -the same balance (useful for testnets, for example), the "add account" expects -only an address as an argument. Attempt to provide a token balance will result -in an error. - - -``` -ignite network request add-account [launch-id] [address] [coins] [flags] -``` - -**Options** - -``` - --clear-cache clear the build cache (advanced) - --from string account name to use for sending transactions to SPN (default "default") - -h, --help help for add-account - --home string home directory used for blockchains - --keyring-backend string keyring backend to store your account keys (default "test") - --keyring-dir string accounts keyring directory (default "/home/runner/.ignite/accounts") -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network request](#ignite-network-request) - Create, show, reject and approve requests - - -## ignite network request approve - -Approve requests - -**Synopsis** - -The "approve" command is used by a chain's coordinator to approve requests. -Multiple requests can be approved using a comma-separated list and/or using a -dash syntax. - - ignite network request approve 42 1,2,3-6,7,8 - -The command above approves requests with IDs from 1 to 8 included on a chain -with a launch ID 42. - -When requests are approved Ignite applies the requested changes and simulates -initializing and launching the chain locally. If the chain starts successfully, -requests are considered to be "verified" and are approved. If one or more -requested changes stop the chain from launching locally, the verification -process fails and the approval of all requests is canceled. To skip the -verification process use the "--no-verification" flag. - -Note that Ignite will try to approve requests in the same order as request IDs -are submitted to the "approve" command. - -``` -ignite network request approve [launch-id] [number<,...>] [flags] -``` - -**Options** - -``` - --clear-cache clear the build cache (advanced) - --from string account name to use for sending transactions to SPN (default "default") - -h, --help help for approve - --home string home directory used for blockchains - --keyring-backend string keyring backend to store your account keys (default "test") - --keyring-dir string accounts keyring directory (default "/home/runner/.ignite/accounts") - --no-verification approve the requests without verifying them -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network request](#ignite-network-request) - Create, show, reject and approve requests - - -## ignite network request change-param - -Send request to change a module param - -``` -ignite network request change-param [launch-id] [module-name] [param-name] [value (json, string, number)] [flags] -``` - -**Options** - -``` - --clear-cache clear the build cache (advanced) - --from string account name to use for sending transactions to SPN (default "default") - -h, --help help for change-param - --home string home directory used for blockchains - --keyring-backend string keyring backend to store your account keys (default "test") - --keyring-dir string accounts keyring directory (default "/home/runner/.ignite/accounts") -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network request](#ignite-network-request) - Create, show, reject and approve requests - - -## ignite network request list - -List all requests for a chain - -``` -ignite network request list [launch-id] [flags] -``` - -**Options** - -``` - -h, --help help for list - --prefix string account address prefix (default "spn") -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network request](#ignite-network-request) - Create, show, reject and approve requests - - -## ignite network request reject - -Reject requests - -**Synopsis** - -The "reject" command is used by a chain's coordinator to reject requests. - - ignite network request reject 42 1,2,3-6,7,8 - -The syntax of the "reject" command is similar to that of the "approve" command. - - -``` -ignite network request reject [launch-id] [number<,...>] [flags] -``` - -**Options** - -``` - --from string account name to use for sending transactions to SPN (default "default") - -h, --help help for reject - --home string home directory used for blockchains - --keyring-backend string keyring backend to store your account keys (default "test") - --keyring-dir string accounts keyring directory (default "/home/runner/.ignite/accounts") -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network request](#ignite-network-request) - Create, show, reject and approve requests - - -## ignite network request remove-account - -Send request to remove a genesis account - -``` -ignite network request remove-account [launch-id] [address] [flags] -``` - -**Options** - -``` - --clear-cache clear the build cache (advanced) - --from string account name to use for sending transactions to SPN (default "default") - -h, --help help for remove-account - --home string home directory used for blockchains - --keyring-backend string keyring backend to store your account keys (default "test") - --keyring-dir string accounts keyring directory (default "/home/runner/.ignite/accounts") -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network request](#ignite-network-request) - Create, show, reject and approve requests - - -## ignite network request remove-validator - -Send request to remove a validator - -``` -ignite network request remove-validator [launch-id] [address] [flags] -``` - -**Options** - -``` - --clear-cache clear the build cache (advanced) - --from string account name to use for sending transactions to SPN (default "default") - -h, --help help for remove-validator - --home string home directory used for blockchains - --keyring-backend string keyring backend to store your account keys (default "test") - --keyring-dir string accounts keyring directory (default "/home/runner/.ignite/accounts") -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network request](#ignite-network-request) - Create, show, reject and approve requests - - -## ignite network request show - -Show detailed information about a request - -``` -ignite network request show [launch-id] [request-id] [flags] -``` - -**Options** - -``` - -h, --help help for show -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network request](#ignite-network-request) - Create, show, reject and approve requests - - -## ignite network request verify - -Verify the request and simulate the chain genesis from them - -**Synopsis** - -The "verify" command applies selected requests to the genesis of a chain locally -to verify that approving these requests will result in a valid genesis that -allows a chain to launch without issues. This command does not approve requests, -only checks them. - - -``` -ignite network request verify [launch-id] [number<,...>] [flags] -``` - -**Options** - -``` - --clear-cache clear the build cache (advanced) - --from string account name to use for sending transactions to SPN (default "default") - -h, --help help for verify - --home string home directory used for blockchains - --keyring-backend string keyring backend to store your account keys (default "test") - --keyring-dir string accounts keyring directory (default "/home/runner/.ignite/accounts") -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network request](#ignite-network-request) - Create, show, reject and approve requests - - -## ignite network tool - -Commands to run subsidiary tools - -**Options** - -``` - -h, --help help for tool -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network](#ignite-network) - Launch a blockchain in production -* [ignite network tool proxy-tunnel](#ignite-network-tool-proxy-tunnel) - Setup a proxy tunnel via HTTP - - -## ignite network tool proxy-tunnel - -Setup a proxy tunnel via HTTP - -**Synopsis** - -Starts an HTTP proxy server and HTTP proxy clients for each node that -needs HTTP tunneling. - -HTTP tunneling is activated **ONLY** if SPN_CONFIG_FILE has "tunneled_peers" -field inside with a list of tunneled peers/nodes. - -If you're using SPN as coordinator and do not want to allow HTTP tunneling -feature at all, you can prevent "spn.yml" file to being generated by not -approving validator requests that has HTTP tunneling enabled instead of plain -TCP connections. - -``` -ignite network tool proxy-tunnel SPN_CONFIG_FILE [flags] -``` - -**Options** - -``` - -h, --help help for proxy-tunnel -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network tool](#ignite-network-tool) - Commands to run subsidiary tools - - -## ignite network validator - -Show and update a validator profile - -**Options** - -``` - -h, --help help for validator -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network](#ignite-network) - Launch a blockchain in production -* [ignite network validator set](#ignite-network-validator-set) - Set an information in a validator profile -* [ignite network validator show](#ignite-network-validator-show) - Show a validator profile - - -## ignite network validator set - -Set an information in a validator profile - -**Synopsis** - -Validators on Ignite can set a profile containing a description for the validator. -The validator set command allows to set information for the validator. -The following information can be set: -- details: general information about the validator. -- identity: piece of information to verify identity of the validator with a system like Keybase of Veramo. -- website: website of the validator. -- security: security contact for the validator. - - -``` -ignite network validator set details|identity|website|security [value] [flags] -``` - -**Options** - -``` - --from string account name to use for sending transactions to SPN (default "default") - -h, --help help for set - --home string home directory used for blockchains - --keyring-backend string keyring backend to store your account keys (default "test") - --keyring-dir string accounts keyring directory (default "/home/runner/.ignite/accounts") -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network validator](#ignite-network-validator) - Show and update a validator profile - - -## ignite network validator show - -Show a validator profile - -``` -ignite network validator show [address] [flags] -``` - -**Options** - -``` - -h, --help help for show -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network validator](#ignite-network-validator) - Show and update a validator profile - - -## ignite network version - -Version of the plugin - -**Synopsis** - -The version of the plugin to use to interact with a chain might be specified by the coordinator. - - -``` -ignite network version [flags] -``` - -**Options** - -``` - -h, --help help for version -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network](#ignite-network) - Launch a blockchain in production - - -## ignite node - -Make requests to a live blockchain node - -**Options** - -``` - -h, --help help for node - --node string : to tendermint rpc interface for this chain (default "https://rpc.cosmos.directory:443/cosmoshub") -``` - -**SEE ALSO** - -* [ignite](#ignite) - Ignite CLI offers everything you need to scaffold, test, build, and launch your blockchain -* [ignite node query](#ignite-node-query) - Querying subcommands -* [ignite node tx](#ignite-node-tx) - Transactions subcommands - - -## ignite node query - -Querying subcommands - -**Options** - -``` - -h, --help help for query -``` - -**Options inherited from parent commands** - -``` - --node string : to tendermint rpc interface for this chain (default "https://rpc.cosmos.directory:443/cosmoshub") -``` - -**SEE ALSO** - -* [ignite node](#ignite-node) - Make requests to a live blockchain node -* [ignite node query bank](#ignite-node-query-bank) - Querying commands for the bank module -* [ignite node query tx](#ignite-node-query-tx) - Query for transaction by hash - - -## ignite node query bank - -Querying commands for the bank module - -**Options** - -``` - -h, --help help for bank -``` - -**Options inherited from parent commands** - -``` - --node string : to tendermint rpc interface for this chain (default "https://rpc.cosmos.directory:443/cosmoshub") -``` - -**SEE ALSO** - -* [ignite node query](#ignite-node-query) - Querying subcommands -* [ignite node query bank balances](#ignite-node-query-bank-balances) - Query for account balances by account name or address - - -## ignite node query bank balances - -Query for account balances by account name or address - -``` -ignite node query bank balances [from_account_or_address] [flags] -``` - -**Options** - -``` - --address-prefix string account address prefix (default "cosmos") - --count-total count total number of records in all balances to query for - -h, --help help for balances - --home string directory where the blockchain node is initialized - --keyring-backend string keyring backend to store your account keys (default "test") - --keyring-dir string accounts keyring directory (default "/home/runner/.ignite/accounts") - --limit uint pagination limit of all balances to query for (default 100) - --offset uint pagination offset of all balances to query for - --page uint pagination page of all balances to query for. This sets offset to a multiple of limit (default 1) - --page-key string pagination page-key of all balances to query for - --reverse results are sorted in descending order -``` - -**Options inherited from parent commands** - -``` - --node string : to tendermint rpc interface for this chain (default "https://rpc.cosmos.directory:443/cosmoshub") -``` - -**SEE ALSO** - -* [ignite node query bank](#ignite-node-query-bank) - Querying commands for the bank module - - -## ignite node query tx - -Query for transaction by hash - -``` -ignite node query tx [hash] [flags] -``` - -**Options** - -``` - -h, --help help for tx -``` - -**Options inherited from parent commands** - -``` - --node string : to tendermint rpc interface for this chain (default "https://rpc.cosmos.directory:443/cosmoshub") -``` - -**SEE ALSO** - -* [ignite node query](#ignite-node-query) - Querying subcommands - - -## ignite node tx - -Transactions subcommands - -**Options** - -``` - --address-prefix string account address prefix (default "cosmos") - --fees string fees to pay along with transaction; eg: 10uatom - --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically (default "auto") - --gas-adjustment float gas adjustment to set per-transaction - --gas-prices string gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) - --generate-only build an unsigned transaction and write it to STDOUT - -h, --help help for tx - --home string directory where the blockchain node is initialized - --keyring-backend string keyring backend to store your account keys (default "test") - --keyring-dir string accounts keyring directory (default "/home/runner/.ignite/accounts") -``` - -**Options inherited from parent commands** - -``` - --node string : to tendermint rpc interface for this chain (default "https://rpc.cosmos.directory:443/cosmoshub") -``` - -**SEE ALSO** - -* [ignite node](#ignite-node) - Make requests to a live blockchain node -* [ignite node tx bank](#ignite-node-tx-bank) - Bank transaction subcommands - - -## ignite node tx bank - -Bank transaction subcommands - -**Options** - -``` - -h, --help help for bank -``` - -**Options inherited from parent commands** - -``` - --address-prefix string account address prefix (default "cosmos") - --fees string fees to pay along with transaction; eg: 10uatom - --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically (default "auto") - --gas-adjustment float gas adjustment to set per-transaction - --gas-prices string gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) - --generate-only build an unsigned transaction and write it to STDOUT - --home string directory where the blockchain node is initialized - --keyring-backend string keyring backend to store your account keys (default "test") - --keyring-dir string accounts keyring directory (default "/home/runner/.ignite/accounts") - --node string : to tendermint rpc interface for this chain (default "https://rpc.cosmos.directory:443/cosmoshub") -``` - -**SEE ALSO** - -* [ignite node tx](#ignite-node-tx) - Transactions subcommands -* [ignite node tx bank send](#ignite-node-tx-bank-send) - Send funds from one account to another. - - -## ignite node tx bank send - -Send funds from one account to another. - -``` -ignite node tx bank send [from_account_or_address] [to_account_or_address] [amount] [flags] -``` - -**Options** - -``` - -h, --help help for send -``` - -**Options inherited from parent commands** - -``` - --address-prefix string account address prefix (default "cosmos") - --fees string fees to pay along with transaction; eg: 10uatom - --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically (default "auto") - --gas-adjustment float gas adjustment to set per-transaction - --gas-prices string gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) - --generate-only build an unsigned transaction and write it to STDOUT - --home string directory where the blockchain node is initialized - --keyring-backend string keyring backend to store your account keys (default "test") - --keyring-dir string accounts keyring directory (default "/home/runner/.ignite/accounts") - --node string : to tendermint rpc interface for this chain (default "https://rpc.cosmos.directory:443/cosmoshub") -``` - -**SEE ALSO** - -* [ignite node tx bank](#ignite-node-tx-bank) - Bank transaction subcommands - - -## ignite relayer - -Connect blockchains with an IBC relayer - -``` -ignite relayer [flags] -``` - -**Options** - -``` - -h, --help help for relayer -``` - -**SEE ALSO** - -* [ignite](#ignite) - Ignite CLI offers everything you need to scaffold, test, build, and launch your blockchain - - -## ignite scaffold - -Create a new blockchain, module, message, query, and more - -**Synopsis** - -Scaffolding is a quick way to generate code for major pieces of your -application. - -For details on each scaffolding target (chain, module, message, etc.) run the -corresponding command with a "--help" flag, for example, "ignite scaffold chain ---help". - -The Ignite team strongly recommends committing the code to a version control -system before running scaffolding commands. This will make it easier to see the -changes to the source code as well as undo the command if you've decided to roll -back the changes. - -This blockchain you create with the chain scaffolding command uses the modular -Cosmos SDK framework and imports many standard modules for functionality like -proof of stake, token transfer, inter-blockchain connectivity, governance, and -more. Custom functionality is implemented in modules located by convention in -the "x/" directory. By default, your blockchain comes with an empty custom -module. Use the module scaffolding command to create an additional module. - -An empty custom module doesn't do much, it's basically a container for logic -that is responsible for processing transactions and changing the application -state. Cosmos SDK blockchains work by processing user-submitted signed -transactions, which contain one or more messages. A message contains data that -describes a state transition. A module can be responsible for handling any -number of messages. - -A message scaffolding command will generate the code for handling a new type of -Cosmos SDK message. Message fields describe the state transition that the -message is intended to produce if processed without errors. - -Scaffolding messages is useful to create individual "actions" that your module -can perform. Sometimes, however, you want your blockchain to have the -functionality to create, read, update and delete (CRUD) instances of a -particular type. Depending on how you want to store the data there are three -commands that scaffold CRUD functionality for a type: list, map, and single. -These commands create four messages (one for each CRUD action), and the logic to -add, delete, and fetch the data from the store. If you want to scaffold only the -logic, for example, you've decided to scaffold messages separately, you can do -that as well with the "--no-message" flag. - -Reading data from a blockchain happens with a help of queries. Similar to how -you can scaffold messages to write data, you can scaffold queries to read the -data back from your blockchain application. - -You can also scaffold a type, which just produces a new protocol buffer file -with a proto message description. Note that proto messages produce (and -correspond with) Go types whereas Cosmos SDK messages correspond to proto "rpc" -in the "Msg" service. - -If you're building an application with custom IBC logic, you might need to -scaffold IBC packets. An IBC packet represents the data sent from one blockchain -to another. You can only scaffold IBC packets in IBC-enabled modules scaffolded -with an "--ibc" flag. Note that the default module is not IBC-enabled. - - -**Options** - -``` - -h, --help help for scaffold -``` - -**SEE ALSO** - -* [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 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 -* [ignite scaffold message](#ignite-scaffold-message) - Message to perform state transition on the blockchain -* [ignite scaffold module](#ignite-scaffold-module) - Custom Cosmos SDK module -* [ignite scaffold packet](#ignite-scaffold-packet) - Message for sending an IBC packet -* [ignite scaffold params](#ignite-scaffold-params) - Parameters for a custom Cosmos SDK module -* [ignite scaffold query](#ignite-scaffold-query) - Query for fetching data from a blockchain -* [ignite scaffold react](#ignite-scaffold-react) - React web app template -* [ignite scaffold single](#ignite-scaffold-single) - CRUD for data stored in a single location -* [ignite scaffold type](#ignite-scaffold-type) - Type definition -* [ignite scaffold vue](#ignite-scaffold-vue) - Vue 3 web app template - - -## ignite scaffold chain - -New Cosmos SDK blockchain - -**Synopsis** - -Create a new application-specific Cosmos SDK blockchain. - -For example, the following command will create a blockchain called "hello" in -the "hello/" directory: - - ignite scaffold chain hello - -A project name can be a simple name or a URL. The name will be used as the Go -module path for the project. Examples of project names: - - ignite scaffold chain foo - ignite scaffold chain foo/bar - ignite scaffold chain example.org/foo - ignite scaffold chain github.com/username/foo - -A new directory with source code files will be created in the current directory. -To use a different path use the "--path" flag. - -Most of the logic of your blockchain is written in custom modules. Each module -effectively encapsulates an independent piece of functionality. Following the -Cosmos SDK convention, custom modules are stored inside the "x/" directory. By -default, Ignite creates a module with a name that matches the name of the -project. To create a blockchain without a default module use the "--no-module" -flag. Additional modules can be added after a project is created with "ignite -scaffold module" command. - -Account addresses on Cosmos SDK-based blockchains have string prefixes. For -example, the Cosmos Hub blockchain uses the default "cosmos" prefix, so that -addresses look like this: "cosmos12fjzdtqfrrve7zyg9sv8j25azw2ua6tvu07ypf". To -use a custom address prefix use the "--address-prefix" flag. For example: - - ignite scaffold chain foo --address-prefix bar - -By default when compiling a blockchain's source code Ignite creates a cache to -speed up the build process. To clear the cache when building a blockchain use -the "--clear-cache" flag. It is very unlikely you will ever need to use this -flag. - -The blockchain is using the Cosmos SDK modular blockchain framework. Learn more -about Cosmos SDK on https://docs.cosmos.network - - -``` -ignite scaffold chain [name] [flags] -``` - -**Options** - -``` - --address-prefix string account address prefix (default "cosmos") - --clear-cache clear the build cache (advanced) - --consumer scafffold an ICS consumer chain - -h, --help help for chain - --minimal create a minimal blockchain (with the minimum required Cosmos SDK modules) - --module-configs strings add module configs - --no-module create a project without a default module - --params strings add default module parameters - -p, --path string create a project in a specific path - --proto-dir string chain proto directory (default "proto") - --skip-git skip Git repository initialization - --skip-proto skip proto generation -``` - -**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 - -**Synopsis** - -Scaffold a new config for a Cosmos SDK module. - -A Cosmos SDK module can have configurations. An example of a config is "address prefix" of the -"auth" module. A config can be scaffolded into a module using the "--module-configs" into -the scaffold module command or using the "scaffold configs" command. By default -configs are of type "string", but you can specify a type for each config. For example: - - ignite scaffold configs foo baz:uint bar:bool - -Refer to Cosmos SDK documentation to learn more about modules, dependencies and -configs. - - -``` -ignite scaffold configs [configs]... [flags] -``` - -**Options** - -``` - --clear-cache clear the build cache (advanced) - -h, --help help for configs - --module string module to add the query into (default: app's main module) - -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 list - -CRUD for data stored as an array - -**Synopsis** - -The "list" scaffolding command is used to generate files that implement the -logic for storing and interacting with data stored as a list in the blockchain -state. - -The command accepts a NAME argument that will be used as the name of a new type -of data. It also accepts a list of FIELDs that describe the type. - -The interaction with the data follows the create, read, updated, and delete -(CRUD) pattern. For each type three Cosmos SDK messages are defined for writing -data to the blockchain: MsgCreate{Name}, MsgUpdate{Name}, MsgDelete{Name}. For -reading data two queries are defined: {Name} and {Name}All. The type, messages, -and queries are defined in the "proto/" directory as protocol buffer messages. -Messages and queries are mounted in the "Msg" and "Query" services respectively. - -When messages are handled, the appropriate keeper methods are called. By -convention, the methods are defined in -"x/{moduleName}/keeper/msg_server_{name}.go". Helpful methods for getting, -setting, removing, and appending are defined in the same "keeper" package in -"{name}.go". - -The "list" command essentially allows you to define a new type of data and -provides the logic to create, read, update, and delete instances of the type. -For example, let's review a command that generates the code to handle a list of -posts and each post has "title" and "body" fields: - - ignite scaffold list post title body - -This provides you with a "Post" type, MsgCreatePost, MsgUpdatePost, -MsgDeletePost and two queries: Post and PostAll. The compiled CLI, let's say the -binary is "blogd" and the module is "blog", has commands to query the chain (see -"blogd q blog") and broadcast transactions with the messages above (see "blogd -tx blog"). - -The code generated with the list command is meant to be edited and tailored to -your application needs. Consider the code to be a "skeleton" for the actual -business logic you will implement next. - -By default, all fields are assumed to be strings. If you want a field of a -different type, you can specify it after a colon ":". The following types are -supported: string, bool, int, uint, coin, array.string, array.int, array.uint, -array.coin. An example of using field types: - - ignite scaffold list pool amount:coin tags:array.string height:int - -For detailed type information use ignite scaffold type --help - -"Index" indicates whether the type can be used as an index in -"ignite scaffold map". - -Ignite also supports custom types: - - ignite scaffold list product-details name desc - ignite scaffold list product price:coin details:ProductDetails - -In the example above the "ProductDetails" type was defined first, and then used -as a custom type for the "details" field. Ignite doesn't support arrays of -custom types yet. - -Your chain will accept custom types in JSON-notation: - - exampled tx example create-product 100coin '{"name": "x", "desc": "y"}' --from alice - -By default the code will be scaffolded in the module that matches your project's -name. If you have several modules in your project, you might want to specify a -different module: - - ignite scaffold list post title body --module blog - -By default, each message comes with a "creator" field that represents the -address of the transaction signer. You can customize the name of this field with -a flag: - - ignite scaffold list post title body --signer author - -It's possible to scaffold just the getter/setter logic without the CRUD -messages. This is useful when you want the methods to handle a type, but would -like to scaffold messages manually. Use a flag to skip message scaffolding: - - ignite scaffold list post title body --no-message - -The "creator" field is not generated if a list is scaffolded with the -"--no-message" flag. - - -``` -ignite scaffold list NAME [field]... [flags] -``` - -**Options** - -``` - --clear-cache clear the build cache (advanced) - -h, --help help for list - --module string specify which module to generate code in - --no-message skip generating message handling logic - --no-simulation skip simulation logic - -p, --path string path of the app (default ".") - --signer string label for the message signer (default: creator) - -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 map - -CRUD for data stored as key-value pairs - -**Synopsis** - -The "map" scaffolding command is used to generate files that implement the logic -for storing and interacting with data stored as key-value pairs (or a -dictionary) in the blockchain state. - -The "map" command is very similar to "ignite scaffold list" with the main -difference in how values are indexed. With "list" values are indexed by an -incrementing integer, whereas "map" values are indexed by a user-provided value -(or multiple values). - -Let's use the same blog post example: - - ignite scaffold map post title body:string - -This command scaffolds a "Post" type and CRUD functionality to create, read, -updated, and delete posts. However, when creating a new post with your chain's -binary (or by submitting a transaction through the chain's API) you will be -required to provide an "index": - - blogd tx blog create-post [index] [title] [body] - blogd tx blog create-post hello "My first post" "This is the body" - -This command will create a post and store it in the blockchain's state under the -"hello" index. You will be able to fetch back the value of the post by querying -for the "hello" key. - - blogd q blog show-post hello - -By default, the index is called "index", to customize the index, use the "--index" flag. - -Since the behavior of "list" and "map" scaffolding is very similar, you can use -the "--no-message", "--module", "--signer" flags as well as the colon syntax for -custom types. - -For detailed type information use ignite scaffold type --help - - -``` -ignite scaffold map NAME [field]... [flags] -``` - -**Options** - -``` - --clear-cache clear the build cache (advanced) - -h, --help help for map - --index string field that index the value (default "index") - --module string specify which module to generate code in - --no-message skip generating message handling logic - --no-simulation skip simulation logic - -p, --path string path of the app (default ".") - --signer string label for the message signer (default: creator) - -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 message - -Message to perform state transition on the blockchain - -**Synopsis** - -Message scaffolding is useful for quickly adding functionality to your -blockchain to handle specific Cosmos SDK messages. - -Messages are objects whose end goal is to trigger state transitions on the -blockchain. A message is a container for fields of data that affect how the -blockchain's state will change. You can think of messages as "actions" that a -user can perform. - -For example, the bank module has a "Send" message for token transfers between -accounts. The send message has three fields: from address (sender), to address -(recipient), and a token amount. When this message is successfully processed, -the token amount will be deducted from the sender's account and added to the -recipient's account. - -Ignite's message scaffolding lets you create new types of messages and add them -to your chain. For example: - - ignite scaffold message add-pool amount:coins denom active:bool --module dex - -The command above will create a new message MsgAddPool with three fields: amount -(in tokens), denom (a string), and active (a boolean). The message will be added -to the "dex" module. - -For detailed type information use ignite scaffold type --help - -By default, the message is defined as a proto message in the -"proto/{app}/{module}/tx.proto" and registered in the "Msg" service. A CLI command to -create and broadcast a transaction with MsgAddPool is created in the module's -"cli" package. Additionally, Ignite scaffolds a message constructor and the code -to satisfy the sdk.Msg interface and register the message in the module. - -Most importantly in the "keeper" package Ignite scaffolds an "AddPool" function. -Inside this function, you can implement message handling logic. - -When successfully processed a message can return data. Use the —response flag to -specify response fields and their types. For example - - ignite scaffold message create-post title body --response id:int,title - -The command above will scaffold MsgCreatePost which returns both an ID (an -integer) and a title (a string). - -Message scaffolding follows the rules as "ignite scaffold list/map/single" and -supports fields with standard and custom types. See "ignite scaffold list —help" -for details. - - -``` -ignite scaffold message [name] [field1:type1] [field2:type2] ... [flags] -``` - -**Options** - -``` - --clear-cache clear the build cache (advanced) - -d, --desc string description of the command - -h, --help help for message - --module string module to add the message into. Default: app's main module - --no-simulation disable CRUD simulation scaffolding - -p, --path string path of the app (default ".") - -r, --response strings response fields - --signer string label for the message signer (default: creator) - -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 module - -Custom Cosmos SDK module - -**Synopsis** - -Scaffold a new Cosmos SDK module. - -Cosmos SDK is a modular framework and each independent piece of functionality is -implemented in a separate module. By default your blockchain imports a set of -standard Cosmos SDK modules. To implement custom functionality of your -blockchain, scaffold a module and implement the logic of your application. - -This command does the following: - -* Creates a directory with module's protocol buffer files in "proto/" -* Creates a directory with module's boilerplate Go code in "x/" -* Imports the newly created module by modifying "app/app.go" -* Creates a file in "testutil/keeper/" that contains logic to create a keeper - for testing purposes - -This command will proceed with module scaffolding even if "app/app.go" doesn't -have the required default placeholders. If the placeholders are missing, you -will need to modify "app/app.go" manually to import the module. If you want the -command to fail if it can't import the module, use the "--require-registration" -flag. - -To scaffold an IBC-enabled module use the "--ibc" flag. An IBC-enabled module is -like a regular module with the addition of IBC-specific logic and placeholders -to scaffold IBC packets with "ignite scaffold packet". - -A module can depend on one or more other modules and import their keeper -methods. To scaffold a module with a dependency use the "--dep" flag - -For example, your new custom module "foo" might have functionality that requires -sending tokens between accounts. The method for sending tokens is a defined in -the "bank"'s module keeper. You can scaffold a "foo" module with the dependency -on "bank" with the following command: - - ignite scaffold module foo --dep bank - -You can then define which methods you want to import from the "bank" keeper in -"expected_keepers.go". - -You can also scaffold a module with a list of dependencies that can include both -standard and custom modules (provided they exist): - - ignite scaffold module bar --dep foo,mint,account,FeeGrant - -Note: the "--dep" flag doesn't install third-party modules into your -application, it just generates extra code that specifies which existing modules -your new custom module depends on. - -A Cosmos SDK module can have parameters (or "params"). Params are values that -can be set at the genesis of the blockchain and can be modified while the -blockchain is running. An example of a param is "Inflation rate change" of the -"mint" module. A module can be scaffolded with params using the "--params" flag -that accepts a list of param names. By default params are of type "string", but -you can specify a type for each param. For example: - - ignite scaffold module foo --params baz:uint,bar:bool - -Refer to Cosmos SDK documentation to learn more about modules, dependencies and -params. - - -``` -ignite scaffold module [name] [flags] -``` - -**Options** - -``` - --clear-cache clear the build cache (advanced) - --dep strings add a dependency on another module - -h, --help help for module - --ibc add IBC functionality - --module-configs strings add module configs - --ordering string channel ordering of the IBC module [none|ordered|unordered] (default "none") - --params strings add module parameters - -p, --path string path of the app (default ".") - --require-registration fail if module can't be registered - -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 packet - -Message for sending an IBC packet - -**Synopsis** - -Scaffold an IBC packet in a specific IBC-enabled Cosmos SDK module - -``` -ignite scaffold packet [packetName] [field1] [field2] ... --module [moduleName] [flags] -``` - -**Options** - -``` - --ack strings custom acknowledgment type (field1,field2,...) - --clear-cache clear the build cache (advanced) - -h, --help help for packet - --module string IBC Module to add the packet into - --no-message disable send message scaffolding - -p, --path string path of the app (default ".") - --signer string label for the message signer (default: creator) - -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 params - -Parameters for a custom Cosmos SDK module - -**Synopsis** - -Scaffold a new parameter for a Cosmos SDK module. - -A Cosmos SDK module can have parameters (or "params"). Params are values that -can be set at the genesis of the blockchain and can be modified while the -blockchain is running. An example of a param is "Inflation rate change" of the -"mint" module. A params can be scaffolded into a module using the "--params" into -the scaffold module command or using the "scaffold params" command. By default -params are of type "string", but you can specify a type for each param. For example: - - ignite scaffold params foo baz:uint bar:bool - -Refer to Cosmos SDK documentation to learn more about modules, dependencies and -params. - - -``` -ignite scaffold params [param]... [flags] -``` - -**Options** - -``` - --clear-cache clear the build cache (advanced) - -h, --help help for params - --module string module to add the query into. Default: app's main module - -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 query - -Query for fetching data from a blockchain - -**Synopsis** - -Query for fetching data from a blockchain. - -For detailed type information use ignite scaffold type --help. - -``` -ignite scaffold query [name] [field1:type1] [field2:type2] ... [flags] -``` - -**Options** - -``` - --clear-cache clear the build cache (advanced) - -d, --desc string description of the CLI to broadcast a tx with the message - -h, --help help for query - --module string module to add the query into. Default: app's main module - --paginated define if the request can be paginated - -p, --path string path of the app (default ".") - -r, --response strings response fields - -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 react - -React web app template - -``` -ignite scaffold react [flags] -``` - -**Options** - -``` - -h, --help help for react - -p, --path string path to scaffold content of the React app (default "./react") - -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 single - -CRUD for data stored in a single location - -**Synopsis** - -CRUD for data stored in a single location. - -For detailed type information use ignite scaffold type --help. - -``` -ignite scaffold single NAME [field:type]... [flags] -``` - -**Examples** - -``` - ignite scaffold single todo-single title:string done:bool -``` - -**Options** - -``` - --clear-cache clear the build cache (advanced) - -h, --help help for single - --module string specify which module to generate code in - --no-message skip generating message handling logic - --no-simulation skip simulation logic - -p, --path string path of the app (default ".") - --signer string label for the message signer (default: creator) - -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 type - -Type definition - -**Synopsis** - -Type information - -Currently supports: - -| Type | Alias | Index | Code Type | Description | -|--------------|---------|-------|-----------|---------------------------------| -| string | - | yes | string | Text type | -| array.string | strings | no | []string | List of text type | -| bool | - | yes | bool | Boolean type | -| int | - | yes | int64 | Integer type | -| array.int | ints | no | []int64 | List of integers types | -| uint | - | yes | uint64 | Unsigned integer type | -| array.uint | uints | no | []uint64 | List of unsigned integers types | -| coin | - | no | sdk.Coin | Cosmos SDK coin type | -| array.coin | coins | no | sdk.Coins | List of Cosmos SDK coin types | - -Field Usage: - - fieldName - - fieldName:fieldType - -If no :fieldType, default (string) is used - - - -``` -ignite scaffold type NAME [field:type] ... [flags] -``` - -**Examples** - -``` - ignite scaffold type todo-item priority:int desc:string tags:array.string done:bool -``` - -**Options** - -``` - --clear-cache clear the build cache (advanced) - -h, --help help for type - --module string specify which module to generate code in - --no-message skip generating message handling logic - --no-simulation skip simulation logic - -p, --path string path of the app (default ".") - --signer string label for the message signer (default: creator) - -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 vue - -Vue 3 web app template - -``` -ignite scaffold vue [flags] -``` - -**Options** - -``` - -h, --help help for vue - -p, --path string path to scaffold content of the Vue.js app (default "./vue") - -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 version - -Print the current build information - -``` -ignite version [flags] -``` - -**Options** - -``` - -h, --help help for version -``` - -**SEE ALSO** - -* [ignite](#ignite) - Ignite CLI offers everything you need to scaffold, test, build, and launch your blockchain - - -## ignite testnet - -Start a testnet local - -**Synopsis** - -The commands in this namespace allow you to start your local testnet for development purposes. - - -The "in-place" command is used to create and start a testnet from current local net state(including mainnet). -After using this command in the repo containing the config.yml file, the network will start. -We can create a testnet from the local network state and mint additional coins for the desired accounts from the config.yml file. - -During development, in-place allows you to quickly reboot the chain from a multi-node network state to a node you have full control over. - -The "multi-node" initialization and start command is used to set up and launch a multi-node network, allowing you to enable, disable, and providing full interaction capabilities with the chain. The stake amount for each validator is defined in the config.yml file. - -**SEE ALSO** - -* [ignite testnet in-place](#ignite-testnet-in-place) - Create and start a testnet from current local net state -* [ignite testnet multi-node](#ignite-testnet-multi-node) - Initialize and provide multi-node on/off functionality - - -## ignite testnet in-place - -Create and start a testnet from current local net state - -**Synopsis** - -The "in-place" command is used to create and start a testnet from current local net state(including mainnet). - -We can create a testnet from the local network state and mint additional coins for the desired accounts from the config.yml file. - -During development, in-place allows you to quickly reboot the chain from a multi-node network state to a node you have full control over. - -By default, the data directory will be initialized in $HOME/.mychain, where "mychain" is the name of the project. To set a custom data directory use the --home flag or set the value in config.yml: - - validators: - - name: alice - bonded: '100000000stake' - home: "~/.customdir" - -Get mint coin just add account in config.yml file: - - accounts: - - name: charlie - coins: - - 20000token - - 200000000stake - - -``` -ignite chain debug [flags] -``` - -**Options** - -``` - -h, --help help for debug - -p, --path string path of the app (default ".") -``` - -**Options inherited from parent commands** - -``` - -c, --config string path to Ignite config file (default: ./config.yml) -``` - -## ignite testnet multi-node - -Initialize and start multiple nodes - -**Synopsis** - -The "multi-node" command allows developers to easily set up, initialize, and manage multiple nodes for a testnet environment. This command provides full flexibility in enabling or disabling each node as desired, making it a powerful tool for simulating a multi-node blockchain network during development. - -By using the config.yml file, you can define validators with custom bonded amounts, giving you control over how each node participates in the network: - -``` - validators: - - name: alice - bonded: 100000000stake - - name: validator1 - bonded: 100000000stake - - name: validator2 - bonded: 200000000stake - - name: validator3 - bonded: 300000000stake - -``` - -Each validator's bonded stake can be adjusted according to your testing needs, providing a realistic environment to simulate various scenarios. - -The multi-node command not only initializes these nodes but also gives you control over starting, stopping individual nodes. This level of control ensures you can test and iterate rapidly without needing to reinitialize the entire network each time a change is made. This makes it ideal for experimenting with validator behavior, network dynamics, and the impact of various configurations. - -All initialized nodes will be stored under the `.ignite/local-chains//testnet/` directory, which allows easy access and management. - - -Usage - -``` -ignite testnet multi-node [flags] -``` - -**Options** - -``` - -r, --reset-once reset the app state once on init - --node-dir-prefix dir prefix for node (default "validator") - -h, --help help for debug - -p, --path string path of the app (default ".") -``` - -**Options inherited from parent commands** - -``` - -c, --config string path to Ignite config file (default: ./config.yml) -``` - -**SEE ALSO** - -* [ignite](#ignite) - Ignite CLI offers everything you need to scaffold, test, build, start testnet and launch your blockchain \ No newline at end of file diff --git a/docs/versioned_docs/version-v29/03-CLI-Commands/_category_.json b/docs/versioned_docs/version-v29/03-CLI-Commands/_category_.json deleted file mode 100644 index b913da648e..0000000000 --- a/docs/versioned_docs/version-v29/03-CLI-Commands/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "CLI Commands", - "link": null - } \ No newline at end of file diff --git a/docs/versioned_docs/version-v29/04-clients/01-go-client.md b/docs/versioned_docs/version-v29/04-clients/01-go-client.md deleted file mode 100644 index 65e5e520f1..0000000000 --- a/docs/versioned_docs/version-v29/04-clients/01-go-client.md +++ /dev/null @@ -1,300 +0,0 @@ ---- -description: Blockchain client in Go -title: Go client ---- - -# A client in the Go programming language - -In this tutorial, we will show you how to create a standalone Go program that -serves as a client for a blockchain. We will use the Ignite CLI to set up a -standard blockchain. To communicate with the blockchain, we will utilize the -`cosmosclient` package, which provides an easy-to-use interface for interacting -with the blockchain. You will learn how to use the `cosmosclient` package to -send transactions and query the blockchain. By the end of this tutorial, you -will have a good understanding of how to build a client for a blockchain using -Go and the `cosmosclient` package. - -## Create a blockchain - -To create a blockchain using the Ignite CLI, use the following command: - -``` -ignite scaffold chain blog -``` - -This will create a new Cosmos SDK blockchain called "blog". - -Once the blockchain has been created, you can generate code for a "blog" model -that will enable you to perform create, read, update, and delete (CRUD) -operations on blog posts. To do this, you can use the following command: - -``` -cd blog -ignite scaffold list post title body -``` - -This will generate the necessary code for the "blog" model, including functions -for creating, reading, updating, and deleting blog posts. With this code in -place, you can now use your blockchain to perform CRUD operations on blog posts. -You can use the generated code to create new blog posts, retrieve existing ones, -update their content, and delete them as needed. This will give you a fully -functional Cosmos SDK blockchain with the ability to manage blog posts. - -Start your blockchain node with the following command: - -``` -ignite chain serve -``` - -## Creating a blockchain client - -Create a new directory called `blogclient` on the same level as `blog` -directory. As the name suggests, `blogclient` will contain a standalone Go -program that acts as a client to your `blog` blockchain. - -```bash -mkdir blogclient -``` - -This command will create a new directory called `blogclient` in your current -location. If you type `ls` in your terminal window, you should see both the -`blog` and `blogclient` directories listed. - -To initialize a new Go package inside the `blogclient` directory, you can use -the following command: - -``` -cd blogclient -go mod init blogclient -``` - -This will create a `go.mod` file in the `blogclient` directory, which contains -information about the package and the Go version being used. - -To import dependencies for your package, you can add the following code to the -`go.mod` file: - -```text title="blogclient/go.mod" -module blogclient - -go 1.20 - -require ( - blog v0.0.0-00010101000000-000000000000 - github.com/ignite/cli v0.25.2 -) - -replace blog => ../blog -replace github.com/gogo/protobuf => github.com/regen-network/protobuf v1.3.3-alpha.regen.1 -``` - -Your package will import two dependencies: - -* `blog`, which contains `types` of messages and a query client -* `ignite` for the `cosmosclient` package - -The `replace` directive uses the package from the local `blog` directory and is -specified as a relative path to the `blogclient` directory. - -Cosmos SDK uses a custom version of the `protobuf` package, so use the `replace` -directive to specify the correct dependency. - -Finally, install dependencies for your `blogclient`: - -```bash -go mod tidy -``` - -### Main logic of the client in `main.go` - -Create a `main.go` file inside the `blogclient` directory and add the following -code: - -```go title="blogclient/main.go" -package main - -import ( - "context" - "fmt" - "log" - - // Importing the general purpose Cosmos blockchain client - "github.com/ignite/cli/v29/ignite/pkg/cosmosclient" - - // Importing the types package of your blog blockchain - "blog/x/blog/types" -) - -func main() { - ctx := context.Background() - addressPrefix := "cosmos" - - // Create a Cosmos client instance - client, err := cosmosclient.New(ctx, cosmosclient.WithAddressPrefix(addressPrefix)) - if err != nil { - log.Fatal(err) - } - - // Account `alice` was initialized during `ignite chain serve` - accountName := "alice" - - // Get account from the keyring - account, err := client.Account(accountName) - if err != nil { - log.Fatal(err) - } - - addr, err := account.Address(addressPrefix) - if err != nil { - log.Fatal(err) - } - - // Define a message to create a post - msg := &types.MsgCreatePost{ - Creator: addr, - Title: "Hello!", - Body: "This is the first post", - } - - // Broadcast a transaction from account `alice` with the message - // to create a post store response in txResp - txResp, err := client.BroadcastTx(ctx, account, msg) - if err != nil { - log.Fatal(err) - } - - // Print response from broadcasting a transaction - fmt.Print("MsgCreatePost:\n\n") - fmt.Println(txResp) - - // Instantiate a query client for your `blog` blockchain - queryClient := types.NewQueryClient(client.Context()) - - // Query the blockchain using the client's `PostAll` method - // to get all posts store all posts in queryResp - queryResp, err := queryClient.PostAll(ctx, &types.QueryAllPostRequest{}) - if err != nil { - log.Fatal(err) - } - - // Print response from querying all the posts - fmt.Print("\n\nAll posts:\n\n") - fmt.Println(queryResp) -} -``` - -The code above creates a standalone Go program that acts as a client to the -`blog` blockchain. It begins by importing the required packages, including the -general purpose Cosmos blockchain client and the `types` package of the `blog` -blockchain. - -In the `main` function, the code creates a Cosmos client instance and sets the -address prefix to "cosmos". It then retrieves an account named `"alice"` from -the keyring and gets the address of the account using the address prefix. - -Next, the code defines a message to create a blog post with the title "Hello!" -and body "This is the first post". It then broadcasts a transaction from the -account "alice" with the message to create the post, and stores the response in -the variable `txResp`. - -The code then instantiates a query client for the blog blockchain and uses it to -query the blockchain to retrieve all the posts. It stores the response in the -variable `queryResp` and prints it to the console. - -Finally, the code prints the response from broadcasting the transaction to the -console. This allows the user to see the results of creating and querying a blog -post on the `blog` blockchain using the client. - -To find out more about the `cosmosclient` package, you can refer to the Go -package documentation for -[`cosmosclient`](https://pkg.go.dev/github.com/ignite/cli/ignite/pkg/cosmosclient). -This documentation provides information on how to use the `Client` type with -`Options` and `KeyringBackend`. - -## Run the blockchain and the client - -Make sure your blog blockchain is still running with `ignite chain serve`. - -Run the blockchain client: - -```bash -go run main.go -``` - -If the command is successful, the results of running the command will be printed -to the terminal. The output may include some warnings, which can be ignored. - -```yml -MsgCreatePost: - -code: 0 -codespace: "" -data: 12220A202F626C6F672E626C6F672E4D7367437265617465506F7374526573706F6E7365 -events: -- attributes: - - index: true - key: ZmVl - value: null - - index: true - key: ZmVlX3BheWVy - value: Y29zbW9zMWR6ZW13NzZ3enQ3cDBnajd3MzQyN2E0eHg3MjRkejAzd3hnOGhk - type: tx -- attributes: - - index: true - key: YWNjX3NlcQ== - value: Y29zbW9zMWR6ZW13NzZ3enQ3cDBnajd3MzQyN2E0eHg3MjRkejAzd3hnOGhkLzE= - type: tx -- attributes: - - index: true - key: c2lnbmF0dXJl - value: UWZncUJCUFQvaWxWVzJwNUJNTngzcDlvRzVpSXp0elhXdE9yMHcwVE00OEtlSkRqR0FEdU9VNjJiY1ZRNVkxTHdEbXNuYUlsTmc3VE9uMnJ2ZWRHSlE9PQ== - type: tx -- attributes: - - index: true - key: YWN0aW9u - value: L2Jsb2cuYmxvZy5Nc2dDcmVhdGVQb3N0 - type: message -gas_used: "52085" -gas_wanted: "300000" -height: "20" -info: "" -logs: -- events: - - attributes: - - key: action - value: /blog.blog.MsgCreatePost - type: message - log: "" - msg_index: 0 -raw_log: '[{"msg_index":0,"events":[{"type":"message","attributes":[{"key":"action","value":"/blog.blog.MsgCreatePost"}]}]}]' -timestamp: "" -tx: null -txhash: 4F53B75C18254F96EF159821DDD665E965DBB576A5AC2B94CE863EB62E33156A - -All posts: - -Post: pagination: -``` - -As you can see the client has successfully broadcasted a transaction and queried -the chain for blog posts. - -Please note, that some values in the output on your terminal (like transaction -hash and block height) might be different from the output above. - -You can confirm the new post with using the `blogd q blog list-post` command: - -```yaml -Post: -- body: This is the first post - creator: cosmos1dzemw76wzt7p0gj7w3427a4xx724dz03wxg8hd - id: "0" - title: Hello! -pagination: - next_key: null - total: "0" -``` - -Great job! You have successfully completed the process of creating a Go client -for your Cosmos SDK blockchain, submitting a transaction, and querying the -chain. \ No newline at end of file diff --git a/docs/versioned_docs/version-v29/04-clients/02-typescript.md b/docs/versioned_docs/version-v29/04-clients/02-typescript.md deleted file mode 100644 index 5cfbf7705d..0000000000 --- a/docs/versioned_docs/version-v29/04-clients/02-typescript.md +++ /dev/null @@ -1,430 +0,0 @@ ---- -description: Information about the generated TypeScript client code. ---- - -# TypeScript frontend - -Ignite offers powerful functionality for generating client-side code for your -blockchain. Think of this as a one-click client SDK generation tailored -specifically for your blockchain. - -See `ignite generate ts-client --help` learn more on how to use TypeScript code generation. - -## Starting a node - -Create a new blockchain with `ignite scaffold chain`. You can use an existing -blockchain project if you have one, instead. - -``` -ignite scaffold chain example -``` - -For testing purposes add a new account to `config.yml` with a mnemonic: - -```yml title="config.yml" -accounts: - - name: frank - coins: ["1000token", "100000000stake"] - mnemonic: play butter frown city voyage pupil rabbit wheat thrive mind skate turkey helmet thrive door either differ gate exhibit impose city swallow goat faint -``` - -Run a command to generate TypeScript clients for both standard and custom Cosmos -SDK modules: - -``` -ignite generate ts-client --clear-cache -``` - -Run a command to start your blockchain node: - -``` -ignite chain serve -r -``` - -## Setting up a TypeScript frontend client - -The best way to get started building with the TypeScript client is by using -[Vite](https://vitejs.dev). Vite provides boilerplate code for -vanilla TS projects as well as React, Vue, Lit, Svelte and Preact frameworks. -You can find additional information at the [Vite Getting Started -guide](https://vitejs.dev/guide). - -You will also need to [polyfill](https://developer.mozilla.org/en-US/docs/Glossary/Polyfill) the client's dependencies. The following is an -example of setting up a vanilla TS project with the necessary polyfills: - -```bash -npm create vite@latest my-frontend-app -- --template vanilla-ts -cd my-frontend-app -npm install --save-dev @esbuild-plugins/node-globals-polyfill @rollup/plugin-node-resolve -``` - -You must then create the necessary `vite.config.ts` file. - -```typescript title="my-frontend-app/vite.config.ts" -import { nodeResolve } from "@rollup/plugin-node-resolve"; -import { NodeGlobalsPolyfillPlugin } from "@esbuild-plugins/node-globals-polyfill"; -import { defineConfig } from "vite"; - -export default defineConfig({ - plugins: [nodeResolve()], - - optimizeDeps: { - esbuildOptions: { - define: { - global: "globalThis", - }, - plugins: [ - NodeGlobalsPolyfillPlugin({ - buffer: true, - }), - ], - }, - }, -}); -``` - -You are then ready to use the generated client code inside this project directly -or by publishing the client and installing it like any other `npm` package. - -After the chain starts, you will see Frank's address is -`cosmos13xkhcx2dquhqdml0k37sr7yndquwteuvt2cml7`. We'll be using Frank's account -for querying data and broadcasting transactions in the next section. - -## Querying - -The code generated in `ts-client` comes with a `package.json` file ready to -publish which you can modify to suit your needs. To use`ts-client` install the -required dependencies: - -``` -cd ts-client -npm install -``` - -The client is based on a modular architecture where you can configure a client -class to support the modules you need and instantiate it. - -By default, the generated client exports a client class that includes all the -Cosmos SDK, custom and 3rd party modules in use in your project. - -To instantiate the client you need to provide environment information (endpoints -and chain prefix). For querying that's all you need: - -```typescript title="my-frontend-app/src/main.ts" -import { Client } from "../../ts-client"; - -const client = new Client( - { - apiURL: "http://localhost:1317", - rpcURL: "http://localhost:26657", - prefix: "cosmos", - } -); -``` - -The example above uses `ts-client` from a local directory. If you have published -your `ts-client` on `npm` replace `../../ts-client` with a package name. - -The resulting client instance contains namespaces for each module, each with a -`query` and `tx` namespace containing the module's relevant querying and -transacting methods with full type and auto-completion support. - -To query for a balance of an address: - -```typescript -const balances = await client.CosmosBankV1Beta1.query.queryAllBalances( - 'cosmos13xkhcx2dquhqdml0k37sr7yndquwteuvt2cml7' -); -``` - -## Broadcasting a transaction - -Add signing capabilities to the client by creating a wallet from a mnemonic -(we're using the Frank's mnemonic added to `config.yml` earlier) and passing it -as an optional argument to `Client()`. The wallet implements the CosmJS -OfflineSigner` interface. - -```typescript title="my-frontend-app/src/main.ts" -import { Client } from "../../ts-client"; -// highlight-start -import { DirectSecp256k1HdWallet } from "@cosmjs/proto-signing"; - -const mnemonic = - "play butter frown city voyage pupil rabbit wheat thrive mind skate turkey helmet thrive door either differ gate exhibit impose city swallow goat faint"; -const wallet = await DirectSecp256k1HdWallet.fromMnemonic(mnemonic); -// highlight-end - -const client = new Client( - { - apiURL: "http://localhost:1317", - rpcURL: "http://localhost:26657", - prefix: "cosmos", - }, - // highlight-next-line - wallet -); -``` - -Broadcasting a transaction: - -```typescript title="my-frontend-app/src/main.ts" -const tx_result = await client.CosmosBankV1Beta1.tx.sendMsgSend({ - value: { - amount: [ - { - amount: '200', - denom: 'token', - }, - ], - fromAddress: 'cosmos13xkhcx2dquhqdml0k37sr7yndquwteuvt2cml7', - toAddress: 'cosmos15uw6qpxqs6zqh0zp3ty2ac29cvnnzd3qwjntnc', - }, - fee: { - amount: [{ amount: '0', denom: 'stake' }], - gas: '200000', - }, - memo: '', -}) -``` - -## Broadcasting a transaction with a custom message - -If your chain already has custom messages defined, you can use those. If not, -we'll be using Ignite's scaffolded code as an example. Create a post with CRUD -messages: - -``` -ignite scaffold list post title body -``` - -After adding messages to your chain you may need to re-generate the TypeScript -client: - -``` -ignite generate ts-client --clear-cache -``` - -Broadcast a transaction containing the custom `MsgCreatePost`: - -```typescript title="my-frontend-app/src/main.ts" -import { Client } from "../../ts-client"; -import { DirectSecp256k1HdWallet } from "@cosmjs/proto-signing"; - -const mnemonic = - "play butter frown city voyage pupil rabbit wheat thrive mind skate turkey helmet thrive door either differ gate exhibit impose city swallow goat faint"; -const wallet = await DirectSecp256k1HdWallet.fromMnemonic(mnemonic); - -const client = new Client( - { - apiURL: "http://localhost:1317", - rpcURL: "http://localhost:26657", - prefix: "cosmos", - }, - wallet -); -// highlight-start -const tx_result = await client.ExampleExample.tx.sendMsgCreatePost({ - value: { - title: 'foo', - body: 'bar', - creator: 'cosmos13xkhcx2dquhqdml0k37sr7yndquwteuvt2cml7', - }, - fee: { - amount: [{ amount: '0', denom: 'stake' }], - gas: '200000', - }, - memo: '', -}) -// highlight-end -``` - -## Lightweight client - -If you prefer, you can construct a lighter client using only the modules you are -interested in by importing the generic client class and expanding it with the -modules you need: - -```typescript title="my-frontend-app/src/main.ts" -// highlight-start -import { IgniteClient } from '../../ts-client/client' -import { Module as CosmosBankV1Beta1 } from '../../ts-client/cosmos.bank.v1beta1' -import { Module as CosmosStakingV1Beta1 } from '../../ts-client/cosmos.staking.v1beta1' -// highlight-end -import { DirectSecp256k1HdWallet } from '@cosmjs/proto-signing' - -const mnemonic = - 'play butter frown city voyage pupil rabbit wheat thrive mind skate turkey helmet thrive door either differ gate exhibit impose city swallow goat faint' -const wallet = await DirectSecp256k1HdWallet.fromMnemonic(mnemonic) -// highlight-next-line -const Client = IgniteClient.plugin([CosmosBankV1Beta1, CosmosStakingV1Beta1]) - -const client = new Client( - { - apiURL: 'http://localhost:1317', - rpcURL: 'http://localhost:26657', - prefix: 'cosmos', - }, - wallet, -) -``` - -## Broadcasting a multi-message transaction - -You can also construct TX messages separately and send them in a single TX using -a global signing client like so: - -```typescript title="my-frontend-app/src/main.ts" -const msg1 = await client.CosmosBankV1Beta1.tx.msgSend({ - value: { - amount: [ - { - amount: '200', - denom: 'token', - }, - ], - fromAddress: 'cosmos13xkhcx2dquhqdml0k37sr7yndquwteuvt2cml7', - toAddress: 'cosmos15uw6qpxqs6zqh0zp3ty2ac29cvnnzd3qwjntnc', - }, -}) - -const msg2 = await client.CosmosBankV1Beta1.tx.msgSend({ - value: { - amount: [ - { - amount: '200', - denom: 'token', - }, - ], - fromAddress: 'cosmos13xkhcx2dquhqdml0k37sr7yndquwteuvt2cml7', - toAddress: 'cosmos15uw6qpxqs6zqh0zp3ty2ac29cvnnzd3qwjntnc', - }, -}) - -const tx_result = await client.signAndBroadcast( - [msg1, msg2], - { - amount: [{ amount: '0', denom: 'stake' }], - gas: '200000', - }, - '', -) -``` - -Finally, for additional ease-of-use, apart from the modular client mentioned -above, each generated module is usable on its own in a stripped-down way by -exposing a separate txClient and queryClient. - -```typescript title="my-frontend-app/src/main.ts" -import { txClient } from '../../ts-client/cosmos.bank.v1beta1' -import { DirectSecp256k1HdWallet } from '@cosmjs/proto-signing' - -const mnemonic = - 'play butter frown city voyage pupil rabbit wheat thrive mind skate turkey helmet thrive door either differ gate exhibit impose city swallow goat faint' -const wallet = await DirectSecp256k1HdWallet.fromMnemonic(mnemonic) - -const client = txClient({ - signer: wallet, - prefix: 'cosmos', - addr: 'http://localhost:26657', -}) - -const tx_result = await client.sendMsgSend({ - value: { - amount: [ - { - amount: '200', - denom: 'token', - }, - ], - fromAddress: 'cosmos13xkhcx2dquhqdml0k37sr7yndquwteuvt2cml7', - toAddress: 'cosmos15uw6qpxqs6zqh0zp3ty2ac29cvnnzd3qwjntnc', - }, - fee: { - amount: [{ amount: '0', denom: 'stake' }], - gas: '200000', - }, - memo: '', -}) -``` - -## Usage with Keplr - -Normally, Keplr provides a wallet object implementing the `OfflineSigner` -interface, so you can simply replace the `wallet` argument in client -instantiation with `window.keplr.getOfflineSigner(chainId)`. However, Keplr -requires information about your chain, like chain ID, denoms, fees, etc. -[`experimentalSuggestChain()`](https://docs.keplr.app/api/suggest-chain.html) is -a method Keplr provides to pass this information to the Keplr extension. - -The generated client makes this easier by offering a `useKeplr()` method that -automatically discovers the chain information and sets it up for you. Thus, you -can instantiate the client without a wallet and then call `useKeplr()` to enable -transacting via Keplr like so: - -```typescript title="my-frontend-app/src/main.ts" -import { Client } from '../../ts-client'; - -const client = new Client({ - apiURL: "http://localhost:1317", - rpcURL: "http://localhost:26657", - prefix: "cosmos" - } -); -await client.useKeplr(); -``` - -`useKeplr()` optionally accepts an object argument that contains one or more of -the same keys as the `ChainInfo` type argument of `experimentalSuggestChain()` -allowing you to override the auto-discovered values. - -For example, the default chain name and token precision (which are not recorded -on-chain) are set to ` Network` and `0` while the ticker for the denom -is set to the denom name in uppercase. If you want to override these, you can do -something like: - -```typescript title="my-frontend-app/src/main.ts" -import { Client } from '../../ts-client'; - -const client = new Client({ - apiURL: "http://localhost:1317", - rpcURL: "http://localhost:26657", - prefix: "cosmos" - } -); -await client.useKeplr({ - chainName: 'My Great Chain', - stakeCurrency: { - coinDenom: 'TOKEN', - coinMinimalDenom: 'utoken', - coinDecimals: '6', - }, -}) -``` - -## Wallet switching - -The client also allows you to switch out the wallet for a different one on an -already instantiated client like so: - -```typescript -import { Client } from '../../ts-client'; -import { DirectSecp256k1HdWallet } from "@cosmjs/proto-signing"; - -const mnemonic = - 'play butter frown city voyage pupil rabbit wheat thrive mind skate turkey helmet thrive door either differ gate exhibit impose city swallow goat faint' -const wallet = await DirectSecp256k1HdWallet.fromMnemonic(mnemonic); - -const client = new Client({ - apiURL: "http://localhost:1317", - rpcURL: "http://localhost:26657", - prefix: "cosmos" - } -); -await client.useKeplr(); - -// broadcast transactions using the Keplr wallet - -client.useSigner(wallet); - -// broadcast transactions using the CosmJS wallet -``` diff --git a/docs/versioned_docs/version-v29/04-clients/03-vue.md b/docs/versioned_docs/version-v29/04-clients/03-vue.md deleted file mode 100644 index 3619cec6e5..0000000000 --- a/docs/versioned_docs/version-v29/04-clients/03-vue.md +++ /dev/null @@ -1,174 +0,0 @@ -# Vue frontend - -Welcome to this tutorial on using Ignite to develop a web application for your -blockchain with Vue 3. Ignite is a tool that simplifies the process of building -a blockchain application by providing a set of templates and generators that can -be used to get up and running quickly. - -One of the features of Ignite is its support for [Vue 3](https://vuejs.org/), a -popular JavaScript framework for building user interfaces. In this tutorial, you -will learn how to use Ignite to create a new blockchain and scaffold a Vue -frontend template. This will give you a basic foundation for your web -application and make it easier to get started building out the rest of your -application. - -Once you have your blockchain and Vue template set up, the next step is to -generate an API client. This will allow you to easily interact with your -blockchain from your web application, enabling you to retrieve data and make -transactions. By the end of this tutorial, you will have a fully functional web -application that is connected to your own blockchain. - -Prerequisites: - -* [Node.js](https://nodejs.org/en/) -* [Keplr](https://www.keplr.app/) Chrome extension - -## Create a blockchain and a Vue app - -Create a new blockchain project: - -``` -ignite scaffold chain example -``` - -To create a Vue frontend template, go to the `example` directory and run the -following command: - -``` -ignite scaffold vue -``` - -This will create a new Vue project in the `vue` directory. This project can be -used with any blockchain, but it depends on an API client to interact with the -blockchain. To generate an API client, run the following command in the -`example` directory: - -``` -ignite generate composables -``` - -This command generates two directories: - -* `ts-client`: a framework-agnostic TypeScript client that can be used to - interact with your blockchain. You can learn more about how to use this client - in the [TypeScript client tutorial](/clients/typescript). -* `vue/src/composables`: a collection of Vue 3 - [composables](https://vuejs.org/guide/reusability/composables.html) that wrap - the TypeScript client and make it easier to interact with your blockchain from - your Vue application. - -## Set up Keplr and an account - -Open your browser with the Keplr wallet extension installed. Follow [the -instructions](https://keplr.crunch.help/en/getting-started/creating-a-new-keplr-account) -to create a new account or use an existing one. Make sure to save the mnemonic -phrase as you will need it in the next step. - -Do not use a mnemonic phrase that is associated with an account that holds -assets you care about. If you do, you risk losing those assets. It's a good -practice to create a new account for development purposes. - -Add the account you're using in Keplr to your blockchain's `config.yml` file: - -```yml -accounts: - - name: alice - coins: [20000token, 200000000stake] - - name: bob - coins: [10000token, 100000000stake] - # highlight-start - - name: frank - coins: [10000token, 100000000stake] - mnemonic: struggle since inmate safe logic kite tag web win stay security wonder - # highlight-end -``` - -Replace the `struggle since...` mnemonic with the one you saved in the previous -step. - -Adding an account with a mnemonic to the config file will tell Ignite CLI to add -the account to the blockchain when you start it. This is useful for development -purposes, but you should not do this in production. - -## Start a blockchain and a Vue app - -In the `example` directory run the following command to start your blockchain: - -``` -ignite chain serve -``` - -To start your Vue application, go to the `vue` directory and run the following -command in a separate terminal window: - -``` -npm install && npm run dev -``` - -It is recommended to run `npm install` before starting your app with `npm run -dev` to ensure that all dependencies are installed (including the ones that the -API client has, see `vue/postinstall.js`). - -Open your browser and navigate to -[http://localhost:5173/](http://localhost:5173/). - -![Web app](/img/web-1.png) - -Press "Connect wallet", enter your password into Keplr and press "Approve" to -add your blockchain to Keplr. - - - -Make sure to select the account you're using for development purposes and the -"Example Network" in Keplr's blockchain dropdown. You should see a list of -assets in your Vue app. - -![Web app](/img/web-5.png) - -Congratulations! You have successfully created a client-side Vue application and -connected it to your blockchain. You can modify the source code of your Vue -application to build out the rest of your project. - -## Setting the address prefix - -It is necessary to set the correct address prefix in order for the Vue app to -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 `cosmos` prefix. If you have -created your chain with `ignite scaffold chain ... --address-prefix foo` or -manually changed the prefix in the source code of the chain, you need to set the -prefix in the Vue app. - -There are two ways to set the address prefix in a Vue app. - -### Using an environment variable - -You can set the `VITE_ADDRESS_PREFIX` environment variable to the correct -address prefix for your chain. This will override the default prefix used by the -app. - -To set the `VITE_ADDRESS_PREFIX` environment variable, you can use the following -command: - -```bash -export VITE_ADDRESS_PREFIX=your-prefix -``` - -Replace `your-prefix` with the actual address prefix for your chain. - -### Setting address prefix in the code - -Alternatively, you can manually set the correct address prefix by replacing the -fallback value of the `prefix` variable in the file `./vue/src/env.ts`. - -To do this, open the file `./vue/src/env.ts` and find the following line: - -```ts title="./vue/src/env.ts" -const prefix = process.env.VITE_ADDRESS_PREFIX || 'your-prefix'; -``` - -Replace `your-prefix` with the actual address prefix for your chain. - -Save the file and restart the Vue app to apply the changes. diff --git a/docs/versioned_docs/version-v29/04-clients/04-react.md b/docs/versioned_docs/version-v29/04-clients/04-react.md deleted file mode 100644 index b9e7cff6f7..0000000000 --- a/docs/versioned_docs/version-v29/04-clients/04-react.md +++ /dev/null @@ -1,130 +0,0 @@ -# React frontend - -Welcome to this tutorial on using Ignite to develop a web application for your -blockchain with React. Ignite is a tool that simplifies the process of building -a blockchain application by providing a set of templates and generators that can -be used to get up and running quickly. - -One of the features of Ignite is its support for [React](https://reactjs.org/), a -popular JavaScript framework for building user interfaces. In this tutorial, you -will learn how to use Ignite to create a new blockchain and scaffold a React -frontend template. This will give you a basic foundation for your web -application and make it easier to get started building out the rest of your -application. - -Once you have your blockchain and React template set up, the next step is to -generate an API client. This will allow you to easily interact with your -blockchain from your web application, enabling you to retrieve data and make -transactions. By the end of this tutorial, you will have a fully functional web -application that is connected to your own blockchain. - -Prerequisites: - -* [Node.js](https://nodejs.org/en/) -* [Keplr](https://www.keplr.app/) Chrome extension - -## Create a blockchain and a React app - -Create a new blockchain project: - -``` -ignite scaffold chain example -``` - -To create a React frontend template, go to the `example` directory and run the -following command: - -``` -ignite scaffold react -``` - -This will create a new React project in the `react` directory. This project can be -used with any blockchain, but it depends on an API client to interact with the -blockchain. To generate an API client, run the following command in the -`example` directory: - -``` -ignite generate hooks -``` - -This command generates two directories: - -* `ts-client`: a framework-agnostic TypeScript client that can be used to - interact with your blockchain. You can learn more about how to use this client - in the [TypeScript client tutorial](/clients/typescript). -* `react/src/hooks`: a collection of - [React Hooks](https://reactjs.org/docs/hooks-intro.html) that wrap - the TypeScript client and make it easier to interact with your blockchain from - your React application. - -## Set up Keplr and an account - -Open your browser with the Keplr wallet extension installed. Follow [the -instructions](https://keplr.crunch.help/en/getting-started/creating-a-new-keplr-account) -to create a new account or use an existing one. Make sure to save the mnemonic -phrase as you will need it in the next step. - -Do not use a mnemonic phrase that is associated with an account that holds -assets you care about. If you do, you risk losing those assets. It's a good -practice to create a new account for development purposes. - -Add the account you're using in Keplr to your blockchain's `config.yml` file: - -```yml -accounts: - - name: alice - coins: [20000token, 200000000stake] - - name: bob - coins: [10000token, 100000000stake] - # highlight-start - - name: frank - coins: [10000token, 100000000stake] - mnemonic: struggle since inmate safe logic kite tag web win stay security wonder - # highlight-end -``` - -Replace the `struggle since...` mnemonic with the one you saved in the previous -step. - -Adding an account with a mnemonic to the config file will tell Ignite CLI to add -the account to the blockchain when you start it. This is useful for development -purposes, but you should not do this in production. - -## Start a blockchain and a React app - -In the `example` directory run the following command to start your blockchain: - -``` -ignite chain serve -``` - -To start your React application, go to the `react` directory and run the following -command in a separate terminal window: - -``` -npm install && npm run dev -``` - -It is recommended to run `npm install` before starting your app with `npm run -dev` to ensure that all dependencies are installed (including the ones that the -API client has, see `react/postinstall.js`). - -Open your browser and navigate to -[http://localhost:5173/](http://localhost:5173/). - -![Web app](/img/web-1.png) - -Press "Connect wallet", enter your password into Keplr and press "Approve" to -add your blockchain to Keplr. - - - -Make sure to select the account you're using for development purposes and the -"Example Network" in Keplr's blockchain dropdown. You should see a list of -assets in your React app. - -![Web app](/img/web-5.png) - -Congratulations! You have successfully created a client-side React application and -connected it to your blockchain. You can modify the source code of your React -application to build out the rest of your project. \ No newline at end of file diff --git a/docs/versioned_docs/version-v29/04-clients/_category_.json b/docs/versioned_docs/version-v29/04-clients/_category_.json deleted file mode 100644 index 02b1162fe7..0000000000 --- a/docs/versioned_docs/version-v29/04-clients/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Create an Interface", - "link": null -} \ No newline at end of file diff --git a/docs/versioned_docs/version-v29/04-network/01-chain.md b/docs/versioned_docs/version-v29/04-network/01-chain.md deleted file mode 100644 index 4edf0a91cb..0000000000 --- a/docs/versioned_docs/version-v29/04-network/01-chain.md +++ /dev/null @@ -1,237 +0,0 @@ ---- -sidebar_position: 1 -description: Ignite Chain. ---- - -# Ignite Chain - -## Introduction - -_Ignite is a blockchain to help launch Cosmos SDK-based blockchains._ - -Using Cosmos SDK and Ignite CLI, developers can quickly create a crypto application that is decentralized, economical for usage, and scalable. The Cosmos SDK framework allows developers to create sovereign application-specific blockchains that become part of the wider [Cosmos ecosystem](https://v1.cosmos.network/ecosystem/apps). Blockchains created with Cosmos SDK use a Proof-of-Stake (PoS) consensus protocol that requires validators to secure the chain. - -Even though tools like Ignite CLI simplify the development of a Cosmos SDK blockchain, launching a new chain is a highly complex process. One of the major challenges of developing and launching your own sovereign blockchain is ensuring the security of the underlying consensus. Since Cosmos SDK chains are based on the PoS consensus, each blockchain requires initial coin allocations and validators before they can be launched, which presents developers with significant challenges, such as determining their chain's tokenomics or coordinating a robust validator set. - -The initial coin allocations and validators are described in a JSON-formatted genesis file that is shared among all initial nodes in the network. This genesis file defines the initial state of the application. Based on PoS, secure chains require the initial allocation of coins to be well distributed so that no single validator holds more than 1/3 of all tokens and receives a disproportionate amount of voting power. - -Along with ensuring the security of the underlying consensus, another highly difficult task in launching a new blockchain is attracting a diverse set of validators for the genesis file. Many promising projects fail to capture the attention of a sufficient number of trustworthy validators to secure their chains due to a lack of resources or experience. - -The Ignite Chain has, therefore, been conceived to facilitate the launch of Cosmos SDK blockchains by helping developers to navigate the complexities of launching a blockchain and coordinate the genesis of a new chain. Using the decentralized nature of blockchain, Ignite's coordination features help blockchain builders connect with validators and investors, speeding up the time to market of their projects and chances of success. - -Commands to interact with Ignite Chain are integrated into Ignite CLI and allow launching chains from it. Integration with Ignite Chain allows the CLI to support the developer in the entire lifecycle of realizing a Cosmos project, from the development and experimentation of the blockchain to the launch of its mainnet. - -## What is Ignite Chain - -Ignite Chain is a secure platform that simplifies the launch of Cosmos SDK-based chains, lending vital resources and support at the coordination, preparation, and launch stages. Ignite provides the tools that blockchain projects need to overcome the complexities of launching their chain, from validator coordination and token issuance to fundraising and community building. - -Ignite facilitates the launch of new chains with an overall launch process during three phases: - -- Coordination -- Preparation -- Launch - -To reduce friction at each phase, Ignite provides an immutable and universal database for validator coordination. - -In the future, Ignite will also offer: - -- Token issuance: Ignite allows the issuance of tokens (called vouchers) that represent a share - allocation of a future mainnet network -- A fundraising platform for selling vouchers -- A permissionless framework to reward validator activities on a launched testnet network - -## Validator coordination - -To launch a chain in the Cosmos ecosystem, the validators must start nodes that connect to each other to create the new blockchain network. A node must be started from a file called the genesis file. The genesis file must be identical on all validator nodes before the new chain can be started. - -![genesis](./assets/genesis.png) - -The JSON-formatted genesis file contains information on the initial state of the chain, including coin allocations, the list of validators, various parameters for the chain like the maximum number of validators actively signing blocks, and the specific launch time. Because each validator has the same genesis file, the blockchain network starts automatically when the genesis time is reached. - -![launch](./assets/launch.png) - -### Ignite as a coordination source of truth - -Ignite Chain acts as a source of truth for new chains to coordinate a validator set and for validators to generate the genesis for a chain launch. The blockchain doesn’t directly store the final genesis file in its own ledger but rather stores information that allows generating the genesis file in a deterministic manner. - -The information stored on Ignite that supports deterministic generation of the genesis file for a specific chain launch is referred to as the _launch information_. When creating a new chain on Ignite, the coordinator provides the initial launch information. Then, through on-chain coordination, this launch information is updated by interacting with the blockchain by sending messages. When the chain is ready to be launched, the genesis file is generated by calling a genesis generation algorithm that uses the launch information. - -**GenesisGenerate(LaunchInformation) => genesis.json** - -The genesis generation algorithm is officially and formally specified. The official implementation of the genesis generation algorithm is developed in Go using Ignite CLI. However, any project is free to develop its own implementation of the algorithm as long as it complies with the specification of the algorithm. - -The genesis generation algorithm is not part of the on-chain protocol. In order to successfully launch a new chain, all validators must use the algorithm to generate their genesis using the launch information. The algorithm deterministically generates the genesis from the launch information that is stored on the Ignite chain. - -If any element of the launch information is censored, for example, removing an account balance, the launched chain reputation is negatively impacted and implies that the majority of validators agree on not using: - -- The tamper-proof launch information -- The official genesis generation algorithm - -Outside of the genesis generation, the genesis generation algorithm specification gives guidance on how to set up your network configuration. For example, the launch information can contain the addresses of the persistent peers of the blockchain network. - -![generation](./assets/generation.png) - -## Launch information - -Launch information can be created or updated in three different ways: - -1. Defined during chain creation but updatable by the coordinator after creation -2. Determined through coordination -3. Determined through specific on-chain logic not related to coordination - -### 1 - Launch information determined during chain creation: - -- `GenesisChainID`: The identifier for the network -- `SourceURL`: The URL of the git repository of the source code for building the blockchain - node binary -- `SourceHash`: The specific hash that identifies the release of the source code -- `InitialGenesis`: A multiformat structure that specifies the initial genesis for the chain - launch before running the genesis generation algorithm - -### 2 - Launch information determined through coordination: - -- `GenesisAccounts`: A list of genesis accounts for the chain, comprised of addresses with associated balances -- `VestingAccounts`: A list of genesis accounts with vesting options -- `GenesisValidators`: A list of the initial validators at chain launch -- `ParamChanges`: A list of module param changes in the genesis state - -### 3 - Launch information determined through on-chain logic: - -- `GenesisTime`: The timestamp for the network start, also referred to as LaunchTime - -### Initial genesis - -The launch information contains the initial genesis structure. This structure provides the information for generating the initial genesis before running the genesis generation algorithm and finalizing the genesis file. - -The initial genesis structure can be: - -- `DefaultGenesis`: the default genesis file is generated by the chain binary init command -- `GenesisURL`: the initial genesis for a chain launch is an existing genesis file that is - fetched from a URL and then modified with the required algorithm - this initial genesis type should be used when the initial genesis state is extensive, - containing a lot of accounts for token distribution, containing records for an - airdrop -- `GenesisConfig`: the initial genesis for a chain launch is generated from an Ignite CLI - config that contains genesis accounts and module parameters - this initial genesis type should be used when the coordinator doesn’t have extensive state for the initial genesis but some module parameters must be customized. For example, the staking bond denom for the staking token - -## Coordination process - -The coordination process starts immediately after the chain is created and ends when the coordinator triggers the launch of the chain. - -The launch information is updated during the coordination process. - -During the coordination process, any entity can send requests to the network. A request is an object whose content specifies updates to the launch information. - -The chain coordinator approves or rejects the requests: - -- If a request is approved, the content is applied to the launch information -- If the request is rejected, no change is made to the launch information - -The request creator can also directly reject or cancel the request. - -Each chain contains a request pool that contains all requests. Each request has a status: - -- _PENDING_: Waiting for the approval of the coordinator -- _APPROVED_: Approved by the coordinator, its content has been applied to the launch - information -- _REJECTED_: Rejected by the coordinator or the request creator - -Approving or rejecting a request is irreversible. The only possible status transitions are: - -- _PENDING_ to _APPROVED_ -- _PENDING_ to _REJECTED_ - -To revert the effect on launch information from a request, a user must send the eventual opposite request (example: AddAccount → RemoveAccount). - -Since the coordinator is the sole approver for requests, each request created by the coordinator is immediately set to APPROVED and its content is applied to the launch information. - -![requests](./assets/requests.png) - -## Available requests - -Six types of requests can be sent to the Ignite chain: - -- `AddGenesisAccount` -- `AddVestingAccount` -- `AddGenesisValidator` -- `RemoveAccount` -- `RemoveValidator` -- `ChangeParam` - -**`AddGenesisAccount`** requests a new account for the chain genesis with a coin balance. This request content is composed of two fields: - -- Account address, must be unique in launch information -- Account balance - -The request automatically fails to be applied if a genesis account or a vesting account with an identical address is already specified in the launch information. - -**`AddVestingAccount`** requests a new account for the chain genesis with a coin balance and vesting options. This request content is composed of two fields: - -- Address of the account -- Vesting options of the account - -The currently supported vesting option is delayed vesting where the total balance of the account is specified and a number of tokens of the total balance of the account are vested only after an end time is reached. - -The request automatically fails to be applied if a genesis account or a vesting account with an identical address is already specified in the launch information. - -**`AddGenesisValidator`** requests a new genesis validator for the chain. A genesis validator in a Cosmos SDK blockchain represents an account with an existing balance in the genesis that self-delegates part of its balance during genesis initialization to become a bonded validator when the network starts. In most cases, the validator must first request an account with `AddGenesisAccount` before requesting to be a validator, unless they already have an account with a balance in the initial genesis of the chain. - -Self-delegation during genesis initialization is performed with a [Cosmos SDK module named genutils](https://pkg.go.dev/github.com/cosmos/cosmos-sdk/x/genutil). In the genesis, the _genutils_ module contains objects called gentx that represent transactions that were executed before the network launch. To be a validator when the network starts, a future validator must provide a gentx that contains the transaction for the self-delegation from their account. - -The request content is composed of five fields: - -- The gentx for the validator self-delegation -- The address of the validator -- The consensus public key of the validator node -- The self-delegation -- The peer information for the validator node - -The request automatically fails to be applied if a validator with the same address already exists in the launch information. - -**`RemoveAccount`** requests the removal of a genesis or vesting account from the launch information. The request content contains the address of the account to be removed. The request automatically fails to be applied if no genesis or vesting account with the specified address exists in the launch information. - -**`RemoveValidator`** requests the removal of a genesis validator from the launch information. The request content contains the address of the validator to be removed. The request automatically fails to be applied if no validator account with the specified address exists in the launch information. - -**`ChangeParam`** requests the modification of a module parameter in the genesis. Modules in a Cosmos SDK blockchain can have parameters that will configure the logic of the blockchain. The parameters can be changed through governance once the blockchain network is live. During the launch process, the initial parameters of the chain are set in the genesis. - -This request content is composed of three fields: - -- The name of the module -- The name of the parameter -- The value of the parameter represented as generic data - -### Request validity - -Some checks are verified on-chain when applying a request. For example, a genesis account can’t be added twice. However, some other validity properties can’t be checked on-chain. For example, because a gentx is represented through a generic byte array in the blockchain, an on-chain check is not possible to verify that the gentx is correctly signed or that the provided consensus public key that is stored on-chain corresponds to the consensus public key in the gentx. This gentx verification is the responsibility of the client interacting with the blockchain to ensure the requests have a valid format and allow for the start of the chain. Some validity checks are specified in the genesis generation algorithm. - -## Launch process - -The overall launch process of a chain through Ignite is composed of three phases: - -- Coordination phase -- Preparation phase -- Launch phase - -After the coordinator creates the chain on Ignite and provides the initial launch information, the launch process enters the coordination phase where users can send requests for the chain genesis. After the coordinator deems the chain as ready to be launched, they trigger the launch of the chain. During this operation, the coordinator provides the launch time, or genesis, time for the chain. - -Once the launch is triggered and before the launch time is reached, the chain launch process enters the preparation phase. During the preparation phase, requests can no longer be sent and the launch information of the chain is finalized. The validators run the genesis generation algorithm to get the final genesis of the chain and prepare their node. The remaining time must provide enough time for the validators to prepare their nodes. This launch time is set by the coordinator, although a specific range for the remaining time is imposed. - -Once the launch time is reached, the chain network is started and the chain launch process enters the launch phase. At this point, since the chain is live, no further action is required from the coordinator. However, under some circumstances, the chain might have failed to start. For example, a chain does not start if every validator in the genesis does not start their node. - -The coordinator has the ability to revert the chain launch. Reverting the chain launch sets the launch process back to the coordination phase where requests can be sent again to allow addressing the issue related to the launch failure. Reverting the launch has an effect only on Ignite. If the new chain is effectively launched, reverting the launch on Ignite has no effect on the chain liveness. Reverting the launch of the chain can be performed only by the coordinator after the launch time plus a delay called the revert delay. - -![process](./assets/process.png) - -## Genesis generation - -To ensure determinism, genesis generation rules must be rigorously specified depending on the launch information of the chain. - -The general steps for the genesis generation are: - -- Building the blockchain node binary from source -- Generating the initial genesis -- Setting the chain ID -- Setting the genesis time -- Adding genesis accounts -- Adding genesis accounts with vesting options -- Adding gentxs for genesis validators -- Changing module params from param changes diff --git a/docs/versioned_docs/version-v29/04-network/02-introduction.md b/docs/versioned_docs/version-v29/04-network/02-introduction.md deleted file mode 100644 index 57bbf8825e..0000000000 --- a/docs/versioned_docs/version-v29/04-network/02-introduction.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -sidebar_position: 2 -description: Introduction to Ignite Network commands. ---- - -# Ignite Network commands - -The `ignite network` commands allow to coordinate the launch of sovereign Cosmos blockchains by interacting with the -Ignite Chain. - -To launch a Cosmos blockchain you need someone to be a coordinator and others to be validators. These are just roles, -anyone can be a coordinator or a validator. - -- A coordinator publishes information about a chain to be launched on the Ignite blockchain, approves validator requests - and coordinates the launch. -- Validators send requests to join a chain and start their nodes when a blockchain is ready for launch. - -## Launching a chain on Ignite - -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`. - -To publish the information about your chain as a coordinator, run the following command (the URL should point to a -repository with a Cosmos SDK chain): - -``` -ignite network chain publish github.com/ignite/example -``` - -This command will return the launch identifier you will be using in the following -commands. Let's say this identifier is 42. -Next, ask validators to initialize their nodes and request to join the network. -For a testnet you can use the default values suggested by the -CLI. - -``` -ignite network chain init 42 -ignite network chain join 42 --amount 95000000stake -``` - -As a coordinator, list all validator requests: - -``` -ignite network request list 42 -``` - -Approve validator requests: - -``` -ignite network request approve 42 1,2 -``` - -Once you've approved all validators you need in the validator set, announce that -the chain is ready for launch: - -``` -ignite network chain launch 42 -``` - -Validators can now prepare their nodes for launch: - -``` -ignite network chain prepare 42 -``` - -The output of this command will show a command that a validator would use to -launch their node, for example `exampled --home ~/.example`. After enough -validators launch their nodes, a blockchain will be live. - ---- - -The next two sections provide more information on the process of coordinating a chain launch from a coordinator and -participating in a chain launch as a validator. diff --git a/docs/versioned_docs/version-v29/04-network/03-coordinator.md b/docs/versioned_docs/version-v29/04-network/03-coordinator.md deleted file mode 100644 index 5001c35348..0000000000 --- a/docs/versioned_docs/version-v29/04-network/03-coordinator.md +++ /dev/null @@ -1,146 +0,0 @@ ---- -sidebar_position: 3 -description: Ignite Network commands for coordinators. ---- - -# Coordinator Guide - -Coordinators organize and launch new chains on Ignite Chain. - ---- - -## Publish a chain - -The first step in the process of a chain launch is for the coordinator to publish the intention of launching a chain. -The `publish` command publishes the intention of launching a chain on Ignite from a project git repository. - -```shell -ignite n chain publish https://github.com/ignite/example -``` - -**Output** - -``` -✔ Source code fetched -✔ Blockchain set up -✔ Chain's binary built -✔ Blockchain initialized -✔ Genesis initialized -✔ Network published -⋆ Launch ID: 3 -``` - -`LaunchID` identifies the published blockchain on Ignite blockchain. - -### Specify a initial genesis - -During coordination, new genesis accounts and genesis validators are added into the chain genesis. -The initial genesis where these accounts are added is by default the default genesis generated by the chain binary. - -The coordinator can specify a custom initial genesis for the chain launch with the `--genesis` flag. This custom initial -genesis can contain additional default genesis accounts and custom params for the chain modules. - -A URL must be provided for the `--genesis-url` flag. This can either directly point to a JSON genesis file or a tarball -containing a genesis file. - -```shell -ignite n chain publish https://github.com/ignite/example --genesis-url https://raw.githubusercontent.com/ignite/example/master/genesis/gen.json -``` - -## Approve validator requests - -When coordinating for a chain launch, validators send requests. These represent requests to be part of the genesis as a -validator for the chain. - -The coordinator can list these requests: - -``` -ignite n request list 3 -``` - -> **NOTE:** here "3" is specifying the `LaunchID`. - -**Output** - -``` -Id Status Type Content -1 APPROVED Add Genesis Account spn1daefnhnupn85e8vv0yc5epmnkcr5epkqncn2le, 100000000stake -2 APPROVED Add Genesis Validator e3d3ca59d8214206839985712282967aaeddfb01@84.118.211.157:26656, spn1daefnhnupn85e8vv0yc5epmnkcr5epkqncn2le, 95000000stake -3 PENDING Add Genesis Account spn1daefnhnupn85e8vv0yc5epmnkcr5epkqncn2le, 95000000stake -4 PENDING Add Genesis Validator b10f3857133907a14dca5541a14df9e8e3389875@84.118.211.157:26656, spn1daefnhnupn85e8vv0yc5epmnkcr5epkqncn2le, 95000000stake -``` - -The coordinator can either approve or reject these requests. - -To approve the requests: - -``` -ignite n request approve 3 3,4 -``` - -> **NOTE:** when selecting a list of requests, both syntaxes can be used: `1,2,3,4` and `1-3,4`. - -**Output** - -``` -✔ Source code fetched -✔ Blockchain set up -✔ Requests format verified -✔ Blockchain initialized -✔ Genesis initialized -✔ Genesis built -✔ The network can be started -✔ Request(s) #3, #4 verified -✔ Request(s) #3, #4 approved -``` - -Ignite CLI automatically verifies that the requests can be applied for the genesis, the approved requests don't generate -an invalid genesis. - -To reject the requests: - -``` -ignite n request reject 3 3,4 -``` - -**Output** - -``` -✔ Request(s) #3, #4 rejected -``` - ---- - -## Initiate the launch of a chain - -When enough validators are approved for the genesis and the coordinator deems the chain ready to be launched, the -coordinator can initiate the launch of the chain. - -This action will finalize the genesis of chain, meaning that no new requests can be approved for the chain. - -This action also sets the launch time (or genesis time) for the chain, the time when the blockchain network will go -live. - -``` -ignite n chain launch 3 -``` - -**Output** - -``` -✔ Chain 3 will be launched on 2022-10-01 09:00:00.000000 +0200 CEST -``` - -This example output shows the launch time of the chain on the network. - -### Set a custom launch time - -By default, the launch time will be set to the earliest date possible. In practice, the validators should have time to -prepare their node for the network launch. If a validator fails to be online, they can get jailed for inactivity in the -validator set. - -The coordinator can specify a custom time with the `--launch-time` flag. - -``` -ignite n chain launch --launch-time 2022-01-01T00:00:00Z -``` diff --git a/docs/versioned_docs/version-v29/04-network/04-validator.md b/docs/versioned_docs/version-v29/04-network/04-validator.md deleted file mode 100644 index 4d3199bdc6..0000000000 --- a/docs/versioned_docs/version-v29/04-network/04-validator.md +++ /dev/null @@ -1,161 +0,0 @@ ---- -sidebar_position: 4 -description: Ignite Network commands for validators. ---- - -# Validator Guide - -Validators join as genesis validators for chain launches on Ignite Chain. - ---- - -## List all published chains - -Validators can list and explore published chains to be launched on Ignite. - -``` -ignite n chain list -``` - -**Output** - -``` -Launch Id Chain Id Source Phase - -3 example-1 https://github.com/ignite/example coordinating -2 spn-10 https://github.com/tendermint/spn launched -1 example-20 https://github.com/tendermint/spn launching -``` - -- `Launch ID` is the unique identifier of the chain on Ignite. This is the ID used to interact with the chain launch. -- `Chain ID` represents the identifier of the chain network once it will be launched. It should be a unique identifier in - practice but doesn't need to be unique on Ignite. -- `Source` is the repository URL of the project. -- `Phase` is the current phase of the chain launch. A chain can have 3 different phases: - - `coordinating`: means the chain is open to receive requests from validators - - `launching`: means the chain no longer receives requests but it hasn't been launched yet - - `launched`: means the chain network has been launched - ---- - -## Request network participation - -When the chain is in the coordination phase, validators can request to be a genesis validator for the chain. -Ignite CLI supports an automatic workflow that can setup a node for the validator and a workflow for advanced users with -a specific setup for their node. - -### Simple Flow - -`ignite` can handle validator setup automatically. Initialize the node and generate a gentx file with default values: - -``` -ignite n chain init 3 -``` - -**Output** - -``` -✔ Source code fetched -✔ Blockchain set up -✔ Blockchain initialized -✔ Genesis initialized -? Staking amount 95000000stake -? Commission rate 0.10 -? Commission max rate 0.20 -? Commission max change rate 0.01 -⋆ Gentx generated: /Users/lucas/spn/3/config/gentx/gentx.json -``` - -Now, create and broadcast a request to join a chain as a validator: - -``` -ignite n chain join 3 --amount 100000000stake -``` - -The join command accepts a `--amount` flag with a comma-separated list of tokens. If the flag is provided, the -command will broadcast a request to add the validator’s address as an account to the genesis with the specific amount. - -**Output** - -``` -? Peer's address 192.168.0.1:26656 -✔ Source code fetched -✔ Blockchain set up -✔ Account added to the network by the coordinator! -✔ Validator added to the network by the coordinator! -``` - ---- - -### Advanced Flow - -Using a more advanced setup (e.g. custom `gentx`), validators must provide an additional flag to their command -to point to the custom file: - -``` -ignite n chain join 3 --amount 100000000stake --gentx ~/chain/config/gentx/gentx.json -``` - ---- - -## Launch the network - -### Simple Flow - -Generate the final genesis and config of the node: - -``` -ignite n chain prepare 3 -``` - -**Output** - -``` -✔ Source code fetched -✔ Blockchain set up -✔ Chain's binary built -✔ Genesis initialized -✔ Genesis built -✔ Chain is prepared for launch -``` - -Next, start the node: - -``` -exampled start --home ~/spn/3 -``` - ---- - -### Advanced Flow - -Fetch the final genesis for the chain: - -``` -ignite n chain show genesis 3 -``` - -**Output** - -``` -✔ Source code fetched -✔ Blockchain set up -✔ Blockchain initialized -✔ Genesis initialized -✔ Genesis built -⋆ Genesis generated: ./genesis.json -``` - -Next, fetch the persistent peer list: - -``` -ignite n chain show peers 3 -``` - -**Output** - -``` -⋆ Peer list generated: ./peers.txt -``` - -The fetched genesis file and peer list can be used for a manual node setup. diff --git a/docs/versioned_docs/version-v29/04-network/05-coordination.md b/docs/versioned_docs/version-v29/04-network/05-coordination.md deleted file mode 100644 index 8f8dd34f80..0000000000 --- a/docs/versioned_docs/version-v29/04-network/05-coordination.md +++ /dev/null @@ -1,72 +0,0 @@ ---- -sidebar_position: 5 -description: Other commands for coordination. ---- - -# Other commands for coordination - -Ignite CLI offers various other commands to coordinate chain launches that can be used by coordinators, validators, or other participants. - -The requests follow the same logic as the request for validator participation; they must be approved by the chain coordinator to be effective in the genesis. - ---- - -## Request a genesis account - -Any participant can request a genesis account with an associated balance for the chain. -The participant must provide an address with a comma-separated list of token balances. - -Any prefix can be used for the Bech32 address, it is automatically converted into `spn` on the Ignite Chain. - -``` -ignite n request add-account 3 spn1pe5h2gelhu8aukmrnj0clmec56aspxzuxcy99y 1000stake -``` - -**Output** - -``` -Source code fetched -Blockchain set up -⋆ Request 10 to add account to the network has been submitted! -``` ---- - -## Request to remove a genesis account - -Any participant can request to remove a genesis account from the chain genesis. -It might be the case if, for example, a user suggests an account balance that is so high it could harm the network. -The participant must provide the address of the account. - -Any prefix can be used for the Bech32 address, it is automatically converted into `spn` on the Ignite Chain. - -``` -ignite n request remove-account 3 spn1pe5h2gelhu8aukmrnj0clmec56aspxzuxcy99y -``` - -**Output** - -``` -Request 11 to remove account from the network has been submitted! -``` ---- - -## Request to remove a genesis validator - -Any participant can request to remove a genesis validator (gentx) from the chain genesis. -It might be the case if, for example, a chain failed to launch because of some validators, and they must be removed from genesis. -The participant must provide the address of the validator account (same format as genesis account). - -Any prefix can be used for the Bech32 address, it is automatically converted into `spn` on the Ignite Chain. - -The request removes only the gentx from the genesis but not the associated account balance. - -``` -ignite n request remove-validator 429 spn1pe5h2gelhu8aukmrnj0clmec56aspxzuxcy99y -``` - -**Output** - -``` -Request 12 to remove validator from the network has been submitted! -``` ---- \ No newline at end of file diff --git a/docs/versioned_docs/version-v29/04-network/_category_.json b/docs/versioned_docs/version-v29/04-network/_category_.json deleted file mode 100644 index 9764095e85..0000000000 --- a/docs/versioned_docs/version-v29/04-network/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Launch a chain", - "link": null -} \ No newline at end of file diff --git a/docs/versioned_docs/version-v29/04-network/assets/generation.png b/docs/versioned_docs/version-v29/04-network/assets/generation.png deleted file mode 100644 index cb978e2dbfcd3acf7e76eecc3190e652b2c95a02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 93425 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 diff --git a/docs/versioned_docs/version-v29/04-network/assets/genesis.png b/docs/versioned_docs/version-v29/04-network/assets/genesis.png deleted file mode 100644 index a0ecad4c44420fb3f29bf891608de8486d0cca84..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 135189 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

=iQVpV+dLv^ZnL3ej!dh{zu{5|AWBf^?9&L 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

lKex23-J5j)ZYfM^tkolukTl+O#{gfZugX&;Hp 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 diff --git a/docs/versioned_docs/version-v29/04-network/assets/launch.png b/docs/versioned_docs/version-v29/04-network/assets/launch.png deleted file mode 100644 index 0fa5398b220bbe3eba91593ac6f9d569374acb3a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 198418 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

$BCSonmtQs@JqiG!^b?c+ljp2uk;ABe1yBmF!vx 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

`$EnFT!164ms@f)illp%7) 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 diff --git a/docs/versioned_docs/version-v29/04-network/assets/process.png b/docs/versioned_docs/version-v29/04-network/assets/process.png deleted file mode 100644 index 6449114340f3d12fa1c2430275c2bc824777d19a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56924 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

4VrWlzeq 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 bC-QRfi>8;_1h|jEcm&1_zmK)o`RxAyimiyF diff --git a/docs/versioned_docs/version-v29/04-network/assets/requests.png b/docs/versioned_docs/version-v29/04-network/assets/requests.png deleted file mode 100644 index 38a62ea98537763f0004e4580babde477b163be0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 109980 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 diff --git a/docs/versioned_docs/version-v29/05-contributing/01-docs.md b/docs/versioned_docs/version-v29/05-contributing/01-docs.md deleted file mode 100644 index de8ff3e12a..0000000000 --- a/docs/versioned_docs/version-v29/05-contributing/01-docs.md +++ /dev/null @@ -1,105 +0,0 @@ ---- -sidebar_position: 1 -slug: /contributing ---- - -# Improving documentation - -Thank you for visiting our repository and considering making contributions. We -appreciate your interest in helping us to create and maintain awesome tutorials -and documentation. - -## Using this repo - -Review existing [Ignite CLI issues](https://github.com/ignite/cli/issues) to see -if your question has already been asked and answered. - -- To provide feedback, file an issue and provide generous details to help us - understand how we can make it better. -- To provide a fix, make a direct contribution. If you're not a member or - maintainer, fork the repo and then submit a pull request (PR) from your forked - repo to the `main` branch. -- Start by creating a draft pull request. Create your draft PR early, even if - your work is just beginning or incomplete. Your draft PR indicates to the - community that you're working on something and provides a space for - conversations early in the development process. Merging is blocked for `Draft` - PRs, so they provide a safe place to experiment and invite comments. - -## Reviewing technical content PRs - -Some of the best content contributions come during the PR review cycles. Follow -best practices for technical content PR reviews just like you do for code -reviews. - -- For in-line suggestions, use the [GitHub suggesting - feature](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/commenting-on-a-pull-request) - . -- The PR owner can merge in your suggested commits one at a time or in batch - (preferred). -- When you are providing a more granular extensive review that results in more - than 20 in-line suggestions, go ahead and check out the branch and make the - changes yourself. - -## Writing and contributing - -We welcome contributions to the docs and tutorials. - -Our technical content follows the [Google developer documentation style -guide](https://developers.google.com/style). Highlights to help you get started: - -- [Highlights](https://developers.google.com/style/highlights) -- [Word list](https://developers.google.com/style/word-list) -- [Style and tone](https://developers.google.com/style/tone) -- [Writing for a global - audience](https://developers.google.com/style/translation) -- [Cross-references](https://developers.google.com/style/cross-references) -- [Present tense](https://developers.google.com/style/tense) - -The Google guidelines include more material than is listed here and are used as -a guide that enables easy decision-making about proposed content changes. - -Other useful resources: - -- [Google Technical Writing Courses](https://developers.google.com/tech-writing) -- [GitHub Guides Mastering - Markdown](https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax) - -## Where can I find the tutorials and docs? - -Technical content includes knowledge base articles and interactive tutorials. - -- The Ignite CLI Developer Tutorials content is in the `docs/guide` folder. -- The Knowledge Base content is in the `docs/kb` folder. -- Upgrade information is in the `docs/migration` folder. - -Note: The CLI docs are auto-generated and do not support doc updates. - -Locations and folders for other content can vary. Explore the self-describing -folders for the content that you are interested in. Some articles and tutorials -reside in a single Markdown file while sub-folders might be present for other -tutorials. - -As always, work-in-progress content might be happening in other locations and -repos. - -## Who works on the tutorials? - -The Ignite product team developers are focused on building Ignite CLI and -improving the developer experience. The Ignite Ecosystem Development team owns -the technical content and tutorials and manages developer onboarding. - -Meet the [people behind Ignite CLI and our -contributors](https://github.com/ignite/cli/graphs/contributors). - -## Viewing docs builds - -Use a preview to see what your changes will look like in production before the -updated pages are published. - -- While a PR is in draft mode, you can rely on using the preview feature in - Markdown. -- After the PR moves from **Draft** to **Ready for review**, the CI status - checks generate a deployment preview. This preview stays up to date as you - continue to work and commit new changes to the same branch. A `Docs Deploy - Preview / build_and_deploy (pull_request)` preview on a GitHub actions URL is - unique for that PR. diff --git a/docs/versioned_docs/version-v29/05-contributing/_category_.json b/docs/versioned_docs/version-v29/05-contributing/_category_.json deleted file mode 100644 index e88b1ff8fe..0000000000 --- a/docs/versioned_docs/version-v29/05-contributing/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Contribute to Ignite", - "link": null -} \ No newline at end of file diff --git a/docs/versioned_docs/version-v29/06-migration/_category_.json b/docs/versioned_docs/version-v29/06-migration/_category_.json deleted file mode 100644 index 9243d2011d..0000000000 --- a/docs/versioned_docs/version-v29/06-migration/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Migration", - "link": null -} \ No newline at end of file diff --git a/docs/versioned_docs/version-v29/06-migration/readme.md b/docs/versioned_docs/version-v29/06-migration/readme.md deleted file mode 100644 index 86a65a40d9..0000000000 --- a/docs/versioned_docs/version-v29/06-migration/readme.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -sidebar_position: 0 ---- - -# Migration Guides - -Welcome to the section on upgrading to a newer version of Ignite CLI! If you're -looking to update to the latest version, you'll want to start by checking the -documentation to see if there are any special considerations or instructions you -need to follow. - -If there is no documentation for the latest version of Ignite CLI, it's -generally safe to assume that there were no breaking changes, and you can -proceed with using the latest version with your project. - -## Create your own Migration Guide - -The `gen-mig-diffs` tool helps developers manage and visualize code changes across multiple major versions of Ignite. With each major upgrade, the codebase might undergo significant changes, making it challenging for developers to track these differences after several updates. The `gen-mig-diffs` tool simplifies this process by scaffolding blockchains with both the old and new versions and displaying the differences. - -It is located in the [Ignite CLI GitHub repository](https://github.com/ignite/cli/tree/main/ignite/internal/tools/gen-mig-diffs) -directory and has been made into a standalone project. - -To set up this tool in your development environment: - -```shell -gen-mig-diffs [flags] -``` - -This tool generates migration diff files for each of Ignite's scaffold commands. It compares two specified versions of Ignite and provides a clear, organized view of the changes. - -## How to Get Started - -1. Clone the Ignite CLI repository: - -```shell -git clone https://github.com/ignite/cli.git && \ -cd cli/ignite/internal/tools/gen-mig-diffs -``` - -2. Install and show usage: - -```shell -go install . && gen-mig-diffs -h -``` - -### Example Migration - -As an example, to generate migration diffs between versions 0.27.2 and 28.3.0, use the following command: - -```shell -gen-mig-diffs --output temp/migration --from v0.27.2 --to v28.3.0 -``` - -This command scaffolds blockchains with the specified versions and shows the differences, making it easier for developers to understand and apply necessary changes when upgrading their projects. - -## Usage - -```bash -This tool is used to generate migration diff files for each of ignites scaffold commands - -Usage: - gen-mig-diffs [flags] - -Flags: - -f, --from string Version of Ignite or path to Ignite source code to generate the diff from - -h, --help help for gen-mig-diffs - -o, --output string Output directory to save the migration document (default "docs/docs/06-migration") - --repo-output string Output path to clone the Ignite repository - -s, --repo-source string Path to Ignite source code repository. Set the source automatically set the cleanup to false - --repo-url string Git URL for the Ignite repository (default "https://github.com/ignite/cli.git") - --scaffold-cache string Path to cache directory - --scaffold-output string Output path to clone the Ignite repository - -t, --to string Version of Ignite or path to Ignite source code to generate the diff to -``` \ No newline at end of file diff --git a/docs/versioned_docs/version-v29/06-migration/v0.18.md b/docs/versioned_docs/version-v29/06-migration/v0.18.md deleted file mode 100644 index d7ce7ef20e..0000000000 --- a/docs/versioned_docs/version-v29/06-migration/v0.18.md +++ /dev/null @@ -1,458 +0,0 @@ ---- -sidebar_position: 999 -title: v0.18.0 -description: For chains that were scaffolded with Ignite CLI versions lower than v0.18, changes are required to use Ignite CLI v0.18. ---- - -# Upgrading a Blockchain to use Ignite CLI v0.18 - -Ignite CLI v0.18 comes with Cosmos SDK v0.44. This version of Cosmos SDK introduced changes that are not compatible with -chains that were scaffolded with Ignite CLI versions lower than v0.18. - -**Important:** After upgrading from Ignite CLI v0.17.3 to Ignite CLI v0.18, you must update the default blockchain -template to use blockchains that were scaffolded with earlier versions. - -These instructions are written for a blockchain that was scaffolded with the following command: - -``` -ignite scaffold chain github.com/username/mars -``` - -If you used a different module path, replace `username` and `mars` with the correct values for your blockchain. - -## Blockchain - -For each file listed, make the required changes to the source code of the blockchain template. - -### go.mod - -``` -module github.com/username/mars - -go 1.16 - -require ( - github.com/cosmos/cosmos-sdk v0.44.0 - github.com/cosmos/ibc-go v1.2.0 - github.com/gogo/protobuf v1.3.3 - github.com/google/go-cmp v0.5.6 // indirect - github.com/gorilla/mux v1.8.0 - github.com/grpc-ecosystem/grpc-gateway v1.16.0 - github.com/spf13/cast v1.3.1 - github.com/spf13/cobra v1.1.3 - github.com/stretchr/testify v1.7.0 - github.com/tendermint/spm v0.1.6 - github.com/tendermint/tendermint v0.34.13 - github.com/tendermint/tm-db v0.6.4 - google.golang.org/genproto v0.0.0-20210903162649-d08c68adba83 - google.golang.org/grpc v1.40.0 -) - -replace ( - github.com/99designs/keyring => github.com/cosmos/keyring v1.1.7-0.20210622111912-ef00f8ac3d76 - github.com/gogo/protobuf => github.com/regen-network/protobuf v1.3.3-alpha.regen.1 - google.golang.org/grpc => google.golang.org/grpc v1.33.2 -) -``` - -### app/app.go - -```go -package app - -import ( - //... - // Add the following packages: - "github.com/cosmos/cosmos-sdk/x/feegrant" - feegrantkeeper "github.com/cosmos/cosmos-sdk/x/feegrant/keeper" - feegrantmodule "github.com/cosmos/cosmos-sdk/x/feegrant/module" - - "github.com/cosmos/ibc-go/modules/apps/transfer" - ibctransferkeeper "github.com/cosmos/ibc-go/modules/apps/transfer/keeper" - ibctransfertypes "github.com/cosmos/ibc-go/modules/apps/transfer/types" - ibc "github.com/cosmos/ibc-go/modules/core" - ibcclient "github.com/cosmos/ibc-go/modules/core/02-client" - ibcporttypes "github.com/cosmos/ibc-go/modules/core/05-port/types" - ibchost "github.com/cosmos/ibc-go/modules/core/24-host" - ibckeeper "github.com/cosmos/ibc-go/modules/core/keeper" - // Remove the following packages: - // transfer "github.com/cosmos/cosmos-sdk/x/ibc/applications/transfer" - // ibctransferkeeper "github.com/cosmos/cosmos-sdk/x/ibc/applications/transfer/keeper" - // ibctransfertypes "github.com/cosmos/cosmos-sdk/x/ibc/applications/transfer/types" - // ibc "github.com/cosmos/cosmos-sdk/x/ibc/core" - // ibcclient "github.com/cosmos/cosmos-sdk/x/ibc/core/02-client" - // porttypes "github.com/cosmos/cosmos-sdk/x/ibc/core/05-port/types" - // ibchost "github.com/cosmos/cosmos-sdk/x/ibc/core/24-host" - // ibckeeper "github.com/cosmos/cosmos-sdk/x/ibc/core/keeper" -) - -var ( - //... - ModuleBasics = module.NewBasicManager( - //... - slashing.AppModuleBasic{}, - // Add feegrantmodule.AppModuleBasic{}, - feegrantmodule.AppModuleBasic{}, // <-- - ibc.AppModuleBasic{}, - //... - ) - //... -) - -type App struct { - //... - // Replace codec.Marshaler with codec.Codec - appCodec codec.Codec // <-- - // Add FeeGrantKeeper - FeeGrantKeeper feegrantkeeper.Keeper // <-- -} - -func New( /*...*/ ) { - //bApp.SetAppVersion(version.Version) - bApp.SetVersion(version.Version) // <-- - - keys := sdk.NewKVStoreKeys( - //... - upgradetypes.StoreKey, - // Add feegrant.StoreKey - feegrant.StoreKey, // <-- - evidencetypes.StoreKey, - //... - ) - - app.FeeGrantKeeper = feegrantkeeper.NewKeeper(appCodec, keys[feegrant.StoreKey], app.AccountKeeper) // <-- - // Add app.BaseApp as the last argument to upgradekeeper.NewKeeper - app.UpgradeKeeper = upgradekeeper.NewKeeper(skipUpgradeHeights, keys[upgradetypes.StoreKey], appCodec, homePath, app.BaseApp) - - app.IBCKeeper = ibckeeper.NewKeeper( - // Add app.UpgradeKeeper - appCodec, keys[ibchost.StoreKey], app.GetSubspace(ibchost.ModuleName), app.StakingKeeper, app.UpgradeKeeper, scopedIBCKeeper, - ) - - govRouter.AddRoute(govtypes.RouterKey, govtypes.ProposalHandler). - //... - // Replace NewClientUpdateProposalHandler with NewClientProposalHandler - AddRoute(ibchost.RouterKey, ibcclient.NewClientProposalHandler(app.IBCKeeper.ClientKeeper)) - - // Replace porttypes with ibcporttypes - ibcRouter := ibcporttypes.NewRouter() - - app.mm.SetOrderBeginBlockers( - upgradetypes.ModuleName, - // Add capabilitytypes.ModuleName, - capabilitytypes.ModuleName, - minttypes.ModuleName, - //... - // Add feegrant.ModuleName, - feegrant.ModuleName, - ) - - // Add app.appCodec as an argument to module.NewConfigurator: - app.mm.RegisterServices(module.NewConfigurator(app.appCodec, app.MsgServiceRouter(), app.GRPCQueryRouter())) - - // Replace: - // app.SetAnteHandler( - // ante.NewAnteHandler( - // app.AccountKeeper, app.BankKeeper, ante.DefaultSigVerificationGasConsumer, - // encodingConfig.TxConfig.SignModeHandler(), - // ), - // ) - - // With the following: - anteHandler, err := ante.NewAnteHandler( - ante.HandlerOptions{ - AccountKeeper: app.AccountKeeper, - BankKeeper: app.BankKeeper, - SignModeHandler: encodingConfig.TxConfig.SignModeHandler(), - FeegrantKeeper: app.FeeGrantKeeper, - SigGasConsumer: ante.DefaultSigVerificationGasConsumer, - }, - ) - if err != nil { - panic(err) - } - app.SetAnteHandler(anteHandler) - - // Remove the following: - // ctx := app.BaseApp.NewUncachedContext(true, tmproto.Header{}) - // app.CapabilityKeeper.InitializeAndSeal(ctx) -} - -func (app *App) InitChainer(ctx sdk.Context, req abci.RequestInitChain) abci.ResponseInitChain { - var genesisState GenesisState - if err := tmjson.Unmarshal(req.AppStateBytes, &genesisState); err != nil { - panic(err) - } - // Add the following: - app.UpgradeKeeper.SetModuleVersionMap(ctx, app.mm.GetVersionMap()) - return app.mm.InitGenesis(ctx, app.appCodec, genesisState) -} - -// Replace Marshaler with Codec -func (app *App) AppCodec() codec.Codec { - return app.appCodec -} - -// Replace BinaryMarshaler with BinaryCodec -func initParamsKeeper(appCodec codec.BinaryCodec, legacyAmino *codec.LegacyAmino, key, tkey sdk.StoreKey) paramskeeper.Keeper { - //... -} -``` - -### app/genesis.go - -```go -// Replace codec.JSONMarshaler with codec.JSONCodec -func NewDefaultGenesisState(cdc codec.JSONCodec) GenesisState { - // ... -} -``` - -### testutil/keeper/mars.go - -Add the following code: - -```go -package keeper - -import ( - "testing" - - "github.com/cosmos/cosmos-sdk/codec" - codectypes "github.com/cosmos/cosmos-sdk/codec/types" - "github.com/cosmos/cosmos-sdk/store" - storetypes "github.com/cosmos/cosmos-sdk/store/types" - sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/libs/log" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - tmdb "github.com/tendermint/tm-db" - "github.com/username/mars/x/mars/keeper" - "github.com/username/mars/x/mars/types" -) - -func MarsKeeper(t testing.TB) (*keeper.Keeper, sdk.Context) { - storeKey := sdk.NewKVStoreKey(types.StoreKey) - memStoreKey := storetypes.NewMemoryStoreKey(types.MemStoreKey) - - db := tmdb.NewMemDB() - stateStore := store.NewCommitMultiStore(db) - stateStore.MountStoreWithDB(storeKey, sdk.StoreTypeIAVL, db) - stateStore.MountStoreWithDB(memStoreKey, sdk.StoreTypeMemory, nil) - require.NoError(t, stateStore.LoadLatestVersion()) - - registry := codectypes.NewInterfaceRegistry() - k := keeper.NewKeeper( - codec.NewProtoCodec(registry), - storeKey, - memStoreKey, - ) - - ctx := sdk.NewContext(stateStore, tmproto.Header{}, false, log.NewNopLogger()) - return k, ctx -} -``` - -If `mars` is an IBC-enabled module, add the following code, instead: - -```go -package keeper - -import ( - "testing" - - "github.com/cosmos/cosmos-sdk/codec" - codectypes "github.com/cosmos/cosmos-sdk/codec/types" - "github.com/cosmos/cosmos-sdk/store" - storetypes "github.com/cosmos/cosmos-sdk/store/types" - sdk "github.com/cosmos/cosmos-sdk/types" - capabilitykeeper "github.com/cosmos/cosmos-sdk/x/capability/keeper" - typesparams "github.com/cosmos/cosmos-sdk/x/params/types" - ibckeeper "github.com/cosmos/ibc-go/modules/core/keeper" - "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/libs/log" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - tmdb "github.com/tendermint/tm-db" - "github.com/username/test/x/mars/keeper" - "github.com/username/test/x/mars/types" -) - -func MarsKeeper(t testing.TB) (*keeper.Keeper, sdk.Context) { - logger := log.NewNopLogger() - - storeKey := sdk.NewKVStoreKey(types.StoreKey) - memStoreKey := storetypes.NewMemoryStoreKey(types.MemStoreKey) - - db := tmdb.NewMemDB() - stateStore := store.NewCommitMultiStore(db) - stateStore.MountStoreWithDB(storeKey, sdk.StoreTypeIAVL, db) - stateStore.MountStoreWithDB(memStoreKey, sdk.StoreTypeMemory, nil) - require.NoError(t, stateStore.LoadLatestVersion()) - - registry := codectypes.NewInterfaceRegistry() - appCodec := codec.NewProtoCodec(registry) - capabilityKeeper := capabilitykeeper.NewKeeper(appCodec, storeKey, memStoreKey) - - amino := codec.NewLegacyAmino() - ss := typesparams.NewSubspace(appCodec, - amino, - storeKey, - memStoreKey, - "MarsSubSpace", - ) - IBCKeeper := ibckeeper.NewKeeper( - appCodec, - storeKey, - ss, - nil, - nil, - capabilityKeeper.ScopeToModule("MarsIBCKeeper"), - ) - - k := keeper.NewKeeper( - codec.NewProtoCodec(registry), - storeKey, - memStoreKey, - IBCKeeper.ChannelKeeper, - &IBCKeeper.PortKeeper, - capabilityKeeper.ScopeToModule("MarsScopedKeeper"), - ) - - ctx := sdk.NewContext(stateStore, tmproto.Header{}, false, logger) - return k, ctx -} -``` - -### testutil/network/network.go - -```go -func DefaultConfig() network.Config { - // ... - return network.Config{ - // ... - // Add sdk.DefaultPowerReduction - AccountTokens: sdk.TokensFromConsensusPower(1000, sdk.DefaultPowerReduction), - StakingTokens: sdk.TokensFromConsensusPower(500, sdk.DefaultPowerReduction), - BondedTokens: sdk.TokensFromConsensusPower(100, sdk.DefaultPowerReduction), - // ... - } -} -``` - -### testutil/sample/sample.go - -Add the following code: - -```go -package sample - -import ( - "github.com/cosmos/cosmos-sdk/crypto/keys/ed25519" - sdk "github.com/cosmos/cosmos-sdk/types" -) - -// AccAddress returns a sample account address -func AccAddress() string { - pk := ed25519.GenPrivKey().PubKey() - addr := pk.Address() - return sdk.AccAddress(addr).String() -} -``` - -### BandChain Support - -If your module includes integration with BandChain, added manually or scaffolded with `ignite scaffold band`, upgrade -the `github.com/bandprotocol/bandchain-packet` package to `v0.0.2` in `go.mod`. - -## Module - -### x/mars/keeper/keeper.go - -```go -package keeper - -// ... - -type ( - Keeper struct { - // Replace Marshaler with BinaryCodec - cdc codec.BinaryCodec - //... - } -) - -func NewKeeper( - // Replace Marshaler with BinaryCodec - cdc codec.BinaryCodec, - // ... -) *Keeper { - // ... -} -``` - -### x/mars/keeper/msg_server_test.go - -```go -package keeper_test - -import ( - //... - // Add the following: - keepertest "github.com/username/mars/testutil/keeper" - "github.com/username/mars/x/mars/keeper" -) - -func setupMsgServer(t testing.TB) (types.MsgServer, context.Context) { - // Replace - // keeper, ctx := setupKeeper(t) - // return NewMsgServerImpl(*keeper), sdk.WrapSDKContext(ctx) - - // With the following: - k, ctx := keepertest.MarsKeeper(t) - return keeper.NewMsgServerImpl(*k), sdk.WrapSDKContext(ctx) -} -``` - -### x/mars/module.go - -```go -package mars - -type AppModuleBasic struct { - // Replace Marshaler with BinaryCodec - cdc codec.BinaryCodec -} - -// Replace Marshaler with BinaryCodec -func NewAppModuleBasic(cdc codec.BinaryCodec) AppModuleBasic { - return AppModuleBasic{cdc: cdc} -} - -// Replace JSONMarshaler with JSONCodec -func (AppModuleBasic) DefaultGenesis(cdc codec.JSONCodec) json.RawMessage { - return cdc.MustMarshalJSON(types.DefaultGenesis()) -} - -// Replace JSONMarshaler with JSONCodec -func (AppModuleBasic) ValidateGenesis(cdc codec.JSONCodec, config client.TxEncodingConfig, bz json.RawMessage) error { - //... -} - -// Replace codec.Marshaller with codec.Codec -func NewAppModule(cdc codec.Codec, keeper keeper.Keeper) AppModule { - //... -} - -// Replace JSONMarshaler with JSONCodec -func (am AppModule) InitGenesis(ctx sdk.Context, cdc codec.JSONCodec, gs json.RawMessage) []abci.ValidatorUpdate { - //... -} - -// Replace JSONMarshaler with JSONCodec -func (am AppModule) ExportGenesis(ctx sdk.Context, cdc codec.JSONCodec) json.RawMessage { - //... -} - -// Add the following -func (AppModule) ConsensusVersion() uint64 { return 2 } -``` diff --git a/docs/versioned_docs/version-v29/06-migration/v0.19.2.md b/docs/versioned_docs/version-v29/06-migration/v0.19.2.md deleted file mode 100644 index 0ee04f20d3..0000000000 --- a/docs/versioned_docs/version-v29/06-migration/v0.19.2.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -sidebar_position: 998 -title: v0.19.2 -description: For chains that were scaffolded with Ignite CLI versions lower than v0.19.2, changes are required to use Ignite CLI v0.19.2. ---- - -# Upgrading a blockchain to use Ignite CLI v0.19.2 - -Ignite CLI v0.19.2 comes with IBC v2.0.2. - -With Ignite CLI v0.19.2, the contents of the deprecated Ignite CLI Modules `tendermint/spm` repo are moved to the -official Ignite CLI repo which introduces breaking changes. - -To migrate your chain that was scaffolded with Ignite CLI versions lower than v0.19.2: - -1. IBC upgrade: Use - the [IBC migration documents](https://github.com/cosmos/ibc-go/blob/v6.2.0/docs/migrations/v1-to-v2.md) - -2. In your chain's `go.mod` file, remove `tendermint/spm` and add the v0.19.2 version of `tendermint/starport`. If your - chain uses these packages, change the import paths as shown: - - - `github.com/tendermint/spm/ibckeeper` moved to `github.com/tendermint/starport/starport/pkg/cosmosibckeeper` - - `github.com/tendermint/spm/cosmoscmd` moved to `github.com/tendermint/starport/starport/pkg/cosmoscmd` - - `github.com/tendermint/spm/openapiconsole` moved to `github.com/tendermint/starport/starport/pkg/openapiconsole` - - `github.com/tendermint/spm/testutil/sample` moved - to `github.com/tendermint/starport/starport/pkg/cosmostestutil/sample` diff --git a/docs/versioned_docs/version-v29/06-migration/v0.20.0.md b/docs/versioned_docs/version-v29/06-migration/v0.20.0.md deleted file mode 100644 index df23fa9bf8..0000000000 --- a/docs/versioned_docs/version-v29/06-migration/v0.20.0.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -sidebar_position: 997 -title: v0.20.0 -description: For chains that were scaffolded with Ignite CLI versions lower than v0.20.0, changes are required to use Ignite CLI v0.20.0. ---- - -# Upgrading a blockchain to use Ignite CLI v0.20.2 - -1. Upgrade your Cosmos SDK version to [v0.45.3](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.45.3). - -2. Update your `SetOrderBeginBlockers` and `SetOrderEndBlockers` in your `app/app.go` to explicitly add entries for all - the modules you use in your chain. diff --git a/docs/versioned_docs/version-v29/06-migration/v0.22.0.md b/docs/versioned_docs/version-v29/06-migration/v0.22.0.md deleted file mode 100644 index 54ea27ebde..0000000000 --- a/docs/versioned_docs/version-v29/06-migration/v0.22.0.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -sidebar_position: 996 -title: v0.22.0 -description: For chains that were scaffolded with Ignite CLI versions lower than v0.22.0, changes are required to use Ignite CLI v0.22.0. ---- - -# Upgrading a blockchain to use Ignite CLI v0.22.0 - -Ignite CLI v0.22.2 changed the GitHub username from "ignite-hq" to "ignite", which means the imports must be fixed to -reflect this change. - -1. In your `go.mod` file find the require line for Ignite CLI that starts with `github.com/ignite-hq/cli` and is - followed by a version. - It looks something like `github.com/ignite-hq/cli v0.22.0`, and replace it by `github.com/ignite/cli v0.22.2`. - -2. Make a bulk find and replace in the import statements for `github.com/ignite-hq/cli` to be replaced - by `github.com/ignite/cli`. - -3. Finally, run `go mod tidy` and ensure there's no mention if `ignite-hq/cli` in your `go.sum` file. - -This update includes an upgrade to the `ibc-go` packages. Please make the according changes: - -1. Upgrade your IBC version to [v3](https://github.com/cosmos/ibc-go/releases/tag/v3.0.0). - - 1. Search for `github.com/cosmos/ibc-go/v2` in the import statements of your `.go` files and replace `v2` in the end - with `v3` - - 1. Open your `app.go`, - - - Update your transfer keeper by adding another `app.IBCKeeper.ChannelKeeper` as an argument - after `app.IBCKeeper.ChannelKeeper` - - - Define `var transferIBCModule = transfer.NewIBCModule(app.TransferKeeper)` in your `New()` func, and update - your existent IBC router to use it: `ibcRouter.AddRoute(ibctransfertypes.ModuleName, transferIBCModule)` - - 3. Open your `go.mod` and change the IBC line with `github.com/cosmos/ibc-go/v3 v3.0.0` diff --git a/docs/versioned_docs/version-v29/06-migration/v0.24.0.md b/docs/versioned_docs/version-v29/06-migration/v0.24.0.md deleted file mode 100644 index e927bd2ce3..0000000000 --- a/docs/versioned_docs/version-v29/06-migration/v0.24.0.md +++ /dev/null @@ -1,330 +0,0 @@ ---- -sidebar_position: 995 -title: v0.24.0 -description: For chains that were scaffolded with Ignite CLI versions lower than v0.24, changes are required to use Ignite CLI v0.24.0. ---- - -## Cosmos SDK v0.46 upgrade notes - -### Update dependencies - -Cosmos SDK v0.46 is compatible with the latest version of IBC Go v5. If you have a chain that is using an older version, -update the dependencies in your project. - -Throughout the code you might see the following dependencies: - -```go -package pkg_name - -import ( - "github.com/cosmos/ibc-go/v3/..." -) -``` - -Where `v3` is the version of IBC Go and `...` are different IBC Go packages. - -To upgrade the version to `v5`, a global find-and-replace should work. Replace `cosmos/ibc-go/v3` (or whicherver version -you're using) with `cosmos/ibc-go/v5` only in `*.go` files (to exclude unwated changes to files like `go,sum`). - -### Module keeper - -Add an import: - -```go -// x/{moduleName}/keeper/keeper.go - -package keeper - -// ... - -import ( - //... - storetypes "github.com/cosmos/cosmos-sdk/store/types" -) -``` - -In the `Keeper` struct replace `sdk.StoreKey` with `storetypes.StoreKey`: - -```go -// x/{moduleName}/keeper/keeper.go - -package keeper - -// ... - -type ( - Keeper struct { - cdc codec.BinaryCodec - storeKey storetypes.StoreKey - memKey storetypes.StoreKey - paramstore paramtypes.Subspace - } -) -``` - -In the argument list of the `NewKeeper` function definition: - -```go -package keeper - -// ... - -// x/{moduleName}/keeper/keeper.go - -func NewKeeper( - //... - memKey storetypes.StoreKey, -) -``` - -Store type aliases have been removed from the Cosmos SDK `types` package and now have to be imported from `store/types`, -instead. - -In the `testutil/keeper/{moduleName}.go` replace `types.StoreKey` with `storetypes.StoreKey` and `types.MemStoreKey` -with `storetypes.MemStoreKey`. - -```go -// testutil/keeper/{moduleName}.go - -package keeper - -// ... - -func {moduleName}Keeper(t testing.TB) (*keeper.Keeper, sdk.Context) { - storeKey := sdk.NewKVStoreKey(storetypes.StoreKey) - memStoreKey := storetypes.NewMemoryStoreKey(storetypes.MemStoreKey) - //... -} -``` - -### Testutil network package - -Add the `require` package for testing and `pruningtypes` and remove `storetypes`: - -```go -// testutil/network/network.go - -package network - -// ... - -import ( - pruningtypes "github.com/cosmos/cosmos-sdk/pruning/types" - "github.com/stretchr/testify/require" - // storetypes "github.com/cosmos/cosmos-sdk/store/types" <-- remove this line -) -``` - -In the `DefaultConfig` function replace `storetypes.NewPruningOptionsFromString` -with `pruningtypes.NewPruningOptionsFromString` - -```go -// testutil/network/network.go - -package network - -// ... - -func DefaultConfig() network.Config { - //... - return network.Config{ - AppConstructor: func(val network.Validator) servertypes.Application { - return app.New( - baseapp.SetPruning(pruningtypes.NewPruningOptionsFromString(val.AppConfig.Pruning)), - //... - ) - }, - //... - } -} -``` - -The `New` function in the Cosmos SDK `testutil/network` package now -accepts [three arguments](https://github.com/cosmos/cosmos-sdk/blob/v0.46.0/testutil/network/network.go#L206) instead of -two. - -In the `New` function add `t.TempDir()` as the second argument to `network.New()` and test that no error is thrown -with `require.NoError(t, err)`: - -```go -// testutil/network/network.go - -package network - -// ... - -func New(t *testing.T, configs ...network.Config) *network.Network { - //... - net, err := network.New(t, t.TempDir(), cfg) - require.NoError(t, err) - //... -} -``` - -### Testutil keeper package - -In the `{moduleName}Keeper` function make the following replacements: - -- `storetypes.StoreKey` → `types.StoreKey` -- `storetypes.MemStoreKey` → `types.MemStoreKey` -- `sdk.StoreTypeIAVL` → `storetypes.StoreTypeIAVL` -- `sdk.StoreTypeMemory` → `storetypes.StoreTypeMemory` - -```go -// testutil/keeper/{moduleName}.go - -package keeper - -// ... - -func {moduleName}Keeper(t testing.TB) (*keeper.Keeper, sdk.Context) { - storeKey := sdk.NewKVStoreKey(types.StoreKey) - memStoreKey := storetypes.NewMemoryStoreKey(types.MemStoreKey) - //... - stateStore.MountStoreWithDB(storeKey, storetypes.StoreTypeIAVL, db) - stateStore.MountStoreWithDB(memStoreKey, storetypes.StoreTypeMemory, nil) - //... -} -``` - -### IBC modules - -If you have IBC-enabled modules (for example, added with `ignite scaffold module ... --ibc` or created manually), make -the following changes to the source code. - -Cosmos SDK expects IBC modules -to [implement the `IBCModule` interface](https://ibc.cosmos.network/main/ibc/apps/ibcmodule/). Create a `IBCModule` -type that embeds the module's keeper and a method that returns a new `IBCModule`. Methods in this file will be defined -on this type. - -```go -// x/{moduleName}/module_ibc.go - -package module_name - -// ... - -type IBCModule struct { - keeper keeper.Keeper -} - -func NewIBCModule(k keeper.Keeper) IBCModule { - return IBCModule{ - keeper: k, - } -} -``` - -Replace receivers for all methods in this file from `(am AppModule)` to `(im IBCModule)`. Replace all instances of `am.` -with `im.` to fix the errors. - -`OnChanOpenInit` now returns to values: a `string` and an `error`: - -```go -// x/{moduleName}/module_ibc.go - -package module_name - -// ... - -func (im IBCModule) OnChanOpenInit( /*...*/ ) (string, error) -``` - -Ensure that all return statements (five, in the default template) in `OnChanOpenInit` return two values. For example: - -```go -// x/{moduleName}/module_ibc.go - -package module_name - -// ... - -func (im IBCModule) OnChanOpenInit( /*...*/ ) (string, error) { - //... - return "", errorsmod.Wrapf(porttypes.ErrInvalidPort, "invalid port: %s, expected %s", portID, boundPort) - //... -} -``` - -Error acknowledgments returned from Transfer `OnRecvPacket` now include a deterministic ABCI code and error message. -Remove the `.Error()` call: - -```go -// x/{moduleName}/module_ibc.go - -package module_name - -// ... - -func (im IBCModule) OnRecvPacket( /*...*/ ) { - //... - if err := modulePacketData.Unmarshal(modulePacket.GetData()); err != nil { - // return channeltypes.NewErrorAcknowledgement(errorsmod.Wrapf(sdkerrors.ErrUnknownRequest, "cannot unmarshal packet data: %s", err.Error()).Error()) - return channeltypes.NewErrorAcknowledgement(errorsmod.Wrapf(sdkerrors.ErrUnknownRequest, "cannot unmarshal packet data: %s", err.Error())) - } - - // ... - - // Dispatch packet - switch packet := modulePacketData.Packet.(type) { - // ... - default: - // errMsg := fmt.Sprintf("unrecognized %s packet type: %T", types.ModuleName, packet) - // return channeltypes.NewErrorAcknowledgement(errMsg) - err := fmt.Errorf("unrecognized %s packet type: %T", types.ModuleName, packet) - return channeltypes.NewErrorAcknowledgement(err) - } -} -``` - -After switching to using both `AppModule` and `IBCModule`, modifying the following line: - -```go -// x/{moduleName}/module.go - -package module_name - -// ... - -var ( - //... - _ porttypes.IBCModule = IBCModule{} // instead of "= AppModule{}" -) -``` - -### Main - -The `Execute` function in Cosmos SDK `server/cmd` package now -accepts [three arguments](https://github.com/cosmos/cosmos-sdk/blob/v0.46.0/server/cmd/execute.go#L20) instead of two. - -```go -// cmd/{{projectName}}d/main.go - -package projectNamed - -// ... - -func main() { - //... - if err := svrcmd.Execute(rootCmd, "", app.DefaultNodeHome); err != nil { - os.Exit(1) - } -} -``` - -### Handler - -Cosmos SDK v0.46 no longer needs a `NewHandler` function that was used to handle messages and call appropriate keeper -methods based on message types. Feel free to remove `x/{moduleName}/handler.go` file. - -Since there is no `NewHandler` now, modify the deprecated `Route` function to return `sdk.Route{}`: - -```go -// x/{moduleName}/module.go - -package module_name - -// ... - -func (am AppModule) Route() sdk.Route { return sdk.Route{} } -``` diff --git a/docs/versioned_docs/version-v29/06-migration/v0.25.0.md b/docs/versioned_docs/version-v29/06-migration/v0.25.0.md deleted file mode 100644 index 35db7963f2..0000000000 --- a/docs/versioned_docs/version-v29/06-migration/v0.25.0.md +++ /dev/null @@ -1,1187 +0,0 @@ ---- -sidebar_position: 994 -title: v0.25.0 -description: For chains that were scaffolded with Ignite CLI versions lower than v0.25.0. changes are required to use Ignite CLI v0.25.0. ---- - -## Protobuf directory migration - -`v0.25.0` changes the location of scaffolded `.proto` files. Previously, `.proto` files were located in `./proto/{moduleName}/`, -where `moduleName` is the same name of the Cosmos SDK module found in `./x/{moduleName}/`. This new version of `ignite` -modifies the scaffolded protobuf files so that they are now generated in `./proto/{appName}/{moduleName}`. - -The only change that is needed to be made is to create an `{appName}` folder in the `proto` directory, and then place the -sub-directories within it. An example below demonstrates this change: - -### Previous Directory Structure - -This example shows a chain that was generated using `ignite` with `v0.24.0` using the following command: - -```bash -ignite s chain github.com/cosmos/planet --no-module -ignite s module mars -``` - -```bash -├── app -├── cmd -├── docs -├── proto -│ ├── mars -├── x -│ ├── mars -├── README.md -├── config.yml -├── go.mod -├── go.sum -└── .gitignore -``` - -### `v0.25.0` Directory Structure - -This example shows a chain that was generated using `ignite` with `v0.25.0` using the following command: - -```bash -ignite s chain github.com/cosmos/planet --no-module -ignite s module mars -``` - -```bash -├── app -├── cmd -├── docs -├── proto -│ ├── planet -│ │ ├── mars -├── x -│ ├── mars -├── README.md -├── config.yml -├── go.mod -├── go.sum -└── .gitignore -``` - -The only difference is the additional directory `planet` which is the name of the application. The name of the app can -be verified by checking the package in the `go.mod` file. In this example, the package is `github.com/cosmos/planet` -where `planet` is the app name. - - --- - -## Removing `cosmoscmd` - -`v0.25.0` removes the `cosmoscmd` package from scaffolded chains. This package provided utility for creating -commands and starting up their application. The `cosmoscmd` package is now deprecated, and it is suggested that chains -implement this functionality in their codebase so they can be more easily upgraded and customized. - -The main functionality of `cosmoscmd` will be moved to the `app` package of your chain. Some imports in these -examples contain the sample string, `{ModulePath}`. Replace this string with the Go module path of your blockchain. -For example, if your blockchain module path is `github.com/planet/mars`, `{ModulePath}/app/params` would be become -`github.com/planet/mars/app/params`. - -#### Migration in `app` package - -To begin, create a new file, `./app/params/encoding.go`, containing the following code: - -```go -package params - -import ( - "github.com/cosmos/cosmos-sdk/client" - "github.com/cosmos/cosmos-sdk/codec" - "github.com/cosmos/cosmos-sdk/codec/types" -) - -// EncodingConfig specifies the concrete encoding types to use for a given app. -// This is provided for compatibility between protobuf and amino implementations. -type EncodingConfig struct { - InterfaceRegistry types.InterfaceRegistry - Marshaler codec.Codec - TxConfig client.TxConfig - Amino *codec.LegacyAmino -} -``` - -Next, create a new file, `./app/encoding.go`, containing the following code: - -```go -package app - -import ( - "github.com/cosmos/cosmos-sdk/codec" - "github.com/cosmos/cosmos-sdk/codec/types" - "github.com/cosmos/cosmos-sdk/std" - "github.com/cosmos/cosmos-sdk/x/auth/tx" - - "{ModulePath}/app/params" -) - -// makeEncodingConfig creates an EncodingConfig for an amino based test configuration. -func makeEncodingConfig() params.EncodingConfig { - amino := codec.NewLegacyAmino() - interfaceRegistry := types.NewInterfaceRegistry() - marshaler := codec.NewProtoCodec(interfaceRegistry) - txCfg := tx.NewTxConfig(marshaler, tx.DefaultSignModes) - - return params.EncodingConfig{ - InterfaceRegistry: interfaceRegistry, - Marshaler: marshaler, - TxConfig: txCfg, - Amino: amino, - } -} - -// MakeEncodingConfig creates an EncodingConfig for testing -func MakeEncodingConfig() params.EncodingConfig { - encodingConfig := makeEncodingConfig() - std.RegisterLegacyAminoCodec(encodingConfig.Amino) - std.RegisterInterfaces(encodingConfig.InterfaceRegistry) - ModuleBasics.RegisterLegacyAminoCodec(encodingConfig.Amino) - ModuleBasics.RegisterInterfaces(encodingConfig.InterfaceRegistry) - return encodingConfig -} -``` - -Next, modify `./app/simulation_test.go` so that it looks like the following: - -```go -package app_test - -import ( - "os" - "testing" - "time" - - "github.com/cosmos/cosmos-sdk/simapp" - simulationtypes "github.com/cosmos/cosmos-sdk/types/simulation" - "github.com/cosmos/cosmos-sdk/x/simulation" - "github.com/stretchr/testify/require" - abci "github.com/tendermint/tendermint/abci/types" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - tmtypes "github.com/tendermint/tendermint/types" - // remove-next-line - "github.com/ignite/cli/ignite/pkg/cosmoscmd" - - // highlight-next-line - "{ModulePath}/app" -) - -// remove-start -type SimApp interface { - cosmoscmd.App - GetBaseApp() *baseapp.BaseApp - AppCodec() codec.Codec - SimulationManager() *module.SimulationManager - ModuleAccountAddrs() map[string]bool - Name() string - LegacyAmino() *codec.LegacyAmino - BeginBlocker(ctx sdk.Context, req abci.RequestBeginBlock) - abci.ResponseBeginBlock - EndBlocker(ctx sdk.Context, req abci.RequestEndBlock) - abci.ResponseEndBlock - InitChainer(ctx sdk.Context, req abci.RequestInitChain) - abci.ResponseInitChain -} - -// remove-end - -// ... - -// BenchmarkSimulation run the chain simulation -// Running using starport command: -// `starport chain simulate -v --numBlocks 200 --blockSize 50` -// Running as go benchmark test: -// `go test -benchmem -run=^$ -bench ^BenchmarkSimulation ./app -NumBlocks=200 -BlockSize 50 -Commit=true -Verbose=true -Enabled=true` -func BenchmarkSimulation(b *testing.B) { - - // ... - - // remove-next-line - encoding := cosmoscmd.MakeEncodingConfig(app.ModuleBasics) - // highlight-next-line - encoding := app.MakeEncodingConfig() - - app := app.New( - logger, - db, - nil, - true, - map[int64]bool{}, - app.DefaultNodeHome, - 0, - encoding, - simapp.EmptyAppOptions{}, - ) - - // remove-start - simApp, ok := app.(SimApp) - require.True(b, ok, "can't use simapp") - // remove-end - - // Run randomized simulations - _, simParams, simErr := simulation.SimulateFromSeed( - b, - os.Stdout, - // highlight-next-line - app.BaseApp, - // highlight-next-line - simapp.AppStateFn(app.AppCodec(), app.SimulationManager()), - simulationtypes.RandomAccounts, - // highlight-next-line - simapp.SimulationOperations(app, app.AppCodec(), config), - // highlight-next-line - app.ModuleAccountAddrs(), - config, - // highlight-next-line - app.AppCodec(), - ) - - // export state and simParams before the simulation error is checked - // highlight-next-line - err = simapp.CheckExportSimulation(app, config, simParams) - require.NoError(b, err) - require.NoError(b, simErr) - - // ... -} -``` - -The main changes here are that the `SimApp` interface has been removed and is being replaced with `app`. - -The final modification in the `app` package is in `app/app.go`: - -```go -package app - -import ( - // ... - - // this line is used by starport scaffolding # stargate/app/moduleImport - - // remove-next-line - "github.com/ignite/cli/ignite/pkg/cosmoscmd" - - // highlight-start - appparams "{ModulePath}/app/params" - "{ModulePath}/docs" - // highlight-end -) - -// ... - -var ( - // remove-next-line - _ cosmoscmd.App = (*App)(nil) - _ servertypes.Application = (*App)(nil) - _ simapp.App = (*App)(nil) -) - -// ... - -// New returns a reference to an initialized blockchain app -func New( - logger log.Logger, - db dbm.DB, - traceStore io.Writer, - loadLatest bool, - skipUpgradeHeights map[int64]bool, - homePath string, - invCheckPeriod uint, - // highlight-next-line - encodingConfig appparams.EncodingConfig, - appOpts servertypes.AppOptions, - baseAppOptions ...func(*baseapp.BaseApp), - // highlight-next-line -) *App { - appCodec := encodingConfig.Marshaler - cdc := encodingConfig.Amino - interfaceRegistry := encodingConfig.InterfaceRegistry - - bApp := baseapp.NewBaseApp( - Name, - logger, - db, - encodingConfig.TxConfig.TxDecoder(), - baseAppOptions..., - ) - - // ... - -} - -// ... - -// Name returns the name of the App -func (app *App) Name() string { return app.BaseApp.Name() } - -// remove-start -// GetBaseApp returns the base app of the application -func (app App) GetBaseApp() *baseapp.BaseApp { return app.BaseApp } - -// remove-end - -// BeginBlocker application updates every begin block -func (app *App) BeginBlocker(ctx sdk.Context, req abci.RequestBeginBlock) abci.ResponseBeginBlock { - return app.mm.BeginBlock(ctx, req) -} - -// ... -``` - -Again, here we are removing the use of `cosmoscmd` and replacing it with `app`. - -#### Migration in `cmd` package - -Some imports in these -examples contain the sample string, `{binaryNamePrefix}d`. Replace this string with the binary name of your blockchain. -For example, if your blockchain module path is `github.com/planet/mars`, `./cmd/{binaryNamePrefix}d/cmd/` would be -become `./cmd/marsd/cmd/`. - -First, create the new file `./cmd/{binaryNamePrefix}d/cmd/config.go` with the following code: - -```go -package cmd - -import ( - sdk "github.com/cosmos/cosmos-sdk/types" - - "{ModulePath}/app" -) - -func initSDKConfig() { - // Set prefixes - accountPubKeyPrefix := app.AccountAddressPrefix + "pub" - validatorAddressPrefix := app.AccountAddressPrefix + "valoper" - validatorPubKeyPrefix := app.AccountAddressPrefix + "valoperpub" - consNodeAddressPrefix := app.AccountAddressPrefix + "valcons" - consNodePubKeyPrefix := app.AccountAddressPrefix + "valconspub" - - // Set and seal config - config := sdk.GetConfig() - config.SetBech32PrefixForAccount(app.AccountAddressPrefix, accountPubKeyPrefix) - config.SetBech32PrefixForValidator(validatorAddressPrefix, validatorPubKeyPrefix) - config.SetBech32PrefixForConsensusNode(consNodeAddressPrefix, consNodePubKeyPrefix) - config.Seal() -} -``` - -Next, create the new file `./cmd/{binaryNamePrefix}d/cmd/genaccounts.go` with the following code: - -```go -package cmd - -import ( - "bufio" - "encoding/json" - "errors" - "fmt" - - "github.com/cosmos/cosmos-sdk/client" - "github.com/cosmos/cosmos-sdk/client/flags" - "github.com/cosmos/cosmos-sdk/crypto/keyring" - "github.com/cosmos/cosmos-sdk/server" - sdk "github.com/cosmos/cosmos-sdk/types" - authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" - authvesting "github.com/cosmos/cosmos-sdk/x/auth/vesting/types" - banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" - "github.com/cosmos/cosmos-sdk/x/genutil" - genutiltypes "github.com/cosmos/cosmos-sdk/x/genutil/types" - "github.com/spf13/cobra" -) - -const ( - flagVestingStart = "vesting-start-time" - flagVestingEnd = "vesting-end-time" - flagVestingAmt = "vesting-amount" -) - -// AddGenesisAccountCmd returns add-genesis-account cobra Command. -func AddGenesisAccountCmd(defaultNodeHome string) *cobra.Command { - cmd := &cobra.Command{ - Use: "add-genesis-account [address_or_key_name] [coin][,[coin]]", - Short: "Add a genesis account to genesis.json", - Long: `Add a genesis account to genesis.json. The provided account must specify -the account address or key name and a list of initial coins. If a key name is given, -the address will be looked up in the local Keybase. The list of initial tokens must -contain valid denominations. Accounts may optionally be supplied with vesting parameters. -`, - Args: cobra.ExactArgs(2), - RunE: func(cmd *cobra.Command, args []string) error { - clientCtx := client.GetClientContextFromCmd(cmd) - cdc := clientCtx.Codec - - serverCtx := server.GetServerContextFromCmd(cmd) - config := serverCtx.Config - - config.SetRoot(clientCtx.HomeDir) - - coins, err := sdk.ParseCoinsNormalized(args[1]) - if err != nil { - return fmt.Errorf("failed to parse coins: %w", err) - } - - addr, err := sdk.AccAddressFromBech32(args[0]) - if err != nil { - inBuf := bufio.NewReader(cmd.InOrStdin()) - keyringBackend, err := cmd.Flags().GetString(flags.FlagKeyringBackend) - if err != nil { - return err - } - - // attempt to lookup address from Keybase if no address was provided - kb, err := keyring.New(sdk.KeyringServiceName(), keyringBackend, clientCtx.HomeDir, inBuf, cdc) - if err != nil { - return err - } - - info, err := kb.Key(args[0]) - if err != nil { - return fmt.Errorf("failed to get address from Keybase: %w", err) - } - - addr, err = info.GetAddress() - if err != nil { - return fmt.Errorf("failed to get address from Keybase: %w", err) - } - } - - vestingStart, err := cmd.Flags().GetInt64(flagVestingStart) - if err != nil { - return err - } - vestingEnd, err := cmd.Flags().GetInt64(flagVestingEnd) - if err != nil { - return err - } - vestingAmtStr, err := cmd.Flags().GetString(flagVestingAmt) - if err != nil { - return err - } - - vestingAmt, err := sdk.ParseCoinsNormalized(vestingAmtStr) - if err != nil { - return fmt.Errorf("failed to parse vesting amount: %w", err) - } - - // create concrete account type based on input parameters - var genAccount authtypes.GenesisAccount - - balances := banktypes.Balance{Address: addr.String(), Coins: coins.Sort()} - baseAccount := authtypes.NewBaseAccount(addr, nil, 0, 0) - - if !vestingAmt.IsZero() { - baseVestingAccount := authvesting.NewBaseVestingAccount(baseAccount, vestingAmt.Sort(), vestingEnd) - - if (balances.Coins.IsZero() && !baseVestingAccount.OriginalVesting.IsZero()) || - baseVestingAccount.OriginalVesting.IsAnyGT(balances.Coins) { - return errors.New("vesting amount cannot be greater than total amount") - } - - switch { - case vestingStart != 0 && vestingEnd != 0: - genAccount = authvesting.NewContinuousVestingAccountRaw(baseVestingAccount, vestingStart) - - case vestingEnd != 0: - genAccount = authvesting.NewDelayedVestingAccountRaw(baseVestingAccount) - - default: - return errors.New("invalid vesting parameters; must supply start and end time or end time") - } - } else { - genAccount = baseAccount - } - - if err := genAccount.Validate(); err != nil { - return fmt.Errorf("failed to validate new genesis account: %w", err) - } - - genFile := config.GenesisFile() - appState, genDoc, err := genutiltypes.GenesisStateFromGenFile(genFile) - if err != nil { - return fmt.Errorf("failed to unmarshal genesis state: %w", err) - } - - authGenState := authtypes.GetGenesisStateFromAppState(cdc, appState) - - accs, err := authtypes.UnpackAccounts(authGenState.Accounts) - if err != nil { - return fmt.Errorf("failed to get accounts from any: %w", err) - } - - if accs.Contains(addr) { - return fmt.Errorf("cannot add account at existing address %s", addr) - } - - // Add the new account to the set of genesis accounts and sanitize the - // accounts afterwards. - accs = append(accs, genAccount) - accs = authtypes.SanitizeGenesisAccounts(accs) - - genAccs, err := authtypes.PackAccounts(accs) - if err != nil { - return fmt.Errorf("failed to convert accounts into any's: %w", err) - } - authGenState.Accounts = genAccs - - authGenStateBz, err := cdc.MarshalJSON(&authGenState) - if err != nil { - return fmt.Errorf("failed to marshal auth genesis state: %w", err) - } - - appState[authtypes.ModuleName] = authGenStateBz - - bankGenState := banktypes.GetGenesisStateFromAppState(cdc, appState) - bankGenState.Balances = append(bankGenState.Balances, balances) - bankGenState.Balances = banktypes.SanitizeGenesisBalances(bankGenState.Balances) - - bankGenStateBz, err := cdc.MarshalJSON(bankGenState) - if err != nil { - return fmt.Errorf("failed to marshal bank genesis state: %w", err) - } - - appState[banktypes.ModuleName] = bankGenStateBz - - appStateJSON, err := json.Marshal(appState) - if err != nil { - return fmt.Errorf("failed to marshal application genesis state: %w", err) - } - - genDoc.AppState = appStateJSON - return genutil.ExportGenesisFile(genDoc, genFile) - }, - } - - cmd.Flags().String(flags.FlagKeyringBackend, flags.DefaultKeyringBackend, "Select keyring's backend (os|file|kwallet|pass|test)") - cmd.Flags().String(flags.FlagHome, defaultNodeHome, "The application home directory") - cmd.Flags().String(flagVestingAmt, "", "amount of coins for vesting accounts") - cmd.Flags().Int64(flagVestingStart, 0, "schedule start time (unix epoch) for vesting accounts") - cmd.Flags().Int64(flagVestingEnd, 0, "schedule end time (unix epoch) for vesting accounts") - flags.AddQueryFlagsToCmd(cmd) - - return cmd -} -``` - -This command allows one to generate new accounts: `appd add-genesis-account`. - -Next, create the new file `./cmd/{binaryNamePrefix}d/cmd/root.go` with the following code: - -```go -package cmd - -import ( - "errors" - "io" - "os" - "path/filepath" - "strings" - - "github.com/cosmos/cosmos-sdk/baseapp" - "github.com/cosmos/cosmos-sdk/client" - "github.com/cosmos/cosmos-sdk/client/config" - "github.com/cosmos/cosmos-sdk/client/debug" - "github.com/cosmos/cosmos-sdk/client/flags" - "github.com/cosmos/cosmos-sdk/client/keys" - "github.com/cosmos/cosmos-sdk/client/rpc" - "github.com/cosmos/cosmos-sdk/server" - serverconfig "github.com/cosmos/cosmos-sdk/server/config" - servertypes "github.com/cosmos/cosmos-sdk/server/types" - "github.com/cosmos/cosmos-sdk/snapshots" - snapshottypes "github.com/cosmos/cosmos-sdk/snapshots/types" - "github.com/cosmos/cosmos-sdk/store" - sdk "github.com/cosmos/cosmos-sdk/types" - authcmd "github.com/cosmos/cosmos-sdk/x/auth/client/cli" - "github.com/cosmos/cosmos-sdk/x/auth/types" - banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" - "github.com/cosmos/cosmos-sdk/x/crisis" - genutilcli "github.com/cosmos/cosmos-sdk/x/genutil/client/cli" - "github.com/ignite/cli/ignite/services/network" - "github.com/spf13/cast" - "github.com/spf13/cobra" - "github.com/spf13/pflag" - tmcfg "github.com/tendermint/tendermint/config" - tmcli "github.com/tendermint/tendermint/libs/cli" - "github.com/tendermint/tendermint/libs/log" - dbm "github.com/tendermint/tm-db" - // this line is used by starport scaffolding # root/moduleImport - - "{ModulePath}/app" - appparams "{ModulePath}/app/params" -) - -// NewRootCmd creates a new root command for a Cosmos SDK application -func NewRootCmd() (*cobra.Command, appparams.EncodingConfig) { - encodingConfig := app.MakeEncodingConfig() - initClientCtx := client.Context{}. - WithCodec(encodingConfig.Marshaler). - WithInterfaceRegistry(encodingConfig.InterfaceRegistry). - WithTxConfig(encodingConfig.TxConfig). - WithLegacyAmino(encodingConfig.Amino). - WithInput(os.Stdin). - WithAccountRetriever(types.AccountRetriever{}). - WithHomeDir(app.DefaultNodeHome). - WithViper("") - - rootCmd := &cobra.Command{ - Use: app.Name + "d", - Short: "Stargate CosmosHub App", - PersistentPreRunE: func(cmd *cobra.Command, _ []string) error { - // set the default command outputs - cmd.SetOut(cmd.OutOrStdout()) - cmd.SetErr(cmd.ErrOrStderr()) - initClientCtx, err := client.ReadPersistentCommandFlags(initClientCtx, cmd.Flags()) - if err != nil { - return err - } - initClientCtx, err = config.ReadFromClientConfig(initClientCtx) - if err != nil { - return err - } - - if err := client.SetCmdClientContextHandler(initClientCtx, cmd); err != nil { - return err - } - - customAppTemplate, customAppConfig := initAppConfig() - customTMConfig := initTendermintConfig() - return server.InterceptConfigsPreRunHandler( - cmd, customAppTemplate, customAppConfig, customTMConfig, - ) - }, - } - - initRootCmd(rootCmd, encodingConfig) - overwriteFlagDefaults(rootCmd, map[string]string{ - flags.FlagChainID: strings.ReplaceAll(app.Name, "-", ""), - flags.FlagKeyringBackend: "test", - }) - - return rootCmd, encodingConfig -} - -// initTendermintConfig helps to override default Tendermint Config values. -// return tmcfg.DefaultConfig if no custom configuration is required for the application. -func initTendermintConfig() *tmcfg.Config { - cfg := tmcfg.DefaultConfig() - return cfg -} - -func initRootCmd( - rootCmd *cobra.Command, - encodingConfig appparams.EncodingConfig, -) { - // Set config - initSDKConfig() - - rootCmd.AddCommand( - genutilcli.InitCmd(app.ModuleBasics, app.DefaultNodeHome), - genutilcli.CollectGenTxsCmd(banktypes.GenesisBalancesIterator{}, app.DefaultNodeHome), - genutilcli.MigrateGenesisCmd(), - genutilcli.GenTxCmd( - app.ModuleBasics, - encodingConfig.TxConfig, - banktypes.GenesisBalancesIterator{}, - app.DefaultNodeHome, - ), - genutilcli.ValidateGenesisCmd(app.ModuleBasics), - AddGenesisAccountCmd(app.DefaultNodeHome), - tmcli.NewCompletionCmd(rootCmd, true), - debug.Cmd(), - config.Cmd(), - // this line is used by starport scaffolding # root/commands - ) - - a := appCreator{ - encodingConfig, - } - - // add server commands - server.AddCommands( - rootCmd, - app.DefaultNodeHome, - a.newApp, - a.appExport, - addModuleInitFlags, - ) - - // add keybase, auxiliary RPC, query, and tx child commands - rootCmd.AddCommand( - rpc.StatusCommand(), - queryCommand(), - txCommand(), - keys.Commands(app.DefaultNodeHome), - ) -} - -// queryCommand returns the sub-command to send queries to the app -func queryCommand() *cobra.Command { - cmd := &cobra.Command{ - Use: "query", - Aliases: []string{"q"}, - Short: "Querying subcommands", - DisableFlagParsing: true, - SuggestionsMinimumDistance: 2, - RunE: client.ValidateCmd, - } - - cmd.AddCommand( - authcmd.GetAccountCmd(), - rpc.ValidatorCommand(), - rpc.BlockCommand(), - authcmd.QueryTxsByEventsCmd(), - authcmd.QueryTxCmd(), - ) - - app.ModuleBasics.AddQueryCommands(cmd) - cmd.PersistentFlags().String(flags.FlagChainID, "", "The network chain ID") - - return cmd -} - -// txCommand returns the sub-command to send transactions to the app -func txCommand() *cobra.Command { - cmd := &cobra.Command{ - Use: "tx", - Short: "Transactions subcommands", - DisableFlagParsing: true, - SuggestionsMinimumDistance: 2, - RunE: client.ValidateCmd, - } - - cmd.AddCommand( - authcmd.GetSignCommand(), - authcmd.GetSignBatchCommand(), - authcmd.GetMultiSignCommand(), - authcmd.GetValidateSignaturesCommand(), - flags.LineBreak, - authcmd.GetBroadcastCommand(), - authcmd.GetEncodeCommand(), - authcmd.GetDecodeCommand(), - ) - - app.ModuleBasics.AddTxCommands(cmd) - cmd.PersistentFlags().String(flags.FlagChainID, "", "The network chain ID") - - return cmd -} - -func addModuleInitFlags(startCmd *cobra.Command) { - crisis.AddModuleInitFlags(startCmd) - // this line is used by starport scaffolding # root/arguments -} - -func overwriteFlagDefaults(c *cobra.Command, defaults map[string]string) { - set := func(s *pflag.FlagSet, key, val string) { - if f := s.Lookup(key); f != nil { - f.DefValue = val - f.Value.Set(val) - } - } - for key, val := range defaults { - set(c.Flags(), key, val) - set(c.PersistentFlags(), key, val) - } - for _, c := range c.Commands() { - overwriteFlagDefaults(c, defaults) - } -} - -type appCreator struct { - encodingConfig appparams.EncodingConfig -} - -// newApp creates a new Cosmos SDK app -func (a appCreator) newApp( - logger log.Logger, - db dbm.DB, - traceStore io.Writer, - appOpts servertypes.AppOptions, -) servertypes.Application { - var cache sdk.MultiStorePersistentCache - - if cast.ToBool(appOpts.Get(server.FlagInterBlockCache)) { - cache = store.NewCommitKVStoreCacheManager() - } - - skipUpgradeHeights := make(map[int64]bool) - for _, h := range cast.ToIntSlice(appOpts.Get(server.FlagUnsafeSkipUpgrades)) { - skipUpgradeHeights[int64(h)] = true - } - - pruningOpts, err := server.GetPruningOptionsFromFlags(appOpts) - if err != nil { - panic(err) - } - - snapshotDir := filepath.Join(cast.ToString(appOpts.Get(flags.FlagHome)), "data", "snapshots") - snapshotDB, err := dbm.NewDB("metadata", dbm.GoLevelDBBackend, snapshotDir) - if err != nil { - panic(err) - } - snapshotStore, err := snapshots.NewStore(snapshotDB, snapshotDir) - if err != nil { - panic(err) - } - - snapshotOptions := snapshottypes.NewSnapshotOptions( - cast.ToUint64(appOpts.Get(server.FlagStateSyncSnapshotInterval)), - cast.ToUint32(appOpts.Get(server.FlagStateSyncSnapshotKeepRecent)), - ) - - return app.New( - logger, - db, - traceStore, - true, - skipUpgradeHeights, - cast.ToString(appOpts.Get(flags.FlagHome)), - cast.ToUint(appOpts.Get(server.FlagInvCheckPeriod)), - a.encodingConfig, - appOpts, - baseapp.SetPruning(pruningOpts), - baseapp.SetMinGasPrices(cast.ToString(appOpts.Get(server.FlagMinGasPrices))), - baseapp.SetMinRetainBlocks(cast.ToUint64(appOpts.Get(server.FlagMinRetainBlocks))), - baseapp.SetHaltHeight(cast.ToUint64(appOpts.Get(server.FlagHaltHeight))), - baseapp.SetHaltTime(cast.ToUint64(appOpts.Get(server.FlagHaltTime))), - baseapp.SetInterBlockCache(cache), - baseapp.SetTrace(cast.ToBool(appOpts.Get(server.FlagTrace))), - baseapp.SetIndexEvents(cast.ToStringSlice(appOpts.Get(server.FlagIndexEvents))), - baseapp.SetSnapshot(snapshotStore, snapshotOptions), - ) -} - -// appExport creates a new simapp (optionally at a given height) -func (a appCreator) appExport( - logger log.Logger, - db dbm.DB, - traceStore io.Writer, - height int64, - forZeroHeight bool, - jailAllowedAddrs []string, - appOpts servertypes.AppOptions, -) (servertypes.ExportedApp, error) { - homePath, ok := appOpts.Get(flags.FlagHome).(string) - if !ok || homePath == "" { - return servertypes.ExportedApp{}, errors.New("application home not set") - } - - app := app.New( - logger, - db, - traceStore, - height == -1, // -1: no height provided - map[int64]bool{}, - homePath, - uint(1), - a.encodingConfig, - appOpts, - ) - - if height != -1 { - if err := app.LoadHeight(height); err != nil { - return servertypes.ExportedApp{}, err - } - } - - return app.ExportAppStateAndValidators(forZeroHeight, jailAllowedAddrs) -} - -// initAppConfig helps to override default appConfig template and configs. -// return "", nil if no custom configuration is required for the application. -func initAppConfig() (string, interface{}) { - // The following code snippet is just for reference. - - // WASMConfig defines configuration for the wasm module. - type WASMConfig struct { - // This is the maximum sdk gas (wasm and storage) that we allow for any x/wasm "smart" queries - QueryGasLimit uint64 `mapstructure:"query_gas_limit"` - - // Address defines the gRPC-web server to listen on - LruSize uint64 `mapstructure:"lru_size"` - } - - type CustomAppConfig struct { - serverconfig.Config - - WASM WASMConfig `mapstructure:"wasm"` - } - - // Optionally allow the chain developer to overwrite the SDK's default - // server config. - srvCfg := serverconfig.DefaultConfig() - // The SDK's default minimum gas price is set to "" (empty value) inside - // app.toml. If left empty by validators, the node will halt on startup. - // However, the chain developer can set a default app.toml value for their - // validators here. - // - // In summary: - // - if you leave srvCfg.MinGasPrices = "", all validators MUST tweak their - // own app.toml config, - // - if you set srvCfg.MinGasPrices non-empty, validators CAN tweak their - // own app.toml to override, or use this default value. - // - // In simapp, we set the min gas prices to 0. - srvCfg.MinGasPrices = "0stake" - - customAppConfig := CustomAppConfig{ - Config: *srvCfg, - WASM: WASMConfig{ - LruSize: 1, - QueryGasLimit: 300000, - }, - } - - customAppTemplate := serverconfig.DefaultConfigTemplate + ` -[wasm] -# This is the maximum sdk gas (wasm and storage) that we allow for any x/wasm "smart" queries -query_gas_limit = 300000 -# This is the number of wasm vm instances we keep cached in memory for speed-up -# Warning: this is currently unstable and may lead to crashes, best to keep for 0 unless testing locally -lru_size = 0` - - return customAppTemplate, customAppConfig -} -``` - -Finally, modify `./cmd/{binaryNamePrefix}d/main.go` to include the new changes: - -```go -package main - -import ( - "os" - - "github.com/cosmos/cosmos-sdk/server" - svrcmd "github.com/cosmos/cosmos-sdk/server/cmd" - // remove-next-line - "github.com/ignite/cli/ignite/pkg/cosmoscmd" - - "{ModulePath}/app" - "{ModulePath}/cmd/{BinaryNamePrefix}d/cmd" -) - -func main() { - // highlight-start - rootCmd, _ := cmd.NewRootCmd() - if err := svrcmd.Execute(rootCmd, "", app.DefaultNodeHome); err != nil { - switch e := err.(type) { - case server.ErrorCode: - os.Exit(e.Code) - - default: - os.Exit(1) - } - } - // highlight-end -} -``` - -#### Migration in `testutil` package - -Modify `./testutil/network/network.go` to include the new changes: - - -```go -package network - -import ( - "fmt" - "testing" - "time" - - "github.com/cosmos/cosmos-sdk/baseapp" - "github.com/cosmos/cosmos-sdk/crypto/hd" - "github.com/cosmos/cosmos-sdk/crypto/keyring" - pruningtypes "github.com/cosmos/cosmos-sdk/pruning/types" - servertypes "github.com/cosmos/cosmos-sdk/server/types" - "github.com/cosmos/cosmos-sdk/simapp" - "github.com/cosmos/cosmos-sdk/testutil/network" - sdk "github.com/cosmos/cosmos-sdk/types" - authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" - "github.com/stretchr/testify/require" - tmrand "github.com/tendermint/tendermint/libs/rand" - tmdb "github.com/tendermint/tm-db" - - // highlight-next-line - "{ModulePath}/app" - - // remove-next-line - "github.com/ignite/cli/ignite/pkg/cosmoscmd" -) - -// ... - -// DefaultConfig will initialize config for the network with custom application, -// genesis and single validator. All other parameters are inherited from cosmos-sdk/testutil/network.DefaultConfig -func DefaultConfig() network.Config { - // highlight-next-line - encoding := app.MakeEncodingConfig() - // remove-next-line - encoding := cosmoscmd.MakeEncodingConfig(app.ModuleBasics) - return network.Config{ - Codec: encoding.Marshaler, - TxConfig: encoding.TxConfig, - LegacyAmino: encoding.Amino, - InterfaceRegistry: encoding.InterfaceRegistry, - AccountRetriever: authtypes.AccountRetriever{}, - AppConstructor: func(val network.Validator) servertypes.Application { - return app.New( - val.Ctx.Logger, tmdb.NewMemDB(), nil, true, map[int64]bool{}, val.Ctx.Config.RootDir, 0, - encoding, - simapp.EmptyAppOptions{}, - baseapp.SetPruning(pruningtypes.NewPruningOptionsFromString(val.AppConfig.Pruning)), - baseapp.SetMinGasPrices(val.AppConfig.MinGasPrices), - ) - }, - GenesisState: app.ModuleBasics.DefaultGenesis(encoding.Marshaler), - TimeoutCommit: 2 * time.Second, - ChainID: "chain-" + tmrand.NewRand().Str(6), - NumValidators: 1, - BondDenom: sdk.DefaultBondDenom, - MinGasPrices: fmt.Sprintf("0.000006%s", sdk.DefaultBondDenom), - AccountTokens: sdk.TokensFromConsensusPower(1000, sdk.DefaultPowerReduction), - StakingTokens: sdk.TokensFromConsensusPower(500, sdk.DefaultPowerReduction), - BondedTokens: sdk.TokensFromConsensusPower(100, sdk.DefaultPowerReduction), - PruningStrategy: pruningtypes.PruningOptionNothing, - CleanupDir: true, - SigningAlgo: string(hd.Secp256k1Type), - KeyringOptions: []keyring.Option{}, - } -} -``` - - --- - -## Fix ICA controller keeper wiring - -Related issue: https://github.com/ignite/cli/issues/2867 - -Apply the following changes to `app/app.go` file : - -```go -package app - -import ( - - // highlight-start - icacontrollerkeeper "github.com/cosmos/ibc-go/v5/modules/apps/27-interchain-accounts/controller/keeper" - icacontrollertypes "github.com/cosmos/ibc-go/v5/modules/apps/27-interchain-accounts/controller/types" - // highlight-end - // ... -) - -// New returns a reference to an initialized blockchain app -func New( - logger log.Logger, - db dbm.DB, - traceStore io.Writer, - loadLatest bool, - skipUpgradeHeights map[int64]bool, - homePath string, - invCheckPeriod uint, - encodingConfig appparams.EncodingConfig, - appOpts servertypes.AppOptions, - baseAppOptions ...func(*baseapp.BaseApp), -) *App { - - // ... - - keys := sdk.NewKVStoreKeys( - authtypes.StoreKey, authz.ModuleName, banktypes.StoreKey, - stakingtypes.StoreKey, - minttypes.StoreKey, distrtypes.StoreKey, slashingtypes.StoreKey, - govtypes.StoreKey, - paramstypes.StoreKey, ibchost.StoreKey, upgradetypes.StoreKey, - feegrant.StoreKey, evidencetypes.StoreKey, - ibctransfertypes.StoreKey, icahosttypes.StoreKey, - capabilitytypes.StoreKey, group.StoreKey, - // highlight-next-line - icacontrollertypes.StoreKey, - yourchainmoduletypes.StoreKey, - // this line is used by starport scaffolding # stargate/app/storeKey - ) - - // ... - - // remove-next-line - icaModule := ica.NewAppModule(nil, &app.ICAHostKeeper) - // highlight-start - icaControllerKeeper := icacontrollerkeeper.NewKeeper( - appCodec, keys[icacontrollertypes.StoreKey], - app.GetSubspace(icacontrollertypes.SubModuleName), - app.IBCKeeper.ChannelKeeper, // may be replaced with middleware such as ics29 fee - app.IBCKeeper.ChannelKeeper, &app.IBCKeeper.PortKeeper, - scopedICAControllerKeeper, app.MsgServiceRouter(), - ) - icaModule := ica.NewAppModule(&icaControllerKeeper, &app.ICAHostKeeper) - // highlight-end - icaHostIBCModule := icahost.NewIBCModule(app.ICAHostKeeper) - - // ... -} - -// ... - -// initParamsKeeper init params keeper and its subspaces -func initParamsKeeper(appCodec codec.BinaryCodec, legacyAmino *codec.LegacyAmino, key, tkey storetypes.StoreKey) paramskeeper.Keeper { - paramsKeeper := paramskeeper.NewKeeper(appCodec, legacyAmino, key, tkey) - - paramsKeeper.Subspace(authtypes.ModuleName) - paramsKeeper.Subspace(banktypes.ModuleName) - paramsKeeper.Subspace(stakingtypes.ModuleName) - paramsKeeper.Subspace(minttypes.ModuleName) - paramsKeeper.Subspace(distrtypes.ModuleName) - paramsKeeper.Subspace(slashingtypes.ModuleName) - paramsKeeper.Subspace(govtypes.ModuleName).WithKeyTable(govv1.ParamKeyTable()) - paramsKeeper.Subspace(crisistypes.ModuleName) - paramsKeeper.Subspace(ibctransfertypes.ModuleName) - paramsKeeper.Subspace(ibchost.ModuleName) - // highlight-next-line - paramsKeeper.Subspace(icacontrollertypes.SubModuleName) - paramsKeeper.Subspace(icahosttypes.SubModuleName) - paramsKeeper.Subspace(mychainmoduletypes.ModuleName) - // this line is used by starport scaffolding # stargate/app/paramSubspace - - return paramsKeeper -} -``` - - --- - -## Fix capability keeper not sealed - -Related issue: https://github.com/ignite/cli/issues/1921 - -Apply the following change to `app/app.go` file : - -```go -package app - -// New returns a reference to an initialized blockchain app -func New( - logger log.Logger, - db dbm.DB, - traceStore io.Writer, - loadLatest bool, - skipUpgradeHeights map[int64]bool, - homePath string, - invCheckPeriod uint, - encodingConfig appparams.EncodingConfig, - appOpts servertypes.AppOptions, - baseAppOptions ...func(*baseapp.BaseApp), -) *App { - - // ... - - // this line is used by starport scaffolding # stargate/app/keeperDefinition - - // highlight-start - // Sealing prevents other modules from creating scoped sub-keepers - app.CapabilityKeeper.Seal() - // highlight-end - - // Create static IBC router, add transfer route, then set and seal it - - // ... -} -``` diff --git a/docs/versioned_docs/version-v29/06-migration/v0.25.1.md b/docs/versioned_docs/version-v29/06-migration/v0.25.1.md deleted file mode 100644 index 42fe7f783c..0000000000 --- a/docs/versioned_docs/version-v29/06-migration/v0.25.1.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -sidebar_position: 993 -title: v0.25.1 -description: For chains that were scaffolded with Ignite CLI versions lower than v0.25.1. changes are required to use Ignite CLI v0.25.1. ---- - -## Drabonberry fix - -`v0.25.1` contains the Dragonberry fix, update your `go.mod` as : - -```sh -require ( - // remove-next-line - github.com/ignite/cli v0.24.0 - // highlight-next-line - github.com/ignite/cli v0.25.1 -) - -// highlight-next-line -replace github.com/confio/ics23/go => github.com/cosmos/cosmos-sdk/ics23/go v0.8.0 -``` - -Then run: - -``` -$ go mod tidy -``` - -As a result, you should see `cosmos-sdk` and `ibc-go` upgraded as well. - -Finally, apply the following change to `app/app.go`: - -```go -package app - -// New returns a reference to an initialized blockchain app -func New( - logger log.Logger, - db dbm.DB, - traceStore io.Writer, - loadLatest bool, - skipUpgradeHeights map[int64]bool, - homePath string, - invCheckPeriod uint, - encodingConfig appparams.EncodingConfig, - appOpts servertypes.AppOptions, - baseAppOptions ...func(*baseapp.BaseApp), -) *App { - - // ... - - app.ICAHostKeeper = icahostkeeper.NewKeeper( - appCodec, keys[icahosttypes.StoreKey], - app.GetSubspace(icahosttypes.SubModuleName), - app.IBCKeeper.ChannelKeeper, - // highlight-next-line - app.IBCKeeper.ChannelKeeper, - &app.IBCKeeper.PortKeeper, - app.AccountKeeper, - scopedICAHostKeeper, - app.MsgServiceRouter(), - ) - - // ... - -} -``` diff --git a/docs/versioned_docs/version-v29/06-migration/v0.26.0.md b/docs/versioned_docs/version-v29/06-migration/v0.26.0.md deleted file mode 100644 index de3576dbe8..0000000000 --- a/docs/versioned_docs/version-v29/06-migration/v0.26.0.md +++ /dev/null @@ -1,263 +0,0 @@ ---- -sidebar_position: 992 -title: v0.26.0 -description: For chains that were scaffolded with Ignite CLI versions lower than v0.26.0. changes are required to use Ignite CLI v0.26.0. ---- - -Ignite CLI `v0.26.0` is fully compatible with chains that are compatible with `v0.25.1`. Please follow the existing -migration guides if your chain is not upgraded to `v0.25.1` support. - -## Go Version - -Chains that are newly scaffolded with Ignite CLI `v0.26.0` now require `go 1.19` in their `go.mod` files. It is -recommended that chains scaffolded with an older version of Ignite CLI also bump their required `go` version and update -their tooling to the latest version. - -## ibc-go v6 - -Chains that are newly scaffolded with Ignite CLI `v0.26.0` now use `ibc-go/v6` for ibc functionality. It is not -necessary, but recommended to upgrade to the newest version of `ibc-go`. Most migrations can be done by following the -`ibc-go` [migration guide](https://github.com/cosmos/ibc-go/blob/v6.2.0/docs/migrations/v5-to-v6.md), but there are some -specific changes that will need to be followed for Ignite scaffolded chains. - -### Removing `cosmosibckeeper` - -Ignite CLI `v0.26.0` has deprecated [pkg/cosmosibckeeper](https://github.com/ignite/cli/tree/v0.26.0/ignite/pkg/cosmosibckeeper). -This package contained interfaces for ibc-related keepers. Newly scaffolded chains now include the interface files in their -`./x/{moduleName}/types` directory in a new `expected_ibc_keeper.go` file. To migrate, create the following file for -each module: - -```go title="x/{moduleName}/types/expected_ibc_keeper.go" -package types - -import ( - sdk "github.com/cosmos/cosmos-sdk/types" - capabilitytypes "github.com/cosmos/cosmos-sdk/x/capability/types" - clienttypes "github.com/cosmos/ibc-go/v6/modules/core/02-client/types" - channeltypes "github.com/cosmos/ibc-go/v6/modules/core/04-channel/types" -) - -// ChannelKeeper defines the expected IBC channel keeper. -type ChannelKeeper interface { - GetChannel(ctx sdk.Context, portID, channelID string) (channeltypes.Channel, bool) - GetNextSequenceSend(ctx sdk.Context, portID, channelID string) (uint64, bool) - SendPacket( - ctx sdk.Context, - channelCap *capabilitytypes.Capability, - sourcePort string, - sourceChannel string, - timeoutHeight clienttypes.Height, - timeoutTimestamp uint64, - data []byte, - ) (uint64, error) - ChanCloseInit(ctx sdk.Context, portID, channelID string, chanCap *capabilitytypes.Capability) error -} - -// PortKeeper defines the expected IBC port keeper. -type PortKeeper interface { - BindPort(ctx sdk.Context, portID string) *capabilitytypes.Capability -} - -// ScopedKeeper defines the expected IBC scoped keeper. -type ScopedKeeper interface { - GetCapability(ctx sdk.Context, name string) (*capabilitytypes.Capability, bool) - AuthenticateCapability(ctx sdk.Context, cap *capabilitytypes.Capability, name string) bool - ClaimCapability(ctx sdk.Context, cap *capabilitytypes.Capability, name string) error -} -``` - -Next, make the following updates to each `x/{moduleName}/keeper/keeper.go` file for each ibc-enabled -module in your project: - -```go title="x/{moduleName}/keeper/keeper.go" -package keeper - -import ( - "fmt" - - // remove-start - "blogibc/x/testibc/types" - "github.com/cosmos/cosmos-sdk/codec" - storetypes "github.com/cosmos/cosmos-sdk/store/types" - sdk "github.com/cosmos/cosmos-sdk/types" - paramtypes "github.com/cosmos/cosmos-sdk/x/params/types" - "github.com/ignite/cli/ignite/pkg/cosmosibckeeper" - "github.com/tendermint/tendermint/libs/log" - // remove-end - // highlight-start - "github.com/cosmos/cosmos-sdk/codec" - storetypes "github.com/cosmos/cosmos-sdk/store/types" - sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" - capabilitytypes "github.com/cosmos/cosmos-sdk/x/capability/types" - paramtypes "github.com/cosmos/cosmos-sdk/x/params/types" - channeltypes "github.com/cosmos/ibc-go/v6/modules/core/04-channel/types" - host "github.com/cosmos/ibc-go/v6/modules/core/24-host" - "github.com/cosmos/ibc-go/v6/modules/core/exported" - "github.com/tendermint/tendermint/libs/log" - - "{appName}/x/{moduleName}/types" - // highlight-end -) - -type ( - Keeper struct { - // remove-line-next - *cosmosibckeeper.Keeper - cdc codec.BinaryCodec - storeKey storetypes.StoreKey - memKey storetypes.StoreKey - paramstore paramtypes.Subspace - - // highlight-start - channelKeeper types.ChannelKeeper - portKeeper types.PortKeeper - scopedKeeper exported.ScopedKeeper - // highlight-end - } -) - -func NewKeeper( - cdc codec.BinaryCodec, - storeKey, - memKey storetypes.StoreKey, - ps paramtypes.Subspace, - // highlight-start - channelKeeper types.ChannelKeeper, - portKeeper types.PortKeeper, - scopedKeeper types.ScopedKeeper, - // highlight-end -) *Keeper { - // set KeyTable if it has not already been set - if !ps.HasKeyTable() { - ps = ps.WithKeyTable(types.ParamKeyTable()) - } - - return &Keeper{ - // remove-start - Keeper: cosmosibckeeper.NewKeeper( - types.PortKey, - storeKey, - channelKeeper, - portKeeper, - scopedKeeper, - ), - // remove-end - cdc: cdc, - storeKey: storeKey, - memKey: memKey, - paramstore: ps, - // highlight-start - channelKeeper: channelKeeper, - portKeeper: portKeeper, - scopedKeeper: scopedKeeper, - // highlight-end - } -} - -// highlight-start -// ---------------------------------------------------------------------------- -// IBC Keeper Logic -// ---------------------------------------------------------------------------- - -// ChanCloseInit defines a wrapper function for the channel Keeper's function. -func (k Keeper) ChanCloseInit(ctx sdk.Context, portID, channelID string) error { - capName := host.ChannelCapabilityPath(portID, channelID) - chanCap, ok := k.scopedKeeper.GetCapability(ctx, capName) - if !ok { - return errorsmod.Wrapf(channeltypes.ErrChannelCapabilityNotFound, "could not retrieve channel capability at: %s", capName) - } - return k.channelKeeper.ChanCloseInit(ctx, portID, channelID, chanCap) -} - -// IsBound checks if the IBC app module is already bound to the desired port -func (k Keeper) IsBound(ctx sdk.Context, portID string) bool { - _, ok := k.scopedKeeper.GetCapability(ctx, host.PortPath(portID)) - return ok -} - -// BindPort defines a wrapper function for the port Keeper's function in -// order to expose it to module's InitGenesis function -func (k Keeper) BindPort(ctx sdk.Context, portID string) error { - cap := k.portKeeper.BindPort(ctx, portID) - return k.ClaimCapability(ctx, cap, host.PortPath(portID)) -} - -// GetPort returns the portID for the IBC app module. Used in ExportGenesis -func (k Keeper) GetPort(ctx sdk.Context) string { - store := ctx.KVStore(k.storeKey) - return string(store.Get(types.PortKey)) -} - -// SetPort sets the portID for the IBC app module. Used in InitGenesis -func (k Keeper) SetPort(ctx sdk.Context, portID string) { - store := ctx.KVStore(k.storeKey) - store.Set(types.PortKey, []byte(portID)) -} - -// AuthenticateCapability wraps the scopedKeeper's AuthenticateCapability function -func (k Keeper) AuthenticateCapability(ctx sdk.Context, cap *capabilitytypes.Capability, name string) bool { - return k.scopedKeeper.AuthenticateCapability(ctx, cap, name) -} - -// ClaimCapability allows the IBC app module to claim a capability that core IBC -// passes to it -func (k Keeper) ClaimCapability(ctx sdk.Context, cap *capabilitytypes.Capability, name string) error { - return k.scopedKeeper.ClaimCapability(ctx, cap, name) -} - -//highlight-end - -func (k Keeper) Logger(ctx sdk.Context) log.Logger { - return ctx.Logger().With("module", fmt.Sprintf("x/%s", types.ModuleName)) -} -``` - -### Remaining migration - -After all uses of `cosmosibckeeper` have been removed, you can follow any remaining steps in the`ibc-go`[migration guide](https://github.com/cosmos/ibc-go/blob/v6.2.0/docs/migrations/v5-to-v6.md). - -## Scaffolded Release Workflow - -The develop branch of the CLI has been deprecated. To continue using the release workflow that uses the CLI to -automatically build and release your chain's binaries, replace develop with main in the following lines: - -```yaml title=".github/workflows/release.yml" -... - -jobs: - might_release: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v2 - with: - fetch-depth: 0 - - name: Prepare Release Variables - id: vars - // highlight-next-line - uses: ignite/cli/actions/release/vars@main - - name: Issue Release Assets - // highlight-next-line - uses: ignite/cli/actions/cli@main - if: ${{ steps.vars.outputs.should_release == 'true' }} - with: - args: chain build --release --release.prefix ${{ steps.vars.outputs.tarball_prefix }} -t linux:amd64 -t darwin:amd64 -t darwin:arm64 - - name: Delete the "latest" Release - uses: dev-drprasad/delete-tag-and-release@v0.2.0 - if: ${{ steps.vars.outputs.is_release_type_latest == 'true' }} - with: - tag_name: ${{ steps.vars.outputs.tag_name }} - delete_release: true - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - name: Publish the Release - uses: softprops/action-gh-release@v1 - if: ${{ steps.vars.outputs.should_release == 'true' }} - with: - tag_name: ${{ steps.vars.outputs.tag_name }} - files: release/* - prerelease: true - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} -``` diff --git a/docs/versioned_docs/version-v29/06-migration/v0.27.1.md b/docs/versioned_docs/version-v29/06-migration/v0.27.1.md deleted file mode 100644 index b14c0b0313..0000000000 --- a/docs/versioned_docs/version-v29/06-migration/v0.27.1.md +++ /dev/null @@ -1,1208 +0,0 @@ ---- -sidebar_position: 991 -title: v0.27.1 -description: For chains that were scaffolded with Ignite CLI versions lower than v0.27.0. changes are required to use Ignite CLI v0.27.1. ---- - -## Cosmos SDK v0.47.3 upgrade notes - -### Imports - -To use the new cosmos SDK make sure you update `go.mod` dependencies: - -```text title="go.mod" -go 1.20 - -require ( - // remove-start - github.com/cosmos/cosmos-sdk v0.46.7 - github.com/tendermint/tendermint v0.34.24 - github.com/tendermint/tm-db v0.6.7 - github.com/cosmos/ibc-go/v7 v7.1.0 - github.com/gogo/protobuf v1.3.3 - github.com/regen-network/cosmos-proto v0.3.1 - // remove-end - // highlight-start - cosmossdk.io/api v0.3.1 - github.com/cosmos/cosmos-sdk v0.47.3 - github.com/cometbft/cometbft v0.37.1 - github.com/cometbft/cometbft-db v0.7.0 - github.com/cosmos/ibc-go/v6 v6.1.0 - github.com/cosmos/gogoproto v1.4.7 - // highlight-end - - // ... -) - -replace ( - // remove-start - github.com/confio/ics23/go => github.com/cosmos/cosmos-sdk/ics23/go v0.8.0 - github.com/gogo/protobuf => github.com/regen-network/protobuf v1.3.3-alpha.regen.1 - // remove-end - // highlight-next-line - github.com/syndtr/goleveldb => github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 -) -``` - -The Cosmos SDK has migrated to CometBFT as its default consensus engine which requires -changes in your app imports: - -1. Replace `github.com/tendermint/tendermint` by `github.com/cometbft/cometbft` -2. Replace `github.com/tendermint/tm-db` by `github.com/cometbft/cometbft-db` -3. Verify `github.com/tendermint/tendermint` is not an indirect or direct dependency - -The SDK has also migrated from `gogo/protobuf` to `cosmos/gogoproto`. This means you must -replace all `github.com/gogo/protobuf` imports with `github.com/cosmos/gogoproto`. This change -might introduce breaking changes to your proto layout. Follow the official -[Cosmos migration guide](https://docs.cosmos.network/main/migrations/upgrading#gogoproto-import-paths) -to make sure you are using the correct layout. - -You might need to replace the following imports: - -1. Replace `github.com/cosmos/cosmos-sdk/simapp` by `cosmossdk.io/simapp` - -### App changes - -Applications scaffolded with older version of Ignite CLI would require the following changes -to some of the app files: - -```text title="app/app.go" -import ( - //... - - // remove-next-line - tmjson "github.com/tendermint/tendermint/libs/json" - // highlight-next-line - "encoding/json" - - // highlight-start - autocliv1 "cosmossdk.io/api/cosmos/autocli/v1" - reflectionv1 "cosmossdk.io/api/cosmos/reflection/v1" - "github.com/cosmos/cosmos-sdk/runtime" - runtimeservices "github.com/cosmos/cosmos-sdk/runtime/services" - "github.com/cosmos/cosmos-sdk/x/consensus" - consensusparamkeeper "github.com/cosmos/cosmos-sdk/x/consensus/keeper" - consensusparamtypes "github.com/cosmos/cosmos-sdk/x/consensus/types" - // highlight-end -) - -func getGovProposalHandlers() []govclient.ProposalHandler { - // ... - govProposalHandlers = append(govProposalHandlers, - paramsclient.ProposalHandler, - // remove-next-line - distrclient.ProposalHandler, - upgradeclient.LegacyProposalHandler, - // ... - ) - - return govProposalHandlers -} - -var ( - // ... - - ModuleBasics = module.NewBasicManager( - auth.AppModuleBasic{}, - authzmodule.AppModuleBasic{}, - // remove-next-line - genutil.AppModuleBasic{}, - // highlight-next-line - genutil.NewAppModuleBasic(genutiltypes.DefaultMessageValidator), - bank.AppModuleBasic{}, - // ... - vesting.AppModuleBasic{}, - // highlight-next-line - consensus.AppModuleBasic{}, - //... - ) -) - -var ( - // highlight-next-line - _ runtime.AppI = (*App)(nil) - _ servertypes.Application = (*App)(nil) - // remove-next-line - _ simapp.App = (*App)(nil) -) - -type App struct { - *baseapp.BaseApp - - cdc *codec.LegacyAmino - appCodec codec.Codec - interfaceRegistry types.InterfaceRegistry - // highlight-next-line - txConfig client.TxConfig - - invCheckPeriod uint - - // ... - // remove-start - StakingKeeper stakingkeeper.Keeper - CrisisKeeper crisiskeeper.Keeper - UpgradeKeeper upgradekeeper.Keeper - // remove-end - // highlight-start - StakingKeeper *stakingkeeper.Keeper - CrisisKeeper *crisiskeeper.Keeper - UpgradeKeeper *upgradekeeper.Keeper - // highlight-end - // ... - FeeGrantKeeper feegrantkeeper.Keeper - GroupKeeper groupkeeper.Keeper - // highlight-next-line - ConsensusParamsKeeper consensusparamkeeper.Keeper - - // ... -} - -func New( - logger log.Logger, - db dbm.DB, - traceStore io.Writer, - loadLatest bool, - skipUpgradeHeights map[int64]bool, - homePath string, - invCheckPeriod uint, - encodingConfig appparams.EncodingConfig, - appOpts servertypes.AppOptions, - baseAppOptions ...func(*baseapp.BaseApp), -) *App { - appCodec := encodingConfig.Marshaler - cdc := encodingConfig.Amino - interfaceRegistry := encodingConfig.InterfaceRegistry - // highlight-next-line - txConfig := encodingConfig.TxConfig - - // ... - - bApp.SetCommitMultiStoreTracer(traceStore) - bApp.SetVersion(version.Version) - bApp.SetInterfaceRegistry(interfaceRegistry) - // highlight-next-line - bApp.SetTxEncoder(txConfig.TxEncoder()) - - keys := sdk.NewKVStoreKeys( - // ... - banktypes.StoreKey, - stakingtypes.StoreKey, - // highlight-next-line - crisistypes.StoreKey, - // ... - group.StoreKey, - icacontrollertypes.StoreKey, - // highlight-next-line - consensusparamtypes.StoreKey, - // ... - ) - - // ... - - app := &App{ - // ... - interfaceRegistry: interfaceRegistry, - // highlight-next-line - txConfig: txConfig, - invCheckPeriod: invCheckPeriod, - // ... - } - - // ... - - // set the BaseApp's parameter store - // remove-next-line - bApp.SetParamStore(app.ParamsKeeper.Subspace(baseapp.Paramspace).WithKeyTable(paramstypes.ConsensusParamsKeyTable())) - // highlight-start - app.ConsensusParamsKeeper = consensusparamkeeper.NewKeeper(appCodec, keys[upgradetypes.StoreKey], authtypes.NewModuleAddress(govtypes.ModuleName).String()) - bApp.SetParamStore(&app.ConsensusParamsKeeper) - // highlight-end - - // ... - - app.AccountKeeper = authkeeper.NewAccountKeeper( - appCodec, - keys[authtypes.StoreKey], - // remove-next-line - app.GetSubspace(authtypes.ModuleName), - authtypes.ProtoBaseAccount, - maccPerms, - sdk.Bech32PrefixAccAddr, - // highlight-next-line - authtypes.NewModuleAddress(govtypes.ModuleName).String(), - ) - - app.BankKeeper = bankkeeper.NewBaseKeeper( - appCodec, - keys[banktypes.StoreKey], - app.AccountKeeper, - // remove-next-line - app.GetSubspace(banktypes.ModuleName), - app.BlockedModuleAccountAddrs(), - // highlight-next-line - authtypes.NewModuleAddress(govtypes.ModuleName).String(), - ) - - app.StakingKeeper = stakingkeeper.NewKeeper( - appCodec, - keys[stakingtypes.StoreKey], - app.AccountKeeper, - app.BankKeeper, - // remove-next-line - app.GetSubspace(stakingtypes.ModuleName), - // highlight-next-line - authtypes.NewModuleAddress(govtypes.ModuleName).String(), - ) - - app.MintKeeper = mintkeeper.NewKeeper( - appCodec, - keys[minttypes.StoreKey], - // remove-next-line - app.GetSubspace(minttypes.ModuleName), - // remove-next-line - &app.StakingKeeper, - // highlight-next-line - app.StakingKeeper, - app.AccountKeeper, - app.BankKeeper, - authtypes.FeeCollectorName, - // highlight-next-line - authtypes.NewModuleAddress(govtypes.ModuleName).String(), - ) - - app.DistrKeeper = distrkeeper.NewKeeper( - appCodec, - keys[distrtypes.StoreKey], - // remove-next-line - app.GetSubspace(distrtypes.ModuleName), - app.AccountKeeper, - app.BankKeeper, - // remove-next-line - &app.StakingKeeper, - // highlight-next-line - app.StakingKeeper, - authtypes.FeeCollectorName, - // highlight-next-line - authtypes.NewModuleAddress(govtypes.ModuleName).String(), - ) - - app.SlashingKeeper = slashingkeeper.NewKeeper( - appCodec, - // highlight-next-line - cdc, - keys[slashingtypes.StoreKey], - // remove-next-line - &app.StakingKeeper, - // highlight-next-line - app.StakingKeeper, - // remove-next-line - app.GetSubspace(slashingtypes.ModuleName), - // highlight-next-line - authtypes.NewModuleAddress(govtypes.ModuleName).String(), - ) - - app.CrisisKeeper = crisiskeeper.NewKeeper( - // remove-next-line - app.GetSubspace(crisistypes.ModuleName), - // highlight-start - appCodec, - keys[crisistypes.StoreKey], - // highlight-end - invCheckPeriod, - app.BankKeeper, - authtypes.FeeCollectorName, - // highlight-next-line - authtypes.NewModuleAddress(govtypes.ModuleName).String(), - ) - - // ... - - // Create evidence Keeper for to register the IBC light client misbehaviour evidence route - evidenceKeeper := evidencekeeper.NewKeeper( - appCodec, - keys[evidencetypes.StoreKey], - // remove-next-line - &app.StakingKeeper, - // highlight-next-line - app.StakingKeeper, - app.SlashingKeeper, - ) - // If evidence needs to be handled for the app, set routes in router here and seal - app.EvidenceKeeper = *evidenceKeeper - - // highlight-start - govConfig := govtypes.DefaultConfig() - govKeeper := govkeeper.NewKeeper( - appCodec, - keys[govtypes.StoreKey], - app.AccountKeeper, - app.BankKeeper, - app.StakingKeeper, - app.MsgServiceRouter(), - govConfig, - authtypes.NewModuleAddress(govtypes.ModuleName).String(), - ) - // highlight-end - - govRouter := govv1beta1.NewRouter() - govRouter. - AddRoute(govtypes.RouterKey, govv1beta1.ProposalHandler). - AddRoute(paramproposal.RouterKey, params.NewParamChangeProposalHandler(app.ParamsKeeper)). - // remove-next-line - AddRoute(distrtypes.RouterKey, distr.NewCommunityPoolSpendProposalHandler(app.DistrKeeper)). - AddRoute(upgradetypes.RouterKey, upgrade.NewSoftwareUpgradeProposalHandler(app.UpgradeKeeper)). - AddRoute(ibcclienttypes.RouterKey, ibcclient.NewClientProposalHandler(app.IBCKeeper.ClientKeeper)) - // highlight-next-line - govKeeper.SetLegacyRouter(govRouter) - - // remove-start - govConfig := govtypes.DefaultConfig() - app.GovKeeper = govkeeper.NewKeeper( - appCodec, - keys[govtypes.StoreKey], - app.GetSubspace(govtypes.ModuleName), - app.AccountKeeper, - app.BankKeeper, - &app.StakingKeeper, - govRouter, - app.MsgServiceRouter(), - govConfig, - ) - // remove-end - // highlight-start - app.GovKeeper = *govKeeper.SetHooks( - govtypes.NewMultiGovHooks( - // register the governance hooks - ), - ) - // highlight-end - - // ... - - // remove-start - app.GovKeeper.SetHooks( - govtypes.NewMultiGovHooks( - // insert governance hooks receivers here - ), - ) - // remove-end - - // ... - - app.mm = module.NewManager( - genutil.NewAppModule( - app.AccountKeeper, - app.StakingKeeper, - app.BaseApp.DeliverTx, - encodingConfig.TxConfig, - ), - // remove-next-line - auth.NewAppModule(appCodec, app.AccountKeeper, nil), - // highlight-next-line - auth.NewAppModule(appCodec, app.AccountKeeper, authsims.RandomGenesisAccounts, app.GetSubspace(authtypes.ModuleName)), - authzmodule.NewAppModule(appCodec, app.AuthzKeeper, app.AccountKeeper, app.BankKeeper, app.interfaceRegistry), - vesting.NewAppModule(app.AccountKeeper, app.BankKeeper), - // remove-start - bank.NewAppModule(appCodec, app.BankKeeper, app.AccountKeeper), - capability.NewAppModule(appCodec, *app.CapabilityKeeper), - // remove-end - // highlight-start - bank.NewAppModule(appCodec, app.BankKeeper, app.AccountKeeper, app.GetSubspace(banktypes.ModuleName)), - capability.NewAppModule(appCodec, *app.CapabilityKeeper, false), - // highlight-end - feegrantmodule.NewAppModule(appCodec, app.AccountKeeper, app.BankKeeper, app.FeeGrantKeeper, app.interfaceRegistry), - groupmodule.NewAppModule(appCodec, app.GroupKeeper, app.AccountKeeper, app.BankKeeper, app.interfaceRegistry), - // remove-start - crisis.NewAppModule(&app.CrisisKeeper, skipGenesisInvariants), - gov.NewAppModule(appCodec, app.GovKeeper, app.AccountKeeper, app.BankKeeper), - mint.NewAppModule(appCodec, app.MintKeeper, app.AccountKeeper, minttypes.DefaultInflationCalculationFn), - slashing.NewAppModule(appCodec, app.SlashingKeeper, app.AccountKeeper, app.BankKeeper, app.StakingKeeper), - distr.NewAppModule(appCodec, app.DistrKeeper, app.AccountKeeper, app.BankKeeper, app.StakingKeeper), - staking.NewAppModule(appCodec, app.StakingKeeper, app.AccountKeeper, app.BankKeeper), - // remove-end - // highlight-start - crisis.NewAppModule(app.CrisisKeeper, skipGenesisInvariants, app.GetSubspace(crisistypes.ModuleName)), - gov.NewAppModule(appCodec, &app.GovKeeper, app.AccountKeeper, app.BankKeeper, app.GetSubspace(govtypes.ModuleName)), - mint.NewAppModule(appCodec, app.MintKeeper, app.AccountKeeper, nil, app.GetSubspace(minttypes.ModuleName)), - slashing.NewAppModule(appCodec, app.SlashingKeeper, app.AccountKeeper, app.BankKeeper, app.StakingKeeper, app.GetSubspace(slashingtypes.ModuleName)), - distr.NewAppModule(appCodec, app.DistrKeeper, app.AccountKeeper, app.BankKeeper, app.StakingKeeper, app.GetSubspace(distrtypes.ModuleName)), - staking.NewAppModule(appCodec, app.StakingKeeper, app.AccountKeeper, app.BankKeeper, app.GetSubspace(stakingtypes.ModuleName)), - // highlight-end - upgrade.NewAppModule(app.UpgradeKeeper), - evidence.NewAppModule(app.EvidenceKeeper), - // highlight-next-line - consensus.NewAppModule(appCodec, app.ConsensusParamsKeeper), - ibc.NewAppModule(app.IBCKeeper), - params.NewAppModule(app.ParamsKeeper), - transferModule, - icaModule, - // this line is used by starport scaffolding # stargate/app/appModule - - ) - - app.mm.SetOrderBeginBlockers( - // ... - paramstypes.ModuleName, - vestingtypes.ModuleName, - // highlight-next-line - consensusparamtypes.ModuleName, - // ... - ) - - app.mm.SetOrderEndBlockers( - // ... - paramstypes.ModuleName, - upgradetypes.ModuleName, - vestingtypes.ModuleName, - // highlight-next-line - consensusparamtypes.ModuleName, - // ... - ) - - // remove-next-line - app.mm.SetOrderInitGenesis( - // highlight-next-line - genesisModuleOrder := []string{ - // ... - paramstypes.ModuleName, - upgradetypes.ModuleName, - vestingtypes.ModuleName, - // highlight-next-line - consensusparamtypes.ModuleName, - // ... - // remove-next-line - ) - // highlight-start - } - app.mm.SetOrderInitGenesis(genesisModuleOrder...) - app.mm.SetOrderExportGenesis(genesisModuleOrder...) - // highlight-end - - // remove-start - app.mm.RegisterInvariants(&app.CrisisKeeper) - app.mm.RegisterRoutes(app.Router(), app.QueryRouter(), encodingConfig.Amino) - // remove-end - // highlight-next-line - app.mm.RegisterInvariants(app.CrisisKeeper) - - app.configurator = module.NewConfigurator(app.appCodec, app.MsgServiceRouter(), app.GRPCQueryRouter()) - app.mm.RegisterServices(app.configurator) - - // highlight-start - autocliv1.RegisterQueryServer(app.GRPCQueryRouter(), runtimeservices.NewAutoCLIQueryService(app.mm.Modules)) - reflectionSvc, err := runtimeservices.NewReflectionService() - if err != nil { - panic(err) - } - reflectionv1.RegisterReflectionServiceServer(app.GRPCQueryRouter(), reflectionSvc) - // highlight-end - - // create the simulation manager and define the order of the modules for deterministic simulations - // remove-start - app.sm = module.NewSimulationManager( - // ... - ) - // remove-end - // highlight-start - overrideModules := map[string]module.AppModuleSimulation{ - authtypes.ModuleName: auth.NewAppModule(app.appCodec, app.AccountKeeper, authsims.RandomGenesisAccounts, app.GetSubspace(authtypes.ModuleName)), - } - app.sm = module.NewSimulationManagerFromAppModules(app.mm.Modules, overrideModules) - // highlight-end - app.sm.RegisterStoreDecoders() - - // ... - - // remove-start - app.SetInitChainer(app.InitChainer) - app.SetBeginBlocker(app.BeginBlocker) - // remove-end - - // ... -} - -func (app *App) InitChainer(ctx sdk.Context, req abci.RequestInitChain) abci.ResponseInitChain { - var genesisState GenesisState - // remove-next-line - if err := tmjson.Unmarshal(req.AppStateBytes, &genesisState); err != nil { - // highlight-next-line - if err := json.Unmarshal(req.AppStateBytes, &genesisState); err != nil { - panic(err) - } - // ... -} - -// remove-start -// GetMaccPerms returns a copy of the module account permissions -func GetMaccPerms() map[string][]string { - dupMaccPerms := make(map[string][]string) - for k, v := range maccPerms { - dupMaccPerms[k] = v - } - return dupMaccPerms -} -// remove-end - -// highlight-start -// TxConfig returns App's TxConfig. -func (app *App) TxConfig() client.TxConfig { - return app.txConfig -} - -// Configurator get app configurator -func (app *App) Configurator() module.Configurator { - return app.configurator -} - -// ModuleManager returns the app ModuleManager -func (app *App) ModuleManager() *module.Manager { - return app.mm -} -// highlight-end -``` - -```text title="app/simulation_test.go" -import ( - // ... - // remove-start - "cosmossdk.io/simapp" - tmtypes "github.com/tendermint/tendermint/types" - // remove-end - // highlight-start - "encoding/json" - "fmt" - "math/rand" - "runtime/debug" - "strings" - - dbm "github.com/cometbft/cometbft-db" - "github.com/cometbft/cometbft/libs/log" - "github.com/cosmos/cosmos-sdk/baseapp" - "github.com/cosmos/cosmos-sdk/client/flags" - "github.com/cosmos/cosmos-sdk/server" - storetypes "github.com/cosmos/cosmos-sdk/store/types" - simtestutil "github.com/cosmos/cosmos-sdk/testutil/sims" - sdk "github.com/cosmos/cosmos-sdk/types" - authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" - authzkeeper "github.com/cosmos/cosmos-sdk/x/authz/keeper" - banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" - capabilitytypes "github.com/cosmos/cosmos-sdk/x/capability/types" - distrtypes "github.com/cosmos/cosmos-sdk/x/distribution/types" - evidencetypes "github.com/cosmos/cosmos-sdk/x/evidence/types" - govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" - minttypes "github.com/cosmos/cosmos-sdk/x/mint/types" - paramstypes "github.com/cosmos/cosmos-sdk/x/params/types" - simcli "github.com/cosmos/cosmos-sdk/x/simulation/client/cli" - slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types" - stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - // highlight-end -) - -// highlight-start -type storeKeysPrefixes struct { - A storetypes.StoreKey - B storetypes.StoreKey - Prefixes [][]byte -} -// highlight-end - -// Get flags every time the simulator is run -func init() { - // remove-next-line - simapp.GetSimulatorFlags() - // highlight-next-line - simcli.GetSimulatorFlags() -} - -// remove-start -var defaultConsensusParams = &abci.ConsensusParams{ - Block: &abci.BlockParams{ - MaxBytes: 200000, - MaxGas: 2000000, - }, - Evidence: &tmproto.EvidenceParams{ - MaxAgeNumBlocks: 302400, - MaxAgeDuration: 504 * time.Hour, // 3 weeks is the max duration - MaxBytes: 10000, - }, - Validator: &tmproto.ValidatorParams{ - PubKeyTypes: []string{ - tmtypes.ABCIPubKeyTypeEd25519, - }, - }, -} -// remove-end -// highlight-start -func fauxMerkleModeOpt(bapp *baseapp.BaseApp) { - bapp.SetFauxMerkleMode() -} -// highlight-end - -func BenchmarkSimulation(b *testing.B) { - // remove-start - simapp.FlagEnabledValue = true - simapp.FlagCommitValue = true - - config, db, dir, logger, _, err := simapp.SetupSimulation("goleveldb-app-sim", "Simulation") - // remove-end - // highlight-start - simcli.FlagSeedValue = time.Now().Unix() - simcli.FlagVerboseValue = true - simcli.FlagCommitValue = true - simcli.FlagEnabledValue = true - - config := simcli.NewConfigFromFlags() - config.ChainID = "mars-simapp" - db, dir, logger, _, err := simtestutil.SetupSimulation( - config, - "leveldb-bApp-sim", - "Simulation", - simcli.FlagVerboseValue, - simcli.FlagEnabledValue, - ) - // highlight-end - - require.NoError(b, err, "simulation setup failed") - - b.Cleanup(func() { - // remove-start - db.Close() - err = os.RemoveAll(dir) - require.NoError(b, err) - // remove-end - // highlight-start - require.NoError(b, db.Close()) - require.NoError(b, os.RemoveAll(dir)) - // highlight-end - }) - - - // remove-next-line - encoding := app.MakeEncodingConfig() - // highlight-start - appOptions := make(simtestutil.AppOptionsMap, 0) - appOptions[flags.FlagHome] = app.DefaultNodeHome - appOptions[server.FlagInvCheckPeriod] = simcli.FlagPeriodValue - // highlight-end - - // remove-next-line - app := app.New( - // highlight-next-line - bApp := app.New( - logger, - db, - nil, - true, - map[int64]bool{}, - app.DefaultNodeHome, - 0, - // remove-start - encoding, - simapp.EmptyAppOptions{}, - // remove-end - // highlight-start - app.MakeEncodingConfig(), - appOptions, - baseapp.SetChainID(config.ChainID), - // highlight-end - ) - // highlight-next-line - require.Equal(b, app.Name, bApp.Name()) - - _, simParams, simErr := simulation.SimulateFromSeed( - b, - os.Stdout, - // remove-start - app.BaseApp, - simapp.AppStateFn(app.AppCodec(), app.SimulationManager()), - simulationtypes.RandomAccounts, - simapp.SimulationOperations(app, app.AppCodec(), config), - app.ModuleAccountAddrs(), - config, - app.AppCodec(), - // remove-end - // highlight-start - bApp.BaseApp, - simtestutil.AppStateFn( - bApp.AppCodec(), - bApp.SimulationManager(), - app.NewDefaultGenesisState(bApp.AppCodec()), - ), - simulationtypes.RandomAccounts, - simtestutil.SimulationOperations(bApp, bApp.AppCodec(), config), - bApp.ModuleAccountAddrs(), - config, - bApp.AppCodec(), - // highlight-end - ) - - // remove-next-line - err = simapp.CheckExportSimulation(app, config, simParams) - // highlight-next-line - err = simtestutil.CheckExportSimulation(bApp, config, simParams) - require.NoError(b, err) - require.NoError(b, simErr) - - if config.Commit { - // remove-next-line - simapp.PrintStats(db) - // highlight-next-line - simtestutil.PrintStats(db) - } -} -``` - -```text title="x/{{moduleName}}/module_simulation.go" -import ( - // ... - // remove-next-line - simappparams "cosmossdk.io/simapp/params" -) - -var ( - // ... - // remove-next-line - _ = simappparams.StakePerAccount - // highlight-next-line - _ = rand.Rand{} -) - -// remove-start -func (am AppModule) RandomizedParams(_ *rand.Rand) []simtypes.ParamChange { - // ... -} -// remove-end -// highlight-start -// ProposalMsgs returns msgs used for governance proposals for simulations. -func (am AppModule) ProposalMsgs(simState module.SimulationState) []simtypes.WeightedProposalMsg { - return []simtypes.WeightedProposalMsg{ - // this line is used by starport scaffolding # simapp/module/OpMsg - } -} -// highlight-end -``` - -### Deprecations - -The app module might contains some legacy methods that are deprecated and can be removed: - -```text title="x/{{moduleName}}/module.go" -// remove-start -// Deprecated: use RegisterServices -func (am AppModule) Route() sdk.Route { return sdk.Route{} } - -// Deprecated: use RegisterServices -func (AppModule) QuerierRoute() string { return types.RouterKey } - -// Deprecated: use RegisterServices -func (am AppModule) LegacyQuerierHandler(_ *codec.LegacyAmino) sdk.Querier { - return nil -} -// remove-end -``` - -### Other required changes - -Changes required to the network test util: - -```text title="testutil/network/network.go" -import ( - // ... - - // remove-start - "github.com/cosmos/cosmos-sdk/simapp" - pruningtypes "github.com/cosmos/cosmos-sdk/pruning/types" - // remove-end - // highlight-start - pruningtypes "github.com/cosmos/cosmos-sdk/store/pruning/types" - simtestutil "github.com/cosmos/cosmos-sdk/testutil/sims" - // highlight-end -) - -func New(t *testing.T, configs ...Config) *Network { - // ... - - net, err := network.New(t, t.TempDir(), cfg) - require.NoError(t, err) - // highlight-start - _, err = net.WaitForHeight(1) - require.NoError(t, err) - // highlight-end - - // ... -} - -func DefaultConfig() network.Config { - // remove-next-line - encoding := app.MakeEncodingConfig() - // highlight-start - var ( - encoding = app.MakeEncodingConfig() - chainID = "chain-" + tmrand.NewRand().Str(6) - ) - // highlight-end - - return network.Config{ - // ... - // remove-next-line - AppConstructor: func(val network.Validator) servertypes.Application { - // highlight-next-line - AppConstructor: func(val network.ValidatorI) servertypes.Application { - return app.New( - // remove-next-line - val.Ctx.Logger, - // highlight-next-line - val.GetCtx().Logger, - tmdb.NewMemDB(), - nil, - true, - map[int64]bool{}, - // remove-next-line - val.Ctx.Config.RootDir, - // highlight-next-line - val.GetCtx().Config.RootDir, - 0, - encoding, - // remove-start - simapp.EmptyAppOptions{}, - baseapp.SetPruning(pruningtypes.NewPruningOptionsFromString(val.AppConfig.Pruning)), - baseapp.SetMinGasPrices(val.AppConfig.MinGasPrices), - // remove-end - // highlight-start - simtestutil.EmptyAppOptions{}, - baseapp.SetPruning(pruningtypes.NewPruningOptionsFromString(val.GetAppConfig().Pruning)), - baseapp.SetMinGasPrices(val.GetAppConfig().MinGasPrices), - baseapp.SetChainID(chainID), - // highlight-end - ) - }, - // ... - // remove-next-line - ChainID: "chain-" + tmrand.NewRand().Str(6), - // highlight-next-line - ChainID: chainID, - // ... - } -} -``` - -Update the collect genesis transactions command and add the new message validator argument: - -```text title="cmd/{{binaryNamePrefix}}d/cmd/root.go" -import ( - // ... - - // highlight-start - tmtypes "github.com/cometbft/cometbft/types" - "github.com/cosmos/cosmos-sdk/x/genutil" - genutiltypes "github.com/cosmos/cosmos-sdk/x/genutil/types" - // highlight-end -) - -func initRootCmd(rootCmd *cobra.Command, encodingConfig params.EncodingConfig) { - // ... - - // highlight-next-line - gentxModule := app.ModuleBasics[genutiltypes.ModuleName].(genutil.AppModuleBasic) - rootCmd.AddCommand( - // ... - // remove-next-line - genutilcli.CollectGenTxsCmd(banktypes.GenesisBalancesIterator{}, app.DefaultHome), - // highlight-next-line - genutilcli.CollectGenTxsCmd(banktypes.GenesisBalancesIterator{}, app.DefaultNodeHome, gentxModule.GenTxValidator), - // ... - ) - - // ... -} - -func (a appCreator) newApp( - logger log.Logger, - db dbm.DB, - traceStore io.Writer, - appOpts servertypes.AppOptions, -) servertypes.Application { - // ... - - pruningOpts, err := server.GetPruningOptionsFromFlags(appOpts) - if err != nil { - panic(err) - } - - // highlight-start - homeDir := cast.ToString(appOpts.Get(flags.FlagHome)) - chainID := cast.ToString(appOpts.Get(flags.FlagChainID)) - if chainID == "" { - // fallback to genesis chain-id - appGenesis, err := tmtypes.GenesisDocFromFile(filepath.Join(homeDir, "config", "genesis.json")) - if err != nil { - panic(err) - } - - chainID = appGenesis.ChainID - } - // highlight-end - - // ... - - return app.New( - // ... - baseapp.SetPruning(pruningOpts), - baseapp.SetMinGasPrices(cast.ToString(appOpts.Get(server.FlagMinGasPrices))), - // remove-next-line - baseapp.SetMinRetainBlocks(cast.ToUint64(appOpts.Get(server.FlagMinRetainBlocks))), - baseapp.SetHaltHeight(cast.ToUint64(appOpts.Get(server.FlagHaltHeight))), - baseapp.SetHaltTime(cast.ToUint64(appOpts.Get(server.FlagHaltTime))), - // highlight-next-line - baseapp.SetMinRetainBlocks(cast.ToUint64(appOpts.Get(server.FlagMinRetainBlocks))), - // ... - baseapp.SetIAVLDisableFastNode(cast.ToBool(appOpts.Get(server.FlagDisableIAVLFastNode))), - // highlight-next-line - baseapp.SetChainID(chainID), - ) -) - -func (a appCreator) appExport( - logger log.Logger, - db dbm.DB, - traceStore io.Writer, - height int64, - forZeroHeight bool, - jailAllowedAddrs []string, - appOpts servertypes.AppOptions, - // highlight-next-line - modulesToExport []string, -) (servertypes.ExportedApp, error) { - // ... - - // remove-next-line - return app.ExportAppStateAndValidators(forZeroHeight, jailAllowedAddrs) - // highlight-next-line - return app.ExportAppStateAndValidators(forZeroHeight, jailAllowedAddrs, modulesToExport) -} -``` - -Add the new extra argument to `ExportAppStateAndValidators`: - -```text title="app/export.go" -func (app *App) ExportAppStateAndValidators( - forZeroHeight bool, - jailAllowedAddrs []string, - // highlight-next-line - modulesToExport []string, -) (servertypes.ExportedApp, error) { - // ... - - // remove-next-line - genState := app.mm.ExportGenesis(ctx, app.appCodec) - // highlight-next-line - genState := app.mm.ExportGenesisForModules(ctx, app.appCodec, modulesToExport) - appState, err := json.MarshalIndent(genState, "", " ") - if err != nil { - return servertypes.ExportedApp{}, err - } - - // ... -} -``` - -### Migration - -You can also follow other Cosmos SDK migration steps in their [upgrade guide](https://docs.cosmos.network/main/migrations/upgrading#v047x). -Specially the [parameter migration](https://docs.cosmos.network/main/migrations/upgrading#xconsensus) which -is required if you want to run the updated version keeping you current app state. - -## Query commands - -Query commands context initialization should be changed to: - -```text title="x/{moduleName}/client/cli/query_{typeName}.go" -RunE: func(cmd *cobra.Command, args []string) (err error) { - // remove-next-line - clientCtx := client.GetClientContextFromCmd(cmd) - // highlight-start - clientCtx, err := client.GetClientQueryContext(cmd) - if err != nil { - return err - } - // highlight-end - - // ... -} -``` - - -## ibc-go v7 - -Chains that are newly scaffolded with Ignite CLI `v0.27.1` now use `ibc-go/v7` for IBC functionality. It is -required to upgrade to the newest version of `ibc-go`. - -Applications scaffolded with older version of Ignite CLI require the following changes to the app file: - -```text title="app/app.go" -import ( - // ... - // remove-start - ica "github.com/cosmos/ibc-go/v6/modules/apps/27-interchain-accounts" - icacontrollerkeeper "github.com/cosmos/ibc-go/v6/modules/apps/27-interchain-accounts/controller/keeper" - icacontrollertypes "github.com/cosmos/ibc-go/v6/modules/apps/27-interchain-accounts/controller/types" - icahost "github.com/cosmos/ibc-go/v6/modules/apps/27-interchain-accounts/host" - icahostkeeper "github.com/cosmos/ibc-go/v6/modules/apps/27-interchain-accounts/host/keeper" - icahosttypes "github.com/cosmos/ibc-go/v6/modules/apps/27-interchain-accounts/host/types" - icatypes "github.com/cosmos/ibc-go/v6/modules/apps/27-interchain-accounts/types" - "github.com/cosmos/ibc-go/v6/modules/apps/transfer" - ibctransferkeeper "github.com/cosmos/ibc-go/v6/modules/apps/transfer/keeper" - ibctransfertypes "github.com/cosmos/ibc-go/v6/modules/apps/transfer/types" - ibc "github.com/cosmos/ibc-go/v6/modules/core" - ibcclient "github.com/cosmos/ibc-go/v6/modules/core/02-client" - ibcclientclient "github.com/cosmos/ibc-go/v6/modules/core/02-client/client" - ibcclienttypes "github.com/cosmos/ibc-go/v6/modules/core/02-client/types" - ibcporttypes "github.com/cosmos/ibc-go/v6/modules/core/05-port/types" - ibchost "github.com/cosmos/ibc-go/v6/modules/core/24-host" - ibckeeper "github.com/cosmos/ibc-go/v6/modules/core/keeper" - // remove-end - // highlight-start - ica "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts" - icacontrollerkeeper "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/controller/keeper" - icacontrollertypes "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/controller/types" - icahost "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/host" - icahostkeeper "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/host/keeper" - icahosttypes "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/host/types" - icatypes "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/types" - "github.com/cosmos/ibc-go/v7/modules/apps/transfer" - ibctransferkeeper "github.com/cosmos/ibc-go/v7/modules/apps/transfer/keeper" - ibctransfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types" - ibc "github.com/cosmos/ibc-go/v7/modules/core" - ibcclient "github.com/cosmos/ibc-go/v7/modules/core/02-client" - ibcclientclient "github.com/cosmos/ibc-go/v7/modules/core/02-client/client" - ibcclienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types" - ibcporttypes "github.com/cosmos/ibc-go/v7/modules/core/05-port/types" - ibcexported "github.com/cosmos/ibc-go/v7/modules/core/exported" - ibckeeper "github.com/cosmos/ibc-go/v7/modules/core/keeper" - solomachine "github.com/cosmos/ibc-go/v7/modules/light-clients/06-solomachine" - ibctm "github.com/cosmos/ibc-go/v7/modules/light-clients/07-tendermint" - // highlight-end -) - -var ( - // ... - - ModuleBasics = module.NewBasicManager( - // ... - groupmodule.AppModuleBasic{}, - ibc.AppModuleBasic{}, - // highlight-start - ibctm.AppModuleBasic{}, - solomachine.AppModuleBasic{}, - // highlight-end - upgrade.AppModuleBasic{}, - // ... - ) -) - -func New( - logger log.Logger, - db dbm.DB, - traceStore io.Writer, - loadLatest bool, - skipUpgradeHeights map[int64]bool, - homePath string, - invCheckPeriod uint, - encodingConfig appparams.EncodingConfig, - appOpts servertypes.AppOptions, - baseAppOptions ...func(*baseapp.BaseApp), -) *App { - // ... - - keys := sdk.NewKVStoreKeys( - // ... - govtypes.StoreKey, - paramstypes.StoreKey, - // remove-next-line - ibchost.StoreKey, - // highlight-next-line - ibcexported.StoreKey, - // ... - ) - - // ... - // grant capabilities for the ibc and ibc-transfer modules - // remove-next-line - scopedIBCKeeper := app.CapabilityKeeper.ScopeToModule(ibchost.ModuleName) - // highlight-next-line - scopedIBCKeeper := app.CapabilityKeeper.ScopeToModule(ibcexported.ModuleName) - scopedICAControllerKeeper := app.CapabilityKeeper.ScopeToModule(icacontrollertypes.SubModuleName) - - // ... - - app.IBCKeeper = ibckeeper.NewKeeper( - appCodec, - // remove-start - keys[ibchost.StoreKey], - app.GetSubspace(ibchost.ModuleName), - // remove-end - // highlight-start - keys[ibcexported.StoreKey], - app.GetSubspace(ibcexported.ModuleName), - // highlight-end - app.StakingKeeper, - app.UpgradeKeeper, - scopedIBCKeeper, - ) - - // ... - - app.mm.SetOrderBeginBlockers( - // ... - crisistypes.ModuleName, - ibctransfertypes.ModuleName, - // remove-next-line - ibchost.ModuleName, - // highlight-next-line - ibcexported.ModuleName, - // ... - ) - - app.mm.SetOrderEndBlockers( - // ... - stakingtypes.ModuleName, - ibctransfertypes.ModuleName, - // remove-next-line - ibchost.ModuleName, - // highlight-next-line - ibcexported.ModuleName, - // ... - ) - - genesisModuleOrder := []string{ - // ... - genutiltypes.ModuleName, - ibctransfertypes.ModuleName, - // remove-next-line - ibchost.ModuleName, - // highlight-next-line - ibcexported.ModuleName, - // ... - } - - // ... -) - -func initParamsKeeper(appCodec codec.BinaryCodec, legacyAmino *codec.LegacyAmino, key, tkey storetypes.StoreKey) paramskeeper.Keeper { - // ... - paramsKeeper.Subspace(crisistypes.ModuleName) - paramsKeeper.Subspace(ibctransfertypes.ModuleName) - // remove-next-line - paramsKeeper.Subspace(ibchost.ModuleName) - // highlight-next-line - paramsKeeper.Subspace(ibcexported.ModuleName) - // ... -} -``` - - -You can follow other IBC migration steps in their [migration guide v6 to v7](https://github.com/cosmos/ibc-go/blob/v7.0.1/docs/migrations/v6-to-v7.md). - -## Doctor command - -As the final steps it's recommended to run `ignite doctor` and `go mod tidy`. diff --git a/docs/versioned_docs/version-v29/06-migration/v28.0.0.md b/docs/versioned_docs/version-v29/06-migration/v28.0.0.md deleted file mode 100644 index 7ece1836f6..0000000000 --- a/docs/versioned_docs/version-v29/06-migration/v28.0.0.md +++ /dev/null @@ -1,124 +0,0 @@ ---- -sidebar_position: 990 -title: v28.0.0 -description: For chains that were scaffolded with Ignite CLI versions lower than v28.0.0 changes are required to use Ignite CLI v28.0.0 ---- - -## **Upgrade to v28.0.0 - New Versioning Scheme in Ignite** - -With the latest update, Ignite has transitioned its versioning format from a leading-zero release system to a full number release system. This change marks a significant shift in how we communicate updates and stability in our software. Where the previous version was denoted as v0.27.0, it will now be upgraded to v28.0.0. - -This new versioning approach enhances our version control by clearly indicating major, minor, and patch releases. -From now on first number indicates a major release with breaking API changes, second number indicates minor release that might include new features while the last number is typically focused on bug fixes and minor improvements. -[Learn more about semantic versioning](https://semver.org/). - -## **Plugins are now called Apps. Upgrade Configuration Files** - -Ignite `v28.0.0` changes the plugin system which is now called Ignite Apps. This version includes changes -to the CLI command names and the plugin configuration file. - -The plugins configuration file is now called `igniteapps.yml` and "plugins" are now called "apps". - -The plugins configuration home directory is now `$HOME/.ignite/apps` instead `$HOME/.ignite/plugins`. - -Updates can be automatically applied by running `ignite doctor` in your blockchain application directory. -Running the command outside your blockchain application directory will only update the global plugins. - -## **Ignite and Cosmos SDK Upgrade Guide: From Ignite v0.27.0 to v28.0.0 and Cosmos SDK v0.47 to v0.50** - -### **Introduction** - -This guide provides a step-by-step process for developers to upgrade their applications from Ignite version 0.27.0 to 28.0.0, along with an upgrade in the Cosmos SDK from version 0.47 to v0.50. It covers essential changes, new features, and adjustments required for a smooth transition. - -### **Prerequisites** - -- Backup your current project. -- Ensure you have Ignite v0.27.0 and Cosmos SDK v0.47 installed. -- Basic familiarity with command line operations and the existing project structure. - -### **Step 1: Update Ignite CLI to Version 28.0.0** - -- **Command**: Run **`curl https://get.ignite.com/cli@v28.0.0 | bash`** in your terminal. -- **Note**: This command updates the Ignite CLI to the latest version. Ensure you have the necessary permissions to execute it. - -### **Step 2: Update Scaffold Chain Command** - -- **Old Command**: **`ignite scaffold chain github.com/alice/blog`** -- **New Command**: **`ignite scaffold chain blog`** -- **Explanation**: The command format has been simplified in the new version for ease of use. - -### **Step 3: Docker Version Upgrades** - -- **Action**: Upgrade the Ignite version for the Docker container to match the CLI version. -- **Note**: Ensure Docker compatibility with the new Ignite CLI version. - -### **Step 4: Change in Module Path** - -- **Old Path**: **`x/blog/module.go`** -- **New Path**: **`x/blog/module/module.go`** -- **Explanation**: The module path structure has been updated for better organization. - -### **Step 5: Frontend Scaffolding Options** - -- **Action**: Choose between Vue, React, Go, or TypeScript for frontend scaffolding. -- **Commands**: - - **`ignite scaffold react`** - - **`ignite scaffold vue`** -- **Note**: Vue is no longer the default option for frontend scaffolding. - -### **Step 6: Update Scaffold Message for CreatePost Command** - -- **Action**: Review and update the output for the scaffolded createPost command as per the new format. - -### **Step 7: AutoCLI Path Change** - -- **Old Path**: **`x/blog/client/cli/tx_create_post.go`** -- **New Path**: **`x/blog/module/autocli.go`** -- **Explanation**: AutoCLI is now integrated at a different path to streamline command-line interactions. - -### **Step 8: Adjustment in Stored Game** - -- **Old Code**: - - ```go - store := prefix.NewStore(ctx.KVStore(k.storeKey), types.KeyPrefix(types.PostKey)) - - ``` - -- **New Code**: - - ```go - storeAdapter := runtime.KVStoreAdapter(k.storeService.OpenKVStore(ctx)) - store := prefix.NewStore(storeAdapter, types.KeyPrefix(types.PostKey)) - - ``` - -- **Explanation**: The way the KVStore is accessed has changed, requiring an update in the code for stored games. - -### **Step 9: Chain-ID Requirements in CLI Transaction Commands** - -- **Action**: Add **`-chain-id`** flag to CLI transaction commands. -- **Example**: - - **Old Command**: **`blogd tx blog create-post 'Hello, World!' 'This is a blog post' --from alice`** - - **New Command**: **`blogd tx blog create-post 'Hello, World!' 'This is a blog post' --from alice --chain-id blog`** -- **Explanation**: The **`chain-id`** flag is now required for transaction commands for identification purposes. - -### **Troubleshooting Common Issues** - -- **Dependency Conflicts**: Ensure compatibility of all dependencies with Ignite v28.0.0 and Cosmos SDK v0.50. -- **Docker Image Compatibility**: Align Docker image versions with the CLI for seamless operations. -- **Frontend Scaffolding**: For older projects, ensure correct scaffolding as per the new commands. -- **AutoCLI Integration**: Address discrepancies due to the new AutoCLI integration path. - -### **Additional Resources** - -- [Ignite Documentation](https://docs.ignite.com/) -- [Cosmos SDK Release Notes](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.50.1) - -### **Feedback** - -We value your feedback on this guide. Please share your experiences and suggestions for improvements. - -### **Updates Log** - -- **[01/15/24]**: Guide created for Ignite v28.0.0 and Cosmos SDK v0.50.1 \ No newline at end of file diff --git a/docs/versioned_docs/version-v29/07-packages/_category_.json b/docs/versioned_docs/version-v29/07-packages/_category_.json deleted file mode 100644 index 28c5e6b357..0000000000 --- a/docs/versioned_docs/version-v29/07-packages/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Packages", - "link": null -} \ No newline at end of file diff --git a/docs/versioned_docs/version-v29/07-packages/cosmostxcollector.md b/docs/versioned_docs/version-v29/07-packages/cosmostxcollector.md deleted file mode 100644 index 9129177a11..0000000000 --- a/docs/versioned_docs/version-v29/07-packages/cosmostxcollector.md +++ /dev/null @@ -1,200 +0,0 @@ ---- -sidebar_position: 0 -title: cosmostxcollector -slug: /packages/cosmostxcollector ---- - -# cosmostxcollector - -The package implements support for collecting transactions and events from Cosmos blockchains -into a data backend and it also adds support for querying the collected data. - -## Transaction and event data collecting - -Transactions and events can be collected using the `cosmostxcollector.Collector` type. This -type uses a `cosmosclient.Client` instance to fetch the data from each block and a data backend -adapter to save the data. - -### Data backend adapters - -Data backend adapters are used to query and save the collected data into different types of data -backends and must implement the `cosmostxcollector.adapter.Adapter` interface. - -An adapter for PostgreSQL is already implemented in `cosmostxcollector.adapter.postgres.Adapter`. -This is the one used in the examples. - -### Example: Data collection - -The data collection example assumes that there is a PostgreSQL database running in the local -environment containing an empty database named "cosmos". - -The required database tables will be created automatically by the collector the first time it is run. - -When the application is run it will fetch all the transactions and events starting from one of the -recent blocks until the current block height and populate the database: - -```go -package main - -import ( - "context" - "log" - - "github.com/ignite/cli/v29/ignite/pkg/clictx" - "github.com/ignite/cli/v29/ignite/pkg/cosmosclient" - "github.com/ignite/cli/v29/ignite/pkg/cosmostxcollector" - "github.com/ignite/cli/v29/ignite/pkg/cosmostxcollector/adapter/postgres" -) - -const ( - // Name of a local PostgreSQL database - dbName = "cosmos" - - // Cosmos RPC address - rpcAddr = "https://rpc.cosmos.directory:443/cosmoshub" -) - -func collect(ctx context.Context, db postgres.Adapter) error { - // Make sure that the data backend schema is up to date - if err := db.Init(ctx); err != nil { - return err - } - - // Init the Cosmos client - client, err := cosmosclient.New(ctx, cosmosclient.WithNodeAddress(rpcAddr)) - if err != nil { - return err - } - - // Get the latest block height - latestHeight, err := client.LatestBlockHeight(ctx) - if err != nil { - return err - } - - // Collect transactions and events starting from a block height. - // The collector stops at the latest height available at the time of the call. - collector := cosmostxcollector.New(db, client) - if err := collector.Collect(ctx, latestHeight-50); err != nil { - return err - } - - return nil -} - -func main() { - ctx := clictx.From(context.Background()) - - // Init an adapter for a local PostgreSQL database running with the default values - params := map[string]string{"sslmode": "disable"} - db, err := postgres.NewAdapter(dbName, postgres.WithParams(params)) - if err != nil { - log.Fatal(err) - } - - if err := collect(ctx, db); err != nil { - log.Fatal(err) - } -} -``` - -## Queries - -Collected data can be queried through the data backend adapters using event queries or -cursor-based queries. - -Queries support sorting, paging and filtering by using different options during creation. -The cursor-based ones also support the selection of specific fields or properties and also -passing arguments in cases where the query is a function. - -By default no sorting, filtering nor paging is applied to the queries. - -### Event queries - -The event queries return events and their attributes as `[]cosmostxcollector.query.Event`. - -### Example: Query events - -The example reads transfer events from Cosmos' bank module and paginates the results. - -```go -import ( - "context" - - banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" - "github.com/ignite/cli/ignite/pkg/cosmostxcollector/adapter/postgres" - "github.com/ignite/cli/ignite/pkg/cosmostxcollector/query" -) - -func queryBankTransferEvents(ctx context.Context, db postgres.Adapter) ([]query.Event, error) { - // Create an event query that returns events of type "transfer" - qry := query.NewEventQuery( - query.WithFilters( - // Filter transfer events from Cosmos' bank module - postgres.FilterByEventType(banktypes.EventTypeTransfer), - ), - query.WithPageSize(10), - query.AtPage(1), - ) - - // Execute the query - return db.QueryEvents(ctx, qry) -} -``` - -### Cursor-based queries - -This type of queries is meant to be used in contexts where the Event queries are not -useful. - -Cursor-based queries can query a single "entity" which can be a table, view or function -in relational databases or a collection or function in non relational data backends. - -The result of these types of queries is a cursor that implements the `cosmostxcollector.query.Cursor` -interface. - -### Example: Query events using cursors - -```go -import ( - "context" - - banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" - "github.com/ignite/cli/ignite/pkg/cosmostxcollector/adapter/postgres" - "github.com/ignite/cli/ignite/pkg/cosmostxcollector/query" -) - -func queryBankTransferEventIDs(ctx context.Context, db postgres.Adapter) (ids []int64, err error) { - // Create a query that returns the IDs for events of type "transfer" - qry := query.New( - "event", - query.Fields("id"), - query.WithFilters( - // Filter transfer events from Cosmos' bank module - postgres.NewFilter("type", banktypes.EventTypeTransfer), - ), - query.WithPageSize(10), - query.AtPage(1), - query.SortByFields(query.SortOrderAsc, "id"), - ) - - // Execute the query - cr, err := db.Query(ctx, qry) - if err != nil { - return nil, err - } - - // Read the results - for cr.Next() { - var eventID int64 - - if err := cr.Scan(&eventID); err != nil { - return nil, err - } - - ids = append(ids, eventID) - } - - return ids, nil -} -``` diff --git a/docs/versioned_docs/version-v29/08-references/01-cli.md b/docs/versioned_docs/version-v29/08-references/01-cli.md deleted file mode 100644 index 72c135d266..0000000000 --- a/docs/versioned_docs/version-v29/08-references/01-cli.md +++ /dev/null @@ -1,3458 +0,0 @@ ---- -description: Ignite CLI docs. ---- - -# CLI commands - -Documentation for Ignite CLI. -## ignite - -Ignite CLI offers everything you need to scaffold, test, build, and launch your blockchain - -**Synopsis** - -Ignite CLI is a tool for creating sovereign blockchains built with Cosmos SDK, the world's -most popular modular blockchain framework. Ignite CLI offers everything you need to scaffold, -test, build, and launch your blockchain. - -To get started, create a blockchain: - - ignite scaffold chain example - - -**Options** - -``` - -h, --help help for ignite -``` - -**SEE ALSO** - -* [ignite account](#ignite-account) - Create, delete, and show Ignite accounts -* [ignite app](#ignite-app) - Create and manage Ignite Apps -* [ignite chain](#ignite-chain) - Build, init and start a blockchain node -* [ignite completion](#ignite-completion) - Generates shell completion script. -* [ignite docs](#ignite-docs) - Show Ignite CLI docs -* [ignite generate](#ignite-generate) - Generate clients, API docs from source code -* [ignite network](#ignite-network) - Launch a blockchain in production -* [ignite relayer](#ignite-relayer) - Connect blockchains with an IBC relayer -* [ignite scaffold](#ignite-scaffold) - Create a new blockchain, module, message, query, and more -* [ignite testnet](#ignite-testnet) - Simulate and manage test networks -* [ignite version](#ignite-version) - Print the current build information - - -## ignite account - -Create, delete, and show Ignite accounts - -**Synopsis** - -Commands for managing Ignite accounts. An Ignite account is a private/public -keypair stored in a keyring. Currently Ignite accounts are used when interacting -with Ignite Apps (namely ignite relayer, ignite network and ignite connect). - -Note: Ignite account commands are not for managing your chain's keys and accounts. Use -you chain's binary to manage accounts from "config.yml". For example, if your -blockchain is called "mychain", use "mychaind keys" to manage keys for the -chain. - - -**Options** - -``` - -h, --help help for account - --keyring-backend string keyring backend to store your account keys (default "test") - --keyring-dir string accounts keyring directory (default "/home/runner/.ignite/accounts") -``` - -**SEE ALSO** - -* [ignite](#ignite) - Ignite CLI offers everything you need to scaffold, test, build, and launch your blockchain -* [ignite account create](#ignite-account-create) - Create a new account -* [ignite account delete](#ignite-account-delete) - Delete an account by name -* [ignite account export](#ignite-account-export) - Export an account as a private key -* [ignite account import](#ignite-account-import) - Import an account by using a mnemonic or a private key -* [ignite account list](#ignite-account-list) - Show a list of all accounts -* [ignite account show](#ignite-account-show) - Show detailed information about a particular account - - -## ignite account create - -Create a new account - -``` -ignite account create [name] [flags] -``` - -**Options** - -``` - -h, --help help for create -``` - -**Options inherited from parent commands** - -``` - --keyring-backend string keyring backend to store your account keys (default "test") - --keyring-dir string accounts keyring directory (default "/home/runner/.ignite/accounts") -``` - -**SEE ALSO** - -* [ignite account](#ignite-account) - Create, delete, and show Ignite accounts - - -## ignite account delete - -Delete an account by name - -``` -ignite account delete [name] [flags] -``` - -**Options** - -``` - -h, --help help for delete -``` - -**Options inherited from parent commands** - -``` - --keyring-backend string keyring backend to store your account keys (default "test") - --keyring-dir string accounts keyring directory (default "/home/runner/.ignite/accounts") -``` - -**SEE ALSO** - -* [ignite account](#ignite-account) - Create, delete, and show Ignite accounts - - -## ignite account export - -Export an account as a private key - -``` -ignite account export [name] [flags] -``` - -**Options** - -``` - -h, --help help for export - --non-interactive do not enter into interactive mode - --passphrase string passphrase to encrypt the exported key - --path string path to export private key. default: ./key_[name] -``` - -**Options inherited from parent commands** - -``` - --keyring-backend string keyring backend to store your account keys (default "test") - --keyring-dir string accounts keyring directory (default "/home/runner/.ignite/accounts") -``` - -**SEE ALSO** - -* [ignite account](#ignite-account) - Create, delete, and show Ignite accounts - - -## ignite account import - -Import an account by using a mnemonic or a private key - -``` -ignite account import [name] [flags] -``` - -**Options** - -``` - -h, --help help for import - --non-interactive do not enter into interactive mode - --passphrase string passphrase to decrypt the imported key (ignored when secret is a mnemonic) - --secret string Your mnemonic or path to your private key (use interactive mode instead to securely pass your mnemonic) -``` - -**Options inherited from parent commands** - -``` - --keyring-backend string keyring backend to store your account keys (default "test") - --keyring-dir string accounts keyring directory (default "/home/runner/.ignite/accounts") -``` - -**SEE ALSO** - -* [ignite account](#ignite-account) - Create, delete, and show Ignite accounts - - -## ignite account list - -Show a list of all accounts - -``` -ignite account list [flags] -``` - -**Options** - -``` - --address-prefix string account address prefix (default "cosmos") - -h, --help help for list -``` - -**Options inherited from parent commands** - -``` - --keyring-backend string keyring backend to store your account keys (default "test") - --keyring-dir string accounts keyring directory (default "/home/runner/.ignite/accounts") -``` - -**SEE ALSO** - -* [ignite account](#ignite-account) - Create, delete, and show Ignite accounts - - -## ignite account show - -Show detailed information about a particular account - -``` -ignite account show [name] [flags] -``` - -**Options** - -``` - --address-prefix string account address prefix (default "cosmos") - -h, --help help for show -``` - -**Options inherited from parent commands** - -``` - --keyring-backend string keyring backend to store your account keys (default "test") - --keyring-dir string accounts keyring directory (default "/home/runner/.ignite/accounts") -``` - -**SEE ALSO** - -* [ignite account](#ignite-account) - Create, delete, and show Ignite accounts - - -## ignite app - -Create and manage Ignite Apps - -**Options** - -``` - -h, --help help for app -``` - -**SEE ALSO** - -* [ignite](#ignite) - Ignite CLI offers everything you need to scaffold, test, build, and launch your blockchain -* [ignite app describe](#ignite-app-describe) - Print information about installed apps -* [ignite app install](#ignite-app-install) - Install app -* [ignite app list](#ignite-app-list) - List installed apps -* [ignite app scaffold](#ignite-app-scaffold) - Scaffold a new Ignite App -* [ignite app uninstall](#ignite-app-uninstall) - Uninstall app -* [ignite app update](#ignite-app-update) - Update app - - -## ignite app describe - -Print information about installed apps - -**Synopsis** - -Print information about an installed Ignite App commands and hooks. - -``` -ignite app describe [path] [flags] -``` - -**Examples** - -``` -ignite app describe github.com/org/my-app/ -``` - -**Options** - -``` - -h, --help help for describe -``` - -**SEE ALSO** - -* [ignite app](#ignite-app) - Create and manage Ignite Apps - - -## ignite app install - -Install app - -**Synopsis** - -Installs an Ignite App. - -Respects key value pairs declared after the app path to be added to the generated configuration definition. - -``` -ignite app install [path] [key=value]... [flags] -``` - -**Examples** - -``` -ignite app install github.com/org/my-app/ foo=bar baz=qux -``` - -**Options** - -``` - -g, --global use global plugins configuration ($HOME/.ignite/apps/igniteapps.yml) - -h, --help help for install -``` - -**SEE ALSO** - -* [ignite app](#ignite-app) - Create and manage Ignite Apps - - -## ignite app list - -List installed apps - -**Synopsis** - -Prints status and information of all installed Ignite Apps. - -``` -ignite app list [flags] -``` - -**Options** - -``` - -h, --help help for list -``` - -**SEE ALSO** - -* [ignite app](#ignite-app) - Create and manage Ignite Apps - - -## ignite app scaffold - -Scaffold a new Ignite App - -**Synopsis** - -Scaffolds a new Ignite App in the current directory. - -A git repository will be created with the given module name, unless the current directory is already a git repository. - -``` -ignite app scaffold [name] [flags] -``` - -**Examples** - -``` -ignite app scaffold github.com/org/my-app/ -``` - -**Options** - -``` - -h, --help help for scaffold -``` - -**SEE ALSO** - -* [ignite app](#ignite-app) - Create and manage Ignite Apps - - -## ignite app uninstall - -Uninstall app - -**Synopsis** - -Uninstalls an Ignite App specified by path. - -``` -ignite app uninstall [path] [flags] -``` - -**Examples** - -``` -ignite app uninstall github.com/org/my-app/ -``` - -**Options** - -``` - -g, --global use global plugins configuration ($HOME/.ignite/apps/igniteapps.yml) - -h, --help help for uninstall -``` - -**SEE ALSO** - -* [ignite app](#ignite-app) - Create and manage Ignite Apps - - -## ignite app update - -Update app - -**Synopsis** - -Updates an Ignite App specified by path. - -If no path is specified all declared apps are updated. - -``` -ignite app update [path] [flags] -``` - -**Examples** - -``` -ignite app update github.com/org/my-app/ -``` - -**Options** - -``` - -h, --help help for update -``` - -**SEE ALSO** - -* [ignite app](#ignite-app) - Create and manage Ignite Apps - - -## ignite chain - -Build, init and start a blockchain node - -**Synopsis** - -Commands in this namespace let you to build, initialize, and start your -blockchain node locally for development purposes. - -To run these commands you should be inside the project's directory so that -Ignite can find the source code. To ensure that you are, run "ls", you should -see the following files in the output: "go.mod", "x", "proto", "app", etc. - -By default the "build" command will identify the "main" package of the project, -install dependencies if necessary, set build flags, compile the project into a -binary and install the binary. The "build" command is useful if you just want -the compiled binary, for example, to initialize and start the chain manually. It -can also be used to release your chain's binaries automatically as part of -continuous integration workflow. - -The "init" command will build the chain's binary and use it to initialize a -local validator node. By default the validator node will be initialized in your -$HOME directory in a hidden directory that matches the name of your project. -This directory is called a data directory and contains a chain's genesis file -and a validator key. This command is useful if you want to quickly build and -initialize the data directory and use the chain's binary to manually start the -blockchain. The "init" command is meant only for development purposes, not -production. - -The "serve" command builds, initializes, and starts your blockchain locally with -a single validator node for development purposes. "serve" also watches the -source code directory for file changes and intelligently -re-builds/initializes/starts the chain, essentially providing "code-reloading". -The "serve" command is meant only for development purposes, not production. - -To distinguish between production and development consider the following. - -In production, blockchains often run the same software on many validator nodes -that are run by different people and entities. To launch a blockchain in -production, the validator entities coordinate the launch process to start their -nodes simultaneously. - -During development, a blockchain can be started locally on a single validator -node. This convenient process lets you restart a chain quickly and iterate -faster. Starting a chain on a single node in development is similar to starting -a traditional web application on a local server. - -The "faucet" command lets you send tokens to an address from the "faucet" -account defined in "config.yml". Alternatively, you can use the chain's binary -to send token from any other account that exists on chain. - -The "simulate" command helps you start a simulation testing process for your -chain. - - -**Options** - -``` - -c, --config string path to Ignite config file (default: ./config.yml) - -h, --help help for chain - -y, --yes answers interactive yes/no questions with yes -``` - -**SEE ALSO** - -* [ignite](#ignite) - Ignite CLI offers everything you need to scaffold, test, build, and launch your blockchain -* [ignite chain build](#ignite-chain-build) - Build a node binary -* [ignite chain debug](#ignite-chain-debug) - Launch a debugger for a blockchain app -* [ignite chain faucet](#ignite-chain-faucet) - Send coins to an account -* [ignite chain init](#ignite-chain-init) - Initialize your chain -* [ignite chain lint](#ignite-chain-lint) - Lint codebase using golangci-lint -* [ignite chain serve](#ignite-chain-serve) - Start a blockchain node in development -* [ignite chain simulate](#ignite-chain-simulate) - Run simulation testing for the blockchain - - -## ignite chain build - -Build a node binary - -**Synopsis** - - -The build command compiles the source code of the project into a binary and -installs the binary in the $(go env GOPATH)/bin directory. - -You can customize the output directory for the binary using a flag: - - ignite chain build --output dist - -To compile the binary Ignite first compiles protocol buffer (proto) files into -Go source code. Proto files contain required type and services definitions. If -you're using another program to compile proto files, you can use a flag to tell -Ignite to skip the proto compilation step: - - ignite chain build --skip-proto - -Afterwards, Ignite install dependencies specified in the go.mod file. By default -Ignite doesn't check that dependencies of the main module stored in the module -cache have not been modified since they were downloaded. To enforce dependency -checking (essentially, running "go mod verify") use a flag: - - ignite chain build --check-dependencies - -Next, Ignite identifies the "main" package of the project. By default the "main" -package is located in "cmd/{app}d" directory, where "{app}" is the name of the -scaffolded project and "d" stands for daemon. If your project contains more -than one "main" package, specify the path to the one that Ignite should compile -in config.yml: - - build: - main: custom/path/to/main - -By default the binary name will match the top-level module name (specified in -go.mod) with a suffix "d". This can be customized in config.yml: - - build: - binary: mychaind - -You can also specify custom linker flags: - - build: - ldflags: - - "-X main.Version=development" - - "-X main.Date=01/05/2022T19:54" - -To build binaries for a release, use the --release flag. The binaries for one or -more specified release targets are built in a "release/" directory in the -project's source directory. Specify the release targets with GOOS:GOARCH build -tags. If the optional --release.targets is not specified, a binary is created -for your current environment. - - ignite chain build --release -t linux:amd64 -t darwin:amd64 -t darwin:arm64 - - -``` -ignite chain build [flags] -``` - -**Options** - -``` - --build.tags strings parameters to build the chain binary - --check-dependencies verify that cached dependencies have not been modified since they were downloaded - --clear-cache clear the build cache (advanced) - --debug build a debug binary - -h, --help help for build - -o, --output string binary output path - -p, --path string path of the app (default ".") - --release build for a release - --release.prefix string tarball prefix for each release target. Available only with --release flag - -t, --release.targets strings release targets. Available only with --release flag - --skip-proto skip file generation from proto - -v, --verbose verbose output -``` - -**Options inherited from parent commands** - -``` - -c, --config string path to Ignite config file (default: ./config.yml) - -y, --yes answers interactive yes/no questions with yes -``` - -**SEE ALSO** - -* [ignite chain](#ignite-chain) - Build, init and start a blockchain node - - -## ignite chain debug - -Launch a debugger for a blockchain app - -**Synopsis** - -The debug command starts a debug server and launches a debugger. - -Ignite uses the Delve debugger by default. Delve enables you to interact with -your program by controlling the execution of the process, evaluating variables, -and providing information of thread / goroutine state, CPU register state and -more. - -A debug server can optionally be started in cases where default terminal client -is not desirable. When the server starts it first runs the blockchain app, -attaches to it and finally waits for a client connection. It accepts both -JSON-RPC or DAP client connections. - -To start a debug server use the following flag: - - ignite chain debug --server - -To start a debug server with a custom address use the following flags: - - ignite chain debug --server --server-address 127.0.0.1:30500 - -The debug server stops automatically when the client connection is closed. - - -``` -ignite chain debug [flags] -``` - -**Options** - -``` - -h, --help help for debug - -p, --path string path of the app (default ".") - --server start a debug server - --server-address string debug server address (default "127.0.0.1:30500") -``` - -**Options inherited from parent commands** - -``` - -c, --config string path to Ignite config file (default: ./config.yml) - -y, --yes answers interactive yes/no questions with yes -``` - -**SEE ALSO** - -* [ignite chain](#ignite-chain) - Build, init and start a blockchain node - - -## ignite chain faucet - -Send coins to an account - -``` -ignite chain faucet [address] [coin<,...>] [flags] -``` - -**Options** - -``` - -h, --help help for faucet - --home string directory where the blockchain node is initialized - -p, --path string path of the app (default ".") - -v, --verbose verbose output -``` - -**Options inherited from parent commands** - -``` - -c, --config string path to Ignite config file (default: ./config.yml) - -y, --yes answers interactive yes/no questions with yes -``` - -**SEE ALSO** - -* [ignite chain](#ignite-chain) - Build, init and start a blockchain node - - -## ignite chain init - -Initialize your chain - -**Synopsis** - -The init command compiles and installs the binary (like "ignite chain build") -and uses that binary to initialize the blockchain's data directory for one -validator. To learn how the build process works, refer to "ignite chain build ---help". - -By default, the data directory will be initialized in $HOME/.mychain, where -"mychain" is the name of the project. To set a custom data directory use the ---home flag or set the value in config.yml: - - validators: - - name: alice - bonded: '100000000stake' - home: "~/.customdir" - -The data directory contains three files in the "config" directory: app.toml, -config.toml, client.toml. These files let you customize the behavior of your -blockchain node and the client executable. When a chain is re-initialized the -data directory can be reset. To make some values in these files persistent, set -them in config.yml: - - validators: - - name: alice - bonded: '100000000stake' - app: - minimum-gas-prices: "0.025stake" - config: - consensus: - timeout_commit: "5s" - timeout_propose: "5s" - client: - output: "json" - -The configuration above changes the minimum gas price of the validator (by -default the gas price is set to 0 to allow "free" transactions), sets the block -time to 5s, and changes the output format to JSON. To see what kind of values -this configuration accepts see the generated TOML files in the data directory. - -As part of the initialization process Ignite creates on-chain accounts with -token balances. By default, config.yml has two accounts in the top-level -"accounts" property. You can add more accounts and change their token balances. -Refer to config.yml guide to see which values you can set. - -One of these accounts is a validator account and the amount of self-delegated -tokens can be set in the top-level "validator" property. - -One of the most important components of an initialized chain is the genesis -file, the 0th block of the chain. The genesis file is stored in the data -directory "config" subdirectory and contains the initial state of the chain, -including consensus and module parameters. You can customize the values of the -genesis in config.yml: - - genesis: - app_state: - staking: - params: - bond_denom: "foo" - -The example above changes the staking token to "foo". If you change the staking -denom, make sure the validator account has the right tokens. - -The init command is meant to be used ONLY FOR DEVELOPMENT PURPOSES. Under the -hood it runs commands like "appd init", "appd add-genesis-account", "appd -gentx", and "appd collect-gentx". For production, you may want to run these -commands manually to ensure a production-level node initialization. - - -``` -ignite chain init [flags] -``` - -**Options** - -``` - --build.tags strings parameters to build the chain binary - --check-dependencies verify that cached dependencies have not been modified since they were downloaded - --clear-cache clear the build cache (advanced) - --debug build a debug binary - -h, --help help for init - --home string directory where the blockchain node is initialized - -p, --path string path of the app (default ".") - --skip-proto skip file generation from proto - -v, --verbose verbose output -``` - -**Options inherited from parent commands** - -``` - -c, --config string path to Ignite config file (default: ./config.yml) - -y, --yes answers interactive yes/no questions with yes -``` - -**SEE ALSO** - -* [ignite chain](#ignite-chain) - Build, init and start a blockchain node - - -## ignite chain lint - -Lint codebase using golangci-lint - -**Synopsis** - -The lint command runs the golangci-lint tool to lint the codebase. - -``` -ignite chain lint [flags] -``` - -**Options** - -``` - -h, --help help for lint -``` - -**Options inherited from parent commands** - -``` - -c, --config string path to Ignite config file (default: ./config.yml) - -y, --yes answers interactive yes/no questions with yes -``` - -**SEE ALSO** - -* [ignite chain](#ignite-chain) - Build, init and start a blockchain node - - -## ignite chain serve - -Start a blockchain node in development - -**Synopsis** - -The serve command compiles and installs the binary (like "ignite chain build"), -uses that binary to initialize the blockchain's data directory for one validator -(like "ignite chain init"), and starts the node locally for development purposes -with automatic code reloading. - -Automatic code reloading means Ignite starts watching the project directory. -Whenever a file change is detected, Ignite automatically rebuilds, reinitializes -and restarts the node. - -Whenever possible Ignite will try to keep the current state of the chain by -exporting and importing the genesis file. - -To force Ignite to start from a clean slate even if a genesis file exists, use -the following flag: - - ignite chain serve --reset-once - -To force Ignite to reset the state every time the source code is modified, use -the following flag: - - ignite chain serve --force-reset - -With Ignite it's possible to start more than one blockchain from the same source -code using different config files. This is handy if you're building -inter-blockchain functionality and, for example, want to try sending packets -from one blockchain to another. To start a node using a specific config file: - - ignite chain serve --config mars.yml - -The serve command is meant to be used ONLY FOR DEVELOPMENT PURPOSES. Under the -hood, it runs "appd start", where "appd" is the name of your chain's binary. For -production, you may want to run "appd start" manually. - - -``` -ignite chain serve [flags] -``` - -**Options** - -``` - --build.tags strings parameters to build the chain binary - --check-dependencies verify that cached dependencies have not been modified since they were downloaded - --clear-cache clear the build cache (advanced) - -f, --force-reset force reset of the app state on start and every source change - --generate-clients generate code for the configured clients on reset or source code change - -h, --help help for serve - --home string directory where the blockchain node is initialized - -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 -``` - -**Options inherited from parent commands** - -``` - -c, --config string path to Ignite config file (default: ./config.yml) - -y, --yes answers interactive yes/no questions with yes -``` - -**SEE ALSO** - -* [ignite chain](#ignite-chain) - Build, init and start a blockchain node - - -## ignite chain simulate - -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. - -``` -ignite chain simulate [flags] -``` - -**Options** - -``` - --blockSize int operations per block (default 30) - --exportParamsHeight int height to which export the randomly generated params - --exportParamsPath string custom file path to save the exported params JSON - --exportStatePath string custom file path to save the exported app state JSON - --exportStatsPath string custom file path to save the exported simulation statistics JSON - --genesis string custom simulation genesis file; cannot be used with params file - --genesisTime int override genesis UNIX time instead of using a random UNIX time - -h, --help help for simulate - --initialBlockHeight int initial block to start the simulation (default 1) - --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 - --seed int simulation random seed (default 42) - --simName string name of the simulation to run (default "TestFullAppSimulation") -``` - -**Options inherited from parent commands** - -``` - -c, --config string path to Ignite config file (default: ./config.yml) - -y, --yes answers interactive yes/no questions with yes -``` - -**SEE ALSO** - -* [ignite chain](#ignite-chain) - Build, init and start a blockchain node - - -## ignite completion - -Generates shell completion script. - -``` -ignite completion [bash|zsh|fish|powershell] [flags] -``` - -**Options** - -``` - -h, --help help for completion -``` - -**SEE ALSO** - -* [ignite](#ignite) - Ignite CLI offers everything you need to scaffold, test, build, and launch your blockchain - - -## ignite docs - -Show Ignite CLI docs - -``` -ignite docs [flags] -``` - -**Options** - -``` - -h, --help help for docs -``` - -**SEE ALSO** - -* [ignite](#ignite) - Ignite CLI offers everything you need to scaffold, test, build, and launch your blockchain - - -## ignite generate - -Generate clients, API docs from source code - -**Synopsis** - -Generate clients, API docs from source code. - -Such as compiling protocol buffer files into Go or implement particular -functionality, for example, generating an OpenAPI spec. - -Produced source code can be regenerated by running a command again and is not -meant to be edited by hand. - - -**Options** - -``` - --clear-cache clear the build cache (advanced) - --enable-proto-vendor enable proto package vendor for missing Buf dependencies - -h, --help help for generate - -p, --path string path of the app (default ".") -``` - -**SEE ALSO** - -* [ignite](#ignite) - Ignite CLI offers everything you need to scaffold, test, build, and launch your blockchain -* [ignite generate openapi](#ignite-generate-openapi) - OpenAPI spec for your chain -* [ignite generate proto-go](#ignite-generate-proto-go) - Compile protocol buffer files to Go source code required by Cosmos SDK - - -## ignite generate openapi - -OpenAPI spec for your chain - -``` -ignite generate openapi [flags] -``` - -**Options** - -``` - -h, --help help for openapi - -y, --yes answers interactive yes/no questions with yes -``` - -**Options inherited from parent commands** - -``` - --clear-cache clear the build cache (advanced) - --enable-proto-vendor enable proto package vendor for missing Buf dependencies - -p, --path string path of the app (default ".") -``` - -**SEE ALSO** - -* [ignite generate](#ignite-generate) - Generate clients, API docs from source code - - -## ignite generate proto-go - -Compile protocol buffer files to Go source code required by Cosmos SDK - -``` -ignite generate proto-go [flags] -``` - -**Options** - -``` - -h, --help help for proto-go - -y, --yes answers interactive yes/no questions with yes -``` - -**Options inherited from parent commands** - -``` - --clear-cache clear the build cache (advanced) - --enable-proto-vendor enable proto package vendor for missing Buf dependencies - -p, --path string path of the app (default ".") -``` - -**SEE ALSO** - -* [ignite generate](#ignite-generate) - Generate clients, API docs from source code - - -## ignite network - -Launch a blockchain in production - -**Synopsis** - - -Ignite Network commands allow to coordinate the launch of sovereign Cosmos blockchains. - -To launch a Cosmos blockchain you need someone to be a coordinator and others to -be validators. These are just roles, anyone can be a coordinator or a validator. -A coordinator publishes information about a chain to be launched on the Ignite -blockchain, approves validator requests and coordinates the launch. Validators -send requests to join a chain and start their nodes when a blockchain is ready -for launch. - -To publish the information about your chain as a coordinator run the following -command (the URL should point to a repository with a Cosmos SDK chain): - - ignite network chain publish github.com/ignite/example - -This command will return a launch identifier you will be using in the following -commands. Let's say this identifier is 42. - -Next, ask validators to initialize their nodes and request to join the network -as validators. For a testnet you can use the default values suggested by the -CLI. - - ignite network chain init 42 - - ignite network chain join 42 --amount 95000000stake - -As a coordinator list all validator requests: - - ignite network request list 42 - -Approve validator requests: - - ignite network request approve 42 1,2 - -Once you've approved all validators you need in the validator set, announce that -the chain is ready for launch: - - ignite network chain launch 42 - -Validators can now prepare their nodes for launch: - - ignite network chain prepare 42 - -The output of this command will show a command that a validator would use to -launch their node, for example “exampled --home ~/.example”. After enough -validators launch their nodes, a blockchain will be live. - - -**Options** - -``` - -h, --help help for network - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite](#ignite) - Ignite CLI offers everything you need to scaffold, test, build, and launch your blockchain -* [ignite network chain](#ignite-network-chain) - Publish a chain, join as a validator and prepare node for launch -* [ignite network coordinator](#ignite-network-coordinator) - Show and update a coordinator profile -* [ignite network request](#ignite-network-request) - Create, show, reject and approve requests -* [ignite network tool](#ignite-network-tool) - Commands to run subsidiary tools -* [ignite network validator](#ignite-network-validator) - Show and update a validator profile -* [ignite network version](#ignite-network-version) - Version of the plugin - - -## ignite network chain - -Publish a chain, join as a validator and prepare node for launch - -**Synopsis** - -The "chain" namespace features the most commonly used commands for launching -blockchains with Ignite. - -As a coordinator you "publish" your blockchain to Ignite. When enough validators -are approved for the genesis and no changes are excepted to be made to the -genesis, a coordinator announces that the chain is ready for launch with the -"launch" command. In the case of an unsuccessful launch, the coordinator can revert it -using the "revert-launch" command. - -As a validator, you "init" your node and apply to become a validator for a -blockchain with the "join" command. After the launch of the chain is announced, -validators can generate the finalized genesis and download the list of peers with the -"prepare" command. - -The "install" command can be used to download, compile the source code and -install the chain's binary locally. The binary can be used, for example, to -initialize a validator node or to interact with the chain after it has been -launched. - -All chains published to Ignite can be listed by using the "list" command. - - -**Options** - -``` - -h, --help help for chain -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network](#ignite-network) - Launch a blockchain in production -* [ignite network chain init](#ignite-network-chain-init) - Initialize a chain from a published chain ID -* [ignite network chain install](#ignite-network-chain-install) - Install chain binary for a launch -* [ignite network chain join](#ignite-network-chain-join) - Request to join a network as a validator -* [ignite network chain launch](#ignite-network-chain-launch) - Trigger the launch of a chain -* [ignite network chain list](#ignite-network-chain-list) - List published chains -* [ignite network chain prepare](#ignite-network-chain-prepare) - Prepare the chain for launch -* [ignite network chain publish](#ignite-network-chain-publish) - Publish a new chain to start a new network -* [ignite network chain revert-launch](#ignite-network-chain-revert-launch) - Revert launch of a network as a coordinator -* [ignite network chain show](#ignite-network-chain-show) - Show details of a chain - - -## ignite network chain init - -Initialize a chain from a published chain ID - -**Synopsis** - -Ignite network chain init is a command used by validators to initialize a -validator node for a blockchain from the information stored on the Ignite chain. - - ignite network chain init 42 - -This command fetches the information about a chain with launch ID 42. The source -code of the chain is cloned in a temporary directory, and the node's binary is -compiled from the source. The binary is then used to initialize the node. By -default, Ignite uses "~/spn/[launch-id]/" as the home directory for the blockchain. - -An important part of initializing a validator node is creation of the gentx (a -transaction that adds a validator at the genesis of the chain). - -The "init" command will prompt for values like self-delegation and commission. -These values will be used in the validator's gentx. You can use flags to provide -the values in non-interactive mode. - -Use the "--home" flag to choose a different path for the home directory of the -blockchain: - - ignite network chain init 42 --home ~/mychain - -The end result of the "init" command is a validator home directory with a -genesis validator transaction (gentx) file. - -``` -ignite network chain init [launch-id] [flags] -``` - -**Options** - -``` - --check-dependencies verify that cached dependencies have not been modified since they were downloaded - --clear-cache clear the build cache (advanced) - --from string account name to use for sending transactions to SPN (default "default") - -h, --help help for init - --home string home directory used for blockchains - --keyring-backend string keyring backend to store your account keys (default "test") - --keyring-dir string accounts keyring directory (default "/home/runner/.ignite/accounts") - --validator-account string account for the chain validator (default "default") - --validator-details string details about the validator - --validator-gas-price string validator gas price - --validator-identity string validator identity signature (ex. UPort or Keybase) - --validator-moniker string custom validator moniker - --validator-security-contact string validator security contact email - --validator-self-delegation string validator minimum self delegation - --validator-website string associate a website with the validator - -y, --yes answers interactive yes/no questions with yes -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network chain](#ignite-network-chain) - Publish a chain, join as a validator and prepare node for launch - - -## ignite network chain install - -Install chain binary for a launch - -``` -ignite network chain install [launch-id] [flags] -``` - -**Options** - -``` - --check-dependencies verify that cached dependencies have not been modified since they were downloaded - --clear-cache clear the build cache (advanced) - --from string account name to use for sending transactions to SPN (default "default") - -h, --help help for install -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network chain](#ignite-network-chain) - Publish a chain, join as a validator and prepare node for launch - - -## ignite network chain join - -Request to join a network as a validator - -**Synopsis** - -The "join" command is used by validators to send a request to join a blockchain. -The required argument is a launch ID of a blockchain. The "join" command expects -that the validator has already setup a home directory for the blockchain and has -a gentx either by running "ignite network chain init" or initializing the data -directory manually with the chain's binary. - -By default the "join" command just sends the request to join as a validator. -However, often a validator also needs to request an genesis account with a token -balance to afford self-delegation. - -The following command will send a request to join blockchain with launch ID 42 -as a validator and request to be added as an account with a token balance of -95000000 STAKE. - - ignite network chain join 42 --amount 95000000stake - -A request to join as a validator contains a gentx file. Ignite looks for gentx -in a home directory used by "ignite network chain init" by default. To use a -different directory, use the "--home" flag or pass a gentx file directly with -the "--gentx" flag. - -To join a chain as a validator, you must provide the IP address of your node so -that other validators can connect to it. The join command will ask you for the -IP address and will attempt to automatically detect and fill in the value. If -you want to manually specify the IP address, you can use the "--peer-address" -flag: - - ignite network chain join 42 --peer-address 0.0.0.0 - -Since "join" broadcasts a transaction to the Ignite blockchain, you will need an -account on the Ignite blockchain. During the testnet phase, however, Ignite -automatically requests tokens from a faucet. - - -``` -ignite network chain join [launch-id] [flags] -``` - -**Options** - -``` - --amount string amount of coins for account request (ignored if coordinator has fixed the account balances or if --no-acount flag is set) - --check-dependencies verify that cached dependencies have not been modified since they were downloaded - --from string account name to use for sending transactions to SPN (default "default") - --gentx string path to a gentx json file - -h, --help help for join - --home string home directory used for blockchains - --keyring-backend string keyring backend to store your account keys (default "test") - --keyring-dir string accounts keyring directory (default "/home/runner/.ignite/accounts") - --no-account prevent sending a request for a genesis account - --peer-address string peer's address - -y, --yes answers interactive yes/no questions with yes -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network chain](#ignite-network-chain) - Publish a chain, join as a validator and prepare node for launch - - -## ignite network chain launch - -Trigger the launch of a chain - -**Synopsis** - -The launch command communicates to the world that the chain is ready to be -launched. - -Only the coordinator of the chain can execute the launch command. - - ignite network chain launch 42 - -After the launch command is executed no changes to the genesis are accepted. For -example, validators will no longer be able to successfully execute the "ignite -network chain join" command to apply as a validator. - -The launch command sets the date and time after which the chain will start. By -default, the current time is set. To give validators more time to prepare for -the launch, set the time with the "--launch-time" flag: - - ignite network chain launch 42 --launch-time 2023-01-01T00:00:00Z - -After the launch command is executed, validators can generate the finalized -genesis and prepare their nodes for the launch. For example, validators can run -"ignite network chain prepare" to generate the genesis and populate the peer -list. - -If you want to change the launch time or open up the genesis file for changes -you can use "ignite network chain revert-launch" to make it possible, for -example, to accept new validators and add accounts. - - -``` -ignite network chain launch [launch-id] [flags] -``` - -**Options** - -``` - --from string account name to use for sending transactions to SPN (default "default") - -h, --help help for launch - --keyring-backend string keyring backend to store your account keys (default "test") - --keyring-dir string accounts keyring directory (default "/home/runner/.ignite/accounts") - --launch-time string timestamp the chain is effectively launched (example "2022-01-01T00:00:00Z") -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network chain](#ignite-network-chain) - Publish a chain, join as a validator and prepare node for launch - - -## ignite network chain list - -List published chains - -``` -ignite network chain list [flags] -``` - -**Options** - -``` - --advanced show advanced information about the chains - -h, --help help for list - --limit uint limit of results per page (default 100) - --page uint page for chain list result (default 1) -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network chain](#ignite-network-chain) - Publish a chain, join as a validator and prepare node for launch - - -## ignite network chain prepare - -Prepare the chain for launch - -**Synopsis** - -The prepare command prepares a validator node for the chain launch by generating -the final genesis and adding IP addresses of peers to the validator's -configuration file. - - ignite network chain prepare 42 - -By default, Ignite uses "$HOME/spn/LAUNCH_ID" as the data directory. If you used -a different data directory when initializing the node, use the "--home" flag and -set the correct path to the data directory. - -Ignite generates the genesis file in "config/genesis.json" and adds peer IPs by -modifying "config/config.toml". - -The prepare command should be executed after the coordinator has triggered the -chain launch and finalized the genesis with "ignite network chain launch". You -can force Ignite to run the prepare command without checking if the launch has -been triggered with the "--force" flag (this is not recommended). - -After the prepare command is executed the node is ready to be started. - - -``` -ignite network chain prepare [launch-id] [flags] -``` - -**Options** - -``` - --check-dependencies verify that cached dependencies have not been modified since they were downloaded - --clear-cache clear the build cache (advanced) - -f, --force force the prepare command to run even if the chain is not launched - --from string account name to use for sending transactions to SPN (default "default") - -h, --help help for prepare - --home string home directory used for blockchains - --keyring-backend string keyring backend to store your account keys (default "test") - --keyring-dir string accounts keyring directory (default "/home/runner/.ignite/accounts") -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network chain](#ignite-network-chain) - Publish a chain, join as a validator and prepare node for launch - - -## ignite network chain publish - -Publish a new chain to start a new network - -**Synopsis** - -To begin the process of launching a blockchain with Ignite, a coordinator needs -to publish the information about a blockchain. The only required bit of -information is the URL of the source code of the blockchain. - -The following command publishes the information about an example blockchain: - - ignite network chain publish github.com/ignite/example - -This command fetches the source code of the blockchain, compiles the binary, -verifies that a blockchain can be started with the binary, and publishes the -information about the blockchain to Ignite. Currently, only public repositories -are supported. The command returns an integer number that acts as an identifier -of the chain on Ignite. - -By publishing a blockchain on Ignite you become the "coordinator" of this -blockchain. A coordinator is an account that has the authority to approve and -reject validator requests, set parameters of the blockchain and trigger the -launch of the chain. - -The default Git branch is used when publishing a chain. If you want to use a -specific branch, tag or a commit hash, use "--branch", "--tag", or "--hash" -flags respectively. - -The repository name is used as the default chain ID. Ignite does not ensure that -chain IDs are unique, but they have to have a valid format: [string]-[integer]. -To set a custom chain ID use the "--chain-id" flag. - - ignite network chain publish github.com/ignite/example --chain-id foo-1 - -Once the chain is published users can request accounts with coin balances to be -added to the chain's genesis. By default, users are free to request any number -of tokens. If you want all users requesting tokens to get the same amount, use -the "--account-balance" flag with a list of coins. - - ignite network chain publish github.com/ignite/example --account-balance 2000foocoin - - -``` -ignite network chain publish [source-url] [flags] -``` - -**Options** - -``` - --account-balance string balance for each approved genesis account for the chain - --amount string amount of coins for account request - --branch string Git branch to use for the repo - --chain-id string chain ID to use for this network - --check-dependencies verify that cached dependencies have not been modified since they were downloaded - --clear-cache clear the build cache (advanced) - --from string account name to use for sending transactions to SPN (default "default") - --genesis-config string name of an Ignite config file in the repo for custom Genesis - --genesis-url string URL to a custom Genesis - --hash string Git hash to use for the repo - -h, --help help for publish - --home string home directory used for blockchains - --keyring-backend string keyring backend to store your account keys (default "test") - --keyring-dir string accounts keyring directory (default "/home/runner/.ignite/accounts") - --mainnet initialize a mainnet project - --metadata string add chain metadata - --no-check skip verifying chain's integrity - --project uint project ID to use for this network - --reward.coins string reward coins - --reward.height int last reward height - --shares string add shares for the project - --tag string Git tag to use for the repo - --total-supply string add a total of the mainnet of a project - -y, --yes answers interactive yes/no questions with yes -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network chain](#ignite-network-chain) - Publish a chain, join as a validator and prepare node for launch - - -## ignite network chain revert-launch - -Revert launch of a network as a coordinator - -**Synopsis** - -The revert launch command reverts the previously scheduled launch of a chain. - -Only the coordinator of the chain can execute the launch command. - - ignite network chain revert-launch 42 - -After the revert launch command is executed, changes to the genesis of the chain -are allowed again. For example, validators will be able to request to join the -chain. Revert launch also resets the launch time. - - -``` -ignite network chain revert-launch [launch-id] [flags] -``` - -**Options** - -``` - --from string account name to use for sending transactions to SPN (default "default") - -h, --help help for revert-launch - --keyring-backend string keyring backend to store your account keys (default "test") - --keyring-dir string accounts keyring directory (default "/home/runner/.ignite/accounts") -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network chain](#ignite-network-chain) - Publish a chain, join as a validator and prepare node for launch - - -## ignite network chain show - -Show details of a chain - -**Options** - -``` - -h, --help help for show -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network chain](#ignite-network-chain) - Publish a chain, join as a validator and prepare node for launch -* [ignite network chain show accounts](#ignite-network-chain-show-accounts) - Show all vesting and genesis accounts of the chain -* [ignite network chain show genesis](#ignite-network-chain-show-genesis) - Show the chain genesis file -* [ignite network chain show info](#ignite-network-chain-show-info) - Show info details of the chain -* [ignite network chain show peers](#ignite-network-chain-show-peers) - Show peers list of the chain -* [ignite network chain show validators](#ignite-network-chain-show-validators) - Show all validators of the chain - - -## ignite network chain show accounts - -Show all vesting and genesis accounts of the chain - -``` -ignite network chain show accounts [launch-id] [flags] -``` - -**Options** - -``` - -h, --help help for accounts - --prefix string account address prefix (default "spn") -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network chain show](#ignite-network-chain-show) - Show details of a chain - - -## ignite network chain show genesis - -Show the chain genesis file - -``` -ignite network chain show genesis [launch-id] [flags] -``` - -**Options** - -``` - --clear-cache clear the build cache (advanced) - -h, --help help for genesis - --out string path to output Genesis file (default "./genesis.json") -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network chain show](#ignite-network-chain-show) - Show details of a chain - - -## ignite network chain show info - -Show info details of the chain - -``` -ignite network chain show info [launch-id] [flags] -``` - -**Options** - -``` - -h, --help help for info -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network chain show](#ignite-network-chain-show) - Show details of a chain - - -## ignite network chain show peers - -Show peers list of the chain - -``` -ignite network chain show peers [launch-id] [flags] -``` - -**Options** - -``` - -h, --help help for peers - --out string path to output peers list (default "./peers.txt") -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network chain show](#ignite-network-chain-show) - Show details of a chain - - -## ignite network chain show validators - -Show all validators of the chain - -``` -ignite network chain show validators [launch-id] [flags] -``` - -**Options** - -``` - -h, --help help for validators - --prefix string account address prefix (default "spn") -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network chain show](#ignite-network-chain-show) - Show details of a chain - - -## ignite network coordinator - -Show and update a coordinator profile - -**Options** - -``` - -h, --help help for coordinator -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network](#ignite-network) - Launch a blockchain in production -* [ignite network coordinator set](#ignite-network-coordinator-set) - Set an information in a coordinator profile -* [ignite network coordinator show](#ignite-network-coordinator-show) - Show a coordinator profile - - -## ignite network coordinator set - -Set an information in a coordinator profile - -**Synopsis** - -Coordinators on Ignite can set a profile containing a description for the coordinator. -The coordinator set command allows to set information for the coordinator. -The following information can be set: -- details: general information about the coordinator. -- identity: a piece of information to verify the identity of the coordinator with a system like Keybase or Veramo. -- website: website of the coordinator. - - -``` -ignite network coordinator set details|identity|website [value] [flags] -``` - -**Options** - -``` - --from string account name to use for sending transactions to SPN (default "default") - -h, --help help for set - --home string home directory used for blockchains - --keyring-backend string keyring backend to store your account keys (default "test") - --keyring-dir string accounts keyring directory (default "/home/runner/.ignite/accounts") -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network coordinator](#ignite-network-coordinator) - Show and update a coordinator profile - - -## ignite network coordinator show - -Show a coordinator profile - -``` -ignite network coordinator show [address] [flags] -``` - -**Options** - -``` - -h, --help help for show -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network coordinator](#ignite-network-coordinator) - Show and update a coordinator profile - - -## ignite network request - -Create, show, reject and approve requests - -**Synopsis** - -The "request" namespace contains commands for creating, showing, approving, and -rejecting requests. - -A request is mechanism in Ignite that allows changes to be made to the genesis -file like adding accounts with token balances and validators. Anyone can submit -a request, but only the coordinator of a chain can approve or reject a request. - -Each request has a status: - -* Pending: waiting for the approval of the coordinator -* Approved: approved by the coordinator, its content has been applied to the - launch information -* Rejected: rejected by the coordinator or the request creator - - -**Options** - -``` - -h, --help help for request -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network](#ignite-network) - Launch a blockchain in production -* [ignite network request add-account](#ignite-network-request-add-account) - Send request to add account -* [ignite network request approve](#ignite-network-request-approve) - Approve requests -* [ignite network request change-param](#ignite-network-request-change-param) - Send request to change a module param -* [ignite network request list](#ignite-network-request-list) - List all requests for a chain -* [ignite network request reject](#ignite-network-request-reject) - Reject requests -* [ignite network request remove-account](#ignite-network-request-remove-account) - Send request to remove a genesis account -* [ignite network request remove-validator](#ignite-network-request-remove-validator) - Send request to remove a validator -* [ignite network request show](#ignite-network-request-show) - Show detailed information about a request -* [ignite network request verify](#ignite-network-request-verify) - Verify the request and simulate the chain genesis from them - - -## ignite network request add-account - -Send request to add account - -**Synopsis** - -The "add account" command creates a new request to add an account with a given -address and a specified coin balance to the genesis of the chain. - -The request automatically fails to be applied if a genesis account or a vesting -account with an identical address is already specified in the launch -information. - -If a coordinator has specified that all genesis accounts on a chain should have -the same balance (useful for testnets, for example), the "add account" expects -only an address as an argument. Attempt to provide a token balance will result -in an error. - - -``` -ignite network request add-account [launch-id] [address] [coins] [flags] -``` - -**Options** - -``` - --clear-cache clear the build cache (advanced) - --from string account name to use for sending transactions to SPN (default "default") - -h, --help help for add-account - --home string home directory used for blockchains - --keyring-backend string keyring backend to store your account keys (default "test") - --keyring-dir string accounts keyring directory (default "/home/runner/.ignite/accounts") -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network request](#ignite-network-request) - Create, show, reject and approve requests - - -## ignite network request approve - -Approve requests - -**Synopsis** - -The "approve" command is used by a chain's coordinator to approve requests. -Multiple requests can be approved using a comma-separated list and/or using a -dash syntax. - - ignite network request approve 42 1,2,3-6,7,8 - -The command above approves requests with IDs from 1 to 8 included on a chain -with a launch ID 42. - -When requests are approved Ignite applies the requested changes and simulates -initializing and launching the chain locally. If the chain starts successfully, -requests are considered to be "verified" and are approved. If one or more -requested changes stop the chain from launching locally, the verification -process fails and the approval of all requests is canceled. To skip the -verification process use the "--no-verification" flag. - -Note that Ignite will try to approve requests in the same order as request IDs -are submitted to the "approve" command. - -``` -ignite network request approve [launch-id] [number<,...>] [flags] -``` - -**Options** - -``` - --clear-cache clear the build cache (advanced) - --from string account name to use for sending transactions to SPN (default "default") - -h, --help help for approve - --home string home directory used for blockchains - --keyring-backend string keyring backend to store your account keys (default "test") - --keyring-dir string accounts keyring directory (default "/home/runner/.ignite/accounts") - --no-verification approve the requests without verifying them -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network request](#ignite-network-request) - Create, show, reject and approve requests - - -## ignite network request change-param - -Send request to change a module param - -``` -ignite network request change-param [launch-id] [module-name] [param-name] [value (json, string, number)] [flags] -``` - -**Options** - -``` - --clear-cache clear the build cache (advanced) - --from string account name to use for sending transactions to SPN (default "default") - -h, --help help for change-param - --home string home directory used for blockchains - --keyring-backend string keyring backend to store your account keys (default "test") - --keyring-dir string accounts keyring directory (default "/home/runner/.ignite/accounts") -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network request](#ignite-network-request) - Create, show, reject and approve requests - - -## ignite network request list - -List all requests for a chain - -``` -ignite network request list [launch-id] [flags] -``` - -**Options** - -``` - -h, --help help for list - --prefix string account address prefix (default "spn") -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network request](#ignite-network-request) - Create, show, reject and approve requests - - -## ignite network request reject - -Reject requests - -**Synopsis** - -The "reject" command is used by a chain's coordinator to reject requests. - - ignite network request reject 42 1,2,3-6,7,8 - -The syntax of the "reject" command is similar to that of the "approve" command. - - -``` -ignite network request reject [launch-id] [number<,...>] [flags] -``` - -**Options** - -``` - --from string account name to use for sending transactions to SPN (default "default") - -h, --help help for reject - --home string home directory used for blockchains - --keyring-backend string keyring backend to store your account keys (default "test") - --keyring-dir string accounts keyring directory (default "/home/runner/.ignite/accounts") -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network request](#ignite-network-request) - Create, show, reject and approve requests - - -## ignite network request remove-account - -Send request to remove a genesis account - -``` -ignite network request remove-account [launch-id] [address] [flags] -``` - -**Options** - -``` - --clear-cache clear the build cache (advanced) - --from string account name to use for sending transactions to SPN (default "default") - -h, --help help for remove-account - --home string home directory used for blockchains - --keyring-backend string keyring backend to store your account keys (default "test") - --keyring-dir string accounts keyring directory (default "/home/runner/.ignite/accounts") -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network request](#ignite-network-request) - Create, show, reject and approve requests - - -## ignite network request remove-validator - -Send request to remove a validator - -``` -ignite network request remove-validator [launch-id] [address] [flags] -``` - -**Options** - -``` - --clear-cache clear the build cache (advanced) - --from string account name to use for sending transactions to SPN (default "default") - -h, --help help for remove-validator - --home string home directory used for blockchains - --keyring-backend string keyring backend to store your account keys (default "test") - --keyring-dir string accounts keyring directory (default "/home/runner/.ignite/accounts") -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network request](#ignite-network-request) - Create, show, reject and approve requests - - -## ignite network request show - -Show detailed information about a request - -``` -ignite network request show [launch-id] [request-id] [flags] -``` - -**Options** - -``` - -h, --help help for show -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network request](#ignite-network-request) - Create, show, reject and approve requests - - -## ignite network request verify - -Verify the request and simulate the chain genesis from them - -**Synopsis** - -The "verify" command applies selected requests to the genesis of a chain locally -to verify that approving these requests will result in a valid genesis that -allows a chain to launch without issues. This command does not approve requests, -only checks them. - - -``` -ignite network request verify [launch-id] [number<,...>] [flags] -``` - -**Options** - -``` - --clear-cache clear the build cache (advanced) - --from string account name to use for sending transactions to SPN (default "default") - -h, --help help for verify - --home string home directory used for blockchains - --keyring-backend string keyring backend to store your account keys (default "test") - --keyring-dir string accounts keyring directory (default "/home/runner/.ignite/accounts") -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network request](#ignite-network-request) - Create, show, reject and approve requests - - -## ignite network tool - -Commands to run subsidiary tools - -**Options** - -``` - -h, --help help for tool -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network](#ignite-network) - Launch a blockchain in production -* [ignite network tool proxy-tunnel](#ignite-network-tool-proxy-tunnel) - Setup a proxy tunnel via HTTP - - -## ignite network tool proxy-tunnel - -Setup a proxy tunnel via HTTP - -**Synopsis** - -Starts an HTTP proxy server and HTTP proxy clients for each node that -needs HTTP tunneling. - -HTTP tunneling is activated **ONLY** if SPN_CONFIG_FILE has "tunneled_peers" -field inside with a list of tunneled peers/nodes. - -If you're using SPN as coordinator and do not want to allow HTTP tunneling -feature at all, you can prevent "spn.yml" file to being generated by not -approving validator requests that has HTTP tunneling enabled instead of plain -TCP connections. - -``` -ignite network tool proxy-tunnel SPN_CONFIG_FILE [flags] -``` - -**Options** - -``` - -h, --help help for proxy-tunnel -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network tool](#ignite-network-tool) - Commands to run subsidiary tools - - -## ignite network validator - -Show and update a validator profile - -**Options** - -``` - -h, --help help for validator -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network](#ignite-network) - Launch a blockchain in production -* [ignite network validator set](#ignite-network-validator-set) - Set an information in a validator profile -* [ignite network validator show](#ignite-network-validator-show) - Show a validator profile - - -## ignite network validator set - -Set an information in a validator profile - -**Synopsis** - -Validators on Ignite can set a profile containing a description for the validator. -The validator set command allows to set information for the validator. -The following information can be set: -- details: general information about the validator. -- identity: piece of information to verify identity of the validator with a system like Keybase of Veramo. -- website: website of the validator. -- security: security contact for the validator. - - -``` -ignite network validator set details|identity|website|security [value] [flags] -``` - -**Options** - -``` - --from string account name to use for sending transactions to SPN (default "default") - -h, --help help for set - --home string home directory used for blockchains - --keyring-backend string keyring backend to store your account keys (default "test") - --keyring-dir string accounts keyring directory (default "/home/runner/.ignite/accounts") -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network validator](#ignite-network-validator) - Show and update a validator profile - - -## ignite network validator show - -Show a validator profile - -``` -ignite network validator show [address] [flags] -``` - -**Options** - -``` - -h, --help help for show -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network validator](#ignite-network-validator) - Show and update a validator profile - - -## ignite network version - -Version of the plugin - -**Synopsis** - -The version of the plugin to use to interact with a chain might be specified by the coordinator. - - -``` -ignite network version [flags] -``` - -**Options** - -``` - -h, --help help for version -``` - -**Options inherited from parent commands** - -``` - --local Use local SPN network - --nightly Use nightly SPN network - --spn-faucet-address string SPN faucet address (default "https://faucet.devnet.ignite.com:443") - --spn-node-address string SPN node address (default "https://rpc.devnet.ignite.com:443") -``` - -**SEE ALSO** - -* [ignite network](#ignite-network) - Launch a blockchain in production - - -## ignite relayer - -Connect blockchains with an IBC relayer - -``` -ignite relayer [flags] -``` - -**Options** - -``` - -h, --help help for relayer -``` - -**SEE ALSO** - -* [ignite](#ignite) - Ignite CLI offers everything you need to scaffold, test, build, and launch your blockchain - - -## ignite scaffold - -Create a new blockchain, module, message, query, and more - -**Synopsis** - -Scaffolding is a quick way to generate code for major pieces of your -application. - -For details on each scaffolding target (chain, module, message, etc.) run the -corresponding command with a "--help" flag, for example, "ignite scaffold chain ---help". - -The Ignite team strongly recommends committing the code to a version control -system before running scaffolding commands. This will make it easier to see the -changes to the source code as well as undo the command if you've decided to roll -back the changes. - -This blockchain you create with the chain scaffolding command uses the modular -Cosmos SDK framework and imports many standard modules for functionality like -proof of stake, token transfer, inter-blockchain connectivity, governance, and -more. Custom functionality is implemented in modules located by convention in -the "x/" directory. By default, your blockchain comes with an empty custom -module. Use the module scaffolding command to create an additional module. - -An empty custom module doesn't do much, it's basically a container for logic -that is responsible for processing transactions and changing the application -state. Cosmos SDK blockchains work by processing user-submitted signed -transactions, which contain one or more messages. A message contains data that -describes a state transition. A module can be responsible for handling any -number of messages. - -A message scaffolding command will generate the code for handling a new type of -Cosmos SDK message. Message fields describe the state transition that the -message is intended to produce if processed without errors. - -Scaffolding messages is useful to create individual "actions" that your module -can perform. Sometimes, however, you want your blockchain to have the -functionality to create, read, update and delete (CRUD) instances of a -particular type. Depending on how you want to store the data there are three -commands that scaffold CRUD functionality for a type: list, map, and single. -These commands create four messages (one for each CRUD action), and the logic to -add, delete, and fetch the data from the store. If you want to scaffold only the -logic, for example, you've decided to scaffold messages separately, you can do -that as well with the "--no-message" flag. - -Reading data from a blockchain happens with a help of queries. Similar to how -you can scaffold messages to write data, you can scaffold queries to read the -data back from your blockchain application. - -You can also scaffold a type, which just produces a new protocol buffer file -with a proto message description. Note that proto messages produce (and -correspond with) Go types whereas Cosmos SDK messages correspond to proto "rpc" -in the "Msg" service. - -If you're building an application with custom IBC logic, you might need to -scaffold IBC packets. An IBC packet represents the data sent from one blockchain -to another. You can only scaffold IBC packets in IBC-enabled modules scaffolded -with an "--ibc" flag. Note that the default module is not IBC-enabled. - - -**Options** - -``` - -h, --help help for scaffold -``` - -**SEE ALSO** - -* [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 -* [ignite scaffold message](#ignite-scaffold-message) - Message to perform state transition on the blockchain -* [ignite scaffold module](#ignite-scaffold-module) - Custom Cosmos SDK module -* [ignite scaffold packet](#ignite-scaffold-packet) - Message for sending an IBC packet -* [ignite scaffold params](#ignite-scaffold-params) - Parameters for a custom Cosmos SDK module -* [ignite scaffold query](#ignite-scaffold-query) - Query for fetching data from a blockchain -* [ignite scaffold single](#ignite-scaffold-single) - CRUD for data stored in a single location -* [ignite scaffold type](#ignite-scaffold-type) - Type definition - - -## ignite scaffold chain - -New Cosmos SDK blockchain - -**Synopsis** - -Create a new application-specific Cosmos SDK blockchain. - -For example, the following command will create a blockchain called "hello" in -the "hello/" directory: - - ignite scaffold chain hello - -A project name can be a simple name or a URL. The name will be used as the Go -module path for the project. Examples of project names: - - ignite scaffold chain foo - ignite scaffold chain foo/bar - ignite scaffold chain example.org/foo - ignite scaffold chain github.com/username/foo - -A new directory with source code files will be created in the current directory. -To use a different path use the "--path" flag. - -Most of the logic of your blockchain is written in custom modules. Each module -effectively encapsulates an independent piece of functionality. Following the -Cosmos SDK convention, custom modules are stored inside the "x/" directory. By -default, Ignite creates a module with a name that matches the name of the -project. To create a blockchain without a default module use the "--no-module" -flag. Additional modules can be added after a project is created with "ignite -scaffold module" command. - -Account addresses on Cosmos SDK-based blockchains have string prefixes. For -example, the Cosmos Hub blockchain uses the default "cosmos" prefix, so that -addresses look like this: "cosmos12fjzdtqfrrve7zyg9sv8j25azw2ua6tvu07ypf". To -use a custom address prefix use the "--address-prefix" flag. For example: - - ignite scaffold chain foo --address-prefix bar - -By default when compiling a blockchain's source code Ignite creates a cache to -speed up the build process. To clear the cache when building a blockchain use -the "--clear-cache" flag. It is very unlikely you will ever need to use this -flag. - -The blockchain is using the Cosmos SDK modular blockchain framework. Learn more -about Cosmos SDK on https://docs.cosmos.network - - -``` -ignite scaffold chain [name] [flags] -``` - -**Options** - -``` - --address-prefix string account address prefix (default "cosmos") - --clear-cache clear the build cache (advanced) - -h, --help help for chain - --minimal create a minimal blockchain (with the minimum required Cosmos SDK modules) - --module-configs strings add module configs - --no-module create a project without a default module - --params strings add default module parameters - -p, --path string create a project in a specific path - --proto-dir string chain proto directory (default "proto") - --skip-git skip Git repository initialization - --skip-proto skip proto generation -``` - -**SEE ALSO** - -* [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 - -**Synopsis** - -Scaffold a new config for a Cosmos SDK module. - -A Cosmos SDK module can have configurations. An example of a config is "address prefix" of the -"auth" module. A config can be scaffolded into a module using the "--module-configs" into -the scaffold module command or using the "scaffold configs" command. By default -configs are of type "string", but you can specify a type for each config. For example: - - ignite scaffold configs foo baz:uint bar:bool - -Refer to Cosmos SDK documentation to learn more about modules, dependencies and -configs. - - -``` -ignite scaffold configs [configs]... [flags] -``` - -**Options** - -``` - --clear-cache clear the build cache (advanced) - -h, --help help for configs - --module string module to add the query into (default: app's main module) - -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 list - -CRUD for data stored as an array - -**Synopsis** - -The "list" scaffolding command is used to generate files that implement the -logic for storing and interacting with data stored as a list in the blockchain -state. - -The command accepts a NAME argument that will be used as the name of a new type -of data. It also accepts a list of FIELDs that describe the type. - -The interaction with the data follows the create, read, updated, and delete -(CRUD) pattern. For each type three Cosmos SDK messages are defined for writing -data to the blockchain: MsgCreate{Name}, MsgUpdate{Name}, MsgDelete{Name}. For -reading data two queries are defined: {Name} and {Name}All. The type, messages, -and queries are defined in the "proto/" directory as protocol buffer messages. -Messages and queries are mounted in the "Msg" and "Query" services respectively. - -When messages are handled, the appropriate keeper methods are called. By -convention, the methods are defined in -"x/{moduleName}/keeper/msg_server_{name}.go". Helpful methods for getting, -setting, removing, and appending are defined in the same "keeper" package in -"{name}.go". - -The "list" command essentially allows you to define a new type of data and -provides the logic to create, read, update, and delete instances of the type. -For example, let's review a command that generates the code to handle a list of -posts and each post has "title" and "body" fields: - - ignite scaffold list post title body - -This provides you with a "Post" type, MsgCreatePost, MsgUpdatePost, -MsgDeletePost and two queries: Post and PostAll. The compiled CLI, let's say the -binary is "blogd" and the module is "blog", has commands to query the chain (see -"blogd q blog") and broadcast transactions with the messages above (see "blogd -tx blog"). - -The code generated with the list command is meant to be edited and tailored to -your application needs. Consider the code to be a "skeleton" for the actual -business logic you will implement next. - -By default, all fields are assumed to be strings. If you want a field of a -different type, you can specify it after a colon ":". The following types are -supported: string, bool, int, uint, coin, array.string, array.int, array.uint, -array.coin. An example of using field types: - - ignite scaffold list pool amount:coin tags:array.string height:int - -For detailed type information use ignite scaffold type --help - -"Index" indicates whether the type can be used as an index in -"ignite scaffold map". - -Ignite also supports custom types: - - ignite scaffold list product-details name desc - ignite scaffold list product price:coin details:ProductDetails - -In the example above the "ProductDetails" type was defined first, and then used -as a custom type for the "details" field. Ignite doesn't support arrays of -custom types yet. - -Your chain will accept custom types in JSON-notation: - - exampled tx example create-product 100coin '{"name": "x", "desc": "y"}' --from alice - -By default the code will be scaffolded in the module that matches your project's -name. If you have several modules in your project, you might want to specify a -different module: - - ignite scaffold list post title body --module blog - -By default, each message comes with a "creator" field that represents the -address of the transaction signer. You can customize the name of this field with -a flag: - - ignite scaffold list post title body --signer author - -It's possible to scaffold just the getter/setter logic without the CRUD -messages. This is useful when you want the methods to handle a type, but would -like to scaffold messages manually. Use a flag to skip message scaffolding: - - ignite scaffold list post title body --no-message - -The "creator" field is not generated if a list is scaffolded with the -"--no-message" flag. - - -``` -ignite scaffold list NAME [field]... [flags] -``` - -**Options** - -``` - --clear-cache clear the build cache (advanced) - -h, --help help for list - --module string specify which module to generate code in - --no-message skip generating message handling logic - --no-simulation skip simulation logic - -p, --path string path of the app (default ".") - --signer string label for the message signer (default: creator) - -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 map - -CRUD for data stored as key-value pairs - -**Synopsis** - -The "map" scaffolding command is used to generate files that implement the logic -for storing and interacting with data stored as key-value pairs (or a -dictionary) in the blockchain state. - -The "map" command is very similar to "ignite scaffold list" with the main -difference in how values are indexed. With "list" values are indexed by an -incrementing integer, whereas "map" values are indexed by a user-provided value -(or multiple values). - -Let's use the same blog post example: - - ignite scaffold map post title body:string - -This command scaffolds a "Post" type and CRUD functionality to create, read, -updated, and delete posts. However, when creating a new post with your chain's -binary (or by submitting a transaction through the chain's API) you will be -required to provide an "index": - - blogd tx blog create-post [index] [title] [body] - blogd tx blog create-post hello "My first post" "This is the body" - -This command will create a post and store it in the blockchain's state under the -"hello" index. You will be able to fetch back the value of the post by querying -for the "hello" key. - - blogd q blog show-post hello - -By default, the index is called "index", to customize the index, use the "--index" flag. - -Since the behavior of "list" and "map" scaffolding is very similar, you can use -the "--no-message", "--module", "--signer" flags as well as the colon syntax for -custom types. - -For detailed type information use ignite scaffold type --help - - -``` -ignite scaffold map NAME [field]... [flags] -``` - -**Options** - -``` - --clear-cache clear the build cache (advanced) - -h, --help help for map - --index string field that index the value (default "index") - --module string specify which module to generate code in - --no-message skip generating message handling logic - --no-simulation skip simulation logic - -p, --path string path of the app (default ".") - --signer string label for the message signer (default: creator) - -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 message - -Message to perform state transition on the blockchain - -**Synopsis** - -Message scaffolding is useful for quickly adding functionality to your -blockchain to handle specific Cosmos SDK messages. - -Messages are objects whose end goal is to trigger state transitions on the -blockchain. A message is a container for fields of data that affect how the -blockchain's state will change. You can think of messages as "actions" that a -user can perform. - -For example, the bank module has a "Send" message for token transfers between -accounts. The send message has three fields: from address (sender), to address -(recipient), and a token amount. When this message is successfully processed, -the token amount will be deducted from the sender's account and added to the -recipient's account. - -Ignite's message scaffolding lets you create new types of messages and add them -to your chain. For example: - - ignite scaffold message add-pool amount:coins denom active:bool --module dex - -The command above will create a new message MsgAddPool with three fields: amount -(in tokens), denom (a string), and active (a boolean). The message will be added -to the "dex" module. - -For detailed type information use ignite scaffold type --help - -By default, the message is defined as a proto message in the -"proto/{app}/{module}/tx.proto" and registered in the "Msg" service. A CLI command to -create and broadcast a transaction with MsgAddPool is created in the module's -"cli" package. Additionally, Ignite scaffolds a message constructor and the code -to satisfy the sdk.Msg interface and register the message in the module. - -Most importantly in the "keeper" package Ignite scaffolds an "AddPool" function. -Inside this function, you can implement message handling logic. - -When successfully processed a message can return data. Use the —response flag to -specify response fields and their types. For example - - ignite scaffold message create-post title body --response id:int,title - -The command above will scaffold MsgCreatePost which returns both an ID (an -integer) and a title (a string). - -Message scaffolding follows the rules as "ignite scaffold list/map/single" and -supports fields with standard and custom types. See "ignite scaffold list —help" -for details. - - -``` -ignite scaffold message [name] [field1:type1] [field2:type2] ... [flags] -``` - -**Options** - -``` - --clear-cache clear the build cache (advanced) - -d, --desc string description of the command - -h, --help help for message - --module string module to add the message into. Default: app's main module - --no-simulation disable CRUD simulation scaffolding - -p, --path string path of the app (default ".") - -r, --response strings response fields - --signer string label for the message signer (default: creator) - -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 module - -Custom Cosmos SDK module - -**Synopsis** - -Scaffold a new Cosmos SDK module. - -Cosmos SDK is a modular framework and each independent piece of functionality is -implemented in a separate module. By default your blockchain imports a set of -standard Cosmos SDK modules. To implement custom functionality of your -blockchain, scaffold a module and implement the logic of your application. - -This command does the following: - -* Creates a directory with module's protocol buffer files in "proto/" -* Creates a directory with module's boilerplate Go code in "x/" -* Imports the newly created module by modifying "app/app.go" - -This command will proceed with module scaffolding even if "app/app.go" doesn't -have the required default placeholders. If the placeholders are missing, you -will need to modify "app/app.go" manually to import the module. If you want the -command to fail if it can't import the module, use the "--require-registration" -flag. - -To scaffold an IBC-enabled module use the "--ibc" flag. An IBC-enabled module is -like a regular module with the addition of IBC-specific logic and placeholders -to scaffold IBC packets with "ignite scaffold packet". - -A module can depend on one or more other modules and import their keeper -methods. To scaffold a module with a dependency use the "--dep" flag - -For example, your new custom module "foo" might have functionality that requires -sending tokens between accounts. The method for sending tokens is a defined in -the "bank"'s module keeper. You can scaffold a "foo" module with the dependency -on "bank" with the following command: - - ignite scaffold module foo --dep bank - -You can then define which methods you want to import from the "bank" keeper in -"expected_keepers.go". - -You can also scaffold a module with a list of dependencies that can include both -standard and custom modules (provided they exist): - - ignite scaffold module bar --dep foo,mint,account,FeeGrant - -Note: the "--dep" flag doesn't install third-party modules into your -application, it just generates extra code that specifies which existing modules -your new custom module depends on. - -A Cosmos SDK module can have parameters (or "params"). Params are values that -can be set at the genesis of the blockchain and can be modified while the -blockchain is running. An example of a param is "Inflation rate change" of the -"mint" module. A module can be scaffolded with params using the "--params" flag -that accepts a list of param names. By default params are of type "string", but -you can specify a type for each param. For example: - - ignite scaffold module foo --params baz:uint,bar:bool - -Refer to Cosmos SDK documentation to learn more about modules, dependencies and -params. - - -``` -ignite scaffold module [name] [flags] -``` - -**Options** - -``` - --clear-cache clear the build cache (advanced) - --dep strings add a dependency on another module - -h, --help help for module - --ibc add IBC functionality - --module-configs strings add module configs - --ordering string channel ordering of the IBC module [none|ordered|unordered] (default "none") - --params strings add module parameters - -p, --path string path of the app (default ".") - --require-registration fail if module can't be registered - -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 packet - -Message for sending an IBC packet - -**Synopsis** - -Scaffold an IBC packet in a specific IBC-enabled Cosmos SDK module - -``` -ignite scaffold packet [packetName] [field1] [field2] ... --module [moduleName] [flags] -``` - -**Options** - -``` - --ack strings custom acknowledgment type (field1,field2,...) - --clear-cache clear the build cache (advanced) - -h, --help help for packet - --module string IBC Module to add the packet into - --no-message disable send message scaffolding - -p, --path string path of the app (default ".") - --signer string label for the message signer (default: creator) - -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 params - -Parameters for a custom Cosmos SDK module - -**Synopsis** - -Scaffold a new parameter for a Cosmos SDK module. - -A Cosmos SDK module can have parameters (or "params"). Params are values that -can be set at the genesis of the blockchain and can be modified while the -blockchain is running. An example of a param is "Inflation rate change" of the -"mint" module. A params can be scaffolded into a module using the "--params" into -the scaffold module command or using the "scaffold params" command. By default -params are of type "string", but you can specify a type for each param. For example: - - ignite scaffold params foo baz:uint bar:bool - -Refer to Cosmos SDK documentation to learn more about modules, dependencies and -params. - - -``` -ignite scaffold params [param]... [flags] -``` - -**Options** - -``` - --clear-cache clear the build cache (advanced) - -h, --help help for params - --module string module to add the query into. Default: app's main module - -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 query - -Query for fetching data from a blockchain - -**Synopsis** - -Query for fetching data from a blockchain. - -For detailed type information use ignite scaffold type --help. - -``` -ignite scaffold query [name] [field1:type1] [field2:type2] ... [flags] -``` - -**Options** - -``` - --clear-cache clear the build cache (advanced) - -d, --desc string description of the CLI to broadcast a tx with the message - -h, --help help for query - --module string module to add the query into. Default: app's main module - --paginated define if the request can be paginated - -p, --path string path of the app (default ".") - -r, --response strings response fields - -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 single - -CRUD for data stored in a single location - -**Synopsis** - -CRUD for data stored in a single location. - -For detailed type information use ignite scaffold type --help. - -``` -ignite scaffold single NAME [field:type]... [flags] -``` - -**Examples** - -``` - ignite scaffold single todo-single title:string done:bool -``` - -**Options** - -``` - --clear-cache clear the build cache (advanced) - -h, --help help for single - --module string specify which module to generate code in - --no-message skip generating message handling logic - --no-simulation skip simulation logic - -p, --path string path of the app (default ".") - --signer string label for the message signer (default: creator) - -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 type - -Type definition - -**Synopsis** - -Type information - -Currently supports: - -| Type | Alias | Index | Code Type | Description | -|--------------|---------|-------|-----------|---------------------------------| -| string | - | yes | string | Text type | -| array.string | strings | no | []string | List of text type | -| bool | - | yes | bool | Boolean type | -| int | - | yes | int64 | Integer type | -| array.int | ints | no | []int64 | List of integers types | -| uint | - | yes | uint64 | Unsigned integer type | -| array.uint | uints | no | []uint64 | List of unsigned integers types | -| coin | - | no | sdk.Coin | Cosmos SDK coin type | -| array.coin | coins | no | sdk.Coins | List of Cosmos SDK coin types | - -Field Usage: - - fieldName - - fieldName:fieldType - -If no :fieldType, default (string) is used - - - -``` -ignite scaffold type NAME [field:type] ... [flags] -``` - -**Examples** - -``` - ignite scaffold type todo-item priority:int desc:string tags:array.string done:bool -``` - -**Options** - -``` - --clear-cache clear the build cache (advanced) - -h, --help help for type - --module string specify which module to generate code in - --no-message skip generating message handling logic - --no-simulation skip simulation logic - -p, --path string path of the app (default ".") - --signer string label for the message signer (default: creator) - -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 testnet - -Simulate and manage test networks - -**Synopsis** - -Comprehensive toolset for managing and simulating blockchain test networks. It allows users to either run a test network in place using mainnet data or set up a multi-node environment for more complex testing scenarios. Additionally, it includes a subcommand for simulating the chain, which is useful for fuzz testing and other testing-related tasks. - -**Options** - -``` - -h, --help help for testnet -``` - -**SEE ALSO** - -* [ignite](#ignite) - Ignite CLI offers everything you need to scaffold, test, build, and launch your blockchain -* [ignite testnet in-place](#ignite-testnet-in-place) - Create and start a testnet from current local net state -* [ignite testnet multi-node](#ignite-testnet-multi-node) - Initialize and provide multi-node on/off functionality -* [ignite testnet simulate](#ignite-testnet-simulate) - Run simulation testing for the blockchain - - -## ignite testnet in-place - -Create and start a testnet from current local net state - -**Synopsis** - -Testnet in-place command is used to create and start a testnet from current local net state(including mainnet). -After using this command in the repo containing the config.yml file, the network will start. -We can create a testnet from the local network state and mint additional coins for the desired accounts from the config.yml file. - -``` -ignite testnet in-place [flags] -``` - -**Options** - -``` - --check-dependencies verify that cached dependencies have not been modified since they were downloaded - --clear-cache clear the build cache (advanced) - -h, --help help for in-place - --home string directory where the blockchain node is initialized - -p, --path string path of the app (default ".") - --quit-on-fail quit program if the app fails to start - --skip-proto skip file generation from proto - -v, --verbose verbose output -``` - -**SEE ALSO** - -* [ignite testnet](#ignite-testnet) - Simulate and manage test networks - - -## ignite testnet multi-node - -Initialize and provide multi-node on/off functionality - -**Synopsis** - -Initialize the test network with the number of nodes and bonded from the config.yml file:: - ... - validators: - - name: alice - bonded: 100000000stake - - name: validator1 - bonded: 100000000stake - - name: validator2 - bonded: 200000000stake - - name: validator3 - bonded: 300000000stake - - - The "multi-node" command allows developers to easily set up, initialize, and manage multiple nodes for a - testnet environment. This command provides full flexibility in enabling or disabling each node as desired, - making it a powerful tool for simulating a multi-node blockchain network during development. - - Usage: - ignite testnet multi-node [flags] - - - -``` -ignite testnet multi-node [flags] -``` - -**Options** - -``` - --check-dependencies verify that cached dependencies have not been modified since they were downloaded - --clear-cache clear the build cache (advanced) - -h, --help help for multi-node - --home string directory where the blockchain node is initialized - --node-dir-prefix string prefix of dir node (default "validator") - -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-proto skip file generation from proto - -v, --verbose verbose output -``` - -**SEE ALSO** - -* [ignite testnet](#ignite-testnet) - Simulate and manage test networks - - -## ignite testnet simulate - -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. - -``` -ignite testnet simulate [flags] -``` - -**Options** - -``` - --blockSize int operations per block (default 30) - --exportParamsHeight int height to which export the randomly generated params - --exportParamsPath string custom file path to save the exported params JSON - --exportStatePath string custom file path to save the exported app state JSON - --exportStatsPath string custom file path to save the exported simulation statistics JSON - --genesis string custom simulation genesis file; cannot be used with params file - --genesisTime int override genesis UNIX time instead of using a random UNIX time - -h, --help help for simulate - --initialBlockHeight int initial block to start the simulation (default 1) - --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 - --seed int simulation random seed (default 42) - --simName string name of the simulation to run (default "TestFullAppSimulation") -``` - -**SEE ALSO** - -* [ignite testnet](#ignite-testnet) - Simulate and manage test networks - - -## ignite version - -Print the current build information - -``` -ignite version [flags] -``` - -**Options** - -``` - -h, --help help for version -``` - -**SEE ALSO** - -* [ignite](#ignite) - Ignite CLI offers everything you need to scaffold, test, build, and launch your blockchain - diff --git a/docs/versioned_docs/version-v29/08-references/02-config.md b/docs/versioned_docs/version-v29/08-references/02-config.md deleted file mode 100644 index 037753ec37..0000000000 --- a/docs/versioned_docs/version-v29/08-references/02-config.md +++ /dev/null @@ -1,272 +0,0 @@ ---- -sidebar_position: 3 -description: Primary configuration file to describe the development environment for your blockchain. -title: Configuration documentation ---- - -# Configuration file reference - -The `config.yml` file generated in your blockchain folder uses key-value pairs -to describe the development environment for your blockchain. - -Only a default set of parameters is provided. If more nuanced configuration is -required, you can add these parameters to the `config.yml` file. - -## Validation - -Ignite uses the `validation` field to determine the kind of validation -of your blockchain. There are currently two supported kinds of validation: - -- `sovereign` which is the standard kind of validation where your blockchain - has its own validator set. This is the default value when this field is not - in the config file. -- `consumer` indicates your blockchain is a consumer chain, in the sense of - Replicated Security. That means it doesn't have a validator set, but - inherits the one of a provider chain. - -While the `sovereign` chain is the default validation when you run the `ignite scaffold -chain`, to scaffold a consumer chain, you have to run `ignite scaffold chain ---consumer`. - -This field is, at this time of writing, only used by Ignite at the genesis -generation step, because the genesis of a sovereign chain and a consumer chain -are different. - -## Accounts - -A list of user accounts created during genesis of the blockchain. - -```yml -accounts: - - name: alice - coins: ['20000token', '200000000stake'] - - name: bob - coins: ['10000token', '100000000stake'] -``` - -Ignite uses information from `accounts` when initializing the chain with `ignite -chain init` and `ignite chain start`. In the example above Ignite will add two -accounts to the `genesis.json` file of the chain. - -`name` is a local name of a key pair associated with an account. Once the chain -is initialized and started, you will be able to use `name` when signing -transactions. With the configuration above, you'd be able to sign transactions -both with Alice's and Bob's accounts like so `exampled tx bank send ... --from -alice`. - -`coins` is a list of token balances for the account. If a token denomination is -in this list, it will exist in the genesis balance and will be a valid token. -When initialized with the config file above, a chain will only have two accounts -at genesis (Alice and Bob) and two native tokens (with denominations `token` and -`stake`). - -By default, every time a chain is re-initialized, Ignite will create a new key -pair for each account. So even though the account name can remain the same -(`bob`), every chain reinitialize it will have a different mnemonic and address. - -If you want an account to have a specific address, provide the `address` field -with a valid bech32 address. The prefix (by default, `cosmos`) should match the -one expected by your chain. When an account is provided with an `address` a key -pair will not be generated, because it's impossible to derive a key from an -address. An account with a given address will be added to the genesis file (with -an associated token balance), but because there is no key pair, you will not be -able to broadcast transactions from that address. This is useful when you have -generated a key pair outside of Ignite (for example, using your chain's CLI or -in an extension wallet) and want to have a token balance associated with the -address of this key pair. - -```yml -accounts: - - name: bob - coins: ['20000token', '200000000stake'] - address: cosmos1s39200s6v4c96ml2xzuh389yxpd0guk2mzn3mz -``` - -If you want an account to be initialized from a specific mnemonic, provide the -`mnemonic` field with a valid mnemonic. A private key, a public key and an -address will be derived from a mnemonic. - -```yml -accounts: - - name: bob - coins: ['20000token', '200000000stake'] - mnemonic: cargo ramp supreme review change various throw air figure humble soft steel slam pole betray inhale already dentist enough away office apple sample glue -``` - -You cannot have both `address` and `mnemonic` defined for a single account. - -Some accounts are used as validator accounts (see `validators` section). -Validator accounts cannot have an `address` field, because Ignite needs to be -able to derive a private key (either from a random mnemonic or from a specific -one provided in the `mnemonic` field). Validator accounts should have enough -tokens of the staking denomination for self-delegation. - -By default, the `alice` account is used as a validator account, its key is -derived from a mnemonic generated randomly at genesis, the staking denomination -is `stake`, and this account has enough `stake` for self-delegation. - -If your chain is using its own -[cointype](https://github.com/satoshilabs/slips/blob/master/slip-0044.md), you -can use the `cointype` field to provide the integer value - -```yml -accounts: - - name: bob - coins: ['20000token', '200000000stake'] - cointype: 7777777 -``` - -## Validators - -Commands like `ignite chain init` and `ignite chain serve` initialize and launch -a validator node for development purposes. - -```yml -validators: - - name: alice - bonded: '100000000stake' -``` - -`name` refers to key name in the `accounts` list. - -`bonded` is the self-delegation amount of a validator. The `bonded` amount -should not be lower than `1000000` nor higher than the account's -balance in the `account` list. - -Validators store their node configuration files in the data directory. By -default, Ignite uses the name of the project as the name of the data directory, -for example, `$HOME/.example/`. To use a different path for the data directory -you can customize the `home` property. - -Configuration in the data directory is reset frequently by Ignite. To persist -some changes to configuration files you can use `app`, `config` and `client` -properties that correspond to `$HOME/.example/config/app.toml`, -`$HOME/.example/config/config.toml` and `$HOME/.example/config/client.toml`. - -```yml -validators: - - name: alice - bonded: '100000000stake' - home: "~/.mychain" - app: - pruning: "nothing" - config: - moniker: "mychain" - client: - output: "json" -``` - -To see which properties are available for `config.toml`, `app.toml` and -`client.toml`, initialize a chain with `ignite chain init` and open the file you -want to know more about. - -Currently, Ignite starts only one validator node, so the first item in the -`validators` list is used (the rest is ignored). Support for multiple validators -is in progress. - -## Build - -The `build` property lets you customize how Ignite builds your chain's binary. - -By default, Ignite builds the `main` package from `cmd/PROJECT_NAME/main.go`. If -you more than one `main` package in your project, or you have renamed the -directory, use the `main` property to provide the path to the `main` Go package: - -```yml -build: - main: cmd/hello/cmd -``` - -Ignite compiles your project into a binary and uses the project's name with a -`d` suffix as name for the binary. To customize the binary name use the `binary` -property: - -```yml -build: - binary: "helloworldd" -``` - -To customize the linker flags used in the build process: - -```yml -build: - ldflags: [ "-X main.Version=development", "-X main.Date=01/05/2022T19:54" ] -``` - -By default, custom protocol buffer (proto) files are located in the `proto` -directory. If your project keeps proto files in a different directory, you -should tell Ignite about this: - -```yml -build: - proto: - path: "myproto" -``` - -## Faucet - -The faucet service sends tokens to addresses. - -```yml -faucet: - name: bob - coins: ["5token", "100000stake"] -``` - -`name` refers to a key name in the `accounts` list. This is a required property. - -`coins` is the amount of tokens that will be sent to a user by the faucet. This -is a required property. - -`coins_max` is a maximum amount of tokens that can be sent to a single address. -To reset the token limit use the `rate_limit_window` property (in seconds). - -The default the faucet works on port `4500`. To use a different port number use -the `port` property. - -```yml -faucet: - name: faucet - coins: [ "100token", "5foo" ] - coins_max: [ "2000token", "1000foo" ] - port: 4500 - rate_limit_window: 3600 -``` - -## Genesis - -Genesis file is the initial block in the blockchain. It is required to launch a -blockchain, because it contains important information like token balances, and -modules' state. Genesis is stored in `$DATA_DIR/config/genesis.json`. - -Since the genesis file is reinitialized frequently during development, you can -set persistent options in the `genesis` property: - -```yml -genesis: - app_state: - staking: - params: - bond_denom: "denom" -``` - -To know which properties a genesis file supports, initialize a chain and look up -the genesis file in the data directory. - -## Client code generation - -Ignite can generate client-side code for interacting with your chain with the -`ignite generate` set of commands. Use the following properties to customize the -paths where the client-side code is generated. - -```yml -client: - openapi: - path: "docs/static/openapi.yml" - typescript: - path: "ts-client" - composables: - path: "vue/src/composables" - hooks: - path: "react/src/hooks" -``` diff --git a/docs/versioned_docs/version-v29/08-references/03-config_example.md b/docs/versioned_docs/version-v29/08-references/03-config_example.md deleted file mode 100644 index e5fc743c13..0000000000 --- a/docs/versioned_docs/version-v29/08-references/03-config_example.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -sidebar_position: 4 -title: Configuration file example ---- - -### Structure of the config.yml file - -```yaml title="config.yml" -validation: (string) # Specifies the type of validation the blockchain uses (e.g., sovereign). -version: (uint) # Defines the configuration version number. -build: # Contains build configuration options. - main: (string) # Path to the main build file. - binary: (string) # Path to the binary file. - ldflags: (string list) # List of custom linker flags for building the binary. - proto: # Contains proto build configuration options. - path: (string) # Relative path where the application's proto files are located. -accounts: (list) # Lists the options for setting up Cosmos Accounts. - name: (string) # Local name associated with the Account's key pair. - coins: (string list) # List of token balances for the account. - mnemonic: (string) # Mnemonic phrase for the account. - address: (string) # Address of the account. - cointype: (string) # Coin type number for HD derivation (default is 118). - account_number: (string) # Account number for HD derivation (must be ≤ 2147483647). - address_index: (string) # Address index number for HD derivation (must be ≤ 2147483647). -faucet: # Configuration for the faucet. - name: (string) # Name of the faucet account. - coins: (string list) # Types and amounts of coins the faucet distributes. - coins_max: (string list) # Maximum amounts of coins that can be transferred to a single user. - rate_limit_window: (string) # Timeframe after which the limit will be refreshed. - host: (string) # Host address of the faucet server. - port: (uint) # Port number for the faucet server. -client: # Configures client code generation. - typescript: # Relative path where the application's Typescript files are located. - path: (string) # Relative path where the application's Typescript files are located. - composables: # Configures Vue 3 composables code generation. - path: (string) # Relative path where the application's composable files are located. - hooks: # Configures React hooks code generation. - path: (string) # Relative path where the application's hooks files are located. - openapi: # Configures OpenAPI spec generation for the API. - path: (string) # Relative path where the application's OpenAPI files are located. -genesis: (key/value) # Custom genesis block modifications. Follow the nesting of the genesis file here to access all the parameters. -minimal: (bool) # Indicates if the blockchain is minimal with the required Cosmos SDK modules. -validators: (list) # Contains information related to the list of validators and settings. - name: (string) # Name of the validator. - bonded: (string) # Amount staked by the validator. - app: (key/value) # Overwrites the appd's config/app.toml configurations. - config: (key/value) # Overwrites the appd's config/config.toml configurations. - client: (key/value) # Overwrites the appd's config/client.toml configurations. - home: (string) # Overwrites the default home directory used for the application. - gentx: # Overwrites the appd's config/gentx.toml configurations. - amount: (string) # Amount for the current Gentx. - moniker: (string) # Optional moniker for the validator. - home: (string) # Directory for configuration and data. - keyring-backend: (string) # Backend for the keyring. - chain-id: (string) # Network chain ID. - commission-max-change-rate: (string) # Maximum commission change rate percentage per day. - commission-max-rate: (string) # Maximum commission rate percentage (e.g., 0.01 = 1%). - commission-rate: (string) # Initial commission rate percentage (e.g., 0.01 = 1%). - details: (string) # Optional details about the validator. - security-contact: (string) # Optional security contact email for the validator. - website: (string) # Optional website for the validator. - account-number: (int) # Account number of the signing account (offline mode only). - broadcast-mode: (string) # Transaction broadcasting mode (sync|async|block) (default is 'sync'). - dry-run: (bool) # Simulates the transaction without actually performing it, ignoring the --gas flag. - fee-account: (string) # Account that pays the transaction fees instead of the signer. - fee: (string) # Fee to pay with the transaction (e.g.: 10uatom). - from: (string) # Name or address of the private key used to sign the transaction. - gas: (string) # Gas limit per transaction; set to 'auto' to calculate sufficient gas automatically (default is 200000). - gas-adjustment: (string) # Factor to multiply against the estimated gas (default is 1). - gas-prices: (string) # Gas prices in decimal format to determine the transaction fee (e.g., 0.1uatom). - generate-only: (bool) # Creates an unsigned transaction and writes it to STDOUT. - identity: (string) # Identity signature (e.g., UPort or Keybase). - ip: (string) # Node's public IP address (default is '192.168.1.64'). - keyring-dir: (string) # Directory for the client keyring; defaults to the 'home' directory if omitted. - ledger: (bool) # Uses a connected Ledger device if true. - min-self-delegation: (string) # Minimum self-delegation required for the validator. - node: (string) # <host>:<port> for the Tendermint RPC interface (default 'tcp://localhost:26657') - node-id: (string) # Node's NodeID - note: (string) # Adds a description to the transaction (formerly --memo). - offline: (bool) # Operates in offline mode, disallowing any online functionality. - output: (string) # Output format (text|json) (default 'json'). - output-document: (string) # Writes the genesis transaction JSON document to the specified file instead of the default location. - pubkey: (string) # Protobuf JSON encoded public key of the validator. - sequence: (uint) # Sequence number of the signing account (offline mode only). - sign-mode: (string) # Chooses sign mode (direct|amino-json), an advanced feature. - timeout-height: (uint) # Sets a block timeout height to prevent the transaction from being committed past a certain height. -``` \ No newline at end of file diff --git a/docs/versioned_docs/version-v29/08-references/_category_.json b/docs/versioned_docs/version-v29/08-references/_category_.json deleted file mode 100644 index be085e1aca..0000000000 --- a/docs/versioned_docs/version-v29/08-references/_category_.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "label": "Configuration", - "link": null, - "collapsed": false -} \ No newline at end of file diff --git a/docs/versioned_docs/version-v29/apps/01-using-apps.md b/docs/versioned_docs/version-v29/apps/01-using-apps.md deleted file mode 100644 index 459d6c7ea3..0000000000 --- a/docs/versioned_docs/version-v29/apps/01-using-apps.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -description: Using and Developing Ignite Apps ---- - -# Using Ignite Apps - -Apps offer a way to extend the functionality of the Ignite CLI. There are two -core concepts within apps: `Commands` and `Hooks`. `Commands` extend the CLI's -functionality and `Hooks` extend existing CLI command functionality. - -Apps are registered in an Ignite scaffolded blockchain project through the -`igniteapps.yml`, or globally through `$HOME/.ignite/apps/igniteapps.yml`. - -To use an app within your project execute the following command inside the -project directory: - -```sh -ignite app install github.com/project/cli-app -``` - -The app will be available only when running `ignite` inside the project -directory. - -To use an app globally on the other hand, execute the following command: - -```sh -ignite app install -g github.com/project/cli-app -``` - -The command will compile the app and make it immediately available to the -`ignite` command lists. - -## Listing installed apps - -When in an ignite scaffolded blockchain you can use the command `ignite app -list` to list all Ignite Apps and there statuses. - -## Updating apps - -When an app in a remote repository releases updates, running `ignite app -update ` will update an specific app declared in your -project's `config.yml`. diff --git a/docs/versioned_docs/version-v29/apps/02-developing-apps.md b/docs/versioned_docs/version-v29/apps/02-developing-apps.md deleted file mode 100644 index 935eddaaf8..0000000000 --- a/docs/versioned_docs/version-v29/apps/02-developing-apps.md +++ /dev/null @@ -1,258 +0,0 @@ ---- -description: Using and Developing Ignite Apps ---- - -# Developing Ignite Apps - -It's easy to create an app and use it immediately in your project. First -choose a directory outside your project and run: - -```sh -$ ignite app scaffold my-app -``` - -This will create a new directory `my-app` that contains the app's code -and will output some instructions about how to use your app with the -`ignite` command. An app path can be a local directory which has several -benefits: - -- You don't need to use a Git repository during the development of your app. -- The app is recompiled each time you run the `ignite` binary in your - project if the source files are older than the app binary. - -Thus, app development workflow is as simple as: - -1. Scaffold an app with `ignite app scaffold my-app` -2. Add it to your config via `ignite app install -g /path/to/my-app` -3. Update app code -4. Run `ignite my-app` binary to compile and run the app -5. Go back to 3 - -Once your app is ready you can publish it to a Git repository and the -community can use it by calling `ignite app install github.com/foo/my-app`. - -Now let's detail how to update your app's code. - -## App interface - -Under the hood Ignite Apps are implemented using a plugin system based on -`github.com/hashicorp/go-plugin`. - -All apps must implement a predefined interface: - -```go title=ignite/services/plugin/interface.go -type Interface interface { - // Manifest declares app's Command(s) and Hook(s). - Manifest(context.Context) (*Manifest, error) - - // Execute will be invoked by ignite when an app Command is executed. - // It is global for all commands declared in Manifest, if you have declared - // multiple commands, use cmd.Path to distinguish them. - // The ClientAPI argument can be used by plugins to get chain app analysis info. - Execute(context.Context, *ExecutedCommand, ClientAPI) error - - // ExecuteHookPre is invoked by ignite when a command specified by the Hook - // path is invoked. - // It is global for all hooks declared in Manifest, if you have declared - // multiple hooks, use hook.Name to distinguish them. - // The ClientAPI argument can be used by plugins to get chain app analysis info. - ExecuteHookPre(context.Context, *ExecutedHook, ClientAPI) error - - // ExecuteHookPost is invoked by ignite when a command specified by the hook - // path is invoked. - // It is global for all hooks declared in Manifest, if you have declared - // multiple hooks, use hook.Name to distinguish them. - // The ClientAPI argument can be used by plugins to get chain app analysis info. - ExecuteHookPost(context.Context, *ExecutedHook, ClientAPI) error - - // ExecuteHookCleanUp is invoked by ignite when a command specified by the - // hook path is invoked. Unlike ExecuteHookPost, it is invoked regardless of - // execution status of the command and hooks. - // It is global for all hooks declared in Manifest, if you have declared - // multiple hooks, use hook.Name to distinguish them. - // The ClientAPI argument can be used by plugins to get chain app analysis info. - ExecuteHookCleanUp(context.Context, *ExecutedHook, ClientAPI) error -} -``` - -The scaffolded code already implements this interface, you just need to update -the method's body. - -## Defining app's manifest - -Here is the `Manifest` proto message definition: - -```protobuf title=proto/ignite/services/plugin/grpc/v1/types.proto -message Manifest { - // App name. - string name = 1; - - // Commands contains the commands that will be added to the list of ignite commands. - // Each commands are independent, for nested commands use the inner Commands field. - bool shared_host = 2; - - // Hooks contains the hooks that will be attached to the existing ignite commands. - repeated Command commands = 3; - - // Enables sharing a single app server across all running instances of an Ignite App. - // Useful if an app adds or extends long running commands. - // - // Example: if an app defines a hook on `ignite chain serve`, a server is instantiated - // when the command is run. Now if you want to interact with that instance - // from commands defined in that app, you need to enable shared host, or else the - // commands will just instantiate separate app servers. - // - // When enabled, all apps of the same path loaded from the same configuration will - // attach it's RPC client to a an existing RPC server. - // - // If an app instance has no other running app servers, it will create one and it - // will be the host. - repeated Hook hooks = 4; -} -``` - -In your app's code the `Manifest` method already returns a predefined -`Manifest` struct as an example. You must adapt it according to your need. - -If your app adds one or more new commands to `ignite`, add them to the -`Commands` field. - -If your app adds features to existing commands, add them to the `Hooks` field. - -Of course an app can declare both, `Commands` *and* `Hooks`. - -An app may also share a host process by setting `SharedHost` to `true`. -`SharedHost` is desirable if an app hooks into, or declares long running commands. -Commands executed from the same app context interact with the same app server. -Allowing all executing commands to share the same server instance, giving shared execution context. - -## Adding new commands - -App commands are custom commands added to Ignite CLI by an installed app. -Commands can use any path not defined already by the CLI. - -For instance, let's say your app adds a new `oracle` command to `ignite -scaffold`, then the `Manifest` method will look like : - -```go -func (app) Manifest(context.Context) (*plugin.Manifest, error) { - return &plugin.Manifest{ - Name: "oracle", - Commands: []*plugin.Command{ - { - Use: "oracle [name]", - Short: "Scaffold an oracle module", - Long: "Long description goes here...", - // Optional flags is required - Flags: []*plugin.Flag{ - {Name: "source", Type: plugin.FlagTypeString, Usage: "the oracle source"}, - }, - // Attach the command to `scaffold` - PlaceCommandUnder: "ignite scaffold", - }, - }, - }, nil -} -``` - -To update the app execution, you have to change the `Execute` command. For -example: - -```go -func (app) Execute(_ context.Context, cmd *plugin.ExecutedCommand, _ plugin.ClientAPI) error { - if len(cmd.Args) == 0 { - return fmt.Errorf("oracle name missing") - } - - flags, err := cmd.NewFlags() - if err != nil { - return err - } - - var ( - name = cmd.Args[0] - source, _ = flags.GetString("source") - ) - - // Read chain information - c, err := getChain(cmd) - if err != nil { - return err - } - - //... -} -``` - -Then, run `ignite scaffold oracle` to execute the app. - -## Adding hooks - -App `Hooks` allow existing CLI commands to be extended with new -functionality. Hooks are useful when you want to streamline functionality -without needing to run custom scripts after or before a command has been run. -This can streamline processes that where once error prone or forgotten all -together. - -The following are hooks defined which will run on a registered `ignite` -command: - -| Name | Description | -| -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | -| Pre | Runs before a commands main functionality is invoked in the `PreRun` scope | -| Post | Runs after a commands main functionality is invoked in the `PostRun` scope | -| Clean Up | Runs after a commands main functionality is invoked. If the command returns an error it will run before the error is returned to guarantee execution. | - -*Note*: If a hook causes an error in the pre step the command will not run -resulting in `post` and `clean up` not executing. - -The following is an example of a `hook` definition. - -```go -func (app) Manifest(context.Context) (*plugin.Manifest, error) { - return &plugin.Manifest{ - Name: "oracle", - Hooks: []*plugin.Hook{ - { - Name: "my-hook", - PlaceHookOn: "ignite chain build", - }, - }, - }, nil -} - -func (app) ExecuteHookPre(_ context.Context, h *plugin.ExecutedHook, _ plugin.ClientAPI) error { - switch h.Hook.GetName() { - case "my-hook": - fmt.Println("I'm executed before ignite chain build") - default: - return fmt.Errorf("hook not defined") - } - return nil -} - -func (app) ExecuteHookPost(_ context.Context, h *plugin.ExecutedHook, _ plugin.ClientAPI) error { - switch h.Hook.GetName() { - case "my-hook": - fmt.Println("I'm executed after ignite chain build (if no error)") - default: - return fmt.Errorf("hook not defined") - } - return nil -} - -func (app) ExecuteHookCleanUp(_ context.Context, h *plugin.ExecutedHook, _ plugin.ClientAPI) error { - switch h.Hook.GetName() { - case "my-hook": - fmt.Println("I'm executed after ignite chain build (regardless errors)") - default: - return fmt.Errorf("hook not defined") - } - return nil -} -``` - -Above we can see a similar definition to `Command` where a hook has a `Name` -and a `PlaceHookOn`. You'll notice that the `Execute*` methods map directly to -each life cycle of the hook. All hooks defined within the app will invoke these -methods. diff --git a/docs/versioned_docs/version-v29/apps/_category_.json b/docs/versioned_docs/version-v29/apps/_category_.json deleted file mode 100644 index 5ce59790e7..0000000000 --- a/docs/versioned_docs/version-v29/apps/_category_.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "label": "Ignite Apps", - "position": 7, - "link": null -} diff --git a/docs/versioned_sidebars/version-v29-sidebars.json b/docs/versioned_sidebars/version-v29-sidebars.json deleted file mode 100644 index 9fed36bb35..0000000000 --- a/docs/versioned_sidebars/version-v29-sidebars.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "tutorialSidebar": [ - { - "type": "autogenerated", - "dirName": "." - }, - { - "type": "category", - "label": "Resources", - "collapsed": true, - "items": [ - { - "type": "link", - "label": "Ignite CLI on Github", - "href": "https://github.com/ignite/cli" - }, - { - "type": "link", - "label": "Ignite Tutorials", - "href": "https://tutorials.ignite.com/" - }, - { - "type": "link", - "label": "Cosmos SDK Docs", - "href": "https://docs.cosmos.network/" - } - ] - } - ] -} diff --git a/docs/versions.json b/docs/versions.json index 12480487ab..ed76f948be 100644 --- a/docs/versions.json +++ b/docs/versions.json @@ -1,7 +1,6 @@ [ - "v29", "v28", "v0.27", "v0.26", "v0.25" -] +] \ No newline at end of file