From 744321fb6f18698e66303c7ca9ffc452c62e5d64 Mon Sep 17 00:00:00 2001 From: Albert Le Batteux Date: Sat, 3 Dec 2022 21:21:28 +0000 Subject: [PATCH] chore(docs): docs v0.25.2 (latest) and nightly (#3206) * chore(docs): docs v0.25.2 (latest) and nightly * chore: add versionning documentation * chore(ci): generate docs on new release Co-authored-by: Alex Johnson --- .github/workflows/gen-docs-version.yml | 43 + docs/docusaurus.config.js | 13 + docs/readme.md | 7 + .../version-v0.25.2/06-bounty.md | 14 + docs/versioned_docs/version-v0.25.2/07-cli.md | 3378 +++++++++++++++++ .../version-v0.25.2/clients/01-typescript.md | 310 ++ .../version-v0.25.2/clients/_category_.json | 5 + .../contributing/01-contributing.md | 73 + .../contributing/02-technical-setup.md | 64 + .../contributing/_category_.json | 5 + .../templates/01-concept_template.md | 125 + .../templates/02-tutorial-template.md | 185 + .../contributing/templates/_category_.json | 5 + .../contributing/templates/readme.md | 14 + .../version-v0.25.2/guide/00-introduction.md | 38 + .../version-v0.25.2/guide/01-install.md | 107 + .../version-v0.25.2/guide/02-hello.md | 276 ++ .../guide/03-blog/00-build-blog.md | 494 +++ .../guide/03-blog/01-comment-blog.md | 669 ++++ .../guide/03-blog/02-connect-blockchain.md | 210 + .../guide/03-blog/_category_.json | 5 + .../guide/04-nameservice/00-tutorial.md | 86 + .../guide/04-nameservice/01-init.md | 47 + .../guide/04-nameservice/02-messages.md | 189 + .../guide/04-nameservice/03-types.md | 111 + .../guide/04-nameservice/04-keeper.md | 202 + .../guide/04-nameservice/05-play.md | 243 ++ .../guide/04-nameservice/_category_.json | 5 + .../guide/05-scavenge/01-hunt.md | 36 + .../guide/05-scavenge/02-game.md | 35 + .../guide/05-scavenge/03-scaffolding.md | 48 + .../guide/05-scavenge/04-messages.md | 157 + .../guide/05-scavenge/05-types.md | 134 + .../guide/05-scavenge/06-handlers.md | 18 + .../guide/05-scavenge/07-keeper.md | 245 ++ .../guide/05-scavenge/08-cli.md | 145 + .../guide/05-scavenge/09-play.md | 367 ++ .../guide/05-scavenge/_category_.json | 5 + .../version-v0.25.2/guide/06-loan.md | 922 +++++ .../version-v0.25.2/guide/07-ibc.md | 569 +++ .../guide/08-interchange/00-introduction.md | 38 + .../guide/08-interchange/01-design.md | 92 + .../guide/08-interchange/02-init.md | 177 + .../guide/08-interchange/03-walkthrough.md | 377 ++ .../08-interchange/04-creating-order-books.md | 465 +++ .../05-mint-and-burn-voucher.md | 311 ++ .../08-interchange/06-creating-sell-orders.md | 374 ++ .../08-interchange/07-creating-buy-orders.md | 396 ++ .../08-interchange/08-cancelling-orders.md | 193 + .../guide/08-interchange/09-tests.md | 729 ++++ .../guide/08-interchange/_category_.json | 5 + .../version-v0.25.2/guide/_category_.json | 5 + .../version-v0.25.2/guide/images/api.png | Bin 0 -> 406674 bytes .../guide/images/packet_sendpost.png | Bin 0 -> 402229 bytes docs/versioned_docs/version-v0.25.2/index.md | 64 + .../version-v0.25.2/kb/00-kb.md | 10 + .../version-v0.25.2/kb/01-scaffold-chain.md | 68 + .../version-v0.25.2/kb/02-serve.md | 91 + .../version-v0.25.2/kb/03-config.md | 186 + .../version-v0.25.2/kb/04-genesis.md | 45 + .../version-v0.25.2/kb/05-types.md | 58 + .../version-v0.25.2/kb/06-proto.md | 30 + .../version-v0.25.2/kb/07-frontend.md | 41 + .../version-v0.25.2/kb/08-relayer.md | 51 + .../version-v0.25.2/kb/09-docker.md | 103 + .../version-v0.25.2/kb/10-band.md | 364 ++ .../version-v0.25.2/kb/11-simapp.md | 131 + .../version-v0.25.2/kb/12-params.md | 31 + .../version-v0.25.2/kb/_category_.json | 5 + .../version-v0.25.2/migration/_category_.json | 5 + .../version-v0.25.2/migration/v0.18.md | 448 +++ .../version-v0.25.2/migration/v0.19.2.md | 22 + .../version-v0.25.2/migration/v0.20.0.md | 11 + .../version-v0.25.2/migration/v0.22.0.md | 30 + .../version-v0.25.2/migration/v0.24.0.md | 246 ++ .../version-v0.25.2/migration/v0.25.0.md | 67 + .../network/01-introduction.md | 69 + .../version-v0.25.2/network/02-coordinator.md | 138 + .../version-v0.25.2/network/03-validator.md | 159 + .../version-v0.25.2/network/_category_.json | 5 + .../version-v0.25.2/packages/_category_.json | 5 + .../packages/cosmostxcollector.md | 200 + .../version-v0.25.2-sidebars.json | 25 + docs/versions.json | 3 + 84 files changed, 15477 insertions(+) create mode 100644 .github/workflows/gen-docs-version.yml create mode 100644 docs/versioned_docs/version-v0.25.2/06-bounty.md create mode 100644 docs/versioned_docs/version-v0.25.2/07-cli.md create mode 100644 docs/versioned_docs/version-v0.25.2/clients/01-typescript.md create mode 100644 docs/versioned_docs/version-v0.25.2/clients/_category_.json create mode 100644 docs/versioned_docs/version-v0.25.2/contributing/01-contributing.md create mode 100644 docs/versioned_docs/version-v0.25.2/contributing/02-technical-setup.md create mode 100644 docs/versioned_docs/version-v0.25.2/contributing/_category_.json create mode 100644 docs/versioned_docs/version-v0.25.2/contributing/templates/01-concept_template.md create mode 100644 docs/versioned_docs/version-v0.25.2/contributing/templates/02-tutorial-template.md create mode 100644 docs/versioned_docs/version-v0.25.2/contributing/templates/_category_.json create mode 100644 docs/versioned_docs/version-v0.25.2/contributing/templates/readme.md create mode 100644 docs/versioned_docs/version-v0.25.2/guide/00-introduction.md create mode 100644 docs/versioned_docs/version-v0.25.2/guide/01-install.md create mode 100644 docs/versioned_docs/version-v0.25.2/guide/02-hello.md create mode 100644 docs/versioned_docs/version-v0.25.2/guide/03-blog/00-build-blog.md create mode 100644 docs/versioned_docs/version-v0.25.2/guide/03-blog/01-comment-blog.md create mode 100644 docs/versioned_docs/version-v0.25.2/guide/03-blog/02-connect-blockchain.md create mode 100644 docs/versioned_docs/version-v0.25.2/guide/03-blog/_category_.json create mode 100644 docs/versioned_docs/version-v0.25.2/guide/04-nameservice/00-tutorial.md create mode 100644 docs/versioned_docs/version-v0.25.2/guide/04-nameservice/01-init.md create mode 100644 docs/versioned_docs/version-v0.25.2/guide/04-nameservice/02-messages.md create mode 100644 docs/versioned_docs/version-v0.25.2/guide/04-nameservice/03-types.md create mode 100644 docs/versioned_docs/version-v0.25.2/guide/04-nameservice/04-keeper.md create mode 100644 docs/versioned_docs/version-v0.25.2/guide/04-nameservice/05-play.md create mode 100644 docs/versioned_docs/version-v0.25.2/guide/04-nameservice/_category_.json create mode 100644 docs/versioned_docs/version-v0.25.2/guide/05-scavenge/01-hunt.md create mode 100644 docs/versioned_docs/version-v0.25.2/guide/05-scavenge/02-game.md create mode 100644 docs/versioned_docs/version-v0.25.2/guide/05-scavenge/03-scaffolding.md create mode 100644 docs/versioned_docs/version-v0.25.2/guide/05-scavenge/04-messages.md create mode 100644 docs/versioned_docs/version-v0.25.2/guide/05-scavenge/05-types.md create mode 100644 docs/versioned_docs/version-v0.25.2/guide/05-scavenge/06-handlers.md create mode 100644 docs/versioned_docs/version-v0.25.2/guide/05-scavenge/07-keeper.md create mode 100644 docs/versioned_docs/version-v0.25.2/guide/05-scavenge/08-cli.md create mode 100644 docs/versioned_docs/version-v0.25.2/guide/05-scavenge/09-play.md create mode 100644 docs/versioned_docs/version-v0.25.2/guide/05-scavenge/_category_.json create mode 100644 docs/versioned_docs/version-v0.25.2/guide/06-loan.md create mode 100644 docs/versioned_docs/version-v0.25.2/guide/07-ibc.md create mode 100644 docs/versioned_docs/version-v0.25.2/guide/08-interchange/00-introduction.md create mode 100644 docs/versioned_docs/version-v0.25.2/guide/08-interchange/01-design.md create mode 100644 docs/versioned_docs/version-v0.25.2/guide/08-interchange/02-init.md create mode 100644 docs/versioned_docs/version-v0.25.2/guide/08-interchange/03-walkthrough.md create mode 100644 docs/versioned_docs/version-v0.25.2/guide/08-interchange/04-creating-order-books.md create mode 100644 docs/versioned_docs/version-v0.25.2/guide/08-interchange/05-mint-and-burn-voucher.md create mode 100644 docs/versioned_docs/version-v0.25.2/guide/08-interchange/06-creating-sell-orders.md create mode 100644 docs/versioned_docs/version-v0.25.2/guide/08-interchange/07-creating-buy-orders.md create mode 100644 docs/versioned_docs/version-v0.25.2/guide/08-interchange/08-cancelling-orders.md create mode 100644 docs/versioned_docs/version-v0.25.2/guide/08-interchange/09-tests.md create mode 100644 docs/versioned_docs/version-v0.25.2/guide/08-interchange/_category_.json create mode 100644 docs/versioned_docs/version-v0.25.2/guide/_category_.json create mode 100644 docs/versioned_docs/version-v0.25.2/guide/images/api.png create mode 100644 docs/versioned_docs/version-v0.25.2/guide/images/packet_sendpost.png create mode 100644 docs/versioned_docs/version-v0.25.2/index.md create mode 100644 docs/versioned_docs/version-v0.25.2/kb/00-kb.md create mode 100644 docs/versioned_docs/version-v0.25.2/kb/01-scaffold-chain.md create mode 100644 docs/versioned_docs/version-v0.25.2/kb/02-serve.md create mode 100644 docs/versioned_docs/version-v0.25.2/kb/03-config.md create mode 100644 docs/versioned_docs/version-v0.25.2/kb/04-genesis.md create mode 100644 docs/versioned_docs/version-v0.25.2/kb/05-types.md create mode 100644 docs/versioned_docs/version-v0.25.2/kb/06-proto.md create mode 100644 docs/versioned_docs/version-v0.25.2/kb/07-frontend.md create mode 100644 docs/versioned_docs/version-v0.25.2/kb/08-relayer.md create mode 100644 docs/versioned_docs/version-v0.25.2/kb/09-docker.md create mode 100644 docs/versioned_docs/version-v0.25.2/kb/10-band.md create mode 100644 docs/versioned_docs/version-v0.25.2/kb/11-simapp.md create mode 100644 docs/versioned_docs/version-v0.25.2/kb/12-params.md create mode 100644 docs/versioned_docs/version-v0.25.2/kb/_category_.json create mode 100644 docs/versioned_docs/version-v0.25.2/migration/_category_.json create mode 100644 docs/versioned_docs/version-v0.25.2/migration/v0.18.md create mode 100644 docs/versioned_docs/version-v0.25.2/migration/v0.19.2.md create mode 100644 docs/versioned_docs/version-v0.25.2/migration/v0.20.0.md create mode 100644 docs/versioned_docs/version-v0.25.2/migration/v0.22.0.md create mode 100644 docs/versioned_docs/version-v0.25.2/migration/v0.24.0.md create mode 100644 docs/versioned_docs/version-v0.25.2/migration/v0.25.0.md create mode 100644 docs/versioned_docs/version-v0.25.2/network/01-introduction.md create mode 100644 docs/versioned_docs/version-v0.25.2/network/02-coordinator.md create mode 100644 docs/versioned_docs/version-v0.25.2/network/03-validator.md create mode 100644 docs/versioned_docs/version-v0.25.2/network/_category_.json create mode 100644 docs/versioned_docs/version-v0.25.2/packages/_category_.json create mode 100644 docs/versioned_docs/version-v0.25.2/packages/cosmostxcollector.md create mode 100644 docs/versioned_sidebars/version-v0.25.2-sidebars.json create mode 100644 docs/versions.json diff --git a/.github/workflows/gen-docs-version.yml b/.github/workflows/gen-docs-version.yml new file mode 100644 index 0000000000..fd42d0d73c --- /dev/null +++ b/.github/workflows/gen-docs-version.yml @@ -0,0 +1,43 @@ +name: Docusaurus add version +on: + release: + types: [published] + +jobs: + gen-docs-version: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Cache node_modules + uses: actions/cache@v3 + with: + path: docs/node_modules + key: node_modules-${{ hashFiles('**/yarn.lock') }} + + - name: Setup node + uses: actions/setup-node@v3 + with: + node-version: 16.x + cache: yarn + cache-dependency-path: docs/yarn.lock + + - name: Install Dependencies + run: yarn install + working-directory: ./docs + + - name: Generate docusaurus docs for ${{ github.ref_name }} + run: yarn run docusaurus docs:version ${{ github.ref_name }} + working-directory: ./docs + + - name: Create Pull Request + uses: peter-evans/create-pull-request@v4 + with: + title: 'chore: docusaurus deploy version ${{ github.ref_name }}' + commit-message: 'chore(docs): deploy version ${{ github.ref_name }}' + body: '' + base: main + branch: chore/docs/new-version + add-paths: | + docs/ diff --git a/docs/docusaurus.config.js b/docs/docusaurus.config.js index 4591a26a20..0209621c3f 100644 --- a/docs/docusaurus.config.js +++ b/docs/docusaurus.config.js @@ -41,6 +41,14 @@ const config = { /** @type {import('@docusaurus/preset-classic').Options} */ ({ docs: { + versions: { + current: { + label: "nightly", + path: "nightly", + badge: true, + banner: "unreleased", // put 'none' to remove + }, + }, sidebarPath: require.resolve("./sidebars.js"), routeBasePath: "/", }, @@ -87,6 +95,11 @@ const config = { label: `Back to Ignite`, position: "right", }, + { + type: "docsVersionDropdown", + position: "left", + dropdownActiveClassDisabled: true, + }, ], }, footer: { diff --git a/docs/readme.md b/docs/readme.md index bddf21cb32..53284bac9d 100644 --- a/docs/readme.md +++ b/docs/readme.md @@ -39,3 +39,10 @@ GIT_USER= yarn deploy ``` If you are using GitHub pages for hosting, this command is a convenient way to build the website and push to the `gh-pages` branch. + +### Add new version + +```bash +$ yarn run docusaurus docs:version v0.25.2 +``` + diff --git a/docs/versioned_docs/version-v0.25.2/06-bounty.md b/docs/versioned_docs/version-v0.25.2/06-bounty.md new file mode 100644 index 0000000000..1f35c86fd7 --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/06-bounty.md @@ -0,0 +1,14 @@ +--- +sidebar_position: 8 +description: Ignite CLI bounty program incentives and rewards. +--- + +# Bounty program + +Our Ignite CLI bounty program provides incentives for your participation and pays rewards. If you know Golang, follow the bounty issues, write code, close issues, and get rewarded. + +Do your bounty hunting in our repo. Track new, in-progress, and completed bounties on the [Bounty board](https://github.com/ignite/cli/projects/5) in GitHub. + +For details on the Ignite CLI bounty program, join the #bounty channel in [Ignite Discord](https://discord.com/invite/ignite). + +New bounties are posted and claimed in Discord on the #bounty announcement channel. diff --git a/docs/versioned_docs/version-v0.25.2/07-cli.md b/docs/versioned_docs/version-v0.25.2/07-cli.md new file mode 100644 index 0000000000..68fb0603cb --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/07-cli.md @@ -0,0 +1,3378 @@ +--- +sidebar_position: 7 +description: Ignite CLI docs. +--- + +# CLI Reference + +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 github.com/username/mars + +**Options** + +``` + -h, --help help for ignite +``` + +**SEE ALSO** + +* [ignite account](#ignite-account) - Commands for managing Ignite accounts +* [ignite chain](#ignite-chain) - Build, initialize and start a blockchain node or perform other actions on the blockchain +* [ignite completion](#ignite-completion) - Generate the autocompletion script for the specified shell +* [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 calls to a live blockchain node +* [ignite relayer](#ignite-relayer) - Connect blockchains by using IBC protocol +* [ignite scaffold](#ignite-scaffold) - Scaffold a new blockchain, module, message, query, and more +* [ignite tools](#ignite-tools) - Tools for advanced users +* [ignite version](#ignite-version) - Print the current build information + + +## ignite account + +Commands for managing 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. + +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 The 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 The accounts keyring directory (default "/home/runner/.ignite/accounts") +``` + +**SEE ALSO** + +* [ignite account](#ignite-account) - Commands for managing 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 The accounts keyring directory (default "/home/runner/.ignite/accounts") +``` + +**SEE ALSO** + +* [ignite account](#ignite-account) - Commands for managing 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 The accounts keyring directory (default "/home/runner/.ignite/accounts") +``` + +**SEE ALSO** + +* [ignite account](#ignite-account) - Commands for managing 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 The accounts keyring directory (default "/home/runner/.ignite/accounts") +``` + +**SEE ALSO** + +* [ignite account](#ignite-account) - Commands for managing 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 The accounts keyring directory (default "/home/runner/.ignite/accounts") +``` + +**SEE ALSO** + +* [ignite account](#ignite-account) - Commands for managing 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 The accounts keyring directory (default "/home/runner/.ignite/accounts") +``` + +**SEE ALSO** + +* [ignite account](#ignite-account) - Commands for managing Ignite accounts + + +## ignite chain + +Build, initialize and start a blockchain node or perform other actions on the blockchain + +**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 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 faucet](#ignite-chain-faucet) - Send coins to an account +* [ignite chain init](#ignite-chain-init) - Initialize your chain +* [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 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** + +``` + --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 build + -o, --output string binary output path + -p, --path string path of the app (default ".") + --proto-all-modules enables proto code generation for 3rd party modules used in your chain. Available only without the --release flag + --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 ignite config file (default: ./config.yml) + -y, --yes answers interactive yes/no questions with yes +``` + +**SEE ALSO** + +* [ignite chain](#ignite-chain) - Build, initialize and start a blockchain node or perform other actions on the blockchain + + +## ignite chain faucet + +Send coins to an account + +``` +ignite chain faucet [address] [coin<,...>] [flags] +``` + +**Options** + +``` + -h, --help help for faucet + --home string home directory used for blockchains + -p, --path string path of the app (default ".") + -v, --verbose Verbose output +``` + +**Options inherited from parent commands** + +``` + -c, --config string ignite config file (default: ./config.yml) + -y, --yes answers interactive yes/no questions with yes +``` + +**SEE ALSO** + +* [ignite chain](#ignite-chain) - Build, initialize and start a blockchain node or perform other actions on the blockchain + + +## 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: + +init: + 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: + +init: + 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** + +``` + --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 init + --home string home directory used for blockchains + -p, --path string path of the app (default ".") + --skip-proto skip file generation from proto +``` + +**Options inherited from parent commands** + +``` + -c, --config string ignite config file (default: ./config.yml) + -y, --yes answers interactive yes/no questions with yes +``` + +**SEE ALSO** + +* [ignite chain](#ignite-chain) - Build, initialize and start a blockchain node or perform other actions on the blockchain + + +## 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** + +``` + --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 + -h, --help help for serve + --home string home directory used for blockchains + -p, --path string path of the app (default ".") + --proto-all-modules enables proto code generation for 3rd party modules used in your chain + --quit-on-fail Quit program if the app fails to start + -r, --reset-once Reset of the app state on first start + --skip-proto skip file generation from proto + -v, --verbose Verbose output +``` + +**Options inherited from parent commands** + +``` + -c, --config string ignite config file (default: ./config.yml) + -y, --yes answers interactive yes/no questions with yes +``` + +**SEE ALSO** + +* [ignite chain](#ignite-chain) - Build, initialize and start a blockchain node or perform other actions on the blockchain + + +## 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 ignite config file (default: ./config.yml) + -y, --yes answers interactive yes/no questions with yes +``` + +**SEE ALSO** + +* [ignite chain](#ignite-chain) - Build, initialize and start a blockchain node or perform other actions on the blockchain + + +## ignite completion + +Generate the autocompletion script for the specified shell + +**Synopsis** + +Generate the autocompletion script for ignite for the specified shell. +See each sub-command's help for details on how to use the generated script. + + +**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 completion bash](#ignite-completion-bash) - Generate the autocompletion script for bash +* [ignite completion fish](#ignite-completion-fish) - Generate the autocompletion script for fish +* [ignite completion powershell](#ignite-completion-powershell) - Generate the autocompletion script for powershell +* [ignite completion zsh](#ignite-completion-zsh) - Generate the autocompletion script for zsh + + +## ignite completion bash + +Generate the autocompletion script for bash + +**Synopsis** + +Generate the autocompletion script for the bash shell. + +This script depends on the 'bash-completion' package. +If it is not installed already, you can install it via your OS's package manager. + +To load completions in your current shell session: + + source <(ignite completion bash) + +To load completions for every new session, execute once: + +**#### Linux:** + + ignite completion bash > /etc/bash_completion.d/ignite + +**#### macOS:** + + ignite completion bash > $(brew --prefix)/etc/bash_completion.d/ignite + +You will need to start a new shell for this setup to take effect. + + +``` +ignite completion bash +``` + +**Options** + +``` + -h, --help help for bash + --no-descriptions disable completion descriptions +``` + +**SEE ALSO** + +* [ignite completion](#ignite-completion) - Generate the autocompletion script for the specified shell + + +## ignite completion fish + +Generate the autocompletion script for fish + +**Synopsis** + +Generate the autocompletion script for the fish shell. + +To load completions in your current shell session: + + ignite completion fish | source + +To load completions for every new session, execute once: + + ignite completion fish > ~/.config/fish/completions/ignite.fish + +You will need to start a new shell for this setup to take effect. + + +``` +ignite completion fish [flags] +``` + +**Options** + +``` + -h, --help help for fish + --no-descriptions disable completion descriptions +``` + +**SEE ALSO** + +* [ignite completion](#ignite-completion) - Generate the autocompletion script for the specified shell + + +## ignite completion powershell + +Generate the autocompletion script for powershell + +**Synopsis** + +Generate the autocompletion script for powershell. + +To load completions in your current shell session: + + ignite completion powershell | Out-String | Invoke-Expression + +To load completions for every new session, add the output of the above command +to your powershell profile. + + +``` +ignite completion powershell [flags] +``` + +**Options** + +``` + -h, --help help for powershell + --no-descriptions disable completion descriptions +``` + +**SEE ALSO** + +* [ignite completion](#ignite-completion) - Generate the autocompletion script for the specified shell + + +## ignite completion zsh + +Generate the autocompletion script for zsh + +**Synopsis** + +Generate the autocompletion script for the zsh shell. + +If shell completion is not already enabled in your environment you will need +to enable it. You can execute the following once: + + echo "autoload -U compinit; compinit" >> ~/.zshrc + +To load completions in your current shell session: + + source <(ignite completion zsh); compdef _ignite ignite + +To load completions for every new session, execute once: + +**#### Linux:** + + ignite completion zsh > "${fpath[1]}/_ignite" + +**#### macOS:** + + ignite completion zsh > $(brew --prefix)/share/zsh/site-functions/_ignite + +You will need to start a new shell for this setup to take effect. + + +``` +ignite completion zsh [flags] +``` + +**Options** + +``` + -h, --help help for zsh + --no-descriptions disable completion descriptions +``` + +**SEE ALSO** + +* [ignite completion](#ignite-completion) - Generate the autocompletion script for the specified shell + + +## 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) + -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 dart](#ignite-generate-dart) - Generate a Dart client +* [ignite generate openapi](#ignite-generate-openapi) - Generate generates an OpenAPI spec for your chain from your config.yml +* [ignite generate proto-go](#ignite-generate-proto-go) - Generate proto based Go code needed for the app's source code +* [ignite generate ts-client](#ignite-generate-ts-client) - Generate Typescript client for your chain's frontend +* [ignite generate vuex](#ignite-generate-vuex) - Generate Typescript client and Vuex stores for your chain's frontend from your `config.yml` file + + +## ignite generate dart + +Generate a Dart client + +``` +ignite generate dart [flags] +``` + +**Options** + +``` + -h, --help help for dart + -y, --yes answers interactive yes/no questions with yes +``` + +**Options inherited from parent commands** + +``` + --clear-cache clear the build cache (advanced) + -p, --path string path of the app (default ".") +``` + +**SEE ALSO** + +* [ignite generate](#ignite-generate) - Generate clients, API docs from source code + + +## ignite generate openapi + +Generate generates an OpenAPI spec for your chain from your config.yml + +``` +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) + -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 + +Generate proto based Go code needed for the app's source code + +``` +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) + -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 + +Generate Typescript client for your chain's frontend + +``` +ignite generate ts-client [flags] +``` + +**Options** + +``` + -h, --help help for ts-client + -o, --output string typescript client output path + -y, --yes answers interactive yes/no questions with yes +``` + +**Options inherited from parent commands** + +``` + --clear-cache clear the build cache (advanced) + -p, --path string path of the app (default ".") +``` + +**SEE ALSO** + +* [ignite generate](#ignite-generate) - Generate clients, API docs from source code + + +## ignite generate vuex + +Generate Typescript client and Vuex stores for your chain's frontend from your `config.yml` file + +``` +ignite generate vuex [flags] +``` + +**Options** + +``` + -h, --help help for vuex + --proto-all-modules enables proto code generation for 3rd party modules used in your chain + -y, --yes answers interactive yes/no questions with yes +``` + +**Options inherited from parent commands** + +``` + --clear-cache clear the build cache (advanced) + -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 "http://178.128.251.28:4500") + --spn-node-address string SPN node address (default "http://178.128.251.28:26657") +``` + +**SEE ALSO** + +* [ignite](#ignite) - Ignite CLI offers everything you need to scaffold, test, build, and launch your blockchain +* [ignite network campaign](#ignite-network-campaign) - Handle campaigns +* [ignite network chain](#ignite-network-chain) - Build networks +* [ignite network coordinator](#ignite-network-coordinator) - Interact with coordinator profiles +* [ignite network profile](#ignite-network-profile) - Show the address profile info +* [ignite network request](#ignite-network-request) - Handle requests +* [ignite network reward](#ignite-network-reward) - Manage network rewards +* [ignite network validator](#ignite-network-validator) - Interact with validator profiles + + +## ignite network campaign + +Handle campaigns + +**Options** + +``` + -h, --help help for campaign +``` + +**Options inherited from parent commands** + +``` + --local Use local SPN network + --nightly Use nightly SPN network + --spn-faucet-address string SPN faucet address (default "http://178.128.251.28:4500") + --spn-node-address string SPN node address (default "http://178.128.251.28:26657") +``` + +**SEE ALSO** + +* [ignite network](#ignite-network) - Launch a blockchain in production +* [ignite network campaign account](#ignite-network-campaign-account) - Handle campaign accounts +* [ignite network campaign create](#ignite-network-campaign-create) - Create a campaign +* [ignite network campaign list](#ignite-network-campaign-list) - List published campaigns +* [ignite network campaign show](#ignite-network-campaign-show) - Show published campaign +* [ignite network campaign update](#ignite-network-campaign-update) - Update details fo the campaign of the campaign + + +## ignite network campaign account + +Handle campaign accounts + +**Options** + +``` + -h, --help help for account +``` + +**Options inherited from parent commands** + +``` + --local Use local SPN network + --nightly Use nightly SPN network + --spn-faucet-address string SPN faucet address (default "http://178.128.251.28:4500") + --spn-node-address string SPN node address (default "http://178.128.251.28:26657") +``` + +**SEE ALSO** + +* [ignite network campaign](#ignite-network-campaign) - Handle campaigns +* [ignite network campaign account list](#ignite-network-campaign-account-list) - Show all mainnet and mainnet vesting of the campaign + + +## ignite network campaign account list + +Show all mainnet and mainnet vesting of the campaign + +``` +ignite network campaign account list [campaign-id] [flags] +``` + +**Options** + +``` + -h, --help help for list +``` + +**Options inherited from parent commands** + +``` + --local Use local SPN network + --nightly Use nightly SPN network + --spn-faucet-address string SPN faucet address (default "http://178.128.251.28:4500") + --spn-node-address string SPN node address (default "http://178.128.251.28:26657") +``` + +**SEE ALSO** + +* [ignite network campaign account](#ignite-network-campaign-account) - Handle campaign accounts + + +## ignite network campaign create + +Create a campaign + +``` +ignite network campaign create [name] [total-supply] [flags] +``` + +**Options** + +``` + --from string account name to use for sending transactions to SPN (default "default") + -h, --help help for create + --home string home directory used for blockchains + --keyring-backend string Keyring backend to store your account keys (default "test") + --keyring-dir string The accounts keyring directory (default "/home/runner/.ignite/accounts") + --metadata string Add a metada to the chain +``` + +**Options inherited from parent commands** + +``` + --local Use local SPN network + --nightly Use nightly SPN network + --spn-faucet-address string SPN faucet address (default "http://178.128.251.28:4500") + --spn-node-address string SPN node address (default "http://178.128.251.28:26657") +``` + +**SEE ALSO** + +* [ignite network campaign](#ignite-network-campaign) - Handle campaigns + + +## ignite network campaign list + +List published campaigns + +``` +ignite network campaign list [flags] +``` + +**Options** + +``` + -h, --help help for list +``` + +**Options inherited from parent commands** + +``` + --local Use local SPN network + --nightly Use nightly SPN network + --spn-faucet-address string SPN faucet address (default "http://178.128.251.28:4500") + --spn-node-address string SPN node address (default "http://178.128.251.28:26657") +``` + +**SEE ALSO** + +* [ignite network campaign](#ignite-network-campaign) - Handle campaigns + + +## ignite network campaign show + +Show published campaign + +``` +ignite network campaign show [campaign-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 "http://178.128.251.28:4500") + --spn-node-address string SPN node address (default "http://178.128.251.28:26657") +``` + +**SEE ALSO** + +* [ignite network campaign](#ignite-network-campaign) - Handle campaigns + + +## ignite network campaign update + +Update details fo the campaign of the campaign + +``` +ignite network campaign update [campaign-id] [flags] +``` + +**Options** + +``` + --from string account name to use for sending transactions to SPN (default "default") + -h, --help help for update + --keyring-backend string Keyring backend to store your account keys (default "test") + --keyring-dir string The accounts keyring directory (default "/home/runner/.ignite/accounts") + --metadata string Update the campaign metadata + --name string Update the campaign name + --total-supply string Update the total of the mainnet of a campaign +``` + +**Options inherited from parent commands** + +``` + --local Use local SPN network + --nightly Use nightly SPN network + --spn-faucet-address string SPN faucet address (default "http://178.128.251.28:4500") + --spn-node-address string SPN node address (default "http://178.128.251.28:26657") +``` + +**SEE ALSO** + +* [ignite network campaign](#ignite-network-campaign) - Handle campaigns + + +## ignite network chain + +Build networks + +**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 "http://178.128.251.28:4500") + --spn-node-address string SPN node address (default "http://178.128.251.28:26657") +``` + +**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) - Launch a network as a coordinator +* [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 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 + +``` +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 The 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 "http://178.128.251.28:4500") + --spn-node-address string SPN node address (default "http://178.128.251.28:26657") +``` + +**SEE ALSO** + +* [ignite network chain](#ignite-network-chain) - Build networks + + +## 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 "http://178.128.251.28:4500") + --spn-node-address string SPN node address (default "http://178.128.251.28:26657") +``` + +**SEE ALSO** + +* [ignite network chain](#ignite-network-chain) - Build networks + + +## ignite network chain join + +Request to join a network as a validator + +``` +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 The 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 "http://178.128.251.28:4500") + --spn-node-address string SPN node address (default "http://178.128.251.28:26657") +``` + +**SEE ALSO** + +* [ignite network chain](#ignite-network-chain) - Build networks + + +## ignite network chain launch + +Launch a network as a coordinator + +``` +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 The 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 "http://178.128.251.28:4500") + --spn-node-address string SPN node address (default "http://178.128.251.28:26657") +``` + +**SEE ALSO** + +* [ignite network chain](#ignite-network-chain) - Build networks + + +## 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 "http://178.128.251.28:4500") + --spn-node-address string SPN node address (default "http://178.128.251.28:26657") +``` + +**SEE ALSO** + +* [ignite network chain](#ignite-network-chain) - Build networks + + +## ignite network chain prepare + +Prepare the chain for launch + +``` +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 The 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 "http://178.128.251.28:4500") + --spn-node-address string SPN node address (default "http://178.128.251.28:26657") +``` + +**SEE ALSO** + +* [ignite network chain](#ignite-network-chain) - Build networks + + +## ignite network chain publish + +Publish a new chain to start a new network + +``` +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 + --campaign uint Campaign ID to use for this network + --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 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 The accounts keyring directory (default "/home/runner/.ignite/accounts") + --mainnet Initialize a mainnet campaign + --metadata string Add a campaign metadata + --no-check Skip verifying chain's integrity + --reward.coins string Reward coins + --reward.height int Last reward height + --shares string Add shares for the campaign + --tag string Git tag to use for the repo + --total-supply string Add a total of the mainnet of a campaign + -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 "http://178.128.251.28:4500") + --spn-node-address string SPN node address (default "http://178.128.251.28:26657") +``` + +**SEE ALSO** + +* [ignite network chain](#ignite-network-chain) - Build networks + + +## ignite network chain revert-launch + +Revert launch a network as a coordinator + +``` +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 The 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 "http://178.128.251.28:4500") + --spn-node-address string SPN node address (default "http://178.128.251.28:26657") +``` + +**SEE ALSO** + +* [ignite network chain](#ignite-network-chain) - Build networks + + +## 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 "http://178.128.251.28:4500") + --spn-node-address string SPN node address (default "http://178.128.251.28:26657") +``` + +**SEE ALSO** + +* [ignite network chain](#ignite-network-chain) - Build networks +* [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** + +``` + --address-prefix string Account address prefix (default "spn") + -h, --help help for accounts +``` + +**Options inherited from parent commands** + +``` + --local Use local SPN network + --nightly Use nightly SPN network + --spn-faucet-address string SPN faucet address (default "http://178.128.251.28:4500") + --spn-node-address string SPN node address (default "http://178.128.251.28:26657") +``` + +**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 "http://178.128.251.28:4500") + --spn-node-address string SPN node address (default "http://178.128.251.28:26657") +``` + +**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 "http://178.128.251.28:4500") + --spn-node-address string SPN node address (default "http://178.128.251.28:26657") +``` + +**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 "http://178.128.251.28:4500") + --spn-node-address string SPN node address (default "http://178.128.251.28:26657") +``` + +**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** + +``` + --address-prefix string Account address prefix (default "spn") + -h, --help help for validators +``` + +**Options inherited from parent commands** + +``` + --local Use local SPN network + --nightly Use nightly SPN network + --spn-faucet-address string SPN faucet address (default "http://178.128.251.28:4500") + --spn-node-address string SPN node address (default "http://178.128.251.28:26657") +``` + +**SEE ALSO** + +* [ignite network chain show](#ignite-network-chain-show) - Show details of a chain + + +## ignite network coordinator + +Interact with coordinator profiles + +**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 "http://178.128.251.28:4500") + --spn-node-address string SPN node address (default "http://178.128.251.28:26657") +``` + +**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 The 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 "http://178.128.251.28:4500") + --spn-node-address string SPN node address (default "http://178.128.251.28:26657") +``` + +**SEE ALSO** + +* [ignite network coordinator](#ignite-network-coordinator) - Interact with coordinator profiles + + +## 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 "http://178.128.251.28:4500") + --spn-node-address string SPN node address (default "http://178.128.251.28:26657") +``` + +**SEE ALSO** + +* [ignite network coordinator](#ignite-network-coordinator) - Interact with coordinator profiles + + +## ignite network profile + +Show the address profile info + +``` +ignite network profile [campaign-id] [flags] +``` + +**Options** + +``` + --from string account name to use for sending transactions to SPN (default "default") + -h, --help help for profile + --home string home directory used for blockchains + --keyring-backend string Keyring backend to store your account keys (default "test") +``` + +**Options inherited from parent commands** + +``` + --local Use local SPN network + --nightly Use nightly SPN network + --spn-faucet-address string SPN faucet address (default "http://178.128.251.28:4500") + --spn-node-address string SPN node address (default "http://178.128.251.28:26657") +``` + +**SEE ALSO** + +* [ignite network](#ignite-network) - Launch a blockchain in production + + +## ignite network request + +Handle requests + +**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 "http://178.128.251.28:4500") + --spn-node-address string SPN node address (default "http://178.128.251.28:26657") +``` + +**SEE ALSO** + +* [ignite network](#ignite-network) - Launch a blockchain in production +* [ignite network request approve](#ignite-network-request-approve) - Approve requests +* [ignite network request list](#ignite-network-request-list) - List all pending requests +* [ignite network request reject](#ignite-network-request-reject) - Reject requests +* [ignite network request show](#ignite-network-request-show) - Show pending requests details +* [ignite network request verify](#ignite-network-request-verify) - Verify the request and simulate the chain genesis from them + + +## ignite network request approve + +Approve requests + +``` +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 The 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 "http://178.128.251.28:4500") + --spn-node-address string SPN node address (default "http://178.128.251.28:26657") +``` + +**SEE ALSO** + +* [ignite network request](#ignite-network-request) - Handle requests + + +## ignite network request list + +List all pending requests + +``` +ignite network request list [launch-id] [flags] +``` + +**Options** + +``` + --address-prefix string Account address prefix (default "spn") + -h, --help help for list +``` + +**Options inherited from parent commands** + +``` + --local Use local SPN network + --nightly Use nightly SPN network + --spn-faucet-address string SPN faucet address (default "http://178.128.251.28:4500") + --spn-node-address string SPN node address (default "http://178.128.251.28:26657") +``` + +**SEE ALSO** + +* [ignite network request](#ignite-network-request) - Handle requests + + +## ignite network request reject + +Reject requests + +``` +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 The 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 "http://178.128.251.28:4500") + --spn-node-address string SPN node address (default "http://178.128.251.28:26657") +``` + +**SEE ALSO** + +* [ignite network request](#ignite-network-request) - Handle requests + + +## ignite network request show + +Show pending requests details + +``` +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 "http://178.128.251.28:4500") + --spn-node-address string SPN node address (default "http://178.128.251.28:26657") +``` + +**SEE ALSO** + +* [ignite network request](#ignite-network-request) - Handle requests + + +## ignite network request verify + +Verify the request and simulate the chain genesis from 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 The 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 "http://178.128.251.28:4500") + --spn-node-address string SPN node address (default "http://178.128.251.28:26657") +``` + +**SEE ALSO** + +* [ignite network request](#ignite-network-request) - Handle requests + + +## ignite network reward + +Manage network rewards + +**Options** + +``` + -h, --help help for reward +``` + +**Options inherited from parent commands** + +``` + --local Use local SPN network + --nightly Use nightly SPN network + --spn-faucet-address string SPN faucet address (default "http://178.128.251.28:4500") + --spn-node-address string SPN node address (default "http://178.128.251.28:26657") +``` + +**SEE ALSO** + +* [ignite network](#ignite-network) - Launch a blockchain in production +* [ignite network reward release](#ignite-network-reward-release) - Connect the monitoring modules of launched chains with SPN +* [ignite network reward set](#ignite-network-reward-set) - set a network chain reward + + +## ignite network reward release + +Connect the monitoring modules of launched chains with SPN + +``` +ignite network reward release [launch-id] [chain-rpc] [flags] +``` + +**Options** + +``` + --create-client-only Only create the network client id + --from string account name to use for sending transactions to SPN (default "default") + -h, --help help for release + --keyring-backend string Keyring backend to store your account keys (default "test") + --spn-gaslimit int Gas limit used for transactions on SPN (default 400000) + --spn-gasprice string Gas price used for transactions on SPN (default "0.0000025uspn") + --testnet-account string testnet chain Account (default "default") + --testnet-faucet string Faucet address of the testnet chain + --testnet-gaslimit int Gas limit used for transactions on testnet chain (default 400000) + --testnet-gasprice string Gas price used for transactions on testnet chain (default "0.0000025stake") + --testnet-prefix string Address prefix of the testnet chain (default "cosmos") +``` + +**Options inherited from parent commands** + +``` + --local Use local SPN network + --nightly Use nightly SPN network + --spn-faucet-address string SPN faucet address (default "http://178.128.251.28:4500") + --spn-node-address string SPN node address (default "http://178.128.251.28:26657") +``` + +**SEE ALSO** + +* [ignite network reward](#ignite-network-reward) - Manage network rewards + + +## ignite network reward set + +set a network chain reward + +``` +ignite network reward set [launch-id] [last-reward-height] [coins] [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 The 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 "http://178.128.251.28:4500") + --spn-node-address string SPN node address (default "http://178.128.251.28:26657") +``` + +**SEE ALSO** + +* [ignite network reward](#ignite-network-reward) - Manage network rewards + + +## ignite network validator + +Interact with validator profiles + +**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 "http://178.128.251.28:4500") + --spn-node-address string SPN node address (default "http://178.128.251.28:26657") +``` + +**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 The 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 "http://178.128.251.28:4500") + --spn-node-address string SPN node address (default "http://178.128.251.28:26657") +``` + +**SEE ALSO** + +* [ignite network validator](#ignite-network-validator) - Interact with validator profiles + + +## 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 "http://178.128.251.28:4500") + --spn-node-address string SPN node address (default "http://178.128.251.28:26657") +``` + +**SEE ALSO** + +* [ignite network validator](#ignite-network-validator) - Interact with validator profiles + + +## ignite node + +Make calls to a live blockchain node + +**Options** + +``` + -h, --help help for node + --node string : to tendermint rpc interface for this chain (default "https://rpc.cosmos.network:443") +``` + +**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.network:443") +``` + +**SEE ALSO** + +* [ignite node](#ignite-node) - Make calls 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.network:443") +``` + +**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 home directory used for blockchains + --keyring-backend string Keyring backend to store your account keys (default "test") + --keyring-dir string The 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.network:443") +``` + +**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.network:443") +``` + +**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-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 home directory used for blockchains + --keyring-backend string Keyring backend to store your account keys (default "test") + --keyring-dir string The 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.network:443") +``` + +**SEE ALSO** + +* [ignite node](#ignite-node) - Make calls 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-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 home directory used for blockchains + --keyring-backend string Keyring backend to store your account keys (default "test") + --keyring-dir string The accounts keyring directory (default "/home/runner/.ignite/accounts") + --node string : to tendermint rpc interface for this chain (default "https://rpc.cosmos.network:443") +``` + +**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-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 home directory used for blockchains + --keyring-backend string Keyring backend to store your account keys (default "test") + --keyring-dir string The accounts keyring directory (default "/home/runner/.ignite/accounts") + --node string : to tendermint rpc interface for this chain (default "https://rpc.cosmos.network:443") +``` + +**SEE ALSO** + +* [ignite node tx bank](#ignite-node-tx-bank) - Bank transaction subcommands + + +## ignite relayer + +Connect blockchains by using IBC protocol + +**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 relayer configure](#ignite-relayer-configure) - Configure source and target chains for relaying +* [ignite relayer connect](#ignite-relayer-connect) - Link chains associated with paths and start relaying tx packets in between + + +## ignite relayer configure + +Configure source and target chains for relaying + +``` +ignite relayer configure [flags] +``` + +**Options** + +``` + -a, --advanced Advanced configuration options for custom IBC modules + -h, --help help for configure + --keyring-backend string Keyring backend to store your account keys (default "test") + --keyring-dir string The accounts keyring directory (default "/home/runner/.ignite/accounts") + --ordered Set the channel as ordered + -r, --reset Reset the relayer config + --source-account string Source Account + --source-client-id string use a custom client id for source + --source-faucet string Faucet address of the source chain + --source-gaslimit int Gas limit used for transactions on source chain + --source-gasprice string Gas price used for transactions on source chain + --source-port string IBC port ID on the source chain + --source-prefix string Address prefix of the source chain + --source-rpc string RPC address of the source chain + --source-version string Module version on the source chain + --target-account string Target Account + --target-client-id string use a custom client id for target + --target-faucet string Faucet address of the target chain + --target-gaslimit int Gas limit used for transactions on target chain + --target-gasprice string Gas price used for transactions on target chain + --target-port string IBC port ID on the target chain + --target-prefix string Address prefix of the target chain + --target-rpc string RPC address of the target chain + --target-version string Module version on the target chain +``` + +**SEE ALSO** + +* [ignite relayer](#ignite-relayer) - Connect blockchains by using IBC protocol + + +## ignite relayer connect + +Link chains associated with paths and start relaying tx packets in between + +``` +ignite relayer connect [,...] [flags] +``` + +**Options** + +``` + -h, --help help for connect + --keyring-backend string Keyring backend to store your account keys (default "test") + --keyring-dir string The accounts keyring directory (default "/home/runner/.ignite/accounts") +``` + +**SEE ALSO** + +* [ignite relayer](#ignite-relayer) - Connect blockchains by using IBC protocol + + +## ignite scaffold + +Scaffold 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 band](#ignite-scaffold-band) - Scaffold an IBC BandChain query oracle to request real-time data +* [ignite scaffold chain](#ignite-scaffold-chain) - Fully-featured Cosmos SDK blockchain +* [ignite scaffold flutter](#ignite-scaffold-flutter) - A Flutter app for your chain +* [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) - Scaffold a Cosmos SDK module +* [ignite scaffold packet](#ignite-scaffold-packet) - Message for sending an IBC packet +* [ignite scaffold query](#ignite-scaffold-query) - Query to get data from the blockchain +* [ignite scaffold single](#ignite-scaffold-single) - CRUD for data stored in a single location +* [ignite scaffold type](#ignite-scaffold-type) - Scaffold only a type definition +* [ignite scaffold vue](#ignite-scaffold-vue) - Vue 3 web app template + + +## ignite scaffold band + +Scaffold an IBC BandChain query oracle to request real-time data + +**Synopsis** + +Scaffold an IBC BandChain query oracle to request real-time data from BandChain scripts in a specific IBC-enabled Cosmos SDK module + +``` +ignite scaffold band [queryName] --module [moduleName] [flags] +``` + +**Options** + +``` + --clear-cache clear the build cache (advanced) + -h, --help help for band + --module string IBC Module to add the packet into + -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) - Scaffold a new blockchain, module, message, query, and more + + +## ignite scaffold chain + +Fully-featured 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 + --no-module Create a project without a default module + -p, --path string Create a project in a specific path (default ".") +``` + +**SEE ALSO** + +* [ignite scaffold](#ignite-scaffold) - Scaffold a new blockchain, module, message, query, and more + + +## ignite scaffold flutter + +A Flutter app for your chain + +``` +ignite scaffold flutter [flags] +``` + +**Options** + +``` + -h, --help help for flutter + -p, --path string path to scaffold content of the Flutter app (default "./flutter") + -y, --yes answers interactive yes/no questions with yes +``` + +**SEE ALSO** + +* [ignite scaffold](#ignite-scaffold) - Scaffold 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 custom types: + + ignite scaffold list pool amount:coin tags:array.string height:int + +Ignite also supports custom types: + + ignite scaffold list product-details name description + + 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. + +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 Module to add into. Default is app's main module + --no-message Disable CRUD interaction messages scaffolding + --no-simulation Disable CRUD simulation 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) - Scaffold 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 "list" 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 + +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 + +To customize the index, use the "--index" flag. Multiple indices can be +provided, which simplifies querying values. For example: + + ignite scaffold map product price desc --index category,guid + +With this command, you would get a "Product" value indexed by both a category +and a GUID (globally unique ID). This will let you programmatically fetch +product values that have the same category but are using different GUIDs. + +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. + + +``` +ignite scaffold map NAME [field]... [flags] +``` + +**Options** + +``` + --clear-cache clear the build cache (advanced) + -h, --help help for map + --index strings fields that index the value (default [index]) + --module string Module to add into. Default is app's main module + --no-message Disable CRUD interaction messages scaffolding + --no-simulation Disable CRUD simulation 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) - Scaffold 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. + +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] [field2] ... [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) - Scaffold a new blockchain, module, message, query, and more + + +## ignite scaffold module + +Scaffold a 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 + +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 module dependencies (e.g. --dep account,bank) + -h, --help help for module + --ibc scaffold an IBC module + --ordering string channel ordering of the IBC module [none|ordered|unordered] (default "none") + --params strings scaffold module params + -p, --path string path of the app (default ".") + --require-registration if true command will fail if module can't be registered + -y, --yes answers interactive yes/no questions with yes +``` + +**SEE ALSO** + +* [ignite scaffold](#ignite-scaffold) - Scaffold 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) - Scaffold a new blockchain, module, message, query, and more + + +## ignite scaffold query + +Query to get data from the blockchain + +``` +ignite scaffold query [name] [request_field1] [request_field2] ... [flags] +``` + +**Options** + +``` + --clear-cache clear the build cache (advanced) + -d, --desc string Description of the command + -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) - Scaffold a new blockchain, module, message, query, and more + + +## ignite scaffold single + +CRUD for data stored in a single location + +``` +ignite scaffold single NAME [field]... [flags] +``` + +**Options** + +``` + --clear-cache clear the build cache (advanced) + -h, --help help for single + --module string Module to add into. Default is app's main module + --no-message Disable CRUD interaction messages scaffolding + --no-simulation Disable CRUD simulation 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) - Scaffold a new blockchain, module, message, query, and more + + +## ignite scaffold type + +Scaffold only a type definition + +``` +ignite scaffold type NAME [field]... [flags] +``` + +**Options** + +``` + --clear-cache clear the build cache (advanced) + -h, --help help for type + --module string Module to add into. Default is app's main module + --no-message Disable CRUD interaction messages scaffolding + --no-simulation Disable CRUD simulation 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) - Scaffold 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) - Scaffold a new blockchain, module, message, query, and more + + +## ignite tools + +Tools for advanced users + +**Options** + +``` + -h, --help help for tools +``` + +**SEE ALSO** + +* [ignite](#ignite) - Ignite CLI offers everything you need to scaffold, test, build, and launch your blockchain +* [ignite tools ibc-relayer](#ignite-tools-ibc-relayer) - Typescript implementation of an IBC relayer +* [ignite tools ibc-setup](#ignite-tools-ibc-setup) - Collection of commands to quickly setup a relayer +* [ignite tools protoc](#ignite-tools-protoc) - Execute the protoc command + + +## ignite tools ibc-relayer + +Typescript implementation of an IBC relayer + +``` +ignite tools ibc-relayer [--] [...] [flags] +``` + +**Examples** + +``` +ignite tools ibc-relayer -- -h +``` + +**Options** + +``` + -h, --help help for ibc-relayer +``` + +**SEE ALSO** + +* [ignite tools](#ignite-tools) - Tools for advanced users + + +## ignite tools ibc-setup + +Collection of commands to quickly setup a relayer + +``` +ignite tools ibc-setup [--] [...] [flags] +``` + +**Examples** + +``` +ignite tools ibc-setup -- -h +ignite tools ibc-setup -- init --src relayer_test_1 --dest relayer_test_2 +``` + +**Options** + +``` + -h, --help help for ibc-setup +``` + +**SEE ALSO** + +* [ignite tools](#ignite-tools) - Tools for advanced users + + +## ignite tools protoc + +Execute the protoc command + +**Synopsis** + +The protoc command. You don't need to setup the global protoc include folder with -I, it's automatically handled + +``` +ignite tools protoc [--] [...] [flags] +``` + +**Examples** + +``` +ignite tools protoc -- --version +``` + +**Options** + +``` + -h, --help help for protoc +``` + +**SEE ALSO** + +* [ignite tools](#ignite-tools) - Tools for advanced users + + +## 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-v0.25.2/clients/01-typescript.md b/docs/versioned_docs/version-v0.25.2/clients/01-typescript.md new file mode 100644 index 0000000000..6b60708786 --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/clients/01-typescript.md @@ -0,0 +1,310 @@ +--- +sidebar_position: 1 +description: Information about the generated Typescript client code. +--- + +# Typescript code generation + +The `ignite generate ts-client` command generates a Typescript client for your blockchain project. + +## Client code generation + +A TypeScript (TS) client is automatically generated for your blockchain for custom and standard Cosmos SDK modules. + +To enable client code generation, add the `client` entries to `config.yml`: + +```yaml +client: + typescript: + path: "ts-client" +``` + +A TS client is generated in the `ts-client` directory. + +## Client code regeneration + +By default, the filesystem is watched and the clients are regenerated automatically. Clients for standard Cosmos SDK modules are generated after you scaffold a blockchain. + +To regenerate all clients for custom and standard Cosmos SDK modules, run this command: + +```bash +ignite generate ts-client +``` + +## Preventing client code regeneration + +To prevent regenerating the client, remove the `client:typescript` property from `config.yml`. + +## Setup + +The best way to get started building with the TypeScript client is by using a [Vite](https://vitejs.dev/) boilerplate. Vite provides boilerplates 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 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 +npm install --save-dev @esbuild-plugins/node-globals-polyfill @rollup/plugin-node-resolve +``` + +You must then create the necessary `vite.config.ts` file. + +```typescript +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 as any other npm package. + +## Usage + +The code generated in `ts-client` comes with a `package.json` file ready to publish which you can modify to suit your needs. + +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) and an optional wallet (implementing the CosmJS OfflineSigner interface). + +For example, to connect to a local chain instance running under the Ignite CLI defaults, using a CosmJS wallet: + +```typescript +import { Client } from ''; +import { DirectSecp256k1HdWallet } from "@cosmjs/proto-signing"; + +const mnemonic = "surround miss nominee dream gap cross assault thank captain prosper drop duty group candy wealth weather scale put"; +const wallet = await DirectSecp256k1HdWallet.fromMnemonic(mnemonic); + +const client = new Client({ + apiURL: "http://localhost:1317", + rpcURL: "http://localhost:26657", + prefix: "cosmos" + }, + wallet +); +``` + +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. + +e.g. + +```typescript +const balances = await client.CosmosBankV1Beta1.query.queryAllBalances('cosmos1qqqsyqcyq5rqwzqfys8f67'); +``` + +And for transactions: + +```typescript +const tx_result = await client.CosmosBankV1Beta1.tx.sendMsgSend( + { + value: { + amount: [ + { + amount: '200', + denom: 'token', + }, + ], + fromAddress: 'cosmos1qqqsyqcyq5rqwzqfys8f67', + toAddress: 'cosmos1qqqsyqcyq5rqwzqfys8f67' + }, + fee, + memo + } +); +``` + +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 +import { IgniteClient } from '/client'; +import { Module as CosmosBankV1Beta1 } from '/cosmos.bank.v1beta1' +import { Module as CosmosStakingV1Beta1 } from '/cosmos.staking.v1beta1' +import { DirectSecp256k1HdWallet } from "@cosmjs/proto-signing"; + +const mnemonic = "surround miss nominee dream gap cross assault thank captain prosper drop duty group candy wealth weather scale put"; +const wallet = await DirectSecp256k1HdWallet.fromMnemonic(mnemonic); +const CustomClient = IgniteClient.plugin([CosmosBankV1Beta1, CosmosStakingV1Beta1]); + +const client = new CustomClient({ + apiURL: "http://localhost:1317", + rpcURL: "http://localhost:26657", + prefix: "cosmos" + }, + wallet +); +``` + +You can also construct TX messages separately and send them in a single TX using a global signing client like so: + +```typescript +const msg1 = await client.CosmosBankV1Beta1.tx.msgSend( + { + value: { + amount: [ + { + amount: '200', + denom: 'token', + }, + ], + fromAddress: 'cosmos1qqqsyqcyq5rqwzqfys8f67', + toAddress: 'cosmos1qqqsyqcyq5rqwzqfys8f67' + } + } +); +const msg2 = await client.CosmosBankV1Beta1.tx.msgSend( + { + value: { + amount: [ + { + amount: '200', + denom: 'token', + }, + ], + fromAddress: 'cosmos1qqqsyqcyq5rqwzqfys8f67', + toAddress: 'cosmos1qqqsyqcyq5rqwzqfys8f67' + }, + } +); +const tx_result = await client.signAndBroadcast([msg1,msg2], fee, memo); +``` + +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. + +e.g. + +```typescript +import { queryClient } from '/cosmos.bank.v1beta1'; + +const client = queryClient({ addr: 'http://localhost:1317' }); +const balances = await client.queryAllBalances('cosmos1qqqsyqcyq5rqwzqfys8f67'); +``` + +and + +```typescript +import { txClient } from '/cosmos.bank.v1beta1'; +import { DirectSecp256k1HdWallet } from "@cosmjs/proto-signing"; + +const mnemonic = "surround miss nominee dream gap cross assault thank captain prosper drop duty group candy wealth weather scale put"; +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: 'cosmos1qqqsyqcyq5rqwzqfys8f67', + toAddress: 'cosmos1qqqsyqcyq5rqwzqfys8f67' + }, + fee, + 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 it like so: + + +```typescript +import { Client } from ''; + +const chainId = 'mychain-1' +const client = new Client({ + apiURL: "http://localhost:1317", + rpcURL: "http://localhost:26657", + prefix: "cosmos" + }, + window.keplr.getOfflineSigner(chainId) +); +``` + +The problem is that for a new Ignite CLI scaffolded chain, Keplr has no knowledge of it thus requiring an initial call to [`experimentalSuggestChain()`](https://docs.keplr.app/api/suggest-chain.html) method to add the chain information to the user's Keplr instance. + +The generated client makes this easier by offering a `useKeplr()` method that autodiscovers 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 +import { Client } from ''; + +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 wanted to override these, you could do something like: + + +```typescript +import { Client } from ''; + +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 ''; +import { DirectSecp256k1HdWallet } from "@cosmjs/proto-signing"; + +const mnemonic = "surround miss nominee dream gap cross assault thank captain prosper drop duty group candy wealth weather scale put"; +const wallet = await DirectSecp256k1HdWallet.fromMnemonic(mnemonic); + + +const client = new Client({ + apiURL: "http://localhost:1317", + rpcURL: "http://localhost:26657", + prefix: "cosmos" + } +); +await client.useKeplr(); + +// transact using Keplr Wallet + +client.useSigner(wallet); + +//transact using CosmJS wallet +``` diff --git a/docs/versioned_docs/version-v0.25.2/clients/_category_.json b/docs/versioned_docs/version-v0.25.2/clients/_category_.json new file mode 100644 index 0000000000..41f51709cf --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/clients/_category_.json @@ -0,0 +1,5 @@ +{ + "label": "Clients", + "position": 6, + "link": null + } diff --git a/docs/versioned_docs/version-v0.25.2/contributing/01-contributing.md b/docs/versioned_docs/version-v0.25.2/contributing/01-contributing.md new file mode 100644 index 0000000000..6dda69a194 --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/contributing/01-contributing.md @@ -0,0 +1,73 @@ +--- +sidebar_position: 1 +slug: /contributing +--- + +# Contributing to Ignite CLI docs + +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. + +To set up your environment for success, follow the [technical setup](02-technical-setup.md) guidelines. + +## 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 `develop` 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/github/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://guides.github.com/features/mastering-markdown/) + +## 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 deploy 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-v0.25.2/contributing/02-technical-setup.md b/docs/versioned_docs/version-v0.25.2/contributing/02-technical-setup.md new file mode 100644 index 0000000000..9d1d9a8001 --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/contributing/02-technical-setup.md @@ -0,0 +1,64 @@ +--- +sidebar_position: 1 +--- +# Technical setup + +To ensure you have a successful experience working with our Developer Tutorials content, Ignite recommends this technical setup. + +## Setting up Visual Studio Code + +1. Install [Visual Studio Code](https://vscode-docs.readthedocs.io/en/latest/editor/setup/). +1. Click **Extensions** in the sidebar. +1. Install this extension: + - Go for VS Code The official Go extension for Visual Studio Code +1. When prompted: + - `go get -v golang.org/x/tools/gopls` + - Select `Install all` for all packages + +Be sure to set up [Visual Studio Code](https://code.visualstudio.com/docs/setup/setup-overview) for your environment. + +**Tip** On MacOS, install `code` in $PATH to enable [Launching Visual Studio Code from the command line](https://code.visualstudio.com/docs/setup/mac#_launching-from-the-command-line). Open the Command Palette (Cmd+Shift+P) and type 'shell command'. + +## GitHub integration + +Click the GitHub icon in the sidebar for GitHub integration and follow the prompts. + +## Clone the repos that you work in + +- Fork or clone the repository. + +Internal Ignite users have different permissions. If you're not sure, fork the repo. + +## Terminal tips + +Master your terminal to be happy. + +### iTerm2 terminal emulator + +On macOS, install the [iTerm2](https://iterm2.com/) OSS terminal emulator as a replacement for the default Terminal app. Installing iTerm2 as a replacement for Terminal provides an updated version of the Bash shell that supports useful features like programmable completion. + +### Using ZSH as your default shell + +The Z shell, also known as zsh, is a UNIX shell that is built on top of the macOS default Bourne shell. + +1. If you want to set your default shell to zsh, install and set up [zsh](https://github.com/ohmyzsh/ohmyzsh/wiki/Installing-ZSH) as the default shell. + +1. Install these plugins: + - [zsh-auto-suggestions](https://github.com/zsh-users/zsh-autosuggestions/blob/master/INSTALL.md#oh-my-zsh) + - [zsh-syntax-highlighting](https://github.com/zsh-users/zsh-syntax-highlighting/blob/master/INSTALL.md#oh-my-zsh) + +1. Edit your `~/.zshrc` file to add the plugins to load on startup: + + ``` + plugins=( + git + zsh-autosuggestions + zsh-syntax-highlighting + ) + ``` + +1. Log out and log back in to the terminal to use your new default zsh shell. + +## Install Go + +Follow the steps in [Install Ignite CLI](../guide/01-install.md) docs to install Ignite CLI and Go. diff --git a/docs/versioned_docs/version-v0.25.2/contributing/_category_.json b/docs/versioned_docs/version-v0.25.2/contributing/_category_.json new file mode 100644 index 0000000000..3f98a1fbc3 --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/contributing/_category_.json @@ -0,0 +1,5 @@ +{ + "label": "Contributing to Ignite CLI docs", + "position": 8, + "link": null +} diff --git a/docs/versioned_docs/version-v0.25.2/contributing/templates/01-concept_template.md b/docs/versioned_docs/version-v0.25.2/contributing/templates/01-concept_template.md new file mode 100644 index 0000000000..752e2ed032 --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/contributing/templates/01-concept_template.md @@ -0,0 +1,125 @@ +# Understanding [Some Concept] + + + + + + + + +### Introduction + + + +Introductory paragraph about the topic that explains what this topic is about and why the reader should care; what problem does it solve? + + + +In this guide, you will [explore] [some thing]... + +- [Install Ignite CLI](../../guide/01-install.md) + +## Describe + +Introduction to the concept. What are we going to do and why are we doing it? + +First.... + +Next... + +Finally... + +Now transition to the next section by telling the reader what's next. + +## Another section + +Another introduction + +Your content + +Transition to the next section + +## Conclusion + +In this article you [explored/learned] [something]. Now you can.... + + + + + + + diff --git a/docs/versioned_docs/version-v0.25.2/contributing/templates/02-tutorial-template.md b/docs/versioned_docs/version-v0.25.2/contributing/templates/02-tutorial-template.md new file mode 100644 index 0000000000..1114e4d135 --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/contributing/templates/02-tutorial-template.md @@ -0,0 +1,185 @@ +# How To [Build/Create/Do Something] in Ignite CLI + + + + + + + + + + + +### Introduction and purpose + +Introductory paragraph about the topic that explains what this topic is about and why the user should care; what problem does the tutorial solve? + +In this guide, you will [accomplish/build/] [some important thing]... + +When you're finished, you'll be able to... + +**Note:** The code in this tutorial is written specifically for this learning experience and is intended only for educational purposes. This tutorial code is not intended to be used in production. + +## Prerequisites + + + +To complete this tutorial, you will need: + +* A local development environment for [your chain] +* Familiarity with the Cosmos ecosystem and [your chain]. See [cosmos.network](EIP-1559 for $ATOM) to learn more. +* (Optional) If software such as Git, Go, Docker, or other tooling needs to be installed, link to the proper article describing how to install it. +* (Optional) List any other accounts needed. + + + +## Step 1 β€” Doing something + +Introduction to the step. What are you going to do and why are you doing it? + +First.... + +Next... + +Finally... + + + +To verify the version of Ignite CLI that is installed, run the following command: + +```bash +ignite --version +``` + +You'll see release details like the following output: + +``` +Ignite version: v0.19.6 +Ignite CLI build date: 2021-12-18T05:56:36Z +Ignite CLI source hash: - +Your OS: darwin +Your arch: amd64 +Your go version: go version go1.16.4 darwin/amd64 +``` + + + +Modify the title by changing the contents of the `` tag: + +```protobuf +// ... + +message Post { + string creator = 1; + string id = 2; + string title = 3; + string body = 4; +} + +message MsgCreatePost { + string creator = 1; + string title = 2; + string body = 3; +} + +// ... +``` + +Now transition to the next step by telling the user what's next. + +## Step 2 β€” Sentence case heading + +Another introduction + +Your content that guides the user to accomplish a specific step + +Transition to the next step. + +## Step 3 β€” Sentence case + +Another introduction + +Your content + +Transition to the next step. + +## Conclusion + +In this article you [accomplished or built] [some important thing]. Now you can.... + +<!-- Speak to the benefits of this technique or procedure and optionally provide places for further exploration. --> + +<!------------ Formatting -------------------------> + +<!-- Some examples of how to mark up various things + +This is _italics_ and this is **bold**. + +Use italics and bold for specific things. + +This is `inline code`. Use single tick marks for filenames and commands. + +Here's a command you can type on a command line: + +```bash +which go +``` + +Here's output from a command: + +``` +/usr/local/go/bin/go +``` + +Write key presses in ALLCAPS. + +Use a plus symbol (+) if keys need to be pressed simultaneously: `CTRL+C`. + +**Note:** This is a note. + +**Tip:** This is a tip. + +Add diagrams and screenshots in PNG format with a self-describing filename. Embed them in the article using the following format: + +![Alt text for screen readers](/path/to/img.png) + +--> diff --git a/docs/versioned_docs/version-v0.25.2/contributing/templates/_category_.json b/docs/versioned_docs/version-v0.25.2/contributing/templates/_category_.json new file mode 100644 index 0000000000..ac781a6ae4 --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/contributing/templates/_category_.json @@ -0,0 +1,5 @@ +{ + "label": "Ignite article templates", + "position": 3, + "link": null +} \ No newline at end of file diff --git a/docs/versioned_docs/version-v0.25.2/contributing/templates/readme.md b/docs/versioned_docs/version-v0.25.2/contributing/templates/readme.md new file mode 100644 index 0000000000..8effe29603 --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/contributing/templates/readme.md @@ -0,0 +1,14 @@ +# Ignite article templates + +Use these templates along with our style guide to help you create articles for the Ignite CLI community. + +Choose the template that best fits the kind of content you're creating: + +* `tutorial_template.md` - Template for long-form interactive "how to" and getting started tutorials that take the form of a lesson. +* `concept_template.md` - Template for conceptual articles that are oriented to understanding. Concept articles explore a subject at a high level. + +These templates are starting points and are not substitutes for the Ignite style and formatting guide. + +Happy building and happy writing! + +β€” The Ignite Ecosystem Development Team diff --git a/docs/versioned_docs/version-v0.25.2/guide/00-introduction.md b/docs/versioned_docs/version-v0.25.2/guide/00-introduction.md new file mode 100644 index 0000000000..bdbd70e4e6 --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/guide/00-introduction.md @@ -0,0 +1,38 @@ +--- +sidebar_position: 0 +title: Introduction +slug: /guide +--- + +# Introduction + +Developer tutorials provide step-by-step instructions to help you build blockchain developer skills. + +By following these developer tutorials you will learn how to: + +* Install Ignite CLI on your local machine +* Create a new blockchain and start a node locally for development +* Make your blockchain say "Hello, World!" + * Scaffold a Cosmos SDK query + * Modify a keeper method to return a static string + * Use the blockchain CLI to make a query +* Write and read blog posts to your chain in the Blog tutorial + * Scaffold a Cosmos SDK message + * Define new types in protocol buffer files + * Write keeper methods to write data to the store + * Read data from the store and return it as a result a query + * Use the blockchain CLI to broadcast transactions +* Build a blockchain for buying and selling names in the Nameservice tutorial + * Scaffold CRUD logic with `map` + * Use other module methods in your custom module + * Send tokens between addresses +* Build a guessing game with rewards + * Use an escrow account to store tokens +* Use the Inter-Blockchain Communication (IBC) protocol + * Scaffold an IBC-enabled module + * Send and receive IBC packets + * Configure and run a built-in IBC relayer +* Build a decentralized order-book token exchange + * Build an advanced IBC-enabled module + + diff --git a/docs/versioned_docs/version-v0.25.2/guide/01-install.md b/docs/versioned_docs/version-v0.25.2/guide/01-install.md new file mode 100644 index 0000000000..6823e80431 --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/guide/01-install.md @@ -0,0 +1,107 @@ +--- +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 Gitpod 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.16** 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 the `ignite` binary use the following command. + +```bash +curl https://get.ignite.com/cli! | bash +``` + +This command invokes `curl` to download the install script and pipes the output to `bash` to perform the installation. The `ignite` binary is installed in `/usr/local/bin`. + +To learn more or customize the installation process, see the [installer docs](https://github.com/ignite/installer) on GitHub. + +### Write permission + +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 +``` + +## Upgrading your Ignite CLI installation + +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`. +1. Remove the Ignite CLI binary with `rm $(which ignite)`. + Depending on your user permissions, run the command with or without `sudo`. +1. 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/develop/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 setup 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-v0.25.2/guide/02-hello.md b/docs/versioned_docs/version-v0.25.2/guide/02-hello.md new file mode 100644 index 0000000000..488c33b1fb --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/guide/02-hello.md @@ -0,0 +1,276 @@ +--- +sidebar_position: 2 +description: Step-by-step guidance to build your first blockchain and your first Cosmos SDK module. +--- + +# Hello, Ignite CLI + +This tutorial is a great place to start your journey into the Cosmos ecosystem. Instead of wondering how to build a blockchain, follow these steps to build your first blockchain and your first Cosmos SDK module. + +## Get started + +In the previous chapter you've learned how to install [Ignite CLI](https://github.com/ignite/cli), the tool that offers everything you need to build, test, and launch your blockchain with a decentralized worldwide community. + +This series of tutorials is based on a specific version of Ignite CLI, so be sure to install the correct version. For example, to install Ignite CLI v0.22.2 use the following command: + +```bash +curl https://get.ignite.com/cli@v0.22.2! | bash +``` + +Ignite CLI comes with a number of scaffolding commands that are designed to make development easier by creating everything that's required to start working on a particular task. + +First, use Ignite CLI to build the foundation of a fresh Cosmos SDK blockchain. With Ignite CLI, you don't have to write the blockchain code yourself. + +Are you ready? Open a terminal window and navigate to a directory where you have permissions to create files. + +To create your blockchain with the default directory structure, run this command: + +```bash +ignite scaffold chain hello +``` + +This command creates a Cosmos SDK blockchain called hello in a `hello` directory. The source code inside the `hello` directory contains a fully functional ready-to-use blockchain. + +This new blockchain imports standard Cosmos SDK modules, including: + +- [`staking`](https://docs.cosmos.network/master/modules/staking/) for delegated Proof-of-Stake (PoS) consensus mechanism +- [`bank`](https://docs.cosmos.network/master/modules/bank/) for fungible token transfers between accounts +- [`gov`](https://docs.cosmos.network/master/modules/gov/) for on-chain governance +- And other Cosmos SDK [modules](https://docs.cosmos.network/master/modules/) that provide the benefits of the extensive Cosmos SDK framework + +You can get help on any command. Now that you have run your first command, take a minute to see all of the command line options for the `scaffold` command. + +To learn about the command you just used, run: + +```bash +ignite scaffold --help +``` + +## Blockchain directory structure + +After you create the blockchain, switch to its directory: + +```bash +cd hello +``` + +The `hello` directory contains a number of generated files and directories that make up the structure of a Cosmos SDK blockchain. Most of the work in this tutorial happens in the `x` directory. Here is a quick overview of files and directories that are created by default: + +| File/directory | Purpose | +| -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| app/ | Files that wire together the blockchain. The most important file is `app.go` that contains type definition of the blockchain and functions to create and initialize it. | +| cmd/ | The main package responsible for the CLI of compiled binary. | +| docs/ | Directory for project documentation. By default, an OpenAPI spec is generated. | +| proto/ | Protocol buffer files describing the data structure. | +| testutil/ | Helper functions for testing. | +| vue/ | A Vue 3 web app template. | +| x/ | Cosmos SDK modules and custom modules. | +| config.yml | A configuration file for customizing a chain in development. | +| readme.md | A readme file for your sovereign application-specific blockchain project. | + +Now you can get your blockchain up and running locally on a single node. + +## Start a blockchain + +You already have a fully-functional blockchain. To start your chain on your development machine, run the following command in the `hello` directory + +```bash +ignite chain serve +``` + +This command downloads dependencies and compiles the source code into a binary called `hellod`. By default, the binary name is the name of the repo + `d`. From now on, use this `hellod` binary to run all of your chain commands. For example, to initialize a single validator node and start a node. + +Leave this terminal window open while your chain is running. + +## HTTP API Console + +By default, a validator node exposes two API endpoints: + +- [http://localhost:26657](http://localhost:26657) for the low-level Tendermint API +- [http://localhost:1317](http://localhost:1317) for the high-level blockchain API + +Now that you started your `hello` chain, use a web browser to see the high-level `hello` blockchain API: + +![./images/api.png](./images/api.png) + +## Stop a blockchain + +When you want to stop your blockchain, press Ctrl+C in the terminal window where it's running. + +In the development environment, you can experiment and instantly see updates. You don't have to restart the blockchain after you make changes. Hot reloading automatically detects all of the changes you make in the `hello` directory files. + +## Say "Hello, Ignite CLI" + +To get your blockchain to say `Hello! Ignite CLI`, you need to make these changes: + +- Modify a protocol buffer file +- Create a keeper query function that returns data +- Register a query function + +Protocol buffer files contain proto rpc calls that define Cosmos SDK queries and message handlers, and proto messages that define Cosmos SDK types. The rpc calls are also responsible for exposing an HTTP API. + +For each Cosmos SDK module, the [Keeper](https://docs.cosmos.network/master/building-modules/keeper.html) is an abstraction for modifying the state of the blockchain. Keeper functions let you query or write to the state. After you add the first query to your chain, the next step is to register the query. You only need to register a query once. + +A typical blockchain developer workflow looks something like this: + +- Start with proto files to define Cosmos SDK [messages](https://docs.cosmos.network/master/building-modules/msg-services.html) +- Define and register [queries](https://docs.cosmos.network/master/building-modules/query-services.html) +- Define message handler logic +- Finally, implement the logic of these queries and message handlers in keeper functions + +## Create a query + +For all subsequent commands, use a terminal window that is different from the window you started the chain in. + +In a different terminal window, run the commands in your `hello` directory. + +Create a `hello` query: + +```bash +ignite scaffold query hello --response text +``` + +`query` accepts a name of the query (in this case, `hello`), an optional list of request parameters (in this case, empty), and an optional comma-separated list of response fields with a `--response` flag (in this case, `text`). + +The `query` command has created and modified several files: + +``` +modify proto/hello/query.proto +modify x/hello/client/cli/query.go +create x/hello/client/cli/query_hello.go +create x/hello/keeper/grpc_query_hello.go +``` + +Let's examine some of these changes. For clarity, the following code blocks do not show the placeholder comments that Ignite CLI uses to scaffold code. Don't delete these placeholders since they are required to continue using Ignite CLI's scaffolding functionality. + +Note: it's recommended to commit changes to a version control system (for example, Git) after scaffolding. This allows others to easily distinguish between code generated by Ignite and the code writen by hand. + +``` +git add . +git commit -am "Scaffolded a hello query with Ignite CLI" +``` + +### Updates to the query service + +In the `proto/hello/query.proto` file, the `Hello` rpc has been added to the `Query` service. + +```protobuf +service Query { + rpc Hello(QueryHelloRequest) returns (QueryHelloResponse) { + option (google.api.http).get = "/hello/hello/hello"; + } +} +``` + +Here's how the `Hello` rpc for the `Query` service works: + +- Is responsible for returning a `text` string +- Accepts request parameters (`QueryHelloRequest`) +- Returns response of type `QueryHelloResponse` +- The `option` defines the endpoint that is used by gRPC to generate an HTTP API + +### Request and reponse types + +Now, take a look at the following request and response types: + +```protobuf +message QueryHelloRequest { +} + +message QueryHelloResponse { + string text = 1; +} +``` + +- The `QueryHelloRequest` message is empty because this request does not require parameters. +- The `QueryHelloResponse` message contains `text` that is returned from the chain. + +## Hello keeper function + +The `x/hello/keeper/grpc_query_hello.go` file contains the `Hello` keeper function that handles the query and returns data. + +```go +func (k Keeper) Hello(goCtx context.Context, req *types.QueryHelloRequest) (*types.QueryHelloResponse, error) { + if req == nil { + return nil, status.Error(codes.InvalidArgument, "invalid request") + } + ctx := sdk.UnwrapSDKContext(goCtx) + _ = ctx + return &types.QueryHelloResponse{}, nil +} +``` + +The `Hello` function performs these actions: + +- Makes a basic check on the request and throws an error if it's `nil` +- Stores context in a `ctx` variable that contains information about the environment of the request +- Returns a response of type `QueryHelloResponse` + +Right now the response is empty. + +### Update keeper function + +In the `query.proto` file, the response accepts `text`. + +- Use a text editor to modify the `x/hello/keeper/grpc_query_hello.go` file that contains the keeper function. +- On the last line of the keeper function, change the line to return "Hello, Ignite CLI!": + +```go +func (k Keeper) Hello(c context.Context, req *types.QueryHelloRequest) (*types.QueryHelloResponse, error) { + if req == nil { + return nil, status.Error(codes.InvalidArgument, "invalid request") + } + ctx := sdk.UnwrapSDKContext(goCtx) + _ = ctx + return &types.QueryHelloResponse{Text: "Hello, Ignite CLI!"}, nil // <-- +} +``` + +- Save the file to restart your chain. +- In a web browser, visit the `hello` endpoint [http://localhost:1317/hello/hello/hello](http://localhost:1317/hello/hello/hello). + + Because the query handlers are not yet registered with gRPC, you see a not implemented or localhost cannot connect error. This error is expected behavior, because you still need to register the query handlers. + +## Register query handlers + +Make the required changes to the `x/hello/module.go` file. + +1. Add `"context"` to the list of packages in the import statement. + + ```go + import ( + // ... + + "context" + + // ... + ) + ``` + + Do not save the file yet, you need to continue with these modifications. + +1. Search for `RegisterGRPCGatewayRoutes`. + +1. Register the query handlers: + + ```go + func (AppModuleBasic) RegisterGRPCGatewayRoutes(clientCtx client.Context, mux *runtime.ServeMux) { + types.RegisterQueryHandlerClient(context.Background(), mux, types.NewQueryClient(clientCtx)) + } + ``` + +2. After the chain has been started, visit [http://localhost:1317/hello/hello/hello](http://localhost:1317/hello/hello/hello) and see your text displayed: + + ```json + { + "text": "Hello, Ignite CLI!", + } + ``` + +The `query` command has also scaffolded `x/hello/client/cli/query_hello.go` that implements a CLI equivalent of the hello query and mounted this command in `x/hello/client/cli/query.go` . Run the following command and get the same JSON response: + +```bash +hellod q hello hello +``` + +Congratulations, you have built your first blockchain and your first Cosmos SDK module. Continue the journey to learn more about scaffolding Cosmos SDK messages, types in protocol buffer files, the keeper, and more. diff --git a/docs/versioned_docs/version-v0.25.2/guide/03-blog/00-build-blog.md b/docs/versioned_docs/version-v0.25.2/guide/03-blog/00-build-blog.md new file mode 100644 index 0000000000..df51330250 --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/guide/03-blog/00-build-blog.md @@ -0,0 +1,494 @@ +--- +sidebar_position: 0 +description: Learn module basics by writing and reading blog posts to your chain. +slug: /guide/blog +--- + +# Build a blog + +In this tutorial, you create a blockchain with a module that lets you write to and read data from the blockchain. This module implements create and read functionalities for a blog-like application. The end user will be able to submit new blog posts and show a list of blog posts on the blockchain. + +> The purpose of this tutorial is to guide you through the implementation of a complete feedback loop: submitting data and reading this data back from the blockchain. + +By completing this tutorial, you will learn about: + +* Scaffolding a Cosmos SDK message +* Defining new types in protocol buffer files +* Implementing keeper methods to write data to the store +* Reading data from the store and return it as a result of a query +* Using the blockchain's CLI to broadcast transactions and query the blockchain + +**Note:** All the functions in this chapter can be scaffolded with a single command but instead you will learn how to add each functionality individually. + +## Prerequisites + +This series of blog tutorials is based on a specific version of Ignite CLI, so to install Ignite CLI v0.22.2 use the following command: + +```bash +curl https://get.ignite.com/cli@v0.22.2! | bash +``` + +## Create your blog chain + +First, create a new blockchain. + +Open a terminal and navigate to a directory where you have permissions to create files. To create your Cosmos SDK blockchain, run this command: + +```bash +ignite scaffold chain blog --address-prefix blog +``` + +The `blog` directory is created with the default directory structure. + +The new blockchain is scaffolded with the `--address-prefix blog` flag to use "blog" instead of the default "cosmos" address prefix. + +## High-level transaction review + +So far, you have learned how to modify proto files to define a new API endpoint and modify a keeper query function to return static data back to the user. Of course, a keeper can do more than return a string of data. Its purpose is to manage access to the state of the blockchain. + +You can think of the state as being a collection of key-value stores. Each module is responsible for its own store. Changes to the store are triggered by transactions that are signed and broadcasted by users. Each transaction contains Cosmos SDK messages (not to be confused with proto `message`). When a transaction is processed, each message gets routed to its module. A module has message handlers that process messages. Processing a message can trigger changes in the state. + +## Create message types + +A Cosmos SDK message contains information that can trigger changes in the state of a blockchain. + +First, change into the `blog` directory: + +```bash +cd blog +``` + +To create a message type and its handler, use the `message` command: + +```bash +ignite scaffold message createPost title body +``` + +The `message` command accepts message name (`createPost`) and a list of fields (`title` and `body`) as arguments. + +The `message` command has created and modified several files: + +``` +modify proto/blog/tx.proto +modify x/blog/client/cli/tx.go +create x/blog/client/cli/tx_create_post.go +create x/blog/keeper/msg_server_create_post.go +modify x/blog/module_simulation.go +create x/blog/simulation/create_post.go +modify x/blog/types/codec.go +create x/blog/types/message_create_post.go +create x/blog/types/message_create_post_test.go + +πŸŽ‰ Created a message `createPost`. +``` + +As always, start with a proto file. Inside the `proto/blog/tx.proto` file, the `MsgCreatePost` message has been created. Edit the file to add the line that defines the `id` for `message MsgCreatePostResponse`: + +```protobuf +message MsgCreatePost { + string creator = 1; + string title = 2; + string body = 3; +} + +message MsgCreatePostResponse { + uint64 id = 1; +} +``` + +## Review the message code + +Review the Cosmos SDK message type with proto `message`. The `MsgCreatePost` has three fields: creator, title, and body. Since the purpose of the `MsgCreatePost` message is to create new posts in the store, the only thing the message needs to return is an ID of a created post. The `CreatePost` rpc was already added to the `Msg` service: + +```protobuf +service Msg { + rpc CreatePost(MsgCreatePost) returns (MsgCreatePostResponse); +} +``` + +## Define messages logic + +In the newly scaffolded `x/blog/keeper/msg_server_create_post.go` file, you can see a placeholder implementation of the `CreatePost` function. Right now it does nothing and returns an empty response. For your blog chain, you want the contents of the message (title and body) to be written to the state as a new post. + +You need to do two things: + +- Create a variable of type `Post` with title and body from the message +- Append this `Post` to the store + +```go +func (k msgServer) CreatePost(goCtx context.Context, msg *types.MsgCreatePost) (*types.MsgCreatePostResponse, error) { + // Get the context + ctx := sdk.UnwrapSDKContext(goCtx) + + // Create variable of type Post + var post = types.Post{ + Creator: msg.Creator, + Title: msg.Title, + Body: msg.Body, + } + + // Add a post to the store and get back the ID + id := k.AppendPost(ctx, post) + + // Return the ID of the post + return &types.MsgCreatePostResponse{Id: id}, nil +} +``` + +## Define Post type and AppendPost keeper method + +Define the `Post` type and the `AppendPost` keeper method. + +When you define the `Post` type in a proto file, Ignite CLI (with the help of `protoc`) takes care of generating the required Go files. + +Create the `proto/blog/post.proto` file and define the `Post` message: + +```protobuf +syntax = "proto3"; + +package blog.blog; + +option go_package = "blog/x/blog/types"; + +message Post { + string creator = 1; + uint64 id = 2; + string title = 3; + string body = 4; +} +``` + +The contents of the `post.proto` file are standard. The file defines: + +- A package name `blog.blog` that is used to identify messages +- The Go package `go_package = "blog/x/blog/types"` where new files are generated +- The message `message Post` + +Continue developing your blog chain. + +### Define keeper methods + +The next step is to define the `AppendPost` keeper method. + +Create the `x/blog/keeper/post.go` file and start thinking about the logic of the function and what you want to call the prefixes. The file will be empty for now. + +- To implement `AppendPost` you must first understand how the key store works. You can think of a store as a key-value database where keys are lexicographically ordered. You can loop through keys and use `Get` and `Set` to retrieve and set values based on keys. To distinguish between different types of data that a module can keep in its store, you can use prefixes like `product/` or `post/`. + +- To keep a list of posts in what is essentially a key-value store, you need to keep track of the index of the posts you insert. Since both post values and post count (index) values are kept in the store, you can use different prefixes: `Post/value/` and `Post/count/`. + +Then, add these prefixes to the `x/blog/types/keys.go` file in the `const` and add a comment that describes the keys: + +```go +const ( + // ... + + // Keep track of the index of posts + PostKey = "Post/value/" + PostCountKey = "Post/count/" +) +``` + +Your blog is now updated to take these actions when a `Post` message is sent to the `AppendPost` function: + +- Get the number of posts in the store (count) +- Add a post by using the count as an ID +- Increment the count +- Return the count + +## Write data to the store + +In the `x/blog/keeper/post.go` file, draft the `AppendPost` function. You can add these comments to help you visualize what you do next: + +```go +package keeper + +import ( + "encoding/binary" + + "github.com/cosmos/cosmos-sdk/store/prefix" + sdk "github.com/cosmos/cosmos-sdk/types" + + "blog/x/blog/types" +) + +// func (k Keeper) AppendPost() uint64 { +// count := k.GetPostCount() +// store.Set() +// k.SetPostCount() +// return count +// } +``` + +First, implement `GetPostCount`: + +```go +func (k Keeper) GetPostCount(ctx sdk.Context) uint64 { + // Get the store using storeKey (which is "blog") and PostCountKey (which is "Post/count/") + store := prefix.NewStore(ctx.KVStore(k.storeKey), []byte(types.PostCountKey)) + + // Convert the PostCountKey to bytes + byteKey := []byte(types.PostCountKey) + + // Get the value of the count + bz := store.Get(byteKey) + + // Return zero if the count value is not found (for example, it's the first post) + if bz == nil { + return 0 + } + + // Convert the count into a uint64 + return binary.BigEndian.Uint64(bz) +} +``` + +Now that `GetPostCount` returns the correct number of posts in the store, implement `SetPostCount`: + +```go +func (k Keeper) SetPostCount(ctx sdk.Context, count uint64) { + // Get the store using storeKey (which is "blog") and PostCountKey (which is "Post/count/") + store := prefix.NewStore(ctx.KVStore(k.storeKey), []byte(types.PostCountKey)) + + // Convert the PostCountKey to bytes + byteKey := []byte(types.PostCountKey) + + // Convert count from uint64 to string and get bytes + bz := make([]byte, 8) + binary.BigEndian.PutUint64(bz, count) + + // Set the value of Post/count/ to count + store.Set(byteKey, bz) +} +``` + +Now that you have implemented functions for getting the number of posts and setting the post count, at the top of the same `x/blog/keeper/post.go` file, implement the logic behind the `AppendPost` function: + +```go +func (k Keeper) AppendPost(ctx sdk.Context, post types.Post) uint64 { + // Get the current number of posts in the store + count := k.GetPostCount(ctx) + + // Assign an ID to the post based on the number of posts in the store + post.Id = count + + // Get the store + store := prefix.NewStore(ctx.KVStore(k.storeKey), []byte(types.PostKey)) + + // Convert the post ID into bytes + byteKey := make([]byte, 8) + binary.BigEndian.PutUint64(byteKey, post.Id) + + // Marshal the post into bytes + appendedValue := k.cdc.MustMarshal(&post) + + // Insert the post bytes using post ID as a key + store.Set(byteKey, appendedValue) + + // Update the post count + k.SetPostCount(ctx, count+1) + return count +} +``` + +By following these steps, you have implemented all of the code required to create new posts and store them on-chain. Now, when a transaction that contains a message of type `MsgCreatePost` is broadcast, the message is routed to your blog module. + +- `k.CreatePost` calls `AppendPost` +- `AppendPost` gets the number of posts from the store, adds a post using the count as an ID, increments the count, and returns the ID + +Now that you have added the functionality to create posts and broadcast them to our chain, you can add querying. + +## Display posts + +To display posts, scaffold a query: + +```bash +ignite scaffold query posts --response title,body +``` + +Two components are responsible for querying data: + +- An rpc inside `service Query` in a proto file that defines data types and specifies the HTTP API endpoint +- A keeper method that performs the querying from the key-value store + +First, review the services and messages in `proto/blog/query.proto`. The `Posts` rpc accepts an empty request and returns an object with two fields: title and body. Now you can make changes so it can return a list of posts. The list of posts can be long, so add pagination. When pagination is added, the request and response include a page number so you can request a particular page when you know what page has been returned. + +To define the types in proto files, make the following updates in `proto/blog/query.proto`: + +1. Add the `import`: + +```protobuf +import "blog/post.proto"; +``` + +2. Add pagination to the post request: + +```protobuf +message QueryPostsRequest { + // Adding pagination to request + cosmos.base.query.v1beta1.PageRequest pagination = 1; +} +``` + +3. Add pagination to the post response: + +```protobuf +message QueryPostsResponse { + // Returning a list of posts + repeated Post Post = 1; + + // Adding pagination to response + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} +``` + +To implement post querying logic in the `x/blog/keeper/grpc_query_posts.go` file, delete the contents of that file and replace it with: + +```go +package keeper + +import ( + "context" + + "github.com/cosmos/cosmos-sdk/store/prefix" + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/cosmos/cosmos-sdk/types/query" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" + + "blog/x/blog/types" +) + +func (k Keeper) Posts(c context.Context, req *types.QueryPostsRequest) (*types.QueryPostsResponse, error) { + // Throw an error if request is nil + if req == nil { + return nil, status.Error(codes.InvalidArgument, "invalid request") + } + + // Define a variable that will store a list of posts + var posts []*types.Post + + // Get context with the information about the environment + ctx := sdk.UnwrapSDKContext(c) + + // Get the key-value module store using the store key (in our case store key is "chain") + store := ctx.KVStore(k.storeKey) + + // Get the part of the store that keeps posts (using post key, which is "Post-value-") + postStore := prefix.NewStore(store, []byte(types.PostKey)) + + // Paginate the posts store based on PageRequest + pageRes, err := query.Paginate(postStore, req.Pagination, func(key []byte, value []byte) error { + var post types.Post + if err := k.cdc.Unmarshal(value, &post); err != nil { + return err + } + + posts = append(posts, &post) + + return nil + }) + + // Throw an error if pagination failed + if err != nil { + return nil, status.Error(codes.Internal, err.Error()) + } + + // Return a struct containing a list of posts and pagination info + return &types.QueryPostsResponse{Post: posts, Pagination: pageRes}, nil +} +``` + +## Add gRPC to the module handler + +In the `x/blog/module.go` file: + +1. Add `"context"` to the imports, don't save the file yet. + +```go +import ( + "context" + + // ... +) +``` + +2. Update the `RegisterGRPCGatewayRoutes` function to register the query handler client: + +```go +// RegisterGRPCGatewayRoutes registers the gRPC Gateway routes for the module. +func (AppModuleBasic) RegisterGRPCGatewayRoutes(clientCtx client.Context, mux *runtime.ServeMux) { + types.RegisterQueryHandlerClient(context.Background(), mux, types.NewQueryClient(clientCtx)) +} +``` + +3. Now that you've modified the file with the two updates, now it's safe to save the file. + +## Use the CLI to create a post + +Now that you have implemented logic for creating and querying posts, you can interact with your blog chain using the command line. The blog chain binary is `blogd`. + +First, start the chain on your development machine by running the following command in the `blog` directory: + +```bash +ignite chain serve +``` + +The binary is built by the `ignite chain serve` command bit it can also be built by running: + +```bash +ignite chain build +``` + +To create a post at the command line: + +```bash +blogd tx blog create-post foo bar --from alice +``` + +The transaction is output to the terminal. You are prompted to confirm the transaction: + +``` +{"body":{"messages":[{"@type":"/blog.blog.MsgCreatePost","creator":"blog1ctxp3pfdtr3sw9udz2ptuh59ce9z0eaa2zvv6w","title":"foo","body":"bar"}],"memo":"","timeout_height":"0","extension_options":[],"non_critical_extension_options":[]},"auth_info":{"signer_infos":[],"fee":{"amount":[],"gas_limit":"200000","payer":"","granter":""}},"signatures":[]} + +confirm transaction before signing and broadcasting [y/N]: y +``` + +Type `y` to sign and broadcast the transaction. + +Congratulations, you built a chain binary and used the `blogd` binary CLI to create a blog post. + +## Use the CLI to query posts + +To query the list of all on-chain posts: + +```bash +blogd q blog posts +``` + +The result: + +```yaml +Post: +- body: bar + creator: blog1ctxp3pfdtr3sw9udz2ptuh59ce9z0eaa2zvv6w + id: "0" + title: foo +pagination: + next_key: null + total: "1" +``` + +## Conclusion + +Congratulations. You have built a blog blockchain! + +You have successfully completed these steps: + +* Write blog posts to your chain +* Read from blog posts +* Scaffold a Cosmos SDK message +* Define new types in protocol buffer files +* Write keeper methods to write data to the store +* Register query handlers +* Read data from the store and return it as a result a query +* Use the CLI to broadcast transactions diff --git a/docs/versioned_docs/version-v0.25.2/guide/03-blog/01-comment-blog.md b/docs/versioned_docs/version-v0.25.2/guide/03-blog/01-comment-blog.md new file mode 100644 index 0000000000..7a6e535ab9 --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/guide/03-blog/01-comment-blog.md @@ -0,0 +1,669 @@ +--- +sidebar_position: 1 +description: Write a query that returns a blog post by ID with associated comments. +--- + +# Add associated comments to a blog post + +In this tutorial, you create a new message to add comments to a blog post. + +By completing this tutorial, you will learn about: + +* Scaffolding a new `list` with proto functions and keeper functions +* Adding comments to existing blog posts +* Querying for blog posts that have associated comments +* Deleting comments from a blog post +* Implementing logic for writing comments to the blockchain + +**Note:** For this tutorial, adding comments is available only to blog posts that are no older than 100 blocks. The 100 block value has been hard coded for rapid testing. You can increase the block count to a larger number to achieve a longer time period before commenting is disabled. + +## Prerequisites + +This tutorial is an extension of and requires completion of the [Module Basics: Build a Blog](index.md) tutorial. + +## Core concepts + +This tutorial relies on the `blog` blockchain that you built in the `Build a Blog Tutorial.` + +## Fetch functions using list command + +To get the useful functions for this tutorial, you use the `ignite scaffold list NAME [field]... [flags]` command. Make sure to familiarize yourself with the command. + +1. Navigate to the `blog` directory that you created in the [Build a blog](index.md) tutorial. + +2. To create the source code files to add CRUD (create, read, update, and delete) functionality for data stored as an array, run: + +```bash +ignite scaffold list comment --no-message creator:string title:string body:string postID:uint createdAt:int +``` + +The `--no-message` flag disables CRUD interaction messages scaffolding because you will write your own messages. + +The command output shows the files that were created and modified: + +``` +create proto/blog/comment.proto +modify proto/blog/genesis.proto +modify proto/blog/query.proto +modify vue/src/views/Types.vue +modify x/blog/client/cli/query.go +create x/blog/client/cli/query_comment.go +create x/blog/client/cli/query_comment_test.go +modify x/blog/genesis.go +modify x/blog/genesis_test.go +create x/blog/keeper/comment.go +create x/blog/keeper/comment_test.go +create x/blog/keeper/grpc_query_comment.go +create x/blog/keeper/grpc_query_comment_test.go +modify x/blog/module.go +modify x/blog/types/genesis.go +modify x/blog/types/genesis_test.go +modify x/blog/types/keys.go + +πŸŽ‰ comment added. +``` + +Make a small modification in `proto/blog/comment.proto` to change `createdAt` to int64: + +```protobuf +message Comment { + uint64 id = 1; + string creator = 2; + string title = 3; + string body = 4; + uint64 postID = 5; + int64 createdAt = 6; +} +``` + +## Add a comment to a post + +To create a new message that adds a comment to the existing post, run: + +```bash +ignite scaffold message create-comment postID:uint title body +``` + +The `ignite scaffold message` command accepts `postID` and a list of fields as arguments. The fields are `title` and `body`. + +Here, `postID` is the reference to previously created blog post. + +The `message` command has created and modified several files: + +``` +modify proto/blog/tx.proto +modify x/blog/client/cli/tx.go +create x/blog/client/cli/tx_create_comment.go +create x/blog/keeper/msg_server_create_comment.go +modify x/blog/module_simulation.go +create x/blog/simulation/create_comment.go +modify x/blog/types/codec.go +create x/blog/types/message_create_comment.go +create x/blog/types/message_create_comment_test.go + +πŸŽ‰ Created a message `create-comment`. +``` + +As always, start your development with a proto file. + +In the `proto/blog/tx.proto` file, edit `MsgCreateComment` to: + +* Add `id` +* Define the `id` for `message MsgCreateCommentResponse`: + +```protobuf +message MsgCreateComment { + string creator = 1; + uint64 postID = 2; + string title = 3; + string body = 4; + uint64 id = 5; +} + +message MsgCreateCommentResponse { + uint64 id = 1; +} +``` + + You see in the `proto/blog/tx.proto` file that the `MsgCreateComment` has five fields: creator, title, body, postID, and id. Since the purpose of the `MsgCreateComment` message is to create new comments in the store, the only thing the message needs to return is an ID of a created comments. The `CreateComment` rpc was already added to the `Msg` service: + +```protobuf +rpc CreateComment(MsgCreateComment) returns (MsgCreateCommentResponse); +``` + +Now, add the `id` field to `MsgCreatePost`: + +```protobuf +message MsgCreatePost { + string creator = 1; + string title = 2; + string body = 3; + uint64 id = 4; +} +``` + +## Process messages + +In the newly scaffolded `x/blog/keeper/msg_server_create_comment.go` file, you can see a placeholder implementation of the `CreateComment` function (marked with `//TODO`). Right now it does nothing and returns an empty response. For your blog chain, you want the contents of the message (title and body) to be written to the state as a new comment. + +You need to do the following things: + +* Create a variable of type `Comment` with title and body from the message +* Check if the the comment posted for the respective blog id exists and comment is not older than 100 blocks +* Append this `Comment` to the store + +```go +import ( + // ... + + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + + // ... +) + +func (k msgServer) CreateComment(goCtx context.Context, msg *types.MsgCreateComment) (*types.MsgCreateCommentResponse, error) { + ctx := sdk.UnwrapSDKContext(goCtx) + + // Check if the Post Exists for which a comment is being created + post, found := k.GetPost(ctx, msg.PostID) + if !found { + return nil, sdkerrors.Wrap(sdkerrors.ErrKeyNotFound, fmt.Sprintf("key %d doesn't exist", msg.Id)) + } + + // Create variable of type comment + var comment = types.Comment{ + Creator: msg.Creator, + Id: msg.Id, + Body: msg.Body, + Title: msg.Title, + PostID: msg.PostID, + CreatedAt: ctx.BlockHeight(), + } + + // Check if the comment is older than the Post. If more than 100 blocks, then return error. + if comment.CreatedAt > post.CreatedAt+100 { + return nil, sdkerrors.Wrapf(types.ErrCommentOld, "Comment created at %d is older than post created at %d", comment.CreatedAt, post.CreatedAt) + } + + id := k.AppendComment(ctx, comment) + return &types.MsgCreateCommentResponse{Id: id}, nil +} +``` + +When the Comment validity is checked, it throws 2 error messages - `ErrID` and `ErrCommendOld`. You can define the error messages by navigating to `x/blog/types/errors.go` and replacing the current values in 'var' with: + +```go +// ... + +var ( + ErrCommentOld = sdkerrors.Register(ModuleName, 1300, "") + ErrID = sdkerrors.Register(ModuleName, 1400, "") +) +``` + + +In the existing `x/blog/keeper/msg_server_create_post.go` file, you need to make a modification to add `createdAt` + +```go +func (k msgServer) CreatePost(goCtx context.Context, msg *types.MsgCreatePost) (*types.MsgCreatePostResponse, error) { + // Get the context + ctx := sdk.UnwrapSDKContext(goCtx) + + // Create variable of type Post + var post = types.Post{ + Creator: msg.Creator, + Id: msg.Id, + Title: msg.Title, + Body: msg.Body, + CreatedAt: ctx.BlockHeight(), + } + + // Add a post to the store and get back the ID + id := k.AppendPost(ctx, post) + + // Return the ID of the post + return &types.MsgCreatePostResponse{Id: id}, nil +} +``` + +## Write data to the store + +When you define the `Comment` type in a proto file, Ignite CLI (with the help of `protoc`) takes care of generating the required Go files. + +Inside the `proto/blog/comment.proto` file, you can observe, Ignite CLI has already added the required fields inside the `Comment` message. + +The contents of the `comment.proto` file are fairly standard and similar to `post.proto`. The file defines a package name that is used to identify messages, among other things, specifies the Go package where new files are generated, and finally defines `message Comment`. + +Each file save triggers an automatic rebuild. Now, after you build and start your chain with Ignite CLI, the `Comment` type is available. + +Also, make a small modification in `proto/blog/post.proto` to add `createdAt`: + +```protobuf +// ... + +message Post { + // ... + int64 createdAt = 5; +} +``` + +### Define keeper methods + +The function `ignite scaffold list comment --no-message` has fetched all of the required functions for keeper. + +Inside `x/blog/types/keys.go` file, you can see that the `Comment/value/` and `Comment/count/` keys are added. + +## Write data to the store + +In `x/blog/keeper/post.go`, add a new function to get the post: + +```go +import ( + "encoding/binary" + + "github.com/cosmos/cosmos-sdk/store/prefix" + sdk "github.com/cosmos/cosmos-sdk/types" + + "blog/x/blog/types" +) + +// ... + +func (k Keeper) GetPost(ctx sdk.Context, id uint64) (val types.Post, found bool) { + store := prefix.NewStore(ctx.KVStore(k.storeKey), types.KeyPrefix(types.PostKey)) + + bz := make([]byte, 8) + binary.BigEndian.PutUint64(bz, id) + + b := store.Get(bz) + if b == nil { + return val, false + } + + k.cdc.MustUnmarshal(b, &val) + return val, true +} +``` + +You have manually added the functions to `x/blog/keeper/post.go`. + +When you ran the `ignite scaffold list comment --no-message` command, these functions are automatically implemented in `x/blog/keeper/comment.go`: + +- `GetCommentCount` +- `SetCommentCount` +- `AppendCommentCount` + +By following these steps, you have implemented all of the code required to create comments and store them on-chain. Now, when a transaction that contains a message of type `MsgCreateComment` is broadcast, the message is routed to your blog module. + +- `k.CreateComment` calls `AppendComment`. +- `AppendComment` gets the number of comments from the store, adds a comment using the count as an ID, increments the count, and returns the ID. + +## Create the delete-comment message + +To create a message, use the `message` command: + +```bash +ignite scaffold message delete-comment commentID:uint postID:uint +``` + +The `message` commands accepts `commentID` and `postID` as arguments. + +Here, `commentID` and `postID` are the references to previously created comment and blog post. + +The `message` command has created and modified several files: + +``` +modify proto/blog/tx.proto +modify x/blog/client/cli/tx.go +create x/blog/client/cli/tx_delete_comment.go +create x/blog/keeper/msg_server_delete_comment.go +modify x/blog/module_simulation.go +create x/blog/simulation/delete_comment.go +modify x/blog/types/codec.go +create x/blog/types/message_delete_comment.go +create x/blog/types/message_delete_comment_test.go +``` + +As always, start your development with a proto file. + +In the `proto/blog/tx.proto` file, edit `MsgDeleteComment` to: + +* Add `id` +* Define the `id` for `message MsgDeleteCommentResponse`: + +```protobuf +message MsgDeleteComment { + string creator = 1; + uint64 commentID = 2; + uint64 postID = 3; + uint64 id = 4; +} + +message MsgDeleteCommentResponse { + uint64 id = 1; +} +``` + +## Process messages + +In the newly scaffolded `x/blog/keeper/msg_server_delete_comment.go` file, you can see a placeholder implementation of the `DeleteComment` function. Right now it does nothing and returns an empty response. + +For your blog chain, you want to delete the contents of the comment. Add the code to: + +- Check if the post Id exists to see which comment was deleted. +- Delete the comment from the store. + +```go +package keeper + +import ( + "context" + "encoding/binary" + + "github.com/cosmos/cosmos-sdk/store/prefix" + sdk "github.com/cosmos/cosmos-sdk/types" + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + + "blog/x/blog/types" +) + +func (k msgServer) DeleteComment(goCtx context.Context, msg *types.MsgDeleteComment) (*types.MsgDeleteCommentResponse, error) { + ctx := sdk.UnwrapSDKContext(goCtx) + + comment, exist := k.GetComment(ctx, msg.CommentID) + if !exist { + return nil, sdkerrors.Wrapf(types.ErrID, "Comment doesnt exist") + } + + if msg.PostID != comment.PostID { + return nil, sdkerrors.Wrapf(types.ErrID, "Post Blog Id does not exist for which comment with Blog Id %d was made", msg.PostID) + } + + store := prefix.NewStore(ctx.KVStore(k.storeKey), types.KeyPrefix(types.CommentKey)) + bz := make([]byte, 8) + binary.BigEndian.PutUint64(bz, comment.Id) + store.Delete(bz) + + return &types.MsgDeleteCommentResponse{}, nil +} +``` + +## Display posts + +Implement logic to query existing posts: + +```bash +ignite scaffold query comments id:uint --response title,body +``` + +Also in `proto/blog/query.proto`, make these updates: + +```protobuf +import "blog/post.proto"; + +message QueryCommentsRequest { + uint64 id = 1; + + // Adding pagination to request + cosmos.base.query.v1beta1.PageRequest pagination = 2; +} + +// ... + +message QueryCommentsResponse { + Post Post = 1; + + // Returning a list of comments + repeated Comment Comment = 2; + + // Adding pagination to response + cosmos.base.query.v1beta1.PageResponse pagination = 3; +} +``` + +After the types are defined in proto files, you can implement post querying logic in `x/blog/keeper/grpc_query_comments.go` by registering the `Comments` function: + +```go +package keeper + +import ( + "context" + + "github.com/cosmos/cosmos-sdk/store/prefix" + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/cosmos/cosmos-sdk/types/query" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" + + "blog/x/blog/types" +) + +func (k Keeper) Comments(c context.Context, req *types.QueryCommentsRequest) (*types.QueryCommentsResponse, error) { + // Throw an error if request is nil + if req == nil { + return nil, status.Error(codes.InvalidArgument, "invalid request") + } + + // Define a variable that will store a list of posts + var comments []*types.Comment + + // Get context with the information about the environment + ctx := sdk.UnwrapSDKContext(c) + + // Get the key-value module store using the store key (in this case store key is "chain") + store := ctx.KVStore(k.storeKey) + + // Get the part of the store that keeps posts (using post key, which is "Post-value-") + commentStore := prefix.NewStore(store, []byte(types.CommentKey)) + + // Get the post by ID + post, _ := k.GetPost(ctx, req.Id) + + // Get the post ID + postID := post.Id + + // Paginate the posts store based on PageRequest + pageRes, err := query.Paginate(commentStore, req.Pagination, func(key []byte, value []byte) error { + var comment types.Comment + if err := k.cdc.Unmarshal(value, &comment); err != nil { + return err + } + + if comment.PostID == postID { + comments = append(comments, &comment) + } + + return nil + }) + + // Throw an error if pagination failed + if err != nil { + return nil, status.Error(codes.Internal, err.Error()) + } + + // Return a struct containing a list of posts and pagination info + return &types.QueryCommentsResponse{Post: &post, Comment: comments, Pagination: pageRes}, nil +} +``` + +**Note:** Since gRPC has been already added to module handler in the previous tutorial, you don't need to add it again. + +## Create post and comment + +Try it out! + +If the chain is yet not started, run `ignite chain serve -r`. + +Create a post: + +```bash +blogd tx blog create-post Uno "This is the first post" --from alice +``` + +As before, you are prompted to confirm the transaction: + +```json +{"body":{"messages":[{"@type":"/blog.blog.MsgCreatePost","creator":"blog1uamq9d6zj5p7lvzyhjugg8drkrcqckxtvj99ac","title":"Uno","body":"This is the first post","id":"0"}],"memo":"","timeout_height":"0","extension_options":[],"non_critical_extension_options":[]},"auth_info":{"signer_infos":[],"fee":{"amount":[],"gas_limit":"200000","payer":"","granter":""}},"signatures":[]} +``` + +Create a comment: + +```bash +blogd tx blog create-comment 0 Uno "This is the first comment" --from alice +``` + +```json +{"body":{"messages":[{"@type":"/blog.blog.MsgCreateComment","creator":"blog1uamq9d6zj5p7lvzyhjugg8drkrcqckxtvj99ac","postID":"0","title":"Uno","body":"This is the first comment","id":"0"}],"memo":"","timeout_height":"0","extension_options":[],"non_critical_extension_options":[]},"auth_info":{"signer_infos":[],"fee":{"amount":[],"gas_limit":"200000","payer":"","granter":""}},"signatures":[]} +``` + +When prompted, press Enter to confirm the transaction: + +``` +confirm transaction before signing and broadcasting [y/N]: y +``` + +## Display post and comment + +```bash +blogd q blog comments 0 +``` + +The results are output: + +```yaml +Comment: +- body: This is the first comment + createdAt: "58" + creator: blog1uamq9d6zj5p7lvzyhjugg8drkrcqckxtvj99ac + id: "0" + postID: "0" + title: Uno +Post: + body: This is the first post + createdAt: "51" + creator: blog1uamq9d6zj5p7lvzyhjugg8drkrcqckxtvj99ac + id: "0" + title: Uno +pagination: + next_key: null + total: "1" +``` + +## Delete comment + +```bash +blogd tx blog delete-comment 0 0 --from alice -y +``` + +## Display the post and all associated comments + +```bash +blogd q blog comments 0 +``` + +The results are output: + +```yaml +Comment: [] +Post: + body: This is the first post + createdAt: "12" + creator: blog12s696u0wutt42kc297td5naxgxtvtxdlsg07n2 + id: "0" + title: Uno +pagination: + next_key: null + total: "0" +``` + +## Edge cases + +1. Add comment to a nonexistent blog id: + +```bash +blogd tx blog create-comment 53 "Edge1" "This is the 53 comment" --from alice -y +``` + +The transaction is not able to be completed because the blog id does not exist: + +```yaml +code: 22 +codespace: sdk +data: "" +events: +- attributes: + - index: false + key: ZmVl + value: "" + type: tx +- attributes: + - index: false + key: YWNjX3NlcQ== + value: Y29zbW9zMXVhbXE5ZDZ6ajVwN2x2enloanVnZzhkcmtyY3Fja3h0dmo5OWFjLzQ= + type: tx +- attributes: + - index: false + key: c2lnbmF0dXJl + value: NEdGejY1WGFjc0cvR1BEOVgxSDh4NmU5NTZEM1hxZ0txdnlWcmVVZ2JSRThTbkRHNjdmN29rNm9uWDhhVjgzb3NFcDh2eWg3RnNIRE1CaU9VL3QwMlE9PQ== + type: tx +gas_used: "41385" +gas_wanted: "200000" +height: "90" +info: "" +logs: [] +raw_log: 'failed to execute message; message index: 0: key 0 doesn''t exist: key not + found' +timestamp: "" +tx: null +``` + +1. Add comment to a blog post that is older than 100 blocks: + +```bash +blogd tx blog create-comment 0 "Comment" "This is a comment" --from alice -y +``` + +The transaction is not executed: + +```yaml +code: 1300 +codespace: blog +data: "" +events: +- attributes: + - index: false + key: ZmVl + value: "" + type: tx +- attributes: + - index: false + key: YWNjX3NlcQ== + value: Y29zbW9zMXVhbXE5ZDZ6ajVwN2x2enloanVnZzhkcmtyY3Fja3h0dmo5OWFjLzEy + type: tx +- attributes: + - index: false + key: c2lnbmF0dXJl + value: TFR3OXFQbm9KYUVmZ2EyZWlrWWZ5SmFiM0VvZDUwVlU0L3hJUExpbCtUWXN5NFNvQzhKaWJTeW5Eb2RkOExqU3NPaXhsVjlUZmtvNmJMbHArcVZZTWc9PQ== + type: tx +gas_used: "41569" +gas_wanted: "200000" +height: "154" +info: "" +logs: [] +raw_log: 'failed to execute message; message index: 0: Comment created at 154 is older + than post created at 51: ' +timestamp: "" +tx: null +txhash: 5BFBEE017952376851D7989E7AF5B60A29B98AD2F7812EC271C154575F386AD6 +``` + +## Conclusion + +Congratulations. You have added comments to your blog blockchain! + +You have successfully completed these steps: + +* Scaffolding a new `list` with proto functions and keeper functions +* Add comments to existing blog post +* Display the blog post by ID with associated comments +* Delete comments from a given blog post diff --git a/docs/versioned_docs/version-v0.25.2/guide/03-blog/02-connect-blockchain.md b/docs/versioned_docs/version-v0.25.2/guide/03-blog/02-connect-blockchain.md new file mode 100644 index 0000000000..c82258c33a --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/guide/03-blog/02-connect-blockchain.md @@ -0,0 +1,210 @@ +--- +sidebar_position: 2 +description: Blockchain client in Go +--- + +# Create a blockchain client in Go + +Learn how to connect your blockchain to an independent application with RPC. + +After creating the blog blockchain in this tutorial you will learn how to connect to your blockchain from a separate client. + +## Use the blog blockchain + +Navigate to a separate directory right next to the `blog` blockchain you built in the [Build a Blog](index.md) tutorial. + +## 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. + +The command: + +```bash +ls +``` + +Shows just `blog` now. More results are listed when you have more directories here. + +Create your `blogclient` directory first, change your current working directory, and initialize the new Go module. + +```bash +mkdir blogclient +cd blogclient +go mod init blogclient +touch main.go +``` + +The `go.mod` file is created inside your `blogclient` directory. + +Your blockchain client has only two dependencies: + +- The `blog` blockchain `types` for message types and a query client +- `ignite` for the `cosmosclient` blockchain client + +```go-module +module blogclient + +go 1.18 + +require ( + blog v0.0.0-00010101000000-000000000000 + github.com/ignite/cli v0.23.0 +) + +replace blog => ../blog +replace github.com/gogo/protobuf => github.com/regen-network/protobuf v1.3.3-alpha.regen.1 +``` + +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. + +The `blogclient` will eventually have only two files: + +- `main.go` for the main logic of the client +- `go.mod` for specifying dependencies. + +### Main logic of the client in `main.go` + +Add the following code to your `main.go` file to make a connection to your blockchain from a separate app. + +```go +package main + +import ( + "context" + "fmt" + "log" + + // Importing the general purpose Cosmos blockchain client + "github.com/ignite/cli/ignite/pkg/cosmosclient" + + // Importing the types package of your blog blockchain + "blog/x/blog/types" +) + +func main() { + // Prefix to use for account addresses. + // The address prefix was assigned to the blog blockchain + // using the `--address-prefix` flag during scaffolding. + addressPrefix := "blog" + + // Create a Cosmos client instance + cosmos, err := cosmosclient.New( + context.Background(), + 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 := cosmos.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 := cosmos.BroadcastTx(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(cosmos.Context()) + + // Query the blockchain using the client's `Posts` method + // to get all posts store all posts in queryResp + queryResp, err := queryClient.Posts(context.Background(), &types.QueryPostsRequest{}) + if err != nil { + log.Fatal(err) + } + + // Print response from querying all the posts + fmt.Print("\n\nAll posts:\n\n") + fmt.Println(queryResp) +} +``` + +Read the comments in the code carefully to learn details about each line of code. + +To learn more about the `cosmosclient` package, see the Go +[cosmosclient](https://pkg.go.dev/github.com/ignite/cli/ignite/pkg/cosmosclient) package documentation. Details are provided to learn 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`. + +Install dependencies for your `blogclient`: + +```bash +go mod tidy +``` + +Run the blockchain client: + +```bash +go run main.go +``` + +If successful, the results of running the command are printed to the terminal: + +``` +# github.com/keybase/go-keychain +### Some warnings might be displayed which can be ignored +MsgCreatePost: + +Response: + Height: 3222 + TxHash: AFCA76B0FEE5113382C068967B610180C105FCE045FF8C7943EA45EF4B7A1E69 + Data: 0A280A222F636F736D6F6E6175742E626C6F672E626C6F672E4D7367437265617465506F737412020801 + Raw Log: [{"events":[{"type":"message","attributes":[{"key":"action","value":"CreatePost"}]}]}] + Logs: [{"events":[{"type":"message","attributes":[{"key":"action","value":"CreatePost"}]}]}] + GasWanted: 300000 + GasUsed: 45805 + + +All posts: + +Post:<creator:"blog1j8d8pyjr5vynjvcq7xgzme0ny6ha30rpakxk3n" title:"foo" body:"bar" > Post:<creator:"blog1j8d8pyjr5vynjvcq7xgzme0ny6ha30rpakxk3n" id:1 title:"Hello!" body:"This is the first post" > pagination:<total:2 > +``` + +You can confirm the new post with using the `blogd query blog posts` command that you learned about in the previous chapter. +The result looks similar to: + +```yaml +Post: +- body: bar + creator: blog1j8d8pyjr5vynjvcq7xgzme0ny6ha30rpakxk3n + id: "0" + title: foo +- body: This is the first post + creator: blog1j8d8pyjr5vynjvcq7xgzme0ny6ha30rpakxk3n + id: "1" + title: Hello! +pagination: + next_key: null + total: "2" +``` + +Congratulations, you have just created a post using a separate app. diff --git a/docs/versioned_docs/version-v0.25.2/guide/03-blog/_category_.json b/docs/versioned_docs/version-v0.25.2/guide/03-blog/_category_.json new file mode 100644 index 0000000000..9e8ee83a03 --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/guide/03-blog/_category_.json @@ -0,0 +1,5 @@ +{ + "label": "Module basics: Blog", + "position": 3, + "link": null + } \ No newline at end of file diff --git a/docs/versioned_docs/version-v0.25.2/guide/04-nameservice/00-tutorial.md b/docs/versioned_docs/version-v0.25.2/guide/04-nameservice/00-tutorial.md new file mode 100644 index 0000000000..7b2675933e --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/guide/04-nameservice/00-tutorial.md @@ -0,0 +1,86 @@ +--- +sidebar_position: 0 +slug: /guide/nameservice + +--- + +# Nameservice Tutorial + +The nameservice tutorial provides step-by-step instructions to build a blockchain app for a nameservice. The goal of the nameservice app is to send tokens between participants so that end users can buy names and set a value to the names. + +This tutorial builds on knowlege and skills developed in the earlier tutorials in the Ignite CLI Developer Tutorials. Before you start this building your nameservice app, we recommend that you complete these foundational tutorials: + +- [Install Ignite CLI](../01-install.md) +- [Hello, World](../02-hello.md) +- [Module Basics](../03-blog/00-build-blog.md) + +The goal of this tutorial is to build a functional nameservice app and a mapping of strings to other stringsΒ (`map[string]string`). + +This tutorial guides you through these steps to build a blockchain for a nameservice app: + +* Create a blockchain without a default module +* Create a Cosmos SDK nameservice module with a dependency on another module +* Create CRUD (create, read, update, and delete) actions for a type stored as a map +* Declare functions of the bank module to be available to the nameservice module +* Implement keeper functions that implement the logic + +## Prerequisites + +- A supported version of [Ignite CLI](https://docs.ignite.com/). To install Ignite CLI, see [Install Ignite CLI](../01-install.md). +* A text editor like [Visual Studio Code](https://code.visualstudio.com/download) or [Atom](https://atom.io/). +* A web browser like [Chrome](https://www.google.com/chrome/) or [Firefox](https://www.mozilla.org/en-US/firefox/new/). +- Familiarity with [Cosmos SDK modules](https://docs.cosmos.network/master/building-modules/intro.html) + +## Nameservice App Goals + +The goal of the app you are building is to let users buy a name and to set a value that a name resolve to. The owner of a given name is the current highest bidder. + +First, see how these simple requirements translate to app design. + +### Core Concepts + +A blockchain app is a [replicated deterministic state machine](https://en.wikipedia.org/wiki/State_machine_replication). As a blockchain app developer, you have to define the state machine with a starting state and messages that trigger state transitions. These software components make it all possible! + +- [Ignite CLI](https://docs.ignite.com/) is built on top of Cosmos SDK and accelerates chain development by scaffolding everything you need. +- The [Cosmos SDK](https://github.com/cosmos/cosmos-sdk/) modular framework allows developers like you to create custom blockchains that can natively interact with other blockchains. +- [Tendermint](https://docs.tendermint.com/master/introduction/what-is-tendermint.html) software securely and consistently replicates an app on many machines. The Tendermint app-agnostic engine handles the networking and consensus layers of your blockchain. + +## Cosmos SDK Modules + +In a Cosmos SDK blockchain, application-specific logic is implemented in separate modules. Modules keep code easy to understand and reuse. Each module contains its own message and transaction processor, while the Cosmos SDK is responsible for routing each message to its respective module. + +Your nameservice app requires the following Cosmos SDK modules: + +- [auth](https://docs.cosmos.network/master/modules/auth/): Specifies the base transaction and account types for an application. For your nameservice app, it defines accounts and fees and gives access to these functionalities to the rest of your app. +- [bank](https://docs.cosmos.network/master/modules/bank/): Enables the app to create and manage tokens and token balances. +- [distribution](https://docs.cosmos.network/master/modules/distribution/): Passively distributes rewards between validators and delegators. +- [slashing](https://docs.cosmos.network/master/modules/slashing/): Enables punishing misbehavior of validators when evidence of validator fraud is reported. +- [staking](https://docs.cosmos.network/master/modules/staking/): Enables the app to have validators that users can delegate to. +- nameservice: This module does not exist yet! You will build this module to handle the core logic for your new `nameservice` app. The `nameservice` module is the main piece of software you develop to build your app. + +Now, take a look at the two main parts of your app: the state and the message types. + +## Application State + +The state represents your app at a given moment. The state of your nameservice app defines how many tokens are in each account, who the account owners are, the price of each name, and to what value each name resolves to. + +The state of tokens and accounts is defined by the `auth` and `bank` modules so you can direct your focus instead on defining the part of the state that relates specifically to your `nameservice` module. + +The Cosmos SDK comes with a large set of stores to persist the state of applications. By default, the main store of Cosmos SDK apps is a multistore (a store of stores). You can add any number of key-value stores [KVStores in Go](https://pkg.go.dev/github.com/cosmos/cosmos-sdk/types#KVStore) to the multistore. + +For your nameservice app, use one store to map a `name` key to its respective `whois` value that holds a name's value, owner, and price. + +## Messages + +In the Cosmos SDK, [messages](https://docs.cosmos.network/master/building-modules/messages-and-queries.html#messages) are objects that are contained in transactions to trigger state transitions. Each Cosmos SDK module defines a list of messages and how to handle them. + +You must create [messages for the nameservice module](./02-messages.md) that support this functionality: + +- When a transaction that is included in a block reaches a Tendermint node, the transaction is passed to the application using the Application Blockchain Interface [(ABCI)](https://docs.cosmos.network/master/intro/sdk-app-architecture.html#abci) between Tendermint and your app. +- The transaction is decoded to get the message. +- The message is then routed to the appropriate module and handled according to the logic defined in the corresponding `Handler`. +- If the state needs to be updated, the `Handler` calls the `Keeper` to perform the update. + +You learn more about these core concepts in the next steps of this tutorial. + +Now that you have an idea of how your app functions from a high-level perspective, it is time to start implementing it. diff --git a/docs/versioned_docs/version-v0.25.2/guide/04-nameservice/01-init.md b/docs/versioned_docs/version-v0.25.2/guide/04-nameservice/01-init.md new file mode 100644 index 0000000000..5eca2c23cd --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/guide/04-nameservice/01-init.md @@ -0,0 +1,47 @@ +--- +sidebar_position: 1 +description: Scaffold a blockchain and create a nameservice module. +--- + +# Scaffold the Nameservice Module + +Scaffold a blockchain and create a `nameservice` module for the nameservice app. Remember, the goal of the nameservice app is to send tokens between participants so that end users can buy names and set a value to the names. + +## Create a Blockchain + +Scaffold a new Cosmos SDK blockchain using the `ignite scaffold chain` command. The [ignite scaffold chain](https://docs.ignite.com/cli/#ignite-scaffold-chain) command accepts one argument: the Go module path that is used for the project. + +By default, a chain is scaffolded with a new empty Cosmos SDK module. You want to create the nameservice module without scaffolding a module, so use the `--no-module` flag: + +```bash +ignite scaffold chain nameservice --no-module +``` + +This command created a new directory `nameservice` with a brand new Cosmos SDK blockchain. This blockchain doesn't have any application-specific logic yet, but it imports standard Cosmos SDK modules, such as `auth`, `bank`, `mint`, and others. + +Change the current directory to `nameservice`: + +```bash +cd nameservice +``` + +Inside the `nameservice` project directory you can execute other Ignite CLI commands to start a blockchain node, scaffold modules, messages, types, generate code, and much more. + +## Create the Module + +Scaffold a new module called `nameservice`. By design, the `nameservice` module must send tokens between participants. The send tokens functionality is implemented in the standard `bank` module. + +To specify `bank` as a dependency, use the optional `--dep` flag: + +```bash +ignite scaffold module nameservice --dep bank +``` + +## Results + +The Ignite CLI scaffold command has done all of the work for you! + +- The `nameservice` module was created in the `x/nameservice` directory. +- The `nameservice` module was imported into the blockchain in the `app/app.go` file. + +Now, define the actions your app can make with messages. diff --git a/docs/versioned_docs/version-v0.25.2/guide/04-nameservice/02-messages.md b/docs/versioned_docs/version-v0.25.2/guide/04-nameservice/02-messages.md new file mode 100644 index 0000000000..b5b3616613 --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/guide/04-nameservice/02-messages.md @@ -0,0 +1,189 @@ +--- +sidebar_position: 2 +description: Add messages to define actions for the nameservice module. +--- + +# Messages for the Nameservice Module + +Messages are a great place to start when building a Cosmos SDK module because they define the actions that your app can make. Remember that the nameservice app lets users buy a name, set a value for a name to resolve to, and delete a name that belongs to them. + +With this design in mind for the `nameservice` module, it's time to create these messages to define the actions. End users can send these messages to interact with the application state: + +- `BuyName` +- `SetName` +- `DeleteName` + +## Message Type + +Messages trigger state transitions. Messages (`Msg`) are wrapped in transactions (`Tx`) that clients submit to the network. Because the Cosmos SDK wraps and unwraps messages from transactions, as an app developer, you only have to define messages. + +Messages must satisfy the following interface: + +```go +// Transactions messages must fulfill the Msg +type Msg interface { + proto.Message + + // ValidateBasic does a simple validation check that + // doesn't require access to any other information. + ValidateBasic() error + + // Signers returns the addrs of signers that must sign. + // CONTRACT: All signatures must be present to be valid + GetSigners() []AccAddress + + // Legacy methods + Type() string + Route() string + GetSignBytes() []byte +} +``` + +The `Msg` type extends `proto.Message` and contains these methods along with the legacy methods (`Type`, `Route`, and `GetSignBytes`): + +- `ValidateBasic` + + - Called early in the processing of the message to discard obviously invalid messages. + - Includes only checks that do not require access to the state. For example, check that the `amount` of tokens is a positive value. + +- `GetSigners` + + - Returns the list of signers. + - The Cosmos SDK ensures that each message contained in a transaction is signed by all the signers in the list that is returned by this method. + +## Handlers + +Handlers define the action that needs to be taken. Each message has an associated handler. + +For example, handlers define which stores to update, how to update the stores, and under what conditions to act when a given message is received. + +## Scaffolding Messages + +Now, you are ready to implement these Cosmos SDK messages to achieve the desired functionality for your nameservice app: + +- `MsgBuyName` + Allow accounts to buy a name and become its owner. When an end user buys a name, they are required to pay the previous owner of the name a price higher than the price the previous owner paid for it. If a name does not have a previous owner yet, the end user must burn a `MinPrice` amount. +- `MsgSetName` + Allow name owners to set a value for a given name. +- `MsgDeleteName` + Allow name owners to delete names that belong to them. + +Use the `ignite scaffold message` command to scaffold new messages for your module. + +- The [`ignite scaffold message`](https://docs.ignite.com/#ignite-scaffold-message) command accepts the message name as the first argument and a list of fields for the message. +- By default, a message is scaffolded in a module with a name that matches the name of the project, in this case `nameservice`. + +### Add the MsgBuyName Message + +To create the `MsgBuyName` message for the nameservice module: + +```bash +ignite scaffold message buy-name name bid +``` + +where: + +- buy-name is the message name +- name defines the name that the user can buy, sell, and delete +- bid is the price the user bids to buy a name + +The `ignite scaffold message buy-name name bid` command creates and modifies several files: + +``` +modify proto/nameservice/tx.proto +modify x/nameservice/client/cli/tx.go +create x/nameservice/client/cli/tx_buy_name.go +create x/nameservice/keeper/msg_server_buy_name.go +modify x/nameservice/types/codec.go +create x/nameservice/types/message_buy_name.go +``` + +These are the changes for each one of these files: + +- `proto/nameservice/tx.proto` + - Adds `MsgBuyName` and `MsgBuyNameResponse` proto messages. + - Registers `BuyName` rpc in the `Msg` service. + + Open the `tx.proto` file to view the changes: + + ```protobuf + syntax = "proto3"; + + package nameservice.nameservice; + + // this line is used by starport scaffolding # proto/tx/import + + option go_package = "nameservice/x/nameservice/types"; + + // Msg defines the Msg service. + service Msg { + // this line is used by starport scaffolding # proto/tx/rpc + rpc BuyName(MsgBuyName) returns (MsgBuyNameResponse); + } + + // this line is used by starport scaffolding # proto/tx/message + message MsgBuyName { + string creator = 1; + string name = 2; + string bid = 3; + } + + message MsgBuyNameResponse { + } + ``` + +- `x/nameservice/client/cli/tx.go` + + Registers the CLI command. + +- `x/nameservice/types/message_buy_name.go` + + Defines methods to satisfy the `Msg` interface. + +- `x/nameservice/keeper/msg_server_buy_name.go` + + Defines the `BuyName` keeper method. You can notice that the message follows the `Msg` interface. The message `struct` contains all the information required when buying a name: `Name`, `Bid`, and `Creator`. This struct was added automatically. + +- `x/nameservice/client/cli/tx_buy_name.go` + + Adds the CLI command to broadcast a transaction with a message. + +- `x/nameservice/types/codec.go` + + Registers the codecs. + + +### Add The MsgSetName Message + +To create the `MsgSetName` for the nameservice module: + +```bash +ignite scaffold message set-name name value +``` + +where: + +- set-name is the message name +- name is the name the user sets +- value is the literal value that the name resolves to + +This `ignite scaffold message` command modifies and creates the same set of files as the `MsgBuyName` message. + +### Add The MsgDeleteName Message + +You need a message so that an end user can delete a name that belongs to them. + +To create the `MsgDeleteName` for the nameservice module: + +```bash +ignite scaffold message delete-name name +``` + +where: + +- delete-name is the message name +- name is message name to delete + +## Results + +Congratulations, you've defined messages that trigger state transitions. Now it's time to implement types and methods that operate on the state. diff --git a/docs/versioned_docs/version-v0.25.2/guide/04-nameservice/03-types.md b/docs/versioned_docs/version-v0.25.2/guide/04-nameservice/03-types.md new file mode 100644 index 0000000000..be3c71c9c7 --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/guide/04-nameservice/03-types.md @@ -0,0 +1,111 @@ +--- +sidebar_position: 3 +description: Implement types and methods that operate on the state. +--- + +# Implement Types + +Now that you've defined messages that trigger state transitions, it's time to implement types and methods that operate on the state. + +> The Cosmos SDK relies on keepers. A keeper is an abstraction that lets your blockchain app interact with the state. Functions like create, read, update, and delete (CRUD) are defined as keeper methods. + +For the nameservice blockchain, define a `whois` type and the create and delete methods. + +Because Ignite CLI does the heavy lifting for you, choose from several [ignite scaffold](https://docs.ignite.com/cli#ignite-scaffold) commands to create CRUD functionality code for data stored in different ways: + +- Array, a list-like data structure +- Map (key-value pairs) +- In a single location + +## Add the whois Type + +Use the `ignite scaffold map` command to scaffold the `whois` type and create the code that implements CRUD functionality to create, read, update, and delete information about names. + +In this example, the `whois` type is stored in a map-like data structure: + +```bash +ignite scaffold map whois name value price owner --no-message +``` + +where: + +- whois is the type +- name is the name the user sets +- value is the name that name resolves to +- price is the bid +- `--no-message` flag skips message creation + + By default, generic CRUD messages are scaffolded. However, you've already created messages specifically for this blockchain, so you can skip message creation with the `--no-message` flag. + +The `ignite scaffold map whois name value price --no-message` command created and modified several files: + +* `proto/nameservice/whois.proto` + + Defines the `Whois` type as a proto message. + +* `proto/nameservice/query.proto` + + * Queries to get data from the blockchain. + * Define queries as proto messages. + * Register the messages in the `Query` service. + +* `proto/nameservice/genesis.proto` + + A type for exporting the state of the blockchain, for example, during software upgrades. + +* `x/nameservice/keeper/grpc_query_whois.go` + + Keeper methods to query the blockchain. + +* `x/nameservice/keeper/grpc_query_whois_test.go` + + Tests for query keeper methods. + +* `x/nameservice/keeper/whois.go` + + Keeper methods to get, set, and remove whois information from the store. + +* `x/nameservice/keeper/whois_test.go` + + Tests for keeper methods. + +* `x/nameservice/client/cli/query_whois.go` + + CLI commands for querying the blockchain. + +* `x/nameservice/client/cli/query.go` + + Registers the CLI commands. + +* `x/nameservice/client/cli/query_whois_test.go` + + Tests for CLI commands. + +* `x/nameservice/types/keys.go` + + String prefix in the key to store whois information in the state. + +* `x/nameservice/genesis.go` + + Logic for exporting the state. + +* `x/nameservice/types/genesis.go` + + Logic for validating the genesis file. + +* `x/nameservice/module.go` + + Registers gRPC gateway routes. + +## Keeper Package + +In the `x/nameservice/keeper/whois.go` file, take at a look at the keeper package. + +- `SetWhois` uses a key-value store with a prefix for the `Whois` type and uses a `store.Set` method to write a `Whois` into the store. + +<!-- where is this? teach me please +`Whois-value-` encodes the `Whois` type that is generated from a protocol buffer definition--> + +- `GetWhois` selects a store using the `Whois` prefix and uses a `store.Get` method to fetch a `Whois` with a particular index. + +The keeper package also includes `RemoveWhois` and `GetAllWhois`. diff --git a/docs/versioned_docs/version-v0.25.2/guide/04-nameservice/04-keeper.md b/docs/versioned_docs/version-v0.25.2/guide/04-nameservice/04-keeper.md new file mode 100644 index 0000000000..c56c59d9be --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/guide/04-nameservice/04-keeper.md @@ -0,0 +1,202 @@ +--- +sidebar_position: 4 +description: Define keepers for the nameservice module. +--- + +# Keeper + +> The main core of a Cosmos SDK module is a piece called the keeper. The keeper handles interactions with the store, has references to other [keepers](https://docs.cosmos.network/master/building-modules/keeper.html) for cross-module interactions, and contains most of the core functionality of a module. + +## Define Keepers for the Nameservice Module + +Keepers are module-specific. Keeper is part of the Cosmos SDK that is responsible for writing data to the store. Each module uses its own keeper. + +In this section, define the keepers that are required by the nameservice module: + +- Buy name +- Set name +- Delete name + +## Buy Name + +To define the keeper for the buy name transaction, add this code to the `x/nameservice/keeper/msg_server_buy_name.go` file: + +```go +// x/nameservice/keeper/msg_server_buy_name.go + +package keeper + +import ( + "context" + + sdk "github.com/cosmos/cosmos-sdk/types" + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + + "nameservice/x/nameservice/types" +) + +func (k msgServer) BuyName(goCtx context.Context, msg *types.MsgBuyName) (*types.MsgBuyNameResponse, error) { + ctx := sdk.UnwrapSDKContext(goCtx) + + // Try getting a name from the store + whois, isFound := k.GetWhois(ctx, msg.Name) + + // Set the price at which the name has to be bought if it didn't have an owner before + minPrice := sdk.Coins{sdk.NewInt64Coin("token", 10)} + + // Convert price and bid strings to sdk.Coins + price, _ := sdk.ParseCoinsNormalized(whois.Price) + bid, _ := sdk.ParseCoinsNormalized(msg.Bid) + + // Convert owner and buyer address strings to sdk.AccAddress + owner, _ := sdk.AccAddressFromBech32(whois.Owner) + buyer, _ := sdk.AccAddressFromBech32(msg.Creator) + + // If a name is found in store + if isFound { + // If the current price is higher than the bid + if price.IsAllGT(bid) { + // Throw an error + return nil, sdkerrors.Wrap(sdkerrors.ErrInsufficientFunds, "Bid is not high enough") + } + + // Otherwise (when the bid is higher), send tokens from the buyer to the owner + err := k.bankKeeper.SendCoins(ctx, buyer, owner, bid) + if err != nil { + return nil, err + } + } else { // If the name is not found in the store + // If the minimum price is higher than the bid + if minPrice.IsAllGT(bid) { + // Throw an error + return nil, sdkerrors.Wrap(sdkerrors.ErrInsufficientFunds, "Bid is less than min amount") + } + + // Otherwise (when the bid is higher), send tokens from the buyer's account to the module's account (as a payment for the name) + err := k.bankKeeper.SendCoinsFromAccountToModule(ctx, buyer, types.ModuleName, bid) + if err != nil { + return nil, err + } + } + + // Create an updated whois record + newWhois := types.Whois{ + Index: msg.Name, + Name: msg.Name, + Value: whois.Value, + Price: bid.String(), + Owner: buyer.String(), + } + + // Write whois information to the store + k.SetWhois(ctx, newWhois) + return &types.MsgBuyNameResponse{}, nil +} +``` + +When you scaffolded the `nameservice` module you used `--dep bank` to specify a dependency between the `nameservice` and `bank` modules. + +This dependency automatically created an `expected_keepers.go` file with a `BankKeeper` interface. + +The `BuyName` transaction uses `SendCoins` and `SendCoinsFromAccountToModule` methods from the `bank` module. + +Edit the `x/nameservice/types/expected_keepers.go` file to add `SendCoins` and `SendCoinsFromAccountToModule` to be able to use it in the keeper methods of the `nameservice` module. + +```go +// x/nameservice/types/expected_keepers.go + +package types + +import ( + sdk "github.com/cosmos/cosmos-sdk/types" +) + +type BankKeeper interface { + SendCoinsFromAccountToModule(ctx sdk.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins) error + SendCoins(ctx sdk.Context, fromAddr sdk.AccAddress, toAddr sdk.AccAddress, amt sdk.Coins) error +} +``` + +## Set Name + +To define the keeper for the set name transaction, add this code to the `x/nameservice/keeper/msg_server_set_name.go` file: + +```go +// x/nameservice/keeper/msg_server_set_name.go + +package keeper + +import ( + "context" + + sdk "github.com/cosmos/cosmos-sdk/types" + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + + "nameservice/x/nameservice/types" +) + +func (k msgServer) SetName(goCtx context.Context, msg *types.MsgSetName) (*types.MsgSetNameResponse, error) { + ctx := sdk.UnwrapSDKContext(goCtx) + + // Try getting name information from the store + whois, _ := k.GetWhois(ctx, msg.Name) + + // If the message sender address doesn't match the name owner, throw an error + if !(msg.Creator == whois.Owner) { + return nil, sdkerrors.Wrap(sdkerrors.ErrUnauthorized, "Incorrect Owner") + } + + // Otherwise, create an updated whois record + newWhois := types.Whois{ + Index: msg.Name, + Name: msg.Name, + Value: msg.Value, + Owner: whois.Owner, + Price: whois.Price, + } + + // Write whois information to the store + k.SetWhois(ctx, newWhois) + return &types.MsgSetNameResponse{}, nil +} +``` + +## Delete Name + +To define the keeper for the delete name transaction, add this code to the `x/nameservice/keeper/msg_server_delete_name.go` file: + +```go +// x/nameservice/keeper/msg_server_delete_name.go + +package keeper + +import ( + "context" + + sdk "github.com/cosmos/cosmos-sdk/types" + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + + "nameservice/x/nameservice/types" +) + +func (k msgServer) DeleteName(goCtx context.Context, msg *types.MsgDeleteName) (*types.MsgDeleteNameResponse, error) { + ctx := sdk.UnwrapSDKContext(goCtx) + + // Try getting name information from the store + whois, isFound := k.GetWhois(ctx, msg.Name) + + // If a name is not found, throw an error + if !isFound { + return nil, sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "Name doesn't exist") + } + + // If the message sender address doesn't match the name owner, throw an error + if !(whois.Owner == msg.Creator) { + return nil, sdkerrors.Wrap(sdkerrors.ErrUnauthorized, "Incorrect Owner") + } + + // Otherwise, remove the name information from the store + k.RemoveWhois(ctx, msg.Name) + return &types.MsgDeleteNameResponse{}, nil +} +``` diff --git a/docs/versioned_docs/version-v0.25.2/guide/04-nameservice/05-play.md b/docs/versioned_docs/version-v0.25.2/guide/04-nameservice/05-play.md new file mode 100644 index 0000000000..6bc2935fa5 --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/guide/04-nameservice/05-play.md @@ -0,0 +1,243 @@ +--- +sidebar_position: 5 +description: Start and experiment with your nameservice blockchain and nameservice module. +--- + +# Play With Your Blockchain + +If you haven't already, start a blockchain node in development: + +```bash +ignite chain serve -r +``` + +The optional `-r` flag is useful in development mode since it resets the blockchain's state if it has been started before. + +After the `serve` command has finished building the blockchain, a `nameserviced` binary is installed by default in the `~/go/bin` directory. + +The terminal window where the chain is started must remain open, so open a second terminal window to use `nameserviced` to run commands at the command line. + +## Buy a New Name + +Purchase a new name using the `buy-name` command. The name is `foo` and the bid is `20token`. + +In the keeper for the buy name transaction, you added code to the `msg_server_buy_name.go` file that hard-coded the minimum bid to `10token`. Any bid lower than that amount results in a rejected purchase. + +```bash +nameserviced tx nameservice buy-name foo 20token --from alice +``` + +where: + +- buy-name is the command that accepts two arguments +- foo is the name +- 20token is the bid +- the `--from alice` flag specifies the user account that signs and broadcasts the transaction + +This `buy-name` command creates a transaction and prompts the user `alice` to sign and broadcast the transaction. + +Here is what an unsigned transaction looks like: + +```json +{ + "body": { + "messages": [ + { + "@type": "/username.nameservice.nameservice.MsgBuyName", + "creator": "cosmos1p0fprxtpk497jvczexp96sy2w43hupeph9km5d", + "name": "foo", + "bid": "20token" + } + ], + "memo": "", + "timeout_height": "0", + "extension_options": [], + "non_critical_extension_options": [] + }, + "auth_info": { + "signer_infos": [], + "fee": { "amount": [], "gas_limit": "200000", "payer": "", "granter": "" } + }, + "signatures": [] +} +``` + +### Buy Name Transaction Details + +Look at the transaction details: + +- The transaction contains only one message: `MsgBuyName`. +- The message `@type` matches the package name of the corresponding proto file, `proto/nameservice/tx.proto`. +- The `creator` field is populated automatically with the address of the account broadcasting the transaction. +- The local account `alice` address is `cosmos1p0f...km5d`. +- Values of `name` and `bid` are passed as CLI arguments. + +After the transaction is broadcast and included in a block, the blockchain returns a response where `"code": 0` means the transaction was successfully processed. + +```json +{ + "height": "658", + "txhash": "EDC1842BE4B596DDD9E2D34F2E372354F9BA5F6D2E4B3F1C2664F4FF05D433B7", + "codespace": "", + "code": 0, + "data": "0A090A074275794E616D65", + "raw_log": "[{\"events\":[{\"type\":\"message\",\"attributes\":[{\"key\":\"action\",\"value\":\"BuyName\"}]}]}]", + "logs": [ + { + "msg_index": 0, + "log": "", + "events": [ + { + "type": "message", + "attributes": [{ "key": "action", "value": "BuyName" }] + } + ] + } + ], + "info": "", + "gas_wanted": "200000", + "gas_used": "47954", + "tx": null, + "timestamp": "" +} +``` + +## Query the Chain for a List of Names + +Query the chain for a list of name and correponding values. Query commands don't need the `--from` flag, because they don't broadcast transactions and make only free requests. + +```bash +nameserviced q nameservice list-whois +``` + +The response confirms that the name `foo` was successfully purchased by `alice` and the current `price` is set to `20token`. + +```yaml +Whois: +- creator: cosmos1p0fprxtpk497jvczexp96sy2w43hupeph9km5d + index: foo + name: foo + price: 20token + value: "" +pagination: + next_key: null + total: "0" +``` + +## Set a Value to the Name + +Now that `alice` is an owner of the name, she can set the value to anything she wants. Use the `set-name` command to set the value to `bar`: + +```bash +nameserviced tx nameservice set-name foo bar --from alice +``` + +Query for a list of names again: + +```bash +nameserviced q nameservice list-whois +``` + +The response shows that `name` is now `foo`. + +```yaml +Whois: +- creator: cosmos1p0fprxtpk497jvczexp96sy2w43hupeph9km5d + index: foo + name: foo + price: 20token + value: bar +pagination: + next_key: null + total: "0" +``` + +## Buy an Existing Name + +Use the `bob` account to purchase an existing name from `alice`. A successful bid requires that the buy price is higher than the current value of `20token`. + +```bash +nameserviced tx nameservice buy-name foo 40token --from bob +``` + +In this `buy-name` command, the bid is updated to the latest bid of `40token` and the `--from bob` flag specifies that the transaction is signed by the `bob` address. + +Query for a list of names again: + +```bash +nameserviced q nameservice list-whois +``` + +The response shows a different creator address than `alice` (it's now the address for `bob`) and the `price` is now `40token`. + +```yaml +Whois: +- creator: cosmos1ku6sqpk9rgwgx98u2gs9c05aa9wrps969g0wy5 + index: foo + name: foo + price: 40token + value: bar +pagination: + next_key: null + total: "0" +``` + +## Query the Bank Balance + +Use the following command to see how the `alice` bank balance has changed after this transaction: + +```bash +nameserviced q bank balances $(nameserviced keys show alice -a) +``` + +## Test an Unauthorized Transaction + +Try updating the value by broadcasting a transaction from the `alice` account: + +```bash +nameserviced tx nameservice set-name foo qoo --from alice +``` + +An error occurs because `alice` sold the name in a previous transaction. The results show that `alice` is not the owner of the name and is therefore not authorized to change the value. + +```json +{ + "height": "981", + "txhash": "8E9951EDC5C9D76C2164BE9572B336B13CCF46653F45F54B2C1FEA702389FAE8", + "codespace": "sdk", + "code": 4, + "data": "", + "raw_log": "failed to execute message; message index: 0: Incorrect Owner: unauthorized", + "logs": [], + "info": "", + "gas_wanted": "200000", + "gas_used": "39214", + "tx": null, + "timestamp": "" +} +``` + +```yaml +Whois: +- creator: cosmos1ku6sqpk9rgwgx98u2gs9c05aa9wrps969g0wy5 + index: foo + name: foo + price: 40token + value: bar +pagination: + next_key: null + total: "0" +``` + +## Conclusion + +Congratulations πŸŽ‰. You have created the nameservice module and the nameservice application. + +You successfully completed these steps: + +- Learned how to work with module dependencies +- Use several scaffolding methods +- Learned about Cosmos SDK types and functions +- Used the CLI to broadcast transactions , and so much more + +You are now prepared to continue your journey to learn about escrow accounts and IBC. diff --git a/docs/versioned_docs/version-v0.25.2/guide/04-nameservice/_category_.json b/docs/versioned_docs/version-v0.25.2/guide/04-nameservice/_category_.json new file mode 100644 index 0000000000..2ba5027520 --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/guide/04-nameservice/_category_.json @@ -0,0 +1,5 @@ +{ + "label": "Sending Tokens: Nameservice", + "position": 4, + "link": null + } \ No newline at end of file diff --git a/docs/versioned_docs/version-v0.25.2/guide/05-scavenge/01-hunt.md b/docs/versioned_docs/version-v0.25.2/guide/05-scavenge/01-hunt.md new file mode 100644 index 0000000000..74e2f6eb54 --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/guide/05-scavenge/01-hunt.md @@ -0,0 +1,36 @@ +--- +sidebar_position: 1 +slug: /guide/scavenge + +--- + +# Scavenger hunt game + +In this tutorial, you will build a blockchain for a scavenger hunt game and learn how to: + +* Implement custom logic in the CLI commands +* Use an escrow account to store tokens + +This tutorial was first presented as a workshop at GODays 2020 Berlin by [Billy Rennekamp](https://twitter.com/billyrennekamp). + +This session aims to get you thinking about what is possible when developing applications that have access to **digital scarcity as a primitive**. The easiest way to think of scarcity is as money; If money grew on trees it would stop being _scarce_ and stop having value. + +Although a long history of software deals with money, the representation of money has not been a first-class citizen in the programming environment. Instead, money has historically been represented as a number or a float. It has been left up to a third party merchant service or process of exchange to swap the _representation_ of money for actual cash. If money were a primitive in a software environment, it would allow for **real economies to exist within games and applications**. Money as a primitive takes one more step in erasing the line between games, life, and play. + +This tutorial uses the [Cosmos SDK](https://github.com/cosmos/cosmos-sdk) framework that makes it possible to build **deterministic state machines**. A state machine is simply an application that has a state and explicit functions for updating that state. You can think of a light bulb and a light switch as a kind of state machine: the state of the "application" is either `light on` or `light off`. There is one function in this state machine: `flip switch`. Every time you trigger `flip switch`, the state of the application goes from `light on` to `light off` or vice versa. + +## Deterministic state machine + +A **deterministic** state machine is a state machine in which an accumulation of actions, taken together and replayed, have the same outcome. So if you were to take all the `switch on` and `switch off` actions of the entire month of January for some room and replay them in August, you have the same final state of `light on` or `light off`. Nothing about the metaphorical months of January or August changes the outcome. Of course, a _real_ room is not deterministic if things like power shortages or maintenance occurred during those months. + +A strong feature of deterministic state machines lets you track changes with **cryptographic hashes** of the state, similar to version control systems like `git`. If there is agreement about the hash of a certain state, it is unnecessary to replay every action from genesis to ensure that two repos are in sync with each other. These properties are useful when dealing with software that is run by many different people in many different situations, just like git. + +Another nice property of cryptographically hashing state is the system of **reliable dependencies**. For example, a developer can build software that uses your library and references a specific state in your software. That way if your code changes in a way that breaks code in a specific state, developers are not required to use your new version but can continue to use the referenced version. This same property of knowing exactly what the state of a system (as well as all the ways that state can update) makes it possible to have the necessary assurances that allow for digital scarcity within an application. _If I say there is only one of some thing within a state machine and you know that there is no way for that state machine to create more than one, you can rely on there always being only one._ + +You might have guessed by now that we're talking about **blockchains**. Blockchains are deterministic state machines that have very specific rules about how state is updated. Blockchains checkpoint state with cryptographic hashes and use asymmetric cryptography to handle **access control**. There are different ways that different blockchains decide who can make a checkpoint of state. These entities are called **validators**. On blockchains like Bitcoin or Ethereum, validators are chosen by an electricity-intensive process called Proof-of-Work (PoW) in tandem with something called the longest chain rule or the Nakamoto consensus. Nakamoto solved the permissionless consensus problem with a remarkably simple but powerful scheme that uses only basic cryptographic primitives (hash functions and digital signatures). + +## Proof-of-Stake (PoS) + +The state machine you build with this tutorial uses the energy-efficient Proof-of-Stake (PoS) consensus that can consist of one or many validators, either trusted or byzantine. When a system handles _real_ scarcity, the integrity of that system becomes very important. One way to ensure integrity is by sharing the responsibility of maintaining the integrity with a large group of independently motivated participants as validators. + +So, now that you know a little more about **why** you might build an app like this, start to dive into the game itself. diff --git a/docs/versioned_docs/version-v0.25.2/guide/05-scavenge/02-game.md b/docs/versioned_docs/version-v0.25.2/guide/05-scavenge/02-game.md new file mode 100644 index 0000000000..356dab3bf7 --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/guide/05-scavenge/02-game.md @@ -0,0 +1,35 @@ +--- +sidebar_position: 2 +--- + +# Scavenger hunt game + +This tutorial focuses on building the app as a **scavenger hunt** game. Scavenger hunts are all about someone setting up tasks or questions that challenge a participant to find solutions that come with a prize. The basic mechanics of the game are as follows: + +* Anyone can post a question with an encrypted answer. +* This question comes paired with a bounty of coins. +* Anyone can post an answer to this question. If the answer is correct, that person receives the bounty of coins. + +## Safe interactions + +On a public network with latency, it is possible that something like a [man-in-the-middle attack](https://en.wikipedia.org/wiki/Man-in-the-middle_attack) could take place. Instead of pretending to be one of the parties, an attacker takes the sensitive information from one party and uses it for their own benefit. This scenario is called [Front Running](https://en.wikipedia.org/wiki/Front_running) and happens as follows: + +1. You post the answer to some question with a bounty attached to it. +2. Someone else sees you posting the answer and posts it themselves right before you. +3. Since they posted the answer first, they receive the reward instead of you. + +### Prevent front running + +To prevent front running, implement a commit-reveal scheme that converts a single exploitable interaction into two safe interactions. + +The first interaction is the commit where you "commit" to posting an answer in a follow-up interaction. This commit consists of a cryptographic hash of your name combined with the answer that you think is correct. The app saves that value as a claim that you know the answer, but hasn't yet confirmed whether the answer is correct. + +The second interaction is the reveal where you post the answer in plain text along with your name. The application takes your answer and your name and cryptographically hashes them. If the result matches what you previously submitted during the commit stage, that is the proof that it is in fact you who knows the answer and not someone who is just front-running you. + +### Security + +A system like this commit-reveal scheme could be used in tandem with any kind of gaming platform in a **trustless** way. Imagine playing "The Legend of Zelda" and the game was compiled with all the answers to different scavenger hunts already included. When you obtain a certain level the game could reveal the secret answer. Then explicitly or behind the scenes, this answer could be combined with your name, hashed, submitted, and subsequently revealed. Your name could be rewarded so that you gain more points in the game. + +Another way of achieving this level of security is with access-control list (ACL) managed by an admin account under control of the gaming company. This admin account could confirm that you beat the level and then give you points. The problem with this ACL approach is a ***single point of failure*** and a single target for trying to attack the system. If there is one key that rules the castle then the whole system is broken if that key is compromised. ACL security also creates a problem with coordination if that admin account is required to be online in order for players to get their points. With a commit-reveal system you have a more trustless architecture where permission is not required to play. The commit-reveal design decision has benefits and drawbacks, but when paired with a careful implementation your game can scale without a single bottleneck or point of failure. + +Now that you know what you are building, you can get started building your game. diff --git a/docs/versioned_docs/version-v0.25.2/guide/05-scavenge/03-scaffolding.md b/docs/versioned_docs/version-v0.25.2/guide/05-scavenge/03-scaffolding.md new file mode 100644 index 0000000000..7a6d475c09 --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/guide/05-scavenge/03-scaffolding.md @@ -0,0 +1,48 @@ +--- +sidebar_position: 3 +--- + +# Scaffold the scavenge chain + +Scaffold a new Cosmos SDK blockchain using the `ignite scaffold chain` command. + +By default a chain is scaffolded with a new empty Cosmos SDK module. Use the `--no-module` flag to skip module scaffolding. + +```bash +ignite scaffold chain scavenge --no-module +``` + +This command creates a new `scavenge` directory with a brand new Cosmos SDK blockchain. This blockchain doesn't have any application-specific logic yet, but it imports standard Cosmos SDK modules, such as `auth`, `bank`, `mint`, and others. + +Change the current directory to `scavenge`: + +```bash +cd scavenge +``` + +Inside the project directory, you can execute other Ignite CLI commands to start a blockchain node, scaffold modules, messages, types, generate code, and much more. + +In a Cosmos SDK blockchain, implement application-specific logic in separate modules. Using modules keeps code easy to understand and reuse. + +## Scaffold the scavenge module + +Scaffold a new module called `scavenge`. Based on the game design, the `scavenge` module sends tokens between participants. + +- Implement sending tokens in the standard `bank` module. +- Use the optional `--dep` flag to specify the `bank` module. + +```bash +ignite scaffold module scavenge --dep bank +``` + +This command creates the `x/scavenge` directory and imports the scavenge module into the blockchain in the `app/app.go` directory. + +## Save changes + +Before you go to the next step, you can store your project in a git commit: + +```bash +git add . +git commit -m "scaffold scavenge chain and module" +``` + diff --git a/docs/versioned_docs/version-v0.25.2/guide/05-scavenge/04-messages.md b/docs/versioned_docs/version-v0.25.2/guide/05-scavenge/04-messages.md new file mode 100644 index 0000000000..304253dccd --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/guide/05-scavenge/04-messages.md @@ -0,0 +1,157 @@ +--- +sidebar_position: 4 +--- + +# Messages + +Messages are a great place to start when building a module because messages define your application actions. Think of all the scenarios where a user would be able to update the state of the application in any way. These scenarios are the basic interactions, similar to CRUD (create, read, update, and delete) operations. Messages are objects whose end-goal is to trigger state-transitions. + +For the scavenger hunt game, the scavenge module requires 3 messages: + +* Submit scavenge +* Commit solution +* Reveal solution + +## Submit scavenge message + +The submit scavenge message must contain all the information that is required to create a scavenge: + +* Description - the question to be solved or description of the challenge. +* Solution hash - the scrambled solution. +* Reward - the bounty that is awarded to whoever submits the answer first. + +Use the `ignite scaffold message` command to scaffold a new Cosmos SDK message for your module. The command accepts the message name as the first argument and a list of fields. By default, a message is scaffolded in a module with a name that matches the name of the project, in our case `scavenge`. You can use a flag to overwrite this default naming behavior. + +```bash +ignite scaffold message submit-scavenge solutionHash description reward +``` + +The command creates and modifies several files: + +``` +modify app/app.go +create proto/scavenge/genesis.proto +create proto/scavenge/params.proto +create proto/scavenge/query.proto +create proto/scavenge/tx.proto +create testutil/keeper/scavenge.go +create x/scavenge/client/cli/query.go +create x/scavenge/client/cli/query_params.go +create x/scavenge/client/cli/tx.go +create x/scavenge/genesis.go +create x/scavenge/genesis_test.go +create x/scavenge/keeper/grpc_query.go +create x/scavenge/keeper/grpc_query_params.go +create x/scavenge/keeper/grpc_query_params_test.go +create x/scavenge/keeper/keeper.go +create x/scavenge/keeper/msg_server.go +create x/scavenge/keeper/msg_server_test.go +create x/scavenge/keeper/params.go +create x/scavenge/keeper/params_test.go +create x/scavenge/module.go +create x/scavenge/module_simulation.go +create x/scavenge/simulation/simap.go +create x/scavenge/types/codec.go +create x/scavenge/types/errors.go +create x/scavenge/types/expected_keepers.go +create x/scavenge/types/genesis.go +create x/scavenge/types/genesis_test.go +create x/scavenge/types/keys.go +create x/scavenge/types/params.go +create x/scavenge/types/types.go + +πŸŽ‰ Module created scavenge. +``` + +The `scaffold message` command does all of these code updates for you: + +* `proto/scavenge/tx.proto` + + * Adds `MsgSubmitScavenge` and `MsgSubmitScavengeResponse` proto messages + * Registers a `SubmitScavenge` RPC in the `Msg` service + +* `x/scavenge/types/message_submit_scavenge.go` + + * Defines methods to satisfy `Msg` interface + +* `x/scavenge/keeper/msg_server_submit_scavenge.go` + + * Defines the `SubmitScavenge` keeper method + +* `x/scavenge/client/cli/tx_submit_scavenge.go` + + * Adds CLI command to broadcast a transaction with a message + +* `x/scavenge/client/cli/tx.go` + + * Registers the CLI command + +* `x/scavenge/types/codec.go` + + * Registers the codecs + +In `x/scavenge/types/message_submit_scavenge.go`, you can notice that the message follows the `sdk.Msg` interface. The message `struct` automatically contains the information required to create a new scavenge: + +```go +func NewMsgSubmitScavenge(creator string, solutionHash string, description string, reward string) *MsgSubmitScavenge { + return &MsgSubmitScavenge{ + Creator: creator, + SolutionHash: solutionHash, + Description: description, + Reward: reward, + } +} +``` + +The `Msg` interface requires some other methods be set, like validating the content of the `struct` and confirming the message was signed and submitted by the creator. + +Now that a user can submit a scavenge, the only other essential action is to be able to solve the scavenge. As described earlier to prevent front running, use two separate actions, `MsgCommitSolution` and `MsgRevealSolution`. + +## Commit solution message + +The commit solution message requires the following fields: + +* Solution hash - the scrambled solution +* Solution scavenger hash - the hash of the combination of the solution and the person who solved it + +```bash +ignite scaffold message commit-solution solutionHash solutionScavengerHash +``` + +Because you're using the same `ignite scaffold message` command, the set of modified and created files is the same: +``` +modify proto/scavenge/tx.proto +modify x/scavenge/client/cli/tx.go +create x/scavenge/client/cli/tx_commit_solution.go +create x/scavenge/keeper/msg_server_commit_solution.go +modify x/scavenge/module_simulation.go +create x/scavenge/simulation/commit_solution.go +modify x/scavenge/types/codec.go +create x/scavenge/types/message_commit_solution.go +create x/scavenge/types/message_commit_solution_test.go + +πŸŽ‰ Created a message `commit-solution`. +``` + +## Reveal solution message + +The reveal solution message requires only one field: + +* Solution - the plain text version of the solution + +```bash +ignite scaffold message reveal-solution solution +``` + +Again, because you're using the same `ignite scaffold message` command, the set of modified and created files is the same for the `reveal-solution` message. + +Information about the scavenger (the creator of the message is automatically included) and the solution hash can be deterministically derived from the solution string. + +## Save changes + +Now is a good time to store your project in a git commit: + +```bash +git add . +git commit -m "add scavenge messages" +``` diff --git a/docs/versioned_docs/version-v0.25.2/guide/05-scavenge/05-types.md b/docs/versioned_docs/version-v0.25.2/guide/05-scavenge/05-types.md new file mode 100644 index 0000000000..142895b5e2 --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/guide/05-scavenge/05-types.md @@ -0,0 +1,134 @@ +--- +sidebar_position: 5 +--- + +# Types + +Now that you've defined messages that trigger state transitions, it's time to implement types and methods that operate on the state. + +A keeper is an abstraction that lets your blockchain app interact with the state. Functions like create, update, and delete are defined as keeper methods. In the scavenge blockchain, you need to define the `scavenge` and `commit` types along with create and update methods. + +Several Ignite CLI commands are available to scaffold the code for CRUD functionality for a list-like data structure, a map (key-value pairs), and a single element in the state. In this example, both `scavenge` and `commit` are stored in a map-like data structure. + +## Scavenge + +Use the `ignite scaffold map` command to scaffold the `scavenge` type and the code for creating, reading, updating, and deleting (CRUD) scavenges. + +The first argument is the name of the type to create (`scavenge`), the rest is a list of fields. By default, generic CRUD messages are scaffolded. However, since you already created messages specifically for this scavenge blockchain, use the `--no-message` flag to skip message creation. + +```bash +ignite scaffold map scavenge solutionHash solution description reward scavenger --no-message +``` + +The `ignite scaffold map` command creates and modifies several files: + +``` +modify proto/scavenge/genesis.proto +modify proto/scavenge/query.proto +create proto/scavenge/scavenge.proto +modify x/scavenge/client/cli/query.go +create x/scavenge/client/cli/query_scavenge.go +create x/scavenge/client/cli/query_scavenge_test.go +modify x/scavenge/genesis.go +modify x/scavenge/genesis_test.go +create x/scavenge/keeper/grpc_query_scavenge.go +create x/scavenge/keeper/grpc_query_scavenge_test.go +create x/scavenge/keeper/scavenge.go +create x/scavenge/keeper/scavenge_test.go +modify x/scavenge/module.go +modify x/scavenge/types/genesis.go +modify x/scavenge/types/genesis_test.go +create x/scavenge/types/key_scavenge.go + +πŸŽ‰ scavenge added. +``` + +The `scaffold map` command does all of these code updates for you: + +* `proto/scavenge/scavenge.proto` + + * Defines the `Scavenge` type as a proto message + +* `proto/scavenge/query.proto` + + * Defines queries to get data from the blockchain as proto messages and registers the queries in the `Query` service + +* `proto/scavenge/genesis.proto` + + * Creates type for exporting the state of the blockchain (for example, during software upgrades) + +* `x/scavenge/keeper/grpc_query_scavenge.go` + + * Defines keeper methods to query the blockchain + +* `x/scavenge/keeper/grpc_query_scavenge_test.go` + + * Creates tests for query keeper methods + +* `x/scavenge/keeper/scavenge.go` + + * Defines keeper methods to get, set, and remove scavenges from the store + +* `x/scavenge/keeper/scavenge_test.go` + + * Creates tests for the keeper methods + +* `x/scavenge/client/cli/query_scavenge.go` + + * Creates CLI commands for querying the blockchain + +* `x/scavenge/client/cli/query.go` + + * Registers the CLI commands + +* `x/scavenge/client/cli/query_scavenge_test.go` + + * Createstests for the CLI commands + +* `x/scavenge/types/keys.go` + + * Creates a string as a prefix in the key used to store scavenges in the state + +* `x/scavenge/genesis.go` + + * Creates logic for exporting and exporting the state + +* `x/scavenge/types/genesis.go` + + * Createslogic for validating the genesis file + +* `x/scavenge/module.go` + + * Registers the gRPC gateway routes + +Review the `x/scavenge/keeper/scavenge.go` file to see the `SetScavenge` updates that were made in the `keeper` package, like the `store.Set` method that writes a Scavenge into the store: + +```go +// SetScavenge set a specific scavenge in the store from its index +func (k Keeper) SetScavenge(ctx sdk.Context, scavenge types.Scavenge) { + store := prefix.NewStore(ctx.KVStore(k.storeKey), types.KeyPrefix(types.ScavengeKeyPrefix)) + b := k.cdc.MustMarshal(&scavenge) + store.Set(types.ScavengeKey( + scavenge.Index, + ), b) +} +``` + +Review the update for `GetScavenge` that selects a store using the scavenge prefix and uses `store.Get` to fetch a scavenge with a particular index. + +## Commit + +Use `ignite scaffold map` to create the same logic for a `commit` type. + +```bash +ignite scaffold map commit solutionHash solutionScavengerHash --no-message +``` + +## Save changes + +Now is a good time to store your project in a git commit: + +```bash +git add . +git commit -m "add scavenge types" +``` diff --git a/docs/versioned_docs/version-v0.25.2/guide/05-scavenge/06-handlers.md b/docs/versioned_docs/version-v0.25.2/guide/05-scavenge/06-handlers.md new file mode 100644 index 0000000000..8b42662cf9 --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/guide/05-scavenge/06-handlers.md @@ -0,0 +1,18 @@ +--- +sidebar_position: 6 +--- + +# Handlers + +For a message to reach a keeper, it has to go through a message server handler. A handler is where you can apply logic to allow or deny a message to succeed. + +* If you're familiar with the [Model-view-controller](https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller) (MVC) software architecture, the keeper is a bit like the model, and the handler is a bit like the controller. +* If you're familiar with [React](<https://en.wikipedia.org/wiki/React_(web_framework)>) or [Vue](https://en.wikipedia.org/wiki/Vue.js) architecture, the keeper is a bit like the reducer store and the handler is a bit like actions. + +Three message types were automatically added to the message server: + +* `MsgSubmitScavenge` +* `MsgCommitSolution` +* `MsgRevealSolution` + +Each message, when handled, calls the appropriate keeper method that is responsible for committing changes to the store. diff --git a/docs/versioned_docs/version-v0.25.2/guide/05-scavenge/07-keeper.md b/docs/versioned_docs/version-v0.25.2/guide/05-scavenge/07-keeper.md new file mode 100644 index 0000000000..12c914f180 --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/guide/05-scavenge/07-keeper.md @@ -0,0 +1,245 @@ +--- +sidebar_position: 7 +--- + +# Keeper + +Keepers are a Cosmos SDK abstraction whose role is to manage access to the subset of the state defined by various modules. + +## Create scavenge + +Make the required changes in the `x/scavenge/keeper/msg_server_submit_scavenge.go` file so the create scavenge method can manage the following: + +* Check that a scavenge with a given solution hash doesn't exist +* Send tokens from the scavenge creator account to a module account +* Write the scavenge to the store + +```go +// x/scavenge/keeper/msg_server_submit_scavenge.go + +package keeper + +import ( + "context" + + sdk "github.com/cosmos/cosmos-sdk/types" + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + "github.com/tendermint/tendermint/crypto" + + "scavenge/x/scavenge/types" +) + +func (k msgServer) SubmitScavenge(goCtx context.Context, msg *types.MsgSubmitScavenge) (*types.MsgSubmitScavengeResponse, error) { + // get context that contains information about the environment, such as block height + ctx := sdk.UnwrapSDKContext(goCtx) + + // create a new scavenge from the data in the MsgSubmitScavenge message + var scavenge = types.Scavenge{ + Index: msg.SolutionHash, + Description: msg.Description, + SolutionHash: msg.SolutionHash, + Reward: msg.Reward, + } + + // try getting a scavenge from the store using the solution hash as the key + _, isFound := k.GetScavenge(ctx, scavenge.SolutionHash) + + // return an error if a scavenge already exists in the store + if isFound { + return nil, sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "Scavenge with that solution hash already exists") + } + + // get address of the Scavenge module account + moduleAcct := sdk.AccAddress(crypto.AddressHash([]byte(types.ModuleName))) + + // convert the message creator address from a string into sdk.AccAddress + scavenger, err := sdk.AccAddressFromBech32(msg.Creator) + if err != nil { + panic(err) + } + + // convert tokens from string into sdk.Coins + reward, err := sdk.ParseCoinsNormalized(scavenge.Reward) + if err != nil { + panic(err) + } + + // send tokens from the scavenge creator to the module account + sdkError := k.bankKeeper.SendCoins(ctx, scavenger, moduleAcct, reward) + if sdkError != nil { + return nil, sdkError + } + + // write the scavenge to the store + k.SetScavenge(ctx, scavenge) + return &types.MsgSubmitScavengeResponse{}, nil +} +``` + +Notice the use of `moduleAcct`. This account is not controlled by a public key pair, but is a reference to an account that is owned by this actual module. `moduleAcct` is used to hold the bounty reward that is attached to a scavenge until that scavenge has been solved, at which point the bounty is paid to the account who solved the scavenge. + +`SubmitScavenge` uses the `SendCoins` method from the `bank` module. When you scaffolded the scavenge module, you used `--dep bank` to specify a dependency between the `scavenge` and `bank` modules. This dependency automatically created an `expected_keepers.go` file with a `BankKeeper` interface. + +To use the `BankKeeper` interface in the keeper methods of the `scavenge` module, add `SendCoins` to the `x/scavenge/types/expected_keepers.go` file: + +```go +// x/scavenge/types/expected_keepers.go + +package types + +import ( + sdk "github.com/cosmos/cosmos-sdk/types" +) + +type BankKeeper interface { + SendCoins(ctx sdk.Context, fromAddr sdk.AccAddress, toAddr sdk.AccAddress, amt sdk.Coins) error +} +``` + +## Commit Solution + +Make the required changes in the `x/scavenge/keeper/msg_server_commit_solution.go` file so the commit solution method can manage the following: + +* Check that commit with a given hash doesn't exist in the store +* Write a new commit to the store + +```go +// x/scavenge/keeper/msg_server_commit_solution.go + +package keeper + +import ( + "context" + + sdk "github.com/cosmos/cosmos-sdk/types" + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + + "scavenge/x/scavenge/types" +) + +func (k msgServer) CommitSolution(goCtx context.Context, msg *types.MsgCommitSolution) (*types.MsgCommitSolutionResponse, error) { + ctx := sdk.UnwrapSDKContext(goCtx) + + // create a new commit from the information in the MsgCommitSolution message + var commit = types.Commit{ + Index: msg.SolutionScavengerHash, + SolutionHash: msg.SolutionHash, + SolutionScavengerHash: msg.SolutionScavengerHash, + } + + // try getting a commit from the store using the solution+scavenger hash as the key + _, isFound := k.GetCommit(ctx, commit.SolutionScavengerHash) + + // return an error if a commit already exists in the store + if isFound { + return nil, sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "Commit with that hash already exists") + } + + // write commit to the store + k.SetCommit(ctx, commit) + return &types.MsgCommitSolutionResponse{}, nil +} +``` + +## Reveal Solution + +Make the required changes in the `x/scavenge/keeper/msg_server_reveal_solution.go` file so the reveal solution method can manage the following: + +* Check that a commit with a given hash exists in the store +* Check that a scavenge with a given solution hash exists in the store +* Check that the scavenge hasn't already been solved +* Send tokens from the module account to the account that revealed the correct anwer +* Write the updated scavenge to the store + +```go +// x/scavenge/keeper/msg_server_reveal_solution.go + +package keeper + +import ( + "context" + "crypto/sha256" + "encoding/hex" + + sdk "github.com/cosmos/cosmos-sdk/types" + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + "github.com/tendermint/tendermint/crypto" + + "scavenge/x/scavenge/types" +) + +func (k msgServer) RevealSolution(goCtx context.Context, msg *types.MsgRevealSolution) (*types.MsgRevealSolutionResponse, error) { + ctx := sdk.UnwrapSDKContext(goCtx) + + // concatenate a solution and a scavenger address and convert it to bytes + var solutionScavengerBytes = []byte(msg.Solution + msg.Creator) + + // find the hash of solution and address + var solutionScavengerHash = sha256.Sum256(solutionScavengerBytes) + + // convert the hash to a string + var solutionScavengerHashString = hex.EncodeToString(solutionScavengerHash[:]) + + // try getting a commit using the the hash of solution and address + _, isFound := k.GetCommit(ctx, solutionScavengerHashString) + + // return an error if a commit doesn't exist + if !isFound { + return nil, sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "Commit with that hash doesn't exists") + } + + // find a hash of the solution + var solutionHash = sha256.Sum256([]byte(msg.Solution)) + + // encode the solution hash to string + var solutionHashString = hex.EncodeToString(solutionHash[:]) + var scavenge types.Scavenge + + // get a scavenge from the stre using the solution hash + scavenge, isFound = k.GetScavenge(ctx, solutionHashString) + + // return an error if the solution doesn't exist + if !isFound { + return nil, sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "Scavenge with that solution hash doesn't exists") + } + + // check that the scavenger property contains a valid address + _, err := sdk.AccAddressFromBech32(scavenge.Scavenger) + + // return an error if a scavenge has already been solved + if err == nil { + return nil, sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "Scavenge has already been solved") + } + + // save the scavebger address to the scavenge + scavenge.Scavenger = msg.Creator + + // save the correct solution to the scavenge + scavenge.Solution = msg.Solution + + // get address of the module account + moduleAcct := sdk.AccAddress(crypto.AddressHash([]byte(types.ModuleName))) + + // convert scavenger address from string to sdk.AccAddress + scavenger, err := sdk.AccAddressFromBech32(scavenge.Scavenger) + if err != nil { + panic(err) + } + + // parse tokens from a string to sdk.Coins + reward, err := sdk.ParseCoinsNormalized(scavenge.Reward) + if err != nil { + panic(err) + } + + // send tokens from a module account to the scavenger + sdkError := k.bankKeeper.SendCoins(ctx, moduleAcct, scavenger, reward) + if sdkError != nil { + return nil, sdkError + } + + // save the udpated scavenge to the store + k.SetScavenge(ctx, scavenge) + return &types.MsgRevealSolutionResponse{}, nil +} +``` diff --git a/docs/versioned_docs/version-v0.25.2/guide/05-scavenge/08-cli.md b/docs/versioned_docs/version-v0.25.2/guide/05-scavenge/08-cli.md new file mode 100644 index 0000000000..72a2cbb740 --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/guide/05-scavenge/08-cli.md @@ -0,0 +1,145 @@ +--- +sidebar_position: 8 +--- + +# CLI + +A command line interface (CLI) lets you interact with your app after it is running on a machine somewhere. Each module has its own namespace within the CLI that gives it the ability to create and sign messages that are destined to be handled by that module. + +The CLI also comes with the ability to query the state of that module. When combined with the rest of the app, the CLI lets you do things like generate keys for a new account or check the status of an interaction you already had with the application. + +The CLI for the scavenge module is present in the `tx.go` and `query.go` files in the `x/scavenge/client/cli/` directory. + +- The `tx.go` file is for making transactions that contain messages that will ultimately update the state. +- The `query.go` file is for making queries let you read information from the state. + +Both files use the [Cobra](https://github.com/spf13/cobra) library. + +## The tx.go file + +The `tx.go` file contains the `GetTxCmd` standard method that is used in the Cosmos SDK. This method is referenced later in the `module.go` file that describes exactly which attributes a modules has. + +This method makes it easier to incorporate different modules for different reasons at the level of the actual application. You are focused on a module now, but later you create an application that uses this module and other modules that are already available within the Cosmos SDK. + +## Commit solution + +```go +// x/scavenge/client/cli/tx_commit_solution.go + +package cli + +import ( + "crypto/sha256" + "encoding/hex" + + "github.com/cosmos/cosmos-sdk/client" + "github.com/cosmos/cosmos-sdk/client/flags" + "github.com/cosmos/cosmos-sdk/client/tx" + "github.com/spf13/cobra" + + "scavenge/x/scavenge/types" +) + +func CmdCommitSolution() *cobra.Command { + cmd := &cobra.Command{ + // pass a solution as the only argument + Use: "commit-solution [solution]", + Short: "Broadcast message commit-solution", + // set the number of arguments to 1 + Args: cobra.ExactArgs(1), + RunE: func(cmd *cobra.Command, args []string) error { + clientCtx, err := client.GetClientTxContext(cmd) + if err != nil { + return err + } + + solution := args[0] + + // find a hash of the solution + solutionHash := sha256.Sum256([]byte(solution)) + + // convert the solution hash to string + solutionHashString := hex.EncodeToString(solutionHash[:]) + + // convert a scavenger address to string + var scavenger = clientCtx.GetFromAddress().String() + + // find the hash of solution and scavenger address + var solutionScavengerHash = sha256.Sum256([]byte(solution + scavenger)) + + // convert the hash to string + var solutionScavengerHashString = hex.EncodeToString(solutionScavengerHash[:]) + + // create a new message + msg := types.NewMsgCommitSolution(clientCtx.GetFromAddress().String(), string(solutionHashString), string(solutionScavengerHashString)) + if err := msg.ValidateBasic(); err != nil { + return err + } + + // broadcast the transaction with the message to the blockchain + return tx.GenerateOrBroadcastTxCLI(clientCtx, cmd.Flags(), msg) + }, + } + + flags.AddTxFlagsToCmd(cmd) + + return cmd +} +``` + +Note that this file makes use of the `sha256` library for hashing the plain text solutions into the scrambled hashes. This activity takes place on the client side so the solutions are never leaked to any public entity that might want to sneak a peak and steal the bounty reward associated with the scavenges. You can also notice that the hashes are converted into hexadecimal representation to make them easy to read as strings. Hashes are ultimately stored as hexadecimal representations in the keeper. + +## Submit scavenge + +```go +// x/scavenge/client/cli/tx_submit_scavenge.go + +package cli + +import ( + "crypto/sha256" + "encoding/hex" + + "github.com/cosmos/cosmos-sdk/client" + "github.com/cosmos/cosmos-sdk/client/flags" + "github.com/cosmos/cosmos-sdk/client/tx" + "github.com/spf13/cobra" + + "scavenge/x/scavenge/types" +) + +func CmdSubmitScavenge() *cobra.Command { + cmd := &cobra.Command{ + Use: "submit-scavenge [solution] [description] [reward]", + Short: "Broadcast message submit-scavenge", + Args: cobra.ExactArgs(3), + RunE: func(cmd *cobra.Command, args []string) error { + clientCtx, err := client.GetClientTxContext(cmd) + if err != nil { + return err + } + + // find a hash of the solution + solutionHash := sha256.Sum256([]byte(args[0])) + + // convert the hash to string + solutionHashString := hex.EncodeToString(solutionHash[:]) + argsDescription := string(args[1]) + argsReward := string(args[2]) + + // create a new message + msg := types.NewMsgSubmitScavenge(clientCtx.GetFromAddress().String(), string(solutionHashString), string(argsDescription), string(argsReward)) + if err := msg.ValidateBasic(); err != nil { + return err + } + + // broadcast the transaction with the message to the blockchain + return tx.GenerateOrBroadcastTxCLI(clientCtx, cmd.Flags(), msg) + }, + } + + flags.AddTxFlagsToCmd(cmd) + + return cmd +} +``` diff --git a/docs/versioned_docs/version-v0.25.2/guide/05-scavenge/09-play.md b/docs/versioned_docs/version-v0.25.2/guide/05-scavenge/09-play.md new file mode 100644 index 0000000000..1dab194e8c --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/guide/05-scavenge/09-play.md @@ -0,0 +1,367 @@ +--- +sidebar_position: 9 +--- + +# Play with your blockchain + +Now that you have made the required updates to you new chain, it's time to test it. + +## Start the blockchain + +To start your blockchain in development, run the following command: + +```bash +ignite chain serve +``` + +The `serve` command builds the chain binary file, initializes a data directory, and starts a node in development. + +For all subsequent commands, you use a terminal window that is different from the window you started the chain in. + +## Create a scavenge + +Follow the instructions and submit a new scavenge. + +The first parameter is the `solution`, but you should also know what the actual question is that your solution solves (the `description`). + +You can make the challenge question something family-friendly like `What's brown and sticky?`. Of course, the only solution to this question is `A stick`. + +Next, you must specify the `reward`. Give away `100token` as a reward for solving the scavenge. + +Now you have all the pieces needed to create your message. Piece them all together in the command and add the flag `--from` so the CLI knows who is sending it: + +```bash +scavenged tx scavenge submit-scavenge "A stick" "What's brown and sticky?" 100token --from alice +``` + +The results: + +```json +{ + "body": { + "messages": [ + { + "@type": "/username.scavenge.scavenge.MsgSubmitScavenge", + "creator": "cosmos1wzgkalxjhaqtznrzzp0xy5jgkxx82xaa660jxh", + "solutionHash": "2f9457a6e8fb202f9e10389a143a383106268c460743dd59d723c0f82d9ba906", + "description": "What's brown and sticky?", + "reward": "100token" + } + ], + "memo": "", + "timeout_height": "0", + "extension_options": [], + "non_critical_extension_options": [] + }, + "auth_info": { + "signer_infos": [], + "fee": { "amount": [], "gas_limit": "200000", "payer": "", "granter": "" } + }, + "signatures": [] +} +``` + +```json +{ + "height": "229", + "txhash": "CE401E1F95FC583355BF6ABB823A4655185E2983CACE7C430E22CC7B573152DD", + "codespace": "", + "code": 0, + "data": "0A100A0E43726561746553636176656E6765", + "raw_log": "[{\"events\":[{\"type\":\"message\",\"attributes\":[{\"key\":\"action\",\"value\":\"SubmitScavenge\"},{\"key\":\"sender\",\"value\":\"cosmos1wzgkalxjhaqtznrzzp0xy5jgkxx82xaa660jxh\"}]},{\"type\":\"transfer\",\"attributes\":[{\"key\":\"recipient\",\"value\":\"cosmos13aupkh5020l9u6qquf7lvtcxhtr5jjama2kwyg\"},{\"key\":\"sender\",\"value\":\"cosmos1wzgkalxjhaqtznrzzp0xy5jgkxx82xaa660jxh\"},{\"key\":\"amount\",\"value\":\"100token\"}]}]}]", + "logs": [ + { + "msg_index": 0, + "log": "", + "events": [ + { + "type": "message", + "attributes": [ + { "key": "action", "value": "SubmitScavenge" }, + { + "key": "sender", + "value": "cosmos1wzgkalxjhaqtznrzzp0xy5jgkxx82xaa660jxh" + } + ] + }, + { + "type": "transfer", + "attributes": [ + { + "key": "recipient", + "value": "cosmos13aupkh5020l9u6qquf7lvtcxhtr5jjama2kwyg" + }, + { + "key": "sender", + "value": "cosmos1wzgkalxjhaqtznrzzp0xy5jgkxx82xaa660jxh" + }, + { "key": "amount", "value": "100token" } + ] + } + ] + } + ], + "info": "", + "gas_wanted": "200000", + "gas_used": "65320", + "tx": null, + "timestamp": "" +} +``` + +Replace the `txhash` with your `txhash` from the previous output: + +```bash +scavenged q tx CE401E1F95FC583355BF6ABB823A4655185E2983CACE7C430E22CC7B573152DD --output json +``` + +The results: + +```json +{ + "height": "229", + "txhash": "CE401E1F95FC583355BF6ABB823A4655185E2983CACE7C430E22CC7B573152DD", + "codespace": "", + "code": 0, + "data": "0A100A0E43726561746553636176656E6765", + "raw_log": "[{\"events\":[{\"type\":\"message\",\"attributes\":[{\"key\":\"action\",\"value\":\"SubmitScavenge\"},{\"key\":\"sender\",\"value\":\"cosmos1wzgkalxjhaqtznrzzp0xy5jgkxx82xaa660jxh\"}]},{\"type\":\"transfer\",\"attributes\":[{\"key\":\"recipient\",\"value\":\"cosmos13aupkh5020l9u6qquf7lvtcxhtr5jjama2kwyg\"},{\"key\":\"sender\",\"value\":\"cosmos1wzgkalxjhaqtznrzzp0xy5jgkxx82xaa660jxh\"},{\"key\":\"amount\",\"value\":\"100token\"}]}]}]", + "logs": [ + { + "msg_index": 0, + "log": "", + "events": [ + { + "type": "message", + "attributes": [ + { "key": "action", "value": "SubmitScavenge" }, + { + "key": "sender", + "value": "cosmos1wzgkalxjhaqtznrzzp0xy5jgkxx82xaa660jxh" + } + ] + }, + { + "type": "transfer", + "attributes": [ + { + "key": "recipient", + "value": "cosmos13aupkh5020l9u6qquf7lvtcxhtr5jjama2kwyg" + }, + { + "key": "sender", + "value": "cosmos1wzgkalxjhaqtznrzzp0xy5jgkxx82xaa660jxh" + }, + { "key": "amount", "value": "100token" } + ] + } + ] + } + ], + "info": "", + "gas_wanted": "200000", + "gas_used": "65320", + "tx": { + "@type": "/cosmos.tx.v1beta1.Tx", + "body": { + "messages": [ + { + "@type": "/username.scavenge.scavenge.MsgSubmitScavenge", + "creator": "cosmos1wzgkalxjhaqtznrzzp0xy5jgkxx82xaa660jxh", + "solutionHash": "2f9457a6e8fb202f9e10389a143a383106268c460743dd59d723c0f82d9ba906", + "description": "What's brown and sticky?", + "reward": "100token" + } + ], + "memo": "", + "timeout_height": "0", + "extension_options": [], + "non_critical_extension_options": [] + }, + "auth_info": { + "signer_infos": [ + { + "public_key": { + "@type": "/cosmos.crypto.secp256k1.PubKey", + "key": "ApRuim5kLByq9AqJJ9dEF5rFCkAbhIehEcPzSouM92p6" + }, + "mode_info": { "single": { "mode": "SIGN_MODE_DIRECT" } }, + "sequence": "1" + } + ], + "fee": { "amount": [], "gas_limit": "200000", "payer": "", "granter": "" } + }, + "signatures": [ + "8W5MkgV8oWpB6UWRGVKuimfPyb1OutG8KPXTIneM6WIvy4YHToG3GUXFpUrh+CxPXmlDh5gIfeR4+nFfUuQXng==" + ] + }, + "timestamp": "2021-07-09T10:24:52Z" +} +``` + +## Query for a list of scavenges + +```bash +scavenged q scavenge list-scavenge --output json +``` + +The results: + +```json +{ + "Scavenge": [ + { + "creator": "cosmos1wzgkalxjhaqtznrzzp0xy5jgkxx82xaa660jxh", + "index": "2f9457a6e8fb202f9e10389a143a383106268c460743dd59d723c0f82d9ba906", + "solutionHash": "2f9457a6e8fb202f9e10389a143a383106268c460743dd59d723c0f82d9ba906", + "solution": "", + "description": "What's brown and sticky?", + "reward": "100token", + "scavenger": "" + } + ], + "pagination": { "next_key": null, "total": "0" } +} +``` + +## Commit a solution + +Follow the instructions and submit the answer as a commit on behalf of `bob`: + +```bash +scavenged tx scavenge commit-solution "A stick" --from bob +``` + +The results: + +```json +{ + "body": { + "messages": [ + { + "@type": "/username.scavenge.scavenge.MsgCommitSolution", + "creator": "cosmos1gkheudhhjsvq0s8fxt7p6pwe0k3k30kepcnz9p", + "solutionHash": "2f9457a6e8fb202f9e10389a143a383106268c460743dd59d723c0f82d9ba906", + "solutionScavengerHash": "461d54ec0bbb1d696a79af80d7f63e4c6df262d76309423da37189453eaec127" + } + ], + "memo": "", + "timeout_height": "0", + "extension_options": [], + "non_critical_extension_options": [] + }, + "auth_info": { + "signer_infos": [], + "fee": { "amount": [], "gas_limit": "200000", "payer": "", "granter": "" } + }, + "signatures": [] +} +``` + +## Query for a list of commits + +```bash +scavenged q scavenge list-commit --output json +``` + +The results: + +```json +{ + "Commit": [ + { + "creator": "cosmos1gkheudhhjsvq0s8fxt7p6pwe0k3k30kepcnz9p", + "index": "461d54ec0bbb1d696a79af80d7f63e4c6df262d76309423da37189453eaec127", + "solutionHash": "2f9457a6e8fb202f9e10389a143a383106268c460743dd59d723c0f82d9ba906", + "solutionScavengerHash": "461d54ec0bbb1d696a79af80d7f63e4c6df262d76309423da37189453eaec127" + } + ], + "pagination": { "next_key": null, "total": "0" } +} +``` + +You don't need to put the `solutionHash` because it can be generated by hashing the actual solution. + +Since all you need is the solution again, you can send and confirm the final message: + +## Reveal a solution + +```bash +scavenged tx scavenge reveal-solution "A stick" --from bob +``` + +The results: + +```json +{ + "body": { + "messages": [ + { + "@type": "/username.scavenge.scavenge.MsgRevealSolution", + "creator": "cosmos1gkheudhhjsvq0s8fxt7p6pwe0k3k30kepcnz9p", + "solution": "A stick" + } + ], + "memo": "", + "timeout_height": "0", + "extension_options": [], + "non_critical_extension_options": [] + }, + "auth_info": { + "signer_infos": [], + "fee": { "amount": [], "gas_limit": "200000", "payer": "", "granter": "" } + }, + "signatures": [] +} +``` + +## Query for a list of solved scavenges + +```bash +scavenged q scavenge list-scavenge --output json +``` + +The results: + +```json +{ + "Scavenge": [ + { + "creator": "cosmos1wzgkalxjhaqtznrzzp0xy5jgkxx82xaa660jxh", + "index": "2f9457a6e8fb202f9e10389a143a383106268c460743dd59d723c0f82d9ba906", + "solutionHash": "2f9457a6e8fb202f9e10389a143a383106268c460743dd59d723c0f82d9ba906", + "solution": "A stick", + "description": "What's brown and sticky?", + "reward": "100token", + "scavenger": "cosmos1gkheudhhjsvq0s8fxt7p6pwe0k3k30kepcnz9p" + } + ], + "pagination": { "next_key": null, "total": "0" } +} +``` + +## Commit a solution again, expect to get an error + +```bash +scavenged tx scavenge commit-solution "A stick" --from bob +``` + +The results: + +```json +{ + "height": "665", + "txhash": "EFA43A3C08BD1D77E597D57E60CD7B4D2E8E442F49BA88C85CC9EEC86E992B75", + "codespace": "sdk", + "code": 18, + "data": "", + "raw_log": "failed to execute message; message index: 0: Commit with that hash already exists: invalid request", + "logs": [], + "info": "", + "gas_wanted": "200000", + "gas_used": "41086", + "tx": null, + "timestamp": "" +} +``` + +Congratulations, you have built and tested a scavenge hunt blockchain! diff --git a/docs/versioned_docs/version-v0.25.2/guide/05-scavenge/_category_.json b/docs/versioned_docs/version-v0.25.2/guide/05-scavenge/_category_.json new file mode 100644 index 0000000000..651c9c966b --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/guide/05-scavenge/_category_.json @@ -0,0 +1,5 @@ +{ + "label": "Escrow Account: Scavenge", + "position": 5, + "link": null + } \ No newline at end of file diff --git a/docs/versioned_docs/version-v0.25.2/guide/06-loan.md b/docs/versioned_docs/version-v0.25.2/guide/06-loan.md new file mode 100644 index 0000000000..4ae09aba93 --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/guide/06-loan.md @@ -0,0 +1,922 @@ +--- +sidebar_position: 6 +description: Loan blockchain using Ignite CLI +title: "Advanced Module: DeFi Loan" +--- + +# DeFi loan module + +As a rapidly growing industry in the blockchain ecosystem, (decentralized finance) DeFi is spurring innovation and revolution in spending, sending, locking, and loaning cryptocurrency tokens. + +One of the many goals of blockchain is to make financial instruments available to everyone. A loan in blockchain DeFi can be used in combination with lending, borrowing, spot trading, margin trading, and flash loans. + +With DeFi, end users can quickly and easily access loans without having to submit their passports or background checks like in the traditional banking system. + +In this tutorial, you learn about a basic loan system as you use Ignite CLI to build a loan module. + +**You will learn how to** + +* Scaffold a blockchain +* Scaffold a Cosmos SDK loan module +* Scaffold a list for loan objects +* Create messages in the loan module to interact with the loan object +* Interact with other Cosmos SDK modules +* Use an escrow module account +* Add application messages for a loan system + * Request loan + * Approve loan + * Repay loan + * Liquidate loan + * Cancel loan + +**Note:** The code in this tutorial is written specifically for this learning experience and is intended only for educational purposes. This tutorial code is not intended to be used in production. + +## Module design + +A loan consists of: + +* An `id` +* The `amount` that is being lent +* A `fee` as cost for the loan +* The borrowing party provides a `collateral` to request a loan +* A loan has a `deadline` for repayment, after which the loan can be liquidated +* A loan has a `state` that describes the status as: + + * requested + * approved + * paid + * cancelled + * liquidated + +The two accounts involved in the loan are: + +* `borrower` +* `lender` + +### The borrower + +A borrower posts a loan request with loan information such as: + +* `amount` +* `fee` +* `collateral` +* `deadline` + +The borrower must repay the loan amount and the loan fee to the lender by the deadline risk losing the collateral. + +### The lender + +A lender can approve a loan request from a borrower. + +- After the lender approves the loan, the loan amount is transferred to the borrower. +- If the borrower is unable to pay the loan, the lender can liquidate the loan. +- Loan liquidation transfers the collateral and the fees to the lender. + +## Scaffold the blockchain + +Use Ignite CLI to scaffold a fully functional Cosmos SDK blockchain app named `loan`: + +```bash +ignite scaffold chain loan --no-module +``` + +The `--no-module` flag prevents scaffolding a default module. Don't worry, you will add the loan module later. + +Change into the newly created `loan` directory: + +```bash +cd loan +``` + +## Scaffold the module + +Scaffold the module to create a new `loan` module. Following the Cosmos SDK convention, all modules are scaffolded inside the `x` directory: + +```bash +ignite scaffold module loan --dep bank +``` + +Use the `--dep` flag to specify that this module depends on and is going to interact with the Cosmos SDK `bank` module. + +## Scaffold a list + +Use the [scaffold list](https://docs.ignite.com/cli/#ignite-scaffold-list) command to scaffold code necessary to store loans in an array-like data structure: + +```bash +ignite scaffold list loan amount fee collateral deadline state borrower lender --no-message +``` + +Use the `--no-message` flag to disable CRUD messages in the scaffold. + +The data you store in an array-like data structure are the loans, with these parameters that are defined in the `Loan` message in `proto/loan/loan.proto`: + +```protobuf +message Loan { + uint64 id = 1; + string amount = 2; + string fee = 3; + string collateral = 4; + string deadline = 5; + string state = 6; + string borrower = 7; + string lender = 8; +} +``` + +Later, you define the messages to interact with the loan list. + +Now it is time to use messages to interact with the loan module. But first, make sure to store your current state in a git commit: + +```bash +git add . +git commit -m "Scaffold loan module and loan list" +``` + +## Scaffold the messages + +In order to create a loan app, you need the following messages: + +* Request loan +* Approve loan +* Repay loan +* Liquidate loan +* Cancel loan + +You can use the `ignite scaffold message` command to create each of the messages. + +You define the details of each message when you scaffold them. + +Create the messages one at a time with the according application logic. + +### Request loan message + +For a loan, the initial message handles the transaction when a username requests a loan. + +The username wants a certain `amount` and is willing to pay `fees` as well as give `collateral`. The `deadline` marks the time when the loan has to be repaid. + +The first message is the `request-loan` message that requires these input parameters: + +* `amount` +* `fee` +* `collateral` +* `deadline` + +```bash +ignite scaffold message request-loan amount fee collateral deadline +``` + +For the sake of simplicity, define every parameter as a string. + +The `request-loan` message creates a new loan object and locks the tokens to be spent as fee and collateral into an escrow account. Describe these conditions in the module keeper `x/loan/keeper/msg_server_request_loan.go`: + +```go +package keeper + +import ( + "context" + + sdk "github.com/cosmos/cosmos-sdk/types" + + "loan/x/loan/types" +) + +func (k msgServer) RequestLoan(goCtx context.Context, msg *types.MsgRequestLoan) (*types.MsgRequestLoanResponse, error) { + ctx := sdk.UnwrapSDKContext(goCtx) + + // Create a new Loan with the following user input + var loan = types.Loan{ + Amount: msg.Amount, + Fee: msg.Fee, + Collateral: msg.Collateral, + Deadline: msg.Deadline, + State: "requested", + Borrower: msg.Creator, + } + + // TODO: collateral has to be more than the amount (+fee?) + + // moduleAcc := sdk.AccAddress(crypto.AddressHash([]byte(types.ModuleName))) + // Get the borrower address + borrower, _ := sdk.AccAddressFromBech32(msg.Creator) + + // Get the collateral as sdk.Coins + collateral, err := sdk.ParseCoinsNormalized(loan.Collateral) + if err != nil { + panic(err) + } + + // Use the module account as escrow account + sdkError := k.bankKeeper.SendCoinsFromAccountToModule(ctx, borrower, types.ModuleName, collateral) + if sdkError != nil { + return nil, sdkError + } + + // Add the loan to the keeper + k.AppendLoan( + ctx, + loan, + ) + + return &types.MsgRequestLoanResponse{}, nil +} +``` + +Since this function is using the `bankKeeper` with the function `SendCoinsFromAccountToModule`, you must add the `SendCoinsFromAccountToModule` function to `x/loan/types/expected_keepers.go` like this: + +```go +package types + +import sdk "github.com/cosmos/cosmos-sdk/types" + +type BankKeeper interface { + SendCoinsFromAccountToModule(ctx sdk.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins) error +} +``` + +### Validate the input + +When a loan is created, a certain message input validation is required. You want to throw error messages in case the end user tries impossible inputs. + +You can describe message validation errors in the modules `types` directory. + +Add the following code to the `ValidateBasic()` function in the `x/loan/types/message_request_loan.go` file: + +```go +func (msg *MsgRequestLoan) ValidateBasic() error { + if _, err := sdk.AccAddressFromBech32(msg.Creator); err != nil { + return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "invalid creator address (%s)", err) + } + + amount, _ := sdk.ParseCoinsNormalized(msg.Amount) + if !amount.IsValid() { + return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "amount is not a valid Coins object") + } + if amount.Empty() { + return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "amount is empty") + } + + fee, _ := sdk.ParseCoinsNormalized(msg.Fee) + if !fee.IsValid() { + return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "fee is not a valid Coins object") + } + + collateral, _ := sdk.ParseCoinsNormalized(msg.Collateral) + if !collateral.IsValid() { + return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "collateral is not a valid Coins object") + } + if collateral.Empty() { + return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "collateral is empty") + } + + return nil +} +``` + +Congratulations, you have created the `request-loan` message. + +## Run and test your first message + +You can run the chain and test your first message. + +Start the blockchain: + +```bash +ignite chain serve +``` + +Add your first loan: + +```bash +loand tx loan request-loan 100token 2token 200token 500 --from alice +``` + +Query your loan: + +```bash +loand query loan list-loan +``` + +The loan shows in the list: + +```bash +Loan: +- amount: 100token + borrower: cosmos17mnrhwchwc8trg4w09s0gvvfsvt58ejtsykkm6 + collateral: 200token + deadline: "500" + fee: 2token + id: "0" + lender: "" + state: requested +``` + +You can stop the blockchain again with CTRL+C. + +### Save iterative changes + +This is a good time to add your advancements to git: + +```bash +git add . +git commit -m "Add request-loan message" +``` + +### Approve loan message + +After a loan request has been published, another account can approve the loan and agree to the terms of the borrower. + +The message `approve-loan` has one parameter, the `id`. +Specify the type of `id` as `uint`. By default, ids are stored as `uint`. + +```bash +ignite scaffold message approve-loan id:uint +``` + +This message must be available for all loan types that are in `"requested"` status. + +The loan approval sends the requested coins for the loan to the borrower and sets the loan state to `"approved"`. + +Modify the `x/loan/keeper/msg_server_approve_loan.go` to implement this logic: + +```go +package keeper + +import ( + "context" + "fmt" + + sdk "github.com/cosmos/cosmos-sdk/types" + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + + "loan/x/loan/types" +) + +func (k msgServer) ApproveLoan(goCtx context.Context, msg *types.MsgApproveLoan) (*types.MsgApproveLoanResponse, error) { + ctx := sdk.UnwrapSDKContext(goCtx) + + loan, found := k.GetLoan(ctx, msg.Id) + if !found { + return nil, sdkerrors.Wrapf(sdkerrors.ErrKeyNotFound, "key %d doesn't exist", msg.Id) + } + + // TODO: for some reason the error doesn't get printed to the terminal + if loan.State != "requested" { + return nil, sdkerrors.Wrapf(types.ErrWrongLoanState, "%v", loan.State) + } + + lender, _ := sdk.AccAddressFromBech32(msg.Creator) + borrower, _ := sdk.AccAddressFromBech32(loan.Borrower) + amount, err := sdk.ParseCoinsNormalized(loan.Amount) + if err != nil { + return nil, sdkerrors.Wrap(types.ErrWrongLoanState, "Cannot parse coins in loan amount") + } + + k.bankKeeper.SendCoins(ctx, lender, borrower, amount) + + loan.Lender = msg.Creator + loan.State = "approved" + + k.SetLoan(ctx, loan) + + return &types.MsgApproveLoanResponse{}, nil +} +``` + +This module uses the `SendCoins` function of `bankKeeper`. Add this `SendCoins` function to the `x/loan/types/expected_keepers.go` file: + +```go +package types + +import ( + sdk "github.com/cosmos/cosmos-sdk/types" +) + +type BankKeeper interface { + // Methods imported from bank should be defined here + SendCoins(ctx sdk.Context, fromAddr sdk.AccAddress, toAddr sdk.AccAddress, amt sdk.Coins) error + SendCoinsFromAccountToModule(ctx sdk.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins) error +} +``` + +Now, define the `ErrWrongLoanState` new error type by adding it to the errors definitions in `x/loan/types/errors.go`: + +```go +package types + +// DONTCOVER + +import ( + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" +) + +// x/loan module sentinel errors +var ( + ErrWrongLoanState = sdkerrors.Register(ModuleName, 2, "wrong loan state") +) +``` + +Start the blockchain and use the two commands you already have available: + +```bash +ignite chain serve -r +``` + +Use the `-r` flag to reset the blockchain state and start with a new database. + +Now, request a loan from `bob`: + +```bash +loand tx loan request-loan 100token 2token 200token 500 --from bob -y +``` + +Query your loan request: + +```bash +loand query loan list-loan +``` + +Approve the loan: + +```bash +loand tx loan approve-loan 0 --from alice -y +``` + +This approve loan transaction sends the balances according to the loan request. + +Check for the loan list again to verify that the loan state is now `approved`. + +```bash +Loan: +- amount: 100token + borrower: cosmos1sx8k358xw5pulv7acjhm6klvn3tukk2r2a74gg + collateral: 200token + deadline: "500" + fee: 2token + id: "0" + lender: cosmos1qxm2dtupmr8pp20m0t7tmjq6gq2z8j3d6ltr9d + state: approved +pagination: + next_key: null + total: "0" +``` + +You can query for alice's balance to see the loan in effect. Take the lender address from above, this is alice address: + +```bash +loand query bank balances <alice_address> +``` + +In case everything works as expected, this is a good time to save the state with a git commit: + +```bash +git add . +git commit -m "Add approve loan message" +``` + +### Repay Loan Message + +After the loan has been approved, the username must be able to repay an approved loan. + +Scaffold the message `repay-loan` that a borrower uses to return tokens that were borrowed from the lender: + +```bash +ignite scaffold message repay-loan id:uint +``` + +Repaying a loan requires that the loan is in `"approved"` status. + +The coins as described in the loan are collected and sent from the borrower to the lender, along with the agreed fees. + +The `collateral` is released from the escrow module account. + +Only the `borrower` can repay the loan. + +This loan repayment logic is defined in `x/loan/keeper/msg_server_repay_loan.go`: + +```go +package keeper + +import ( + "context" + "fmt" + + sdk "github.com/cosmos/cosmos-sdk/types" + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + + "loan/x/loan/types" +) + +func (k msgServer) RepayLoan(goCtx context.Context, msg *types.MsgRepayLoan) (*types.MsgRepayLoanResponse, error) { + ctx := sdk.UnwrapSDKContext(goCtx) + + loan, found := k.GetLoan(ctx, msg.Id) + if !found { + return nil, sdkerrors.Wrap(sdkerrors.ErrKeyNotFound, fmt.Sprintf("key %d doesn't exist", msg.Id)) + } + + if loan.State != "approved" { + return nil, sdkerrors.Wrapf(types.ErrWrongLoanState, "%v", loan.State) + } + + lender, _ := sdk.AccAddressFromBech32(loan.Lender) + borrower, _ := sdk.AccAddressFromBech32(loan.Borrower) + + if msg.Creator != loan.Borrower { + return nil, sdkerrors.Wrap(sdkerrors.ErrUnauthorized, "Cannot repay: not the borrower") + } + + amount, _ := sdk.ParseCoinsNormalized(loan.Amount) + fee, _ := sdk.ParseCoinsNormalized(loan.Fee) + collateral, _ := sdk.ParseCoinsNormalized(loan.Collateral) + + err := k.bankKeeper.SendCoins(ctx, borrower, lender, amount) + if err != nil { + return nil, sdkerrors.Wrap(types.ErrWrongLoanState, "Cannot send coins") + } + err = k.bankKeeper.SendCoins(ctx, borrower, lender, fee) + if err != nil { + return nil, sdkerrors.Wrap(types.ErrWrongLoanState, "Cannot send coins") + } + err = k.bankKeeper.SendCoinsFromModuleToAccount(ctx, types.ModuleName, borrower, collateral) + if err != nil { + return nil, sdkerrors.Wrap(types.ErrWrongLoanState, "Cannot send coins") + } + + loan.State = "repayed" + + k.SetLoan(ctx, loan) + + return &types.MsgRepayLoanResponse{}, nil +} +``` + +After the coins have been successfully exchanged, the state of the loan is set to `repayed`. + +To release tokens with the `SendCoinsFromModuleToAccount` function of `bankKeepers`, you need to add the `SendCoinsFromModuleToAccount` function to the `x/loan/types/expected_keepers.go`: + +```go +package types + +import ( + sdk "github.com/cosmos/cosmos-sdk/types" +) + +type BankKeeper interface { + // Methods imported from bank should be defined here + SendCoins(ctx sdk.Context, fromAddr sdk.AccAddress, toAddr sdk.AccAddress, amt sdk.Coins) error + SendCoinsFromAccountToModule(ctx sdk.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins) error + SendCoinsFromModuleToAccount(ctx sdk.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error +} +``` + +Start the blockchain and use the two commands you already have available: + +```bash +ignite chain serve -r +``` + +Use the `-r` flag to reset the blockchain state and start with a new database: + +```bash +loand tx loan request-loan 100token 2token 200token 500 --from bob -y +``` + +Query your loan request: + +```bash +loand query loan list-loan +``` + +Approve the loan: + +```bash +loand tx loan approve-loan 0 --from alice -y +``` + +You can query for alice's balance to see the loan in effect. + +Take the lender address from above, this is alice address: + +```bash +loand query bank balances <alice_address> +``` + +Now repay the loan: + +```bash +loand tx loan repay-loan 0 --from bob -y +``` + +The loan status is now `repayed`: + +```bash +Loan: +- amount: 100token + borrower: cosmos1200nsqsxcyxtllfgal5x8qhqwj8km64ft0eu2d + collateral: 200token + deadline: "500" + fee: 2token + id: "0" + lender: cosmos194pn6vly2nlald3zjqcxfnvasa0xt7ect6h6qk + state: repayed +``` + +The alice balance reflects the repayed amount plus fees: + +```bash +loand query bank balances <alice_address> +``` + +Good job! + +Update your git with the changes you made: + +```bash +git add . +git commit -m "Add repay-loan message" +``` + +### Liquidate Loan Message + +After the deadline is passed, a lender can liquidate a loan when the borrower does not repay the tokens. The message to `liquidate-loan` refers to the loan `id`: + +```bash +ignite scaffold message liquidate-loan id:uint +``` + +* The `liquidate-loan` message must be able to be executed by the `lender`. +* The status of the loan must be `approved`. +* The `deadline` block height must have passed. + +When these properties are valid, the collateral shall be liquidated from the `borrower`. + +Add this liquidate loan logic to the `keeper` in `x/loan/keeper/msg_server_liquidate_loan.go`: + +```go +package keeper + +import ( + "context" + "fmt" + "strconv" + + sdk "github.com/cosmos/cosmos-sdk/types" + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + + "loan/x/loan/types" +) + +func (k msgServer) LiquidateLoan(goCtx context.Context, msg *types.MsgLiquidateLoan) (*types.MsgLiquidateLoanResponse, error) { + ctx := sdk.UnwrapSDKContext(goCtx) + + loan, found := k.GetLoan(ctx, msg.Id) + if !found { + return nil, sdkerrors.Wrap(sdkerrors.ErrKeyNotFound, fmt.Sprintf("key %d doesn't exist", msg.Id)) + } + + if loan.Lender != msg.Creator { + return nil, sdkerrors.Wrap(sdkerrors.ErrUnauthorized, "Cannot liquidate: not the lender") + } + + if loan.State != "approved" { + return nil, sdkerrors.Wrapf(types.ErrWrongLoanState, "%v", loan.State) + } + + lender, _ := sdk.AccAddressFromBech32(loan.Lender) + collateral, _ := sdk.ParseCoinsNormalized(loan.Collateral) + + deadline, err := strconv.ParseInt(loan.Deadline, 10, 64) + if err != nil { + panic(err) + } + + if ctx.BlockHeight() < deadline { + return nil, sdkerrors.Wrap(types.ErrDeadline, "Cannot liquidate before deadline") + } + + k.bankKeeper.SendCoinsFromModuleToAccount(ctx, types.ModuleName, lender, collateral) + + loan.State = "liquidated" + + k.SetLoan(ctx, loan) + + return &types.MsgLiquidateLoanResponse{}, nil +} +``` + +Add the new error `ErrDeadline` to the error messages in `x/loan/types/errors.go`: + +```go +package types + +// DONTCOVER + +import ( + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" +) + +// x/loan module sentinel errors +var ( + ErrWrongLoanState = sdkerrors.Register(ModuleName, 2, "wrong loan state") + ErrDeadline = sdkerrors.Register(ModuleName, 3, "deadline") +) +``` + +These changes are required for the `liquidate-loan` message. + +### Test liquidation message + +You can test the liquidation message now. Start your chain and reset the state of the app: + +```bash +ignite chain serve -r +``` + +Set the deadline for the loan request to 1 block: + +```bash +loand tx loan request-loan 100token 2token 200token 1 --from bob -y +``` + +Query your loan request: + +```bash +loand query loan list-loan +``` + +Approve the loan: + +```bash +loand tx loan approve-loan 0 --from alice -y +``` + +You can query for alice's balances to see the loan in effect. + +Take the lender address from above, this is alice address. + +```bash +loand query bank balances <alice_address> +``` + +Now, liquidate the loan: + +```bash +loand tx loan liquidate-loan 0 --from alice -y +``` + +Query the loan: + +```bash +loand query loan list-loan +``` + +The loan status is now `liquidated`: + +```bash +Loan: +- amount: 100token + borrower: cosmos1lp4ghp4mmsdgpf2fm22f0qtqmnjeh3gr9h3cau + collateral: 200token + deadline: "1" + fee: 2token + id: "0" + lender: cosmos1w6pfj52jp809pyp2a2h573cta23rc0zsulpafm + state: liquidated +``` + +And alice balance reflects the repayed amount plus fees: + +```bash +loand query bank balances <alice_address> +``` + +Add the changes to your local repository: + +```bash +git add . +git commit -m "Add liquidate-loan message" +``` + +### Cancel loan message + +After a loan request has been made and not been approved, the `borrower` must be able to cancel a loan request. + +Scaffold the message for `cancel-loan`: + +```bash +ignite s message cancel-loan id:uint +``` + +* Only the `borrower` can cancel a loan request. +* The state of the request must be `requested`. +* Then the collateral coins can be released from escrow and the status set to `cancelled`. + +Add this functionality to the `keeper` in `x/loan/keeper/msg_server_cancel_loan.go`: + +```go +package keeper + +import ( + "context" + "fmt" + + sdk "github.com/cosmos/cosmos-sdk/types" + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + + "loan/x/loan/types" +) + +func (k msgServer) CancelLoan(goCtx context.Context, msg *types.MsgCancelLoan) (*types.MsgCancelLoanResponse, error) { + ctx := sdk.UnwrapSDKContext(goCtx) + + loan, found := k.GetLoan(ctx, msg.Id) + if !found { + return nil, sdkerrors.Wrap(sdkerrors.ErrKeyNotFound, fmt.Sprintf("key %d doesn't exist", msg.Id)) + } + + if loan.Borrower != msg.Creator { + return nil, sdkerrors.Wrap(sdkerrors.ErrUnauthorized, "Cannot cancel: not the borrower") + } + + if loan.State != "requested" { + return nil, sdkerrors.Wrapf(types.ErrWrongLoanState, "%v", loan.State) + } + + borrower, _ := sdk.AccAddressFromBech32(loan.Borrower) + collateral, _ := sdk.ParseCoinsNormalized(loan.Collateral) + k.bankKeeper.SendCoinsFromModuleToAccount(ctx, types.ModuleName, borrower, collateral) + + loan.State = "cancelled" + + k.SetLoan(ctx, loan) + + return &types.MsgCancelLoanResponse{}, nil +} +``` + +### Test cancelling a loan + +Test the changes for cancelling a loan request: + +```bash +ignite chain serve -r +``` + +```bash +loand tx loan request-loan 100token 2token 200token 100 --from bob -y +``` + +Query your loan request: + +```bash +loand query loan list-loan +``` + +```bash +loand tx loan cancel-loan 0 --from bob -y +``` + +Query your loan request: + +```bash +loand query loan list-loan +``` + +Now the collateral coins can be released from escrow and the status set to `cancelled`. + +```bash +- amount: 100token + borrower: cosmos1lp4ghp4mmsdgpf2fm22f0qtqmnjeh3gr9h3cau + collateral: 200token + deadline: "100" + fee: 2token + id: "2" + lender: "" + state: cancelled +``` + +Consider again updating your local repository with a git commit. After you test and use your loan module, consider publishing your code to a public repository for others to see your accomplishments. + +```bash +git add . +git commit -m "Add cancel-loan message" +``` + +## Complete + +Congratulations. You have completed the loan module tutorial. + +You executed commands and updated files to: + +* Scaffold a blockchain +* Scaffold a module +* Scaffold a list for loan objects +* Create messages in your module to interact with the loan object +* Interact with other modules in your module +* Use an escrow module account +* Add application messages for a loan system + * Request Loan + * Approve Loan + * Repay Loan + * Liquidate Loan + * Cancel Loan diff --git a/docs/versioned_docs/version-v0.25.2/guide/07-ibc.md b/docs/versioned_docs/version-v0.25.2/guide/07-ibc.md new file mode 100644 index 0000000000..b89731c0cd --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/guide/07-ibc.md @@ -0,0 +1,569 @@ +--- +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://docs.cosmos.network/master/ibc/overview.html) 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 in the Blog Module](./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 title chain creator --no-message --module blog + ``` + +- Managing post timeouts + + ```bash + ignite scaffold list timedoutPost 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 `timedoutPost` 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 --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 +// proto/blog/packet.proto +message IbcPostPacketData { + string title = 1; + string content = 2; + 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 + // x/blog/keeper/msg_server_ibc_post.go + + // Construct the packet + var packet types.IbcPostPacketData + packet.Title = msg.Title + packet.Content = msg.Content + packet.Creator = msg.Creator // < --- + + // Transmit the packet + err := k.TransmitIbcPostPacket( + ctx, + packet, + msg.Port, + msg.ChannelID, + clienttypes.ZeroHeight(), + msg.TimeoutTimestamp, + ) +``` + +### 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: + +`<portID>-<channelID>-<creatorAddress>` + +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/master/core/context.html#go-context-package) that has header data from the transaction. See [how the context is initiated](https://github.com/cosmos/cosmos-sdk/blob/master/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 + +In the `x/blog/keeper/ibc_post.go` file, make sure to import `"strconv"` below `"errors"`: + +```go +// x/blog/keeper/ibc_post.go +import ( + //... + + "strconv" + + //... +) +``` + +Then modify the `OnRecvIbcPostPacket` keeper function with the following code: + +```go +func (k Keeper) OnRecvIbcPostPacket(ctx sdk.Context, packet channeltypes.Packet, data types.IbcPostPacketData) (packetAck types.IbcPostPacketAck, err error) { + // validate packet data upon receiving + if err := data.ValidateBasic(); err != nil { + return packetAck, err + } + + id := k.AppendPost( + ctx, + types.Post{ + Creator: packet.SourcePort + "-" + packet.SourceChannel + "-" + data.Creator, + Title: data.Title, + Content: data.Content, + }, + ) + + packetAck.PostID = strconv.FormatUint(id, 10) + + return packetAck, nil +} +``` + +### 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 +// x/blog/keeper/ibc_post.go +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") + } + + k.AppendSentPost( + ctx, + types.SentPost{ + Creator: data.Creator, + PostID: packetAck.PostID, + Title: data.Title, + Chain: packet.DestinationPort + "-" + packet.DestinationChannel, + }, + ) + + return nil + 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 `timedoutPost` posts. This logic follows the same format as `sentPost`. + +```go +// x/blog/keeper/ibc_post.go +func (k Keeper) OnTimeoutIbcPostPacket(ctx sdk.Context, packet channeltypes.Packet, data types.IbcPostPacketData) error { + k.AppendTimedoutPost( + ctx, + types.TimedoutPost{ + Creator: data.Creator, + Title: data.Title, + Chain: packet.DestinationPort + "-" + packet.DestinationChannel, + }, + ) + + return nil +} + +``` + +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 +# earth.yml +accounts: + - name: alice + coins: ["1000token", "100000000stake"] + - name: bob + coins: ["500token", "100000000stake"] +validator: + name: alice + staked: "100000000stake" +faucet: + name: bob + coins: ["5token", "100000stake"] +genesis: + chain_id: "earth" +init: + home: "$HOME/.earth" +``` + +```yaml +# mars.yml +accounts: + - name: alice + coins: ["1000token", "1000000000stake"] + - name: bob + coins: ["500token", "100000000stake"] +validator: + name: alice + staked: "100000000stake" +faucet: + host: ":4501" + name: bob + coins: ["5token", "100000stake"] +host: + rpc: ":26659" + p2p: ":26658" + prof: ":6061" + grpc: ":9092" + grpc-web: ":9093" + api: ":1318" +genesis: + chain_id: "mars" +init: + 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, configure the relayer. Use the Ignite CLI `configure` command with the `--advanced` option: + +```bash +ignite relayer configure -a \ + --source-rpc "http://0.0.0.0:26657" \ + --source-faucet "http://0.0.0.0:4500" \ + --source-port "blog" \ + --source-version "blog-1" \ + --source-gasprice "0.0000025stake" \ + --source-prefix "cosmos" \ + --source-gaslimit 300000 \ + --target-rpc "http://0.0.0.0:26659" \ + --target-faucet "http://0.0.0.0:4501" \ + --target-port "blog" \ + --target-version "blog-1" \ + --target-gasprice "0.0000025stake" \ + --target-prefix "cosmos" \ + --target-gaslimit 300000 +``` + +When prompted, press Enter to accept the default values for `Source Account` and `Target Account`. + +The output looks like: + +``` +--------------------------------------------- +Setting up chains +--------------------------------------------- + +πŸ” Account on "source" is "cosmos1xcxgzq75yrxzd0tu2kwmwajv7j550dkj7m00za" + + |Β· received coins from a faucet + |Β· (balance: 100000stake,5token) + +πŸ” Account on "target" is "cosmos1nxg8e4mfp5v7sea6ez23a65rvy0j59kayqr8cx" + + |Β· received coins from a faucet + |Β· (balance: 100000stake,5token) + +β›“ Configured chains: earth-mars +``` + +In a new terminal window, start the relayer process: + +```bash +ignite relayer connect +``` + +Results: + +``` +------ +Paths +------ + +earth-mars: + earth > (port: blog) (channel: channel-0) + mars > (port: blog) (channel: channel-0) + +------ +Listening and relaying packets between chains... +------ +``` + +### 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-timedout-post +``` + +Results: + +```yaml +TimedoutPost: +- 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-v0.25.2/guide/08-interchange/00-introduction.md b/docs/versioned_docs/version-v0.25.2/guide/08-interchange/00-introduction.md new file mode 100644 index 0000000000..98e7a55787 --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/guide/08-interchange/00-introduction.md @@ -0,0 +1,38 @@ +--- +sidebar_position: 0 +slug: /guide/interchange +--- +# Introduction + +The Interchain Exchange is a module to create buy and sell orders between blockchains. + +In this tutorial, you learn how to create a Cosmos SDK module that can create order pairs, buy orders, and sell orders. You create order books and buy and sell orders across blockchains, which in turn enables you to swap token from one blockchain to another. + +**Note:** The code in this tutorial is written specifically for this tutorial and is intended only for educational purposes. This tutorial code is not intended to be used in production. + +If you want to see the end result, see the example implementation in the [interchange repo](https://github.com/tendermint/interchange). + +**You will learn how to:** + +- Create a blockchain with Ignite CLI +- Create a Cosmos SDK IBC module +- Create an order book that hosts buy and sell orders with a module +- Send IBC packets from one blockchain to another +- Deal with timeouts and acknowledgements of IBC packets + +## How the Interchange Exchange Module Works + +To build an exchange that works with two or more blockchains, follow the steps in this tutorial to create a Cosmos SDK module called `dex`. + +The new `dex` module allows you to open an exchange order book for a pair of token: a from one blockchain and a token on another blockchain. The blockchains are required to have the `dex` module available. + +Token can be bought or sold with limit orders on a simple order book. In this tutorial, there is no notion of a liquidity pool or automated market maker (AMM). + +The market is unidirectional: + +- The token sold on the source chain cannot be bought back as it is +- The token bought from the target chain cannot be sold back using the same pair. + +If a token on a source chain is sold, it can only be bought back by creating a new pair on the order book. This workflow is due to the nature of the Inter-Blockchain Communication protocol (IBC) which creates a `voucher` token on the target blockchain. There is a difference of a native blockchain token and a `voucher` token that is minted on another blockchain. You must create a second order book pair in order to receive the native token back. + +In the next chapter, you learn details about the design of the interblockchain exchange. diff --git a/docs/versioned_docs/version-v0.25.2/guide/08-interchange/01-design.md b/docs/versioned_docs/version-v0.25.2/guide/08-interchange/01-design.md new file mode 100644 index 0000000000..268cccb90a --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/guide/08-interchange/01-design.md @@ -0,0 +1,92 @@ +--- +sidebar_position: 1 +description: Learn about the interchain exchange module design. +--- + +# App Design + +In this chapter, you learn how the interchain exchange module is designed. The module has order books, buy orders, and sell orders. + +- First, create an order book for a pair of token. +- After an order book exists, you can create buy and sell orders for this pair of token. + +The module uses the Inter-Blockchain Communication protocol [IBC](https://github.com/cosmos/ics/blob/master/ibc/2_IBC_ARCHITECTURE.md). By using IBC, the module can create order books so that multiple blockchains can interact and exchange their token. + +You create an order book pair with a token from one blockchain and another token from another blockchain. In this tutorial, call the module you create the `dex` module. + +> When a user exchanges a token with the `dex` module, a `voucher` of that token is received on the other blockchain. This voucher is similar to how an `ibc-transfer` is constructed. Since a blockchain module does not have the rights to mint new token of a blockchain into existence, the token on the target chain is locked up, and the buyer receives a `voucher` of that token. + +This process can be reversed when the `voucher` gets burned to unlock the original token. This exchange process is explained in more detail throughout the tutorial. + +## Assumption of the Design + +An order book can be created for the exchange of any tokens between any pair of chains. + +- Both blockchains require the `dex` module to be installed and running. +- There can only be one order book for a pair of token at the same time. + +<!-- There is no condition to check for open channels between two chains. --> + +A specific chain cannot mint new coins of its native token. + +<!-- The module is trustless, there is no condition to check when opening a channel between two chains. Any pair of tokens can be exchanged between any pair of chains. --> + +This module is inspired by the [`ibc transfer`](https://github.com/cosmos/ibc-go/tree/main/modules/apps/transfer) module on the Cosmos SDK. The `dex` module you create in this tutorial has similarities, like the `voucher` creation. + +However, the new `dex` module you are creating is more complex because it supports creation of: + +- Several types of packets to send +- Several types of acknowledgments to treat +- More complex logic on how to treat a packet on receipt, on timeout, and more + +## Interchain Exchange Overview + +Assume you have two blockchains: Venus and Mars. + +- The native token on Venus is `venuscoin`. +- The native token on Mars is `marscoin`. + +When a token is exchanged from Mars to Venus: + + - The Venus blockchain has an IBC `voucher` token with a denom that looks like `ibc/B5CB286...A7B21307F`. +- The long string of characters after `ibc/` is a denom trace hash of a token that was transferred using IBC. + +Using the blockchain's API you can get a denom trace from that hash. The denom trace consists of a `base_denom` and a `path`. In our example: + +- The `base_denom` is `marscoin`. +- The `path` contains pairs of ports and channels through which the token has been transferred. + +For a single-hop transfer, the `path` is identified by `transfer/channel-0`. + +Learn more about token paths in [ICS 20 Fungible Token Transfer](https://github.com/cosmos/ibc/tree/master/spec/app/ics-020-fungible-token-transfer). + +**Note:** This token `ibc/Venus/marscoin` cannot be sold back using the same order book. If you want to "reverse" the exchange and receive the Mars token back, you must create and use a new order book for the `ibc/Venus/marscoin` to `marscoin` transfer. + +## The Design of the Order Books + +As a typical exchange, a new pair implies the creation of an order book with orders to sell `marscoin` or orders to buy `venuscoin`. Here, you have two chains and this data structure must be split between Mars and Venus. + +- Users from chain Mars sell `marscoin`. +- Users from chain Venus buy `marscoin`. + +Therefore, we represent: + +- All orders to sell `marscoin` on chain Mars. +- All orders to buy `marscoin` on chain Venus. + +In this example, blockchain Mars holds the sell orders and blockchain Venus holds the buy orders. + +## Exchanging Tokens Back + +Like `ibc-transfer`, each blockchain keeps a trace of the token voucher that was created on the other blockchain. + +If blockchain Mars sells `marscoin` to chain Venus and `ibc/Venus/marscoin` is minted on Venus then, if `ibc/Venus/marscoin` is sold back to Mars, the token is unlocked and the token that is received is `marscoin`. + +## Features + +The features supported by the interchain exchange module are: + +- Create an exchange order book for a token pair between two chains +- Send sell orders on source chain +- Send buy orders on target chain +- Cancel sell or buy orders diff --git a/docs/versioned_docs/version-v0.25.2/guide/08-interchange/02-init.md b/docs/versioned_docs/version-v0.25.2/guide/08-interchange/02-init.md new file mode 100644 index 0000000000..509d9002fc --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/guide/08-interchange/02-init.md @@ -0,0 +1,177 @@ +--- +sidebar_position: 2 +description: Create the blockchain for the interchain exchange app. +--- + +# App Init + +## Initialize the Blockchain + +In this chapter, you create the basic blockchain module for the interchain exchange app. You scaffold the blockchain, the module, the transaction, the IBC packets, and messages. In later chapters, you integrate more code into each of the transaction handlers. + +## Create the Blockchain + +Scaffold a new blockchain called `interchange`: + +```bash +ignite scaffold chain interchange --no-module +``` + +A new directory named `interchange` is created. + +Change into this directory where you can scaffold modules, types, and maps: + +```bash +cd interchange +``` + +The `interchange` directory contains a working blockchain app. + +A local GitHub repository has been created for you with the initial scaffold. + +Next, create a new IBC module. + +## Create the dex Module + +Scaffold a module inside your blockchain named `dex` with IBC capabilities. + +The dex module contains the logic to create and maintain order books and route them through IBC to the second blockchain. + +```bash +ignite scaffold module dex --ibc --ordering unordered --dep bank +``` + +## Create CRUD logic for Buy and Sell Order Books + +Scaffold two types with create, read, update, and delete (CRUD) actions. + +Run the following Ignite CLI `type` commands to create `sellOrderBook` and `buyOrderBook` types: + +```bash +ignite scaffold map sell-order-book amountDenom priceDenom --no-message --module dex +ignite scaffold map buy-order-book amountDenom priceDenom --no-message --module dex +``` + +The values are: + +- `amountDenom`: the token to be sold and in which quantity +- `priceDenom`: the token selling price + +The `--no-message` flag specifies to skip the message creation. Custom messages will be created in the next steps. + +The `--module dex` flag specifies to scaffold the type in the `dex` module. + +## Create the IBC Packets + +Create three packets for IBC: + +- An order book pair `createPair` +- A sell order `sellOrder` +- A buy order `buyOrder` + +```bash +ignite scaffold packet create-pair sourceDenom targetDenom --module dex +ignite scaffold packet sell-order amountDenom amount:int priceDenom price:int --ack remainingAmount:int,gain:int --module dex +ignite scaffold packet buy-order amountDenom amount:int priceDenom price:int --ack remainingAmount:int,purchase:int --module dex +``` + +The optional `--ack` flag defines field names and types of the acknowledgment returned after the packet has been received by the target chain. The value of the `--ack` flag is a comma-separated list of names (no spaces). Append optional types after a colon (`:`). + +## Cancel messages + +Cancelling orders is done locally in the network, there is no packet to send. + +Use the `message` command to create a message to cancel a sell or buy order: + +```bash +ignite scaffold message cancel-sell-order port channel amountDenom priceDenom orderID:int --desc "Cancel a sell order" --module dex +ignite scaffold message cancel-buy-order port channel amountDenom priceDenom orderID:int --desc "Cancel a buy order" --module dex +``` + +Use the optional `--desc` flag to define a description of the CLI command that is used to broadcast a transaction with the message. + +## Trace the Denom + +The token denoms must have the same behavior as described in the `ibc-transfer` module: + +- An external token received from a chain has a unique `denom`, reffered to as `voucher`. +- When a token is sent to a blockchain and then sent back and received, the chain can resolve the voucher and convert it back to the original token denomination. + +`Voucher` tokens are represented as hashes, therefore you must store which original denomination is related to a voucher. You can do this with an indexed type. + +For a `voucher` you store, define the source port ID, source channel ID, and the original denom: + +```bash +ignite scaffold map denom-trace port channel origin --no-message --module dex +``` + +## Create the Configuration for Two Blockchains + +Add two config files `mars.yml` and `venus.yml` to test two blockchain networks with specific token for each. + +Add the config files in the `interchange` folder. + +The native denoms for Mars are `marscoin`, and for Venus `venuscoin`. + +Create the `mars.yml` file with your content: + +```yaml +# mars.yml +accounts: + - name: alice + coins: ["1000token", "100000000stake", "1000marscoin"] + - name: bob + coins: ["500token", "1000marscoin", "100000000stake"] +validator: + name: alice + staked: "100000000stake" +faucet: + name: bob + coins: ["5token", "100000stake"] +genesis: + chain_id: "mars" +init: + home: "$HOME/.mars" +``` + +Create the `venus.yml` file with your content: + +```yaml +# venus.yml +accounts: + - name: alice + coins: ["1000token", "1000000000stake", "1000venuscoin"] + - name: bob + coins: ["500token", "1000venuscoin", "100000000stake"] +validator: + name: alice + staked: "100000000stake" +faucet: + host: ":4501" + name: bob + coins: ["5token", "100000stake"] +host: + rpc: ":26659" + p2p: ":26658" + prof: ":6061" + grpc: ":9092" + grpc-web: ":9093" + api: ":1318" +genesis: + chain_id: "venus" +init: + home: "$HOME/.venus" +``` + +In the `venus.yml` file, you can see the specific `host` parameter that you can use to change the ports for various running services (rpc, p2p, prof, grpc, api, frontend, and dev-ui). This `host` parameter can be used later so you can run two blockchains in parallel and prevent conflicts when the chains are using the same ports. + +You can also use the `host` parameter to use specific ports for any of the services. + +After scaffolding, now is a good time to make a commit to the local GitHub repository that was created for you. + +```bash +git add . +git commit -m "Scaffold module, maps, packages and messages for the dex" +``` + +Implement the code for the order book in the next chapter. diff --git a/docs/versioned_docs/version-v0.25.2/guide/08-interchange/03-walkthrough.md b/docs/versioned_docs/version-v0.25.2/guide/08-interchange/03-walkthrough.md new file mode 100644 index 0000000000..0cef375003 --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/guide/08-interchange/03-walkthrough.md @@ -0,0 +1,377 @@ +--- +sidebar_position: 3 +description: Walkthrough of commands to use the interchain exchange module. +--- + +# Use the Interchain Exchange + +In this chapter, you learn details about the order book and commands to: + +- Create an exchange order book for a token pair between two chains +- Send sell orders on source chain +- Send buy orders on target chain +- Cancel sell or buy orders + +The next chapter contains the code for the implementation. + +## Order Book + +To use the exchange, start by creating an order book for a pair of tokens: + +```bash +# Create pair broadcasted to the source blockchain +# interchanged tx dex send-create-pair [src-port] [src-channel] [sourceDenom] [targetDenom] +interchanged tx dex send-create-pair dex channel-0 marscoin venuscoin +``` + +Define a pair of token with two denominations: + +- Source denom (in this example, `marscoin`) +- Target denom (`venuscoin`) + +Creating an order book affects state on the source blockchain to which the transaction was broadcast and the target blockchain. + +On the source blockchain, the `send-create-pair` command creates an empty sell order book: + +```yaml +# Created a sell order book on the source blockchain +SellOrderBook: +- amountDenom: marscoin + creator: "" + index: dex-channel-0-marscoin-venuscoin + orderIDTrack: 0 + orders: [] + priceDenom: venuscoin +``` + +On the target blockchain, the same `send-createPair` command creates a buy order book: + +```yaml +# Created a buy order book on the target blockchain +BuyOrderBook: +- amountDenom: marscoin + creator: "" + index: dex-channel-0-marscoin-venuscoin + orderIDTrack: 1 + orders: [] + priceDenom: venuscoin +``` + +To make an exchange possible, the `createPair` transaction sends an IBC packet to the target chain. + +- When the target chain receives a packet, the target chain creates a buy order book and sends an acknowledgement back to the source chain. +- When the source chain receives an acknowledgement, the source chain creates a sell order book. + +Sending an IBC packet requires a user to specify a port and a channel through which a packet is transferred. + +## Sell Order + +After an order book is created, the next step is to create a sell order: + +```bash +# Sell order broadcasted to the source blockchain +# interchanged tx dex send-sell-order [src-port] [src-channel] [amountDenom] [amount] [priceDenom] [price] +interchanged tx dex send-sell-order dex channel-0 marscoin 10 venuscoin 15 +``` + +The `send-sellOrder` command broadcasts a message that locks token on the source blockchain and creates a sell order on the source blockchain: + +```yaml +# Source blockchain +balances: +- amount: "990" # decreased from 1000 + denom: marscoin +SellOrderBook: +- amountDenom: marscoin + creator: "" + index: dex-channel-0-marscoin-venuscoin + orderIDTrack: 2 + orders: # a new sell order is created + - amount: 10 + creator: cosmos1v3p3j7c64c4ls32pcjct333e8vqe45gwwa289q + id: 0 + price: 15 + priceDenom: venuscoin +``` + +## Buy Order + +A buy order has the same arguments, the amount of token to be purchased and a price: + +```bash +# Buy order broadcasted to the target blockchain +# interchanged tx dex send-buy-order [src-port] [src-channel] [amountDenom] [amount] [priceDenom] [price]` +interchanged tx dex send-buy-order dex channel-0 marscoin 10 venuscoin 5 +``` + +The `send-buy-order` command locks token on the target blockchain: + +```yaml +# Target blockchain +balances: +- amount: "950" # decreased from 1000 + denom: venuscoin +BuyOrderBook: +- amountDenom: marscoin + creator: "" + index: dex-channel-0-marscoin-venuscoin + orderIDTrack: 3 + orders: # a new buy order is created + - amount: 10 + creator: cosmos1qlrz3peenc6s3xjv9k97e8ef72nk3qn3a0xax2 + id: 1 + price: 5 + priceDenom: venuscoin +``` + +## Perform an Exchange with a Sell Order + +You now have two orders open for marscoin: + +- A sell order on the source chain (for 10marscoin at 15venuscoin) +- A buy order on the target chain (for 5marscoin at 5venuscoin) + +Now, perform an exchange by sending a sell order to the source chain: + +```bash +# Sell order broadcasted to the source chain +interchanged tx dex send-sell-order dex channel-0 marscoin 5 venuscoin 3 +``` + +The sell order (for 5marscoin at 3venuscoin) is filled on the target chain by the buy order. + +The amount of the buy order on the target chain is decreased by 5marscoin: + +```yaml +# Target blockchain +BuyOrderBook: +- amountDenom: marscoin + creator: "" + index: dex-channel-0-marscoin-venuscoin + orderIDTrack: 5 + orders: + - amount: 5 # decreased from 10 + creator: cosmos1qlrz3peenc6s3xjv9k97e8ef72nk3qn3a0xax2 + id: 3 + price: 5 + priceDenom: venuscoin +``` + +The sender of the filled sell order exchanged 5marscoin for 25 venuscoin vouchers. + +25 vouchers is a product of the amount of the sell order (5marscoin) and price of the buy order (5venuscoin): + +```yaml +# Source blockchain +balances: +- amount: "25" # increased from 0 + denom: ibc/50D70B7748FB8AA69F09114EC9E5615C39E07381FE80E628A1AF63A6F5C79833 # venuscoin voucher +- amount: "985" # decreased from 990 + denom: marscoin +``` + +The counterparty (the sender of the buy marscoin order) receives 5 marscoin vouchers: + +```yaml +# Target blockchain +balances: +- amount: "5" # increased from 0 + denom: ibc/99678A10AF684E33E88959727F2455AE42CCC64CD76ECFA9691E1B5A32342D33 # marscoin voucher +``` + +The venuscoin balance hasn't changed because the correct amount of venuscoin (50) was locked at the creation of the buy order during the previous step. + +## Perform an Exchange with a Buy Order + +Now, send an order to buy 5marscoin for 15venuscoin: + +```bash +# Buy order broadcasted to the target chain +interchanged tx dex send-buy-order dex channel-0 marscoin 5 venuscoin 15 +``` + +A buy order is immediately filled on the source chain and the sell order creator receives 75 venuscoin vouchers. + +The sell order amount is decreased by the amount of the filled buy order (by 5marscoin): + +```yaml +# Source blockchain +balances: +- amount: "100" # increased from 25 + denom: ibc/50D70B7748FB8AA69F09114EC9E5615C39E07381FE80E628A1AF63A6F5C79833 # venuscoin voucher +SellOrderBook: +- amountDenom: marscoin + creator: "" + index: dex-channel-0-marscoin-venuscoin + orderIDTrack: 4 + orders: + - amount: 5 # decreased from 10 + creator: cosmos1v3p3j7c64c4ls32pcjct333e8vqe45gwwa289q + id: 2 + price: 15 + priceDenom: venuscoin +``` + +The creator of the buy order receives 5 marscoin vouchers for 75 venuscoin (5marscoin * 15venuscoin): + +```yaml +# Target blockchain +balances: +- amount: "10" # increased from 5 + denom: ibc/99678A10AF684E33E88959727F2455AE42CCC64CD76ECFA9691E1B5A32342D33 # marscoin vouchers +- amount: "875" # decreased from 950 + denom: venuscoin +``` + +## Complete Exchange with a Partially Filled Sell Order + +Send an order to sell 10marscoin for 3venuscoin: + +```bash +# Source blockchain +interchanged tx dex send-sell-order dex channel-0 marscoin 10 venuscoin 3 +``` + +The sell amount is 10marscoin, but the opened buy order amount is only 5marscoin. The buy order gets filled completely and removed from the order book. The author of the previously created buy order receives 10 marscoin vouchers from the exchange: + +```yaml +# Target blockchain +balances: +- amount: "15" # increased from 5 + denom: ibc/99678A10AF684E33E88959727F2455AE42CCC64CD76ECFA9691E1B5A32342D33 # marscoin voucher +BuyOrderBook: +- amountDenom: marscoin + creator: "" + index: dex-channel-0-marscoin-venuscoin + orderIDTrack: 5 + orders: [] # buy order with amount 5marscoin has been closed + priceDenom: venuscoin +``` + +The author of the sell order successfuly exchanged 5 marscoin and received 25 venuscoin vouchers. The other 5marscoin created a sell order: + +```yaml +# Source blockchain +balances: +- amount: "125" # increased from 100 + denom: ibc/50D70B7748FB8AA69F09114EC9E5615C39E07381FE80E628A1AF63A6F5C79833 # venuscoin vouchers +- amount: "975" # decreased from 985 + denom: marscoin +- amountDenom: marscoin +SellOrderBook: + creator: "" + index: dex-channel-0-marscoin-venuscoin + orderIDTrack: 6 + orders: + - amount: 5 # hasn't changed + creator: cosmos1v3p3j7c64c4ls32pcjct333e8vqe45gwwa289q + id: 2 + price: 15 + - amount: 5 # new order is created + creator: cosmos1v3p3j7c64c4ls32pcjct333e8vqe45gwwa289q + id: 4 + price: 3 +``` + +## Complete Exchange with a Partially Filled Buy Order + +Create an order to buy 10 marscoin for 5 venuscoin: + +```bash +# Target blockchain +interchanged tx dex send-buy-order dex channel-0 marscoin 10 venuscoin 5 +``` + +The buy order is partially filled for 5marscoin. An existing sell order for 5 marscoin (with a price of 3 venuscoin) on the source chain is completely filled and is removed from the order book. The author of the closed sell order receives 15 venuscoin vouchers (product of 5marscoin and 3venuscoin): + +```yaml +# Source blockchain +balances: +- amount: "140" # increased from 125 + denom: ibc/50D70B7748FB8AA69F09114EC9E5615C39E07381FE80E628A1AF63A6F5C79833 # venuscoin vouchers +SellOrderBook: +- amountDenom: marscoin + creator: "" + index: dex-channel-0-marscoin-venuscoin + orderIDTrack: 6 + orders: + - amount: 5 # order hasn't changed + creator: cosmos1v3p3j7c64c4ls32pcjct333e8vqe45gwwa289q + id: 2 + price: 15 + # a sell order for 5 marscoin has been closed + priceDenom: venuscoin +``` + +The author of the buy order receives 5 marscoin vouchers which locks 50 venuscoin of their token. The 5marscoin amount that is not filled by the sell order creates a buy order on the target chain: + +```yaml +# Target blockchain +balances: +- amount: "20" # increased from 15 + denom: ibc/99678A10AF684E33E88959727F2455AE42CCC64CD76ECFA9691E1B5A32342D33 # marscoin vouchers +- amount: "825" # decreased from 875 + denom: venuscoin +BuyOrderBook: +- amountDenom: marscoin + creator: "" + index: dex-channel-0-marscoin-venuscoin + orderIDTrack: 7 + orders: + - amount: 5 # new buy order is created + creator: cosmos1qlrz3peenc6s3xjv9k97e8ef72nk3qn3a0xax2 + id: 5 + price: 5 + priceDenom: venuscoin +``` + +## Cancel an Order + +After these exchanges, you still have two orders open: + +- A sell order on the source chain (5marscoin for 15venuscoin) +- A buy order on the target chain (5marscoin for 5venuscoin) + +To cancel a sell order: + +```bash +# Source blockchain +interchanged tx dex cancel-sell-order dex channel-0 marscoin venuscoin 2 +``` + +The balance of marscoin is increased: + +```yaml +# Source blockchain +balances: +- amount: "980" # increased from 975 + denom: marscoin +``` + +The sell order book on the source blockchain is now empty. + +To cancel a buy order: + +```bash +# Target blockchain +interchanged tx dex cancel-buy-order dex channel-0 marscoin venuscoin 5 +``` + +The amount of venuscoin is increased: + +```yaml +# Target blockchain +balances: +- amount: "850" # increased from 825 + denom: venuscoin +``` + +The buy order book on the target blokchain is now empty. + +This walkthrough of the interchain exchange showed you how to: + +- Create an exchange order book for a token pair between two chains +- Send sell orders on source chain +- Send buy orders on target chain +- Cancel sell or buy orders + diff --git a/docs/versioned_docs/version-v0.25.2/guide/08-interchange/04-creating-order-books.md b/docs/versioned_docs/version-v0.25.2/guide/08-interchange/04-creating-order-books.md new file mode 100644 index 0000000000..5937400c84 --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/guide/08-interchange/04-creating-order-books.md @@ -0,0 +1,465 @@ +--- +sidebar_position: 4 +description: Implement logic to create order books. +--- + +# Implement the Order Books + +In this chapter, you implement the logic to create order books. + +In the Cosmos SDK, the state is stored in a key-value store. Each order book is stored under a unique key that is composed of four values: + +- Port ID +- Channel ID +- Source denom +- Target denom + +For example, an order book for marscoin and venuscoin could be stored under `dex-channel-4-marscoin-venuscoin`. + +First, define a function that returns an order book store key: + +```go +// x/dex/types/keys.go +import "fmt" + +// ... +func OrderBookIndex(portID string, channelID string, sourceDenom string, targetDenom string) string { + return fmt.Sprintf("%s-%s-%s-%s", portID, channelID, sourceDenom, targetDenom) +} +``` + +The `send-create-pair` command is used to create order books. This command: + +- Creates and broadcasts a transaction with a message of type `SendCreatePair`. +- The message gets routed to the `dex` module. +- Finally, a `SendCreatePair` keeper method is called. + +You need the `send-create-pair` command to do the following: + +* When processing `SendCreatePair` message on the source chain: + * Check that an order book with the given pair of denoms does not yet exist. + * Transmit an IBC packet with information about port, channel, source denoms, and target denoms. +* After the packet is received on the target chain: + * Check that an order book with the given pair of denoms does not yet exist on the target chain. + * Create a new order book for buy orders. + * Transmit an IBC acknowledgement back to the source chain. +* After the acknowledgement is received on the source chain: + * Create a new order book for sell orders. + +## Message Handling in SendCreatePair + +The `SendCreatePair` function was created during the IBC packet scaffolding. The function creates an IBC packet, populates it with source and target denoms, and transmits this packet over IBC. + +Now, add the logic to check for an existing order book for a particular pair of denoms: + +```go +// x/dex/keeper/msg_server_create_pair.go + +import ( + "errors" + + //... +) + +func (k msgServer) SendCreatePair(goCtx context.Context, msg *types.MsgSendCreatePair) (*types.MsgSendCreatePairResponse, error) { + ctx := sdk.UnwrapSDKContext(goCtx) + + // Get an order book index + pairIndex := types.OrderBookIndex(msg.Port, msg.ChannelID, msg.SourceDenom, msg.TargetDenom) + + // If an order book is found, return an error + _, found := k.GetSellOrderBook(ctx, pairIndex) + if found { + return &types.MsgSendCreatePairResponse{}, errors.New("the pair already exist") + } + + // Construct the packet + var packet types.CreatePairPacketData + + packet.SourceDenom = msg.SourceDenom + packet.TargetDenom = msg.TargetDenom + + // Transmit the packet + err := k.TransmitCreatePairPacket( + ctx, + packet, + msg.Port, + msg.ChannelID, + clienttypes.ZeroHeight(), + msg.TimeoutTimestamp, + ) + if err != nil { + return nil, err + } + + return &types.MsgSendCreatePairResponse{}, nil +} +``` + +## Lifecycle of an IBC Packet + +During a successful transmission, an IBC packet goes through these stages: + +1. Message processing before packet transmission on the source chain +2. Reception of a packet on the target chain +3. Acknowledgment of a packet on the source chain +4. Timeout of a packet on the source chain + +In the following section, implement the packet reception logic in the `OnRecvCreatePairPacket` function and the packet acknowledgement logic in the `OnAcknowledgementCreatePairPacket` function. + +Leave the Timeout function empty. + +## Receive an IBC packet + +The protocol buffer definition defines the data that an order book contains. + +Add the `OrderBook` and `Order` messages to the `order.proto` file. + +First, add the proto buffer files to build the Go code files. You can modify these files for the purpose of your app. + +Create a new `order.proto` file in the `proto/dex` directory and add the content: + +```protobuf +// proto/dex/order.proto + +syntax = "proto3"; + +package interchange.dex; + +option go_package = "interchange/x/dex/types"; + +message OrderBook { + int32 idCount = 1; + repeated Order orders = 2; +} + +message Order { + int32 id = 1; + string creator = 2; + int32 amount = 3; + int32 price = 4; +} +``` + +Modify the `buy_order_book.proto` file to have the fields for creating a buy order on the order book. +Don't forget to add the import as well. + +**Tip:** Don't forget to add the import as well. + +```protobuf +// proto/dex/buy_order_book.proto + +// ... +import "dex/order.proto"; + +message BuyOrderBook { + // ... + OrderBook book = 4; +} +``` + +Modify the `sell_order_book.proto` file to add the order book into the buy order book. + +The proto definition for the `SellOrderBook` looks like: + +```protobuf +// proto/dex/sell_order_book.proto + +// ... +import "dex/order.proto"; + +message SellOrderBook { + // ... + OrderBook book = 4; +} +``` + +Now, use Ignite CLI to build the proto files for the `send-create-pair` command: + +```bash +ignite generate proto-go --yes +``` + +Start enhancing the functions for the IBC packets. + +Create a new file `x/dex/types/order_book.go`. + +Add the new order book function to the corresponding Go file: + +```go +// x/dex/types/order_book.go + +package types + +func NewOrderBook() OrderBook { + return OrderBook{ + IdCount: 0, + } +} +``` + +To create a new buy order book type, define `NewBuyOrderBook` in a new file `x/dex/types/buy_order_book.go` : + +```go +// x/dex/types/buy_order_book.go + +package types + +func NewBuyOrderBook(AmountDenom string, PriceDenom string) BuyOrderBook { + book := NewOrderBook() + return BuyOrderBook{ + AmountDenom: AmountDenom, + PriceDenom: PriceDenom, + Book: &book, + } +} +``` + +When an IBC packet is received on the target chain, the module must check whether a book already exists. If not, then create a buy order book for the specified denoms. + + +```go +// x/dex/keeper/create_pair.go + +func (k Keeper) OnRecvCreatePairPacket(ctx sdk.Context, packet channeltypes.Packet, data types.CreatePairPacketData) (packetAck types.CreatePairPacketAck, err error) { + // ... + + // Get an order book index + pairIndex := types.OrderBookIndex(packet.SourcePort, packet.SourceChannel, data.SourceDenom, data.TargetDenom) + + // If an order book is found, return an error + _, found := k.GetBuyOrderBook(ctx, pairIndex) + if found { + return packetAck, errors.New("the pair already exist") + } + + // Create a new buy order book for source and target denoms + book := types.NewBuyOrderBook(data.SourceDenom, data.TargetDenom) + + // Assign order book index + book.Index = pairIndex + + // Save the order book to the store + k.SetBuyOrderBook(ctx, book) + return packetAck, nil +} +``` + +## Receive an IBC Acknowledgement + + +When an IBC acknowledgement is recieved on the source chain, the module must check whether a book already exists. If not, create a sell order book for the specified denoms. + +Create a new file `x/dex/types/sell_order_book.go`. +Insert the `NewSellOrderBook` function which creates a new sell order book. + +```go +// x/dex/types/sell_order_book.go + +package types + +func NewSellOrderBook(AmountDenom string, PriceDenom string) SellOrderBook { + book := NewOrderBook() + return SellOrderBook{ + AmountDenom: AmountDenom, + PriceDenom: PriceDenom, + Book: &book, + } +} +``` + +Modify the Acknowledgement function in the `x/dex/keeper/create_pair.go` file: + +```go +// x/dex/keeper/create_pair.go + +func (k Keeper) OnAcknowledgementCreatePairPacket(ctx sdk.Context, packet channeltypes.Packet, data types.CreatePairPacketData, ack channeltypes.Acknowledgement) error { + switch dispatchedAck := ack.Response.(type) { + case *channeltypes.Acknowledgement_Error: + return nil + case *channeltypes.Acknowledgement_Result: + // Decode the packet acknowledgment + var packetAck types.CreatePairPacketAck + 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") + } + + // Set the sell order book + pairIndex := types.OrderBookIndex(packet.SourcePort, packet.SourceChannel, data.SourceDenom, data.TargetDenom) + book := types.NewSellOrderBook(data.SourceDenom, data.TargetDenom) + book.Index = pairIndex + k.SetSellOrderBook(ctx, book) + + return nil + default: + // The counter-party module doesn't implement the correct acknowledgment format + return errors.New("invalid acknowledgment format") + } +} +``` + +In this section, you implemented the logic behind the new `send-create-pair` command: + +- When an IBC packet is received on the target chain, `send-create-pair` command creates a buy order book. +- When an IBC acknowledgement is received on the source chain, the `send-create-pair` command creates a sell order book. + +### Implement the appendOrder Function to Add Orders to the Order Book + +```go +// x/dex/types/order_book.go + +package types + +import ( + "errors" + "sort" +) + +func NewOrderBook() OrderBook { + return OrderBook{ + IdCount: 0, + } +} + +const ( + MaxAmount = int32(100000) + MaxPrice = int32(100000) +) + +type Ordering int + +const ( + Increasing Ordering = iota + Decreasing +) + +var ( + ErrMaxAmount = errors.New("max amount reached") + ErrMaxPrice = errors.New("max price reached") + ErrZeroAmount = errors.New("amount is zero") + ErrZeroPrice = errors.New("price is zero") + ErrOrderNotFound = errors.New("order not found") +) +``` + +The `AppendOrder` function initializes and appends a new order to an order book from the order information: + +```go +// x/dex/types/order_book.go + +func (book *OrderBook) appendOrder(creator string, amount int32, price int32, ordering Ordering) (int32, error) { + if err := checkAmountAndPrice(amount, price); err != nil { + return 0, err + } + + // Initialize the order + var order Order + order.Id = book.GetNextOrderID() + order.Creator = creator + order.Amount = amount + order.Price = price + + // Increment ID tracker + book.IncrementNextOrderID() + + // Insert the order + book.insertOrder(order, ordering) + return order.Id, nil +} +``` + +#### Implement the checkAmountAndPrice Function For an Order + +The `checkAmountAndPrice` function checks for the correct amount or price: + +```go +// x/dex/types/order_book.go + +func checkAmountAndPrice(amount int32, price int32) error { + if amount == int32(0) { + return ErrZeroAmount + } + if amount > MaxAmount { + return ErrMaxAmount + } + + if price == int32(0) { + return ErrZeroPrice + } + if price > MaxPrice { + return ErrMaxPrice + } + + return nil +} +``` + +#### Implement the GetNextOrderID Function + +The `GetNextOrderID` function gets the ID of the next order to append: + +```go +// x/dex/types/order_book.go + +func (book OrderBook) GetNextOrderID() int32 { + return book.IdCount +} +``` + +#### Implement the IncrementNextOrderID Function + +The `IncrementNextOrderID` function updates the ID count for orders: + +```go +// x/dex/types/order_book.go + +func (book *OrderBook) IncrementNextOrderID() { + // Even numbers to have different ID than buy orders + book.IdCount++ +} +``` + +#### Implement the insertOrder Function + +The `insertOrder` function inserts the order in the book with the provided order: + +```go +// x/dex/types/order_book.go + +func (book *OrderBook) insertOrder(order Order, ordering Ordering) { + if len(book.Orders) > 0 { + var i int + + // get the index of the new order depending on the provided ordering + if ordering == Increasing { + i = sort.Search(len(book.Orders), func(i int) bool { return book.Orders[i].Price > order.Price }) + } else { + i = sort.Search(len(book.Orders), func(i int) bool { return book.Orders[i].Price < order.Price }) + } + + // insert order + orders := append(book.Orders, &order) + copy(orders[i+1:], orders[i:]) + orders[i] = &order + book.Orders = orders + } else { + book.Orders = append(book.Orders, &order) + } +} +``` + + +This completes the order book setup. + +Now is a good time to save the state of your implementation. +Because your project is in a local repository, you can use git. Saving your current state lets you jump back and forth in case you introduce errors or need a break. + + +```bash +git add . +git commit -m "Create Order Books" +``` + + +In the next chapter, you learn how to deal with vouchers by minting and burning vouchers and locking and unlocking native blockchain token in your app. diff --git a/docs/versioned_docs/version-v0.25.2/guide/08-interchange/05-mint-and-burn-voucher.md b/docs/versioned_docs/version-v0.25.2/guide/08-interchange/05-mint-and-burn-voucher.md new file mode 100644 index 0000000000..fe3d0f1d4b --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/guide/08-interchange/05-mint-and-burn-voucher.md @@ -0,0 +1,311 @@ +--- +order: 5 +description: Mint vouchers and lock and unlock native token from a blockchain. +--- + +# Mint and Burn Vouchers + +In this chapter, you learn about vouchers. The `dex` module implementation mints vouchers and locks and unlocks native token from a blockchain. + +There is a lot to learn from this `dex` module implementation: + +- You work with the `bank` keeper and use several methods it offers. +- You interact with another module and use the module account to lock tokens. + +This implementation can teach you how to use various interactions with module accounts or minting, locking or burning tokens. + + +## Create the SafeBurn Function to Burn Vouchers or Lock Tokens + +The `SafeBurn` function burns tokens if they are IBC vouchers (have an `ibc/` prefix) and locks tokens if they are native to the chain. + +Create a new `x/dex/keeper/mint.go` file: + +```go +// x/dex/keeper/mint.go + +package keeper + +import ( + "fmt" + "strings" + + sdkmath "cosmossdk.io/math" + sdk "github.com/cosmos/cosmos-sdk/types" + ibctransfertypes "github.com/cosmos/ibc-go/v5/modules/apps/transfer/types" + + "interchange/x/dex/types" +) + +// isIBCToken checks if the token came from the IBC module +// Each IBC token starts with an ibc/ denom, the check is rather simple +func isIBCToken(denom string) bool { + return strings.HasPrefix(denom, "ibc/") +} + +func (k Keeper) SafeBurn(ctx sdk.Context, port string, channel string, sender sdk.AccAddress, denom string, amount int32) error { + if isIBCToken(denom) { + // Burn the tokens + if err := k.BurnTokens(ctx, sender, sdk.NewCoin(denom, sdkmath.NewInt(int64(amount)))); err != nil { + return err + } + } else { + // Lock the tokens + if err := k.LockTokens(ctx, port, channel, sender, sdk.NewCoin(denom, sdkmath.NewInt(int64(amount)))); err != nil { + return err + } + } + + return nil +} +``` + +If the token comes from another blockchain as an IBC token, the burning method actually burns those IBC tokens on one chain and unlocks them on the other chain. The native token are locked away. + +Now, implement the `BurnTokens` keeper method as used in the previous function. The `bankKeeper` has a useful function for this: + +```go +// x/dex/keeper/mint.go + +func (k Keeper) BurnTokens(ctx sdk.Context, sender sdk.AccAddress, tokens sdk.Coin) error { + // transfer the coins to the module account and burn them + if err := k.bankKeeper.SendCoinsFromAccountToModule(ctx, sender, types.ModuleName, sdk.NewCoins(tokens)); err != nil { + return err + } + + if err := k.bankKeeper.BurnCoins( + ctx, types.ModuleName, sdk.NewCoins(tokens), + ); err != nil { + // NOTE: should not happen as the module account was + // retrieved on the step above and it has enough balance + // to burn. + panic(fmt.Sprintf("cannot burn coins after a successful send to a module account: %v", err)) + } + + return nil +} +``` + +Implement the `LockTokens` keeper method. + +To lock token from a native chain, you can send the native token to the Escrow Address: + +```go +// x/dex/keeper/mint.go + +func (k Keeper) LockTokens(ctx sdk.Context, sourcePort string, sourceChannel string, sender sdk.AccAddress, tokens sdk.Coin) error { + // create the escrow address for the tokens + escrowAddress := ibctransfertypes.GetEscrowAddress(sourcePort, sourceChannel) + + // escrow source tokens. It fails if balance insufficient + if err := k.bankKeeper.SendCoins( + ctx, sender, escrowAddress, sdk.NewCoins(tokens), + ); err != nil { + return err + } + + return nil +} +``` + +`BurnTokens` and `LockTokens` use `SendCoinsFromAccountToModule`, `BurnCoins`, and `SendCoins` keeper methods of the `bank` module. + +To start using these function from the `dex` module, first add them to the `BankKeeper` interface in the `x/dex/types/expected_keepers.go` file. + +```go +// x/dex/types/expected_keepers.go + +package types + +import sdk "github.com/cosmos/cosmos-sdk/types" + +// BankKeeper defines the expected bank keeper +type BankKeeper interface { + //... + SendCoinsFromAccountToModule(ctx sdk.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins) error + BurnCoins(ctx sdk.Context, moduleName string, amt sdk.Coins) error + SendCoins(ctx sdk.Context, fromAddr sdk.AccAddress, toAddr sdk.AccAddress, amt sdk.Coins) error +} +``` + +## SaveVoucherDenom + +The `SaveVoucherDenom` function saves the voucher denom to be able to convert it back later. + +Create a new `x/dex/keeper/denom.go` file: + +```go +// x/dex/keeper/denom.go + +package keeper + +import ( + sdk "github.com/cosmos/cosmos-sdk/types" + ibctransfertypes "github.com/cosmos/ibc-go/v5/modules/apps/transfer/types" + + "interchange/x/dex/types" +) + +func (k Keeper) SaveVoucherDenom(ctx sdk.Context, port string, channel string, denom string) { + voucher := VoucherDenom(port, channel, denom) + + // Store the origin denom + _, saved := k.GetDenomTrace(ctx, voucher) + if !saved { + k.SetDenomTrace(ctx, types.DenomTrace{ + Index: voucher, + Port: port, + Channel: channel, + Origin: denom, + }) + } +} +``` + +Finally, the last function to implement is the `VoucherDenom` function that returns the voucher of the denom from the port ID and channel ID: + +```go +// x/dex/keeper/denom.go + +func VoucherDenom(port string, channel string, denom string) string { + // since SendPacket did not prefix the denomination, we must prefix denomination here + sourcePrefix := ibctransfertypes.GetDenomPrefix(port, channel) + + // NOTE: sourcePrefix contains the trailing "/" + prefixedDenom := sourcePrefix + denom + + // construct the denomination trace from the full raw denomination + denomTrace := ibctransfertypes.ParseDenomTrace(prefixedDenom) + voucher := denomTrace.IBCDenom() + return voucher[:16] +} +``` + +### Implement an OriginalDenom Function + +The `OriginalDenom` function returns back the original denom of the voucher. + +False is returned if the port ID and channel ID provided are not the origins of the voucher: + +```go +// x/dex/keeper/denom.go + +func (k Keeper) OriginalDenom(ctx sdk.Context, port string, channel string, voucher string) (string, bool) { + trace, exist := k.GetDenomTrace(ctx, voucher) + if exist { + // Check if original port and channel + if trace.Port == port && trace.Channel == channel { + return trace.Origin, true + } + } + + // Not the original chain + return "", false +} +``` + +### Implement a SafeMint Function + +If a token is an IBC token (has an `ibc/` prefix), the `SafeMint` function mints IBC token with `MintTokens`. Otherwise, it unlocks native token with `UnlockTokens`. + +Go back to the `x/dex/keeper/mint.go` file and add the following code: + +```go +// x/dex/keeper/mint.go + +func (k Keeper) SafeMint(ctx sdk.Context, port string, channel string, receiver sdk.AccAddress, denom string, amount int32) error { + if isIBCToken(denom) { + // Mint IBC tokens + if err := k.MintTokens(ctx, receiver, sdk.NewCoin(denom, sdkmath.NewInt(int64(amount)))); err != nil { + return err + } + } else { + // Unlock native tokens + if err := k.UnlockTokens( + ctx, + port, + channel, + receiver, + sdk.NewCoin(denom, sdkmath.NewInt(int64(amount))), + ); err != nil { + return err + } + } + + return nil +} +``` + +#### Implement a `MintTokens` Function + +You can use the `bankKeeper` function again to MintCoins. These token will then be sent to the receiver account: + +```go +// x/dex/keeper/mint.go + +func (k Keeper) MintTokens(ctx sdk.Context, receiver sdk.AccAddress, tokens sdk.Coin) error { + // mint new tokens if the source of the transfer is the same chain + if err := k.bankKeeper.MintCoins( + ctx, types.ModuleName, sdk.NewCoins(tokens), + ); err != nil { + return err + } + + // send to receiver + if err := k.bankKeeper.SendCoinsFromModuleToAccount( + ctx, types.ModuleName, receiver, sdk.NewCoins(tokens), + ); err != nil { + panic(fmt.Sprintf("unable to send coins from module to account despite previously minting coins to module account: %v", err)) + } + + return nil +} +``` + +Finally, add the function to unlock token after they are sent back to the native blockchain: + +```go +// x/dex/keeper/mint.go + +func (k Keeper) UnlockTokens(ctx sdk.Context, sourcePort string, sourceChannel string, receiver sdk.AccAddress, tokens sdk.Coin) error { + // create the escrow address for the tokens + escrowAddress := ibctransfertypes.GetEscrowAddress(sourcePort, sourceChannel) + + // escrow source tokens. It fails if balance insufficient + if err := k.bankKeeper.SendCoins( + ctx, escrowAddress, receiver, sdk.NewCoins(tokens), + ); err != nil { + return err + } + + return nil +} +``` + +The `MintTokens` function uses two keeper methods from the `bank` module: `MintCoins` and `SendCoinsFromModuleToAccount`. +To import these methods, add their signatures to the `BankKeeper` interface in the `x/dex/types/expected_keepers.go` file: + +```go +// x/dex/types/expected_keepers.go + +type BankKeeper interface { + // ... + MintCoins(ctx sdk.Context, moduleName string, amt sdk.Coins) error + SendCoinsFromModuleToAccount(ctx sdk.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error +} +``` + + +## Summary + +You finished the mint and burn voucher logic. + +It is a good time to make another git commit to save the state of your work: + + +```bash +git add . +git commit -m "Add Mint and Burn Voucher" +``` + +In the next chapter, you look into creating sell orders. diff --git a/docs/versioned_docs/version-v0.25.2/guide/08-interchange/06-creating-sell-orders.md b/docs/versioned_docs/version-v0.25.2/guide/08-interchange/06-creating-sell-orders.md new file mode 100644 index 0000000000..53663f915f --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/guide/08-interchange/06-creating-sell-orders.md @@ -0,0 +1,374 @@ +--- +sidebar_position: 6 +description: Implement logic to create sell orders. +--- + +# Create Sell Orders + +In this chapter, you implement the logic for creating sell orders. + +The packet proto file for a sell order is already generated. Add the seller information: + +```protobuf +// proto/dex/packet.proto + +message SellOrderPacketData { + // ... + string seller = 5; +} +``` + +Now, use Ignite CLI to build the proto files for the `send-sell-order` command. You used this command in a previous chapter. + +```bash +ignite generate proto-go --yes +``` + +## Message Handling in SendSellOrder + +Sell orders are created using the `send-sell-order` command. This command creates a transaction with a `SendSellOrder` message that triggers the `SendSellOrder` keeper method. + +The `SendSellOrder` command: + +* Checks that an order book for a specified denom pair exists. +* Safely burns or locks token. + * If the token is an IBC token, burn the token. + * If the token is a native token, lock the token. +* Saves the voucher that is received on the target chain to later resolve a denom. +* Transmits an IBC packet to the target chain. + +```go +// x/dex/keeper/msg_server_sell_order.go + +package keeper + +import ( + "context" + "errors" + + sdk "github.com/cosmos/cosmos-sdk/types" + clienttypes "github.com/cosmos/ibc-go/v5/modules/core/02-client/types" + + "interchange/x/dex/types" +) + +func (k msgServer) SendSellOrder(goCtx context.Context, msg *types.MsgSendSellOrder) (*types.MsgSendSellOrderResponse, error) { + ctx := sdk.UnwrapSDKContext(goCtx) + + // If an order book doesn't exist, throw an error + pairIndex := types.OrderBookIndex(msg.Port, msg.ChannelID, msg.AmountDenom, msg.PriceDenom) + _, found := k.GetSellOrderBook(ctx, pairIndex) + if !found { + return &types.MsgSendSellOrderResponse{}, errors.New("the pair doesn't exist") + } + + // Get sender's address + sender, err := sdk.AccAddressFromBech32(msg.Creator) + if err != nil { + return &types.MsgSendSellOrderResponse{}, err + } + + // Use SafeBurn to ensure no new native tokens are minted + if err := k.SafeBurn(ctx, msg.Port, msg.ChannelID, sender, msg.AmountDenom, msg.Amount); err != nil { + return &types.MsgSendSellOrderResponse{}, err + } + + // Save the voucher received on the other chain, to have the ability to resolve it into the original denom + k.SaveVoucherDenom(ctx, msg.Port, msg.ChannelID, msg.AmountDenom) + + var packet types.SellOrderPacketData + packet.Seller = msg.Creator + packet.AmountDenom = msg.AmountDenom + packet.Amount = msg.Amount + packet.PriceDenom = msg.PriceDenom + packet.Price = msg.Price + + // Transmit the packet + err = k.TransmitSellOrderPacket(ctx, packet, msg.Port, msg.ChannelID, clienttypes.ZeroHeight(), msg.TimeoutTimestamp) + if err != nil { + return nil, err + } + + return &types.MsgSendSellOrderResponse{}, nil +} +``` + +## On Receiving a Sell Order + +When a "sell order" packet is received on the target chain, you want the module to: + +* Update the sell order book +* Distribute sold token to the buyer +* Send the sell order to chain A after the fill attempt + +```go +// x/dex/keeper/sell_order.go + +func (k Keeper) OnRecvSellOrderPacket(ctx sdk.Context, packet channeltypes.Packet, data types.SellOrderPacketData) (packetAck types.SellOrderPacketAck, err error) { + if err := data.ValidateBasic(); err != nil { + return packetAck, err + } + + pairIndex := types.OrderBookIndex(packet.SourcePort, packet.SourceChannel, data.AmountDenom, data.PriceDenom) + book, found := k.GetBuyOrderBook(ctx, pairIndex) + if !found { + return packetAck, errors.New("the pair doesn't exist") + } + + // Fill sell order + remaining, liquidated, gain, _ := book.FillSellOrder(types.Order{ + Amount: data.Amount, + Price: data.Price, + }) + + // Return remaining amount and gains + packetAck.RemainingAmount = remaining.Amount + packetAck.Gain = gain + + // Before distributing sales, we resolve the denom + // First we check if the denom received comes from this chain originally + finalAmountDenom, saved := k.OriginalDenom(ctx, packet.DestinationPort, packet.DestinationChannel, data.AmountDenom) + if !saved { + // If it was not from this chain we use voucher as denom + finalAmountDenom = VoucherDenom(packet.SourcePort, packet.SourceChannel, data.AmountDenom) + } + + // Dispatch liquidated buy orders + for _, liquidation := range liquidated { + liquidation := liquidation + addr, err := sdk.AccAddressFromBech32(liquidation.Creator) + if err != nil { + return packetAck, err + } + + if err := k.SafeMint(ctx, packet.DestinationPort, packet.DestinationChannel, addr, finalAmountDenom, liquidation.Amount); err != nil { + return packetAck, err + } + } + + // Save the new order book + k.SetBuyOrderBook(ctx, book) + + return packetAck, nil +} +``` + +### Implement a FillBuyOrder Function + +The `FillBuyOrder` function tries to fill the sell order with the order book and returns all the side effects: + +```go +// x/dex/types/sell_order_book.go + +func (s *SellOrderBook) FillBuyOrder(order Order) ( + remainingBuyOrder Order, + liquidated []Order, + purchase int32, + filled bool, +) { + var liquidatedList []Order + totalPurchase := int32(0) + remainingBuyOrder = order + + // Liquidate as long as there is match + for { + var match bool + var liquidation Order + remainingBuyOrder, liquidation, purchase, match, filled = s.LiquidateFromBuyOrder( + remainingBuyOrder, + ) + if !match { + break + } + + // Update gains + totalPurchase += purchase + + // Update liquidated + liquidatedList = append(liquidatedList, liquidation) + + if filled { + break + } + } + + return remainingBuyOrder, liquidatedList, totalPurchase, filled +} +``` + +### Implement a LiquidateFromBuyOrder Function + +The `LiquidateFromBuyOrder` function liquidates the first buy order of the book from the sell order. If no match is found, return false for match: + +```go +// x/dex/types/sell_order_book.go + +func (s *SellOrderBook) LiquidateFromBuyOrder(order Order) ( + remainingBuyOrder Order, + liquidatedSellOrder Order, + purchase int32, + match bool, + filled bool, +) { + remainingBuyOrder = order + + // No match if no order + orderCount := len(s.Book.Orders) + if orderCount == 0 { + return order, liquidatedSellOrder, purchase, false, false + } + + // Check if match + lowestAsk := s.Book.Orders[orderCount-1] + if order.Price < lowestAsk.Price { + return order, liquidatedSellOrder, purchase, false, false + } + + liquidatedSellOrder = *lowestAsk + + // Check if buy order can be entirely filled + if lowestAsk.Amount >= order.Amount { + remainingBuyOrder.Amount = 0 + liquidatedSellOrder.Amount = order.Amount + purchase = order.Amount + + // Remove lowest ask if it has been entirely liquidated + lowestAsk.Amount -= order.Amount + if lowestAsk.Amount == 0 { + s.Book.Orders = s.Book.Orders[:orderCount-1] + } else { + s.Book.Orders[orderCount-1] = lowestAsk + } + + return remainingBuyOrder, liquidatedSellOrder, purchase, true, true + } + + // Not entirely filled + purchase = lowestAsk.Amount + s.Book.Orders = s.Book.Orders[:orderCount-1] + remainingBuyOrder.Amount -= lowestAsk.Amount + + return remainingBuyOrder, liquidatedSellOrder, purchase, true, false +} +``` + +### Implement the OnAcknowledgement Function for Sell Order Packets + +After an IBC packet is processed on the target chain, an acknowledgement is returned to the source chain and processed by the `OnAcknowledgementSellOrderPacket` function. + +The dex module on the source chain: + +- Stores the remaining sell order in the sell order book. +- Distributes sold tokens to the buyers. +- Distributes the price of the amount sold to the seller. +- On error, mints the burned tokens. + +```go +// x/dex/keeper/sell_order.go + +func (k Keeper) OnAcknowledgementSellOrderPacket(ctx sdk.Context, packet channeltypes.Packet, data types.SellOrderPacketData, ack channeltypes.Acknowledgement) error { + switch dispatchedAck := ack.Response.(type) { + case *channeltypes.Acknowledgement_Error: + // In case of error we mint back the native token + receiver, err := sdk.AccAddressFromBech32(data.Seller) + if err != nil { + return err + } + + if err := k.SafeMint(ctx, packet.SourcePort, packet.SourceChannel, receiver, data.AmountDenom, data.Amount); err != nil { + return err + } + + return nil + case *channeltypes.Acknowledgement_Result: + // Decode the packet acknowledgment + var packetAck types.SellOrderPacketAck + 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") + } + + // Get the sell order book + pairIndex := types.OrderBookIndex(packet.SourcePort, packet.SourceChannel, data.AmountDenom, data.PriceDenom) + book, found := k.GetSellOrderBook(ctx, pairIndex) + if !found { + panic("sell order book must exist") + } + + // Append the remaining amount of the order + if packetAck.RemainingAmount > 0 { + _, err := book.AppendOrder(data.Seller, packetAck.RemainingAmount, data.Price) + if err != nil { + return err + } + + // Save the new order book + k.SetSellOrderBook(ctx, book) + } + + // Mint the gains + if packetAck.Gain > 0 { + receiver, err := sdk.AccAddressFromBech32(data.Seller) + if err != nil { + return err + } + + finalPriceDenom, saved := k.OriginalDenom(ctx, packet.SourcePort, packet.SourceChannel, data.PriceDenom) + if !saved { + // If it was not from this chain we use voucher as denom + finalPriceDenom = VoucherDenom(packet.DestinationPort, packet.DestinationChannel, data.PriceDenom) + } + + if err := k.SafeMint(ctx, packet.SourcePort, packet.SourceChannel, receiver, finalPriceDenom, packetAck.Gain); err != nil { + return err + } + } + + return nil + default: + // The counter-party module doesn't implement the correct acknowledgment format + return errors.New("invalid acknowledgment format") + } +} +``` + +```go +// x/dex/types/sell_order_book.go + +func (s *SellOrderBook) AppendOrder(creator string, amount int32, price int32) (int32, error) { + return s.Book.appendOrder(creator, amount, price, Decreasing) +} +``` + +### Add the OnTimeout of a Sell Order Packet Function + +If a timeout occurs, mint back the native token: + +```go +// x/dex/keeper/sell_order.go + +func (k Keeper) OnTimeoutSellOrderPacket(ctx sdk.Context, packet channeltypes.Packet, data types.SellOrderPacketData) error { + // In case of error we mint back the native token + receiver, err := sdk.AccAddressFromBech32(data.Seller) + if err != nil { + return err + } + + if err := k.SafeMint(ctx, packet.SourcePort, packet.SourceChannel, receiver, data.AmountDenom, data.Amount); err != nil { + return err + } + + return nil +} +``` + +## Summary + +Great, you have completed the sell order logic. + +It is a good time to make another git commit again to save the state of your work: + +```bash +git add . +git commit -m "Add Sell Orders" +``` diff --git a/docs/versioned_docs/version-v0.25.2/guide/08-interchange/07-creating-buy-orders.md b/docs/versioned_docs/version-v0.25.2/guide/08-interchange/07-creating-buy-orders.md new file mode 100644 index 0000000000..1c8582c46a --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/guide/08-interchange/07-creating-buy-orders.md @@ -0,0 +1,396 @@ +--- +sidebar_position: 7 +description: Implement the buy order logic. +--- + +# Creating Buy Orders + +In this chapter, you implement the creation of buy orders. The logic is very similar to the sell order logic you implemented in the previous chapter. + +## Modify the Proto Definition + +Add the buyer to the proto file definition: + +```protobuf +// proto/dex/packet.proto + +message BuyOrderPacketData { + // ... + string buyer = 5; +} +``` + +Now, use Ignite CLI to build the proto files for the `send-buy-order` command. You used this command in previous chapters. + +```bash +ignite generate proto-go --yes +``` + +## IBC Message Handling in SendBuyOrder + +* Check if the pair exists on the order book +* If the token is an IBC token, burn the tokens +* If the token is a native token, lock the tokens +* Save the voucher received on the target chain to later resolve a denom + +```go +// x/dex/keeper/msg_server_buy_order.go + +package keeper + +import ( + "context" + "errors" + + sdk "github.com/cosmos/cosmos-sdk/types" + + "interchange/x/dex/types" +) + +func (k msgServer) SendBuyOrder(goCtx context.Context, msg *types.MsgSendBuyOrder) (*types.MsgSendBuyOrderResponse, error) { + ctx := sdk.UnwrapSDKContext(goCtx) + + // Cannot send a order if the pair doesn't exist + pairIndex := types.OrderBookIndex(msg.Port, msg.ChannelID, msg.AmountDenom, msg.PriceDenom) + _, found := k.GetBuyOrderBook(ctx, pairIndex) + if !found { + return &types.MsgSendBuyOrderResponse{}, errors.New("the pair doesn't exist") + } + + // Lock the token to send + sender, err := sdk.AccAddressFromBech32(msg.Creator) + if err != nil { + return &types.MsgSendBuyOrderResponse{}, err + } + + // Use SafeBurn to ensure no new native tokens are minted + if err := k.SafeBurn(ctx, msg.Port, msg.ChannelID, sender, msg.PriceDenom, msg.Amount*msg.Price); err != nil { + return &types.MsgSendBuyOrderResponse{}, err + } + + // Save the voucher received on the other chain, to have the ability to resolve it into the original denom + k.SaveVoucherDenom(ctx, msg.Port, msg.ChannelID, msg.PriceDenom) + + // Construct the packet + var packet types.BuyOrderPacketData + packet.Buyer = msg.Creator + + // Transmit an IBC packet... + return &types.MsgSendBuyOrderResponse{}, nil +} +``` + +## On Receiving a Buy Order + +* Update the buy order book +* Distribute sold token to the buyer +* Send to chain A the sell order after the fill attempt + +```go +// x/dex/keeper/buy_order.go + +func (k Keeper) OnRecvBuyOrderPacket(ctx sdk.Context, packet channeltypes.Packet, data types.BuyOrderPacketData) (packetAck types.BuyOrderPacketAck, err error) { + // validate packet data upon receiving + if err := data.ValidateBasic(); err != nil { + return packetAck, err + } + + // Check if the sell order book exists + pairIndex := types.OrderBookIndex(packet.SourcePort, packet.SourceChannel, data.AmountDenom, data.PriceDenom) + book, found := k.GetSellOrderBook(ctx, pairIndex) + if !found { + return packetAck, errors.New("the pair doesn't exist") + } + + // Fill buy order + remaining, liquidated, purchase, _ := book.FillBuyOrder(types.Order{ + Amount: data.Amount, + Price: data.Price, + }) + + // Return remaining amount and gains + packetAck.RemainingAmount = remaining.Amount + packetAck.Purchase = purchase + + // Before distributing gains, we resolve the denom + // First we check if the denom received comes from this chain originally + finalPriceDenom, saved := k.OriginalDenom(ctx, packet.DestinationPort, packet.DestinationChannel, data.PriceDenom) + if !saved { + // If it was not from this chain we use voucher as denom + finalPriceDenom = VoucherDenom(packet.SourcePort, packet.SourceChannel, data.PriceDenom) + } + + // Dispatch liquidated buy order + for _, liquidation := range liquidated { + liquidation := liquidation + addr, err := sdk.AccAddressFromBech32(liquidation.Creator) + if err != nil { + return packetAck, err + } + + if err := k.SafeMint( + ctx, + packet.DestinationPort, + packet.DestinationChannel, + addr, + finalPriceDenom, + liquidation.Amount*liquidation.Price, + ); err != nil { + return packetAck, err + } + } + + // Save the new order book + k.SetSellOrderBook(ctx, book) + + return packetAck, nil +} +``` + +### Implement the FillSellOrder Function + +The `FillSellOrder` function tries to fill the buy order with the order book and returns all the side effects: + +```go +// x/dex/types/buy_order_book.go + +func (b *BuyOrderBook) FillSellOrder(order Order) ( + remainingSellOrder Order, + liquidated []Order, + gain int32, + filled bool, +) { + var liquidatedList []Order + totalGain := int32(0) + remainingSellOrder = order + + // Liquidate as long as there is match + for { + var match bool + var liquidation Order + remainingSellOrder, liquidation, gain, match, filled = b.LiquidateFromSellOrder( + remainingSellOrder, + ) + if !match { + break + } + + // Update gains + totalGain += gain + + // Update liquidated + liquidatedList = append(liquidatedList, liquidation) + + if filled { + break + } + } + + return remainingSellOrder, liquidatedList, totalGain, filled +} +``` + +### Implement The LiquidateFromSellOrder Function + +The `LiquidateFromSellOrder` function liquidates the first sell order of the book from the buy order. If no match is found, return false for match: + +```go +// x/dex/types/buy_order_book.go + +func (b *BuyOrderBook) LiquidateFromSellOrder(order Order) ( + remainingSellOrder Order, + liquidatedBuyOrder Order, + gain int32, + match bool, + filled bool, +) { + remainingSellOrder = order + + // No match if no order + orderCount := len(b.Book.Orders) + if orderCount == 0 { + return order, liquidatedBuyOrder, gain, false, false + } + + // Check if match + highestBid := b.Book.Orders[orderCount-1] + if order.Price > highestBid.Price { + return order, liquidatedBuyOrder, gain, false, false + } + + liquidatedBuyOrder = *highestBid + + // Check if sell order can be entirely filled + if highestBid.Amount >= order.Amount { + remainingSellOrder.Amount = 0 + liquidatedBuyOrder.Amount = order.Amount + gain = order.Amount * highestBid.Price + + // Remove highest bid if it has been entirely liquidated + highestBid.Amount -= order.Amount + if highestBid.Amount == 0 { + b.Book.Orders = b.Book.Orders[:orderCount-1] + } else { + b.Book.Orders[orderCount-1] = highestBid + } + + return remainingSellOrder, liquidatedBuyOrder, gain, true, true + } + + // Not entirely filled + gain = highestBid.Amount * highestBid.Price + b.Book.Orders = b.Book.Orders[:orderCount-1] + remainingSellOrder.Amount -= highestBid.Amount + + return remainingSellOrder, liquidatedBuyOrder, gain, true, false +} +``` + +## Receiving a Buy Order Acknowledgment + + +After a buy order acknowledgement is received, chain `Mars`: + +* Stores the remaining sell order in the sell order book. +* Distributes sold `marscoin` to the buyers. +* Distributes to the seller the price of the amount sold. +* On error, mints back the burned tokens. + +```go +// x/dex/keeper/buy_order.go + +func (k Keeper) OnAcknowledgementBuyOrderPacket(ctx sdk.Context, packet channeltypes.Packet, data types.BuyOrderPacketData, ack channeltypes.Acknowledgement) error { + switch dispatchedAck := ack.Response.(type) { + case *channeltypes.Acknowledgement_Error: + // In case of error we mint back the native token + receiver, err := sdk.AccAddressFromBech32(data.Buyer) + if err != nil { + return err + } + + if err := k.SafeMint( + ctx, + packet.SourcePort, + packet.SourceChannel, + receiver, + data.PriceDenom, + data.Amount*data.Price, + ); err != nil { + return err + } + + return nil + case *channeltypes.Acknowledgement_Result: + // Decode the packet acknowledgment + var packetAck types.BuyOrderPacketAck + + 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") + } + + // Get the sell order book + pairIndex := types.OrderBookIndex(packet.SourcePort, packet.SourceChannel, data.AmountDenom, data.PriceDenom) + book, found := k.GetBuyOrderBook(ctx, pairIndex) + if !found { + panic("buy order book must exist") + } + + // Append the remaining amount of the order + if packetAck.RemainingAmount > 0 { + _, err := book.AppendOrder( + data.Buyer, + packetAck.RemainingAmount, + data.Price, + ) + if err != nil { + return err + } + + // Save the new order book + k.SetBuyOrderBook(ctx, book) + } + + // Mint the purchase + if packetAck.Purchase > 0 { + receiver, err := sdk.AccAddressFromBech32(data.Buyer) + if err != nil { + return err + } + + finalAmountDenom, saved := k.OriginalDenom(ctx, packet.SourcePort, packet.SourceChannel, data.AmountDenom) + if !saved { + // If it was not from this chain we use voucher as denom + finalAmountDenom = VoucherDenom(packet.DestinationPort, packet.DestinationChannel, data.AmountDenom) + } + + if err := k.SafeMint( + ctx, + packet.SourcePort, + packet.SourceChannel, + receiver, + finalAmountDenom, + packetAck.Purchase, + ); err != nil { + return err + } + } + + return nil + default: + // The counter-party module doesn't implement the correct acknowledgment format + return errors.New("invalid acknowledgment format") + } +} +``` + +`AppendOrder` appends an order in the buy order book. +Add the following function to the `x/dex/types/buy_order_book.go` file in the `types` directory. + +```go +// x/dex/types/buy_order_book.go + +func (b *BuyOrderBook) AppendOrder(creator string, amount int32, price int32) (int32, error) { + return b.Book.appendOrder(creator, amount, price, Increasing) +} +``` + +## OnTimeout of a Buy Order Packet + +If a timeout occurs, mint back the native token: + +```go +// x/dex/keeper/buy_order.go + +func (k Keeper) OnTimeoutBuyOrderPacket(ctx sdk.Context, packet channeltypes.Packet, data types.BuyOrderPacketData) error { + // In case of error we mint back the native token + receiver, err := sdk.AccAddressFromBech32(data.Buyer) + if err != nil { + return err + } + + if err := k.SafeMint( + ctx, + packet.SourcePort, + packet.SourceChannel, + receiver, + data.PriceDenom, + data.Amount*data.Price, + ); err != nil { + return err + } + + return nil +} +``` + +## Summary + +Congratulations, you implemented the buy order logic. + +Again, it's a good time to save your current state to your local GitHub repository: + +```bash +git add . +git commit -m "Add Buy Orders" +``` diff --git a/docs/versioned_docs/version-v0.25.2/guide/08-interchange/08-cancelling-orders.md b/docs/versioned_docs/version-v0.25.2/guide/08-interchange/08-cancelling-orders.md new file mode 100644 index 0000000000..29da4b4d44 --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/guide/08-interchange/08-cancelling-orders.md @@ -0,0 +1,193 @@ +--- +sidebar_position: 8 +description: Enable cancelling of buy and sell orders. +--- + +# Cancelling Orders + +You have implemented order books, buy and sell orders. In this chapter, you enable cancelling of buy and sell orders. + +## Cancel a Sell Order + +To cancel a sell order, you have to get the ID of the specific sell order. Then you can use the function `RemoveOrderFromID` to remove the specific order from the order book and update the keeper accordingly. + +Move to the keeper directory and edit the `x/dex/keeper/msg_server_cancel_sell_order.go` file: + +```go +// x/dex/keeper/msg_server_cancel_sell_order.go + +package keeper + +import ( + "context" + "errors" + + sdk "github.com/cosmos/cosmos-sdk/types" + + "interchange/x/dex/types" +) + +func (k msgServer) CancelSellOrder(goCtx context.Context, msg *types.MsgCancelSellOrder) (*types.MsgCancelSellOrderResponse, error) { + ctx := sdk.UnwrapSDKContext(goCtx) + + // Retrieve the book + pairIndex := types.OrderBookIndex(msg.Port, msg.Channel, msg.AmountDenom, msg.PriceDenom) + s, found := k.GetSellOrderBook(ctx, pairIndex) + if !found { + return &types.MsgCancelSellOrderResponse{}, errors.New("the pair doesn't exist") + } + + // Check order creator + order, err := s.Book.GetOrderFromID(msg.OrderID) + if err != nil { + return &types.MsgCancelSellOrderResponse{}, err + } + + if order.Creator != msg.Creator { + return &types.MsgCancelSellOrderResponse{}, errors.New("canceller must be creator") + } + + // Remove order + if err := s.Book.RemoveOrderFromID(msg.OrderID); err != nil { + return &types.MsgCancelSellOrderResponse{}, err + } + + k.SetSellOrderBook(ctx, s) + + // Refund seller with remaining amount + seller, err := sdk.AccAddressFromBech32(order.Creator) + if err != nil { + return &types.MsgCancelSellOrderResponse{}, err + } + + if err := k.SafeMint(ctx, msg.Port, msg.Channel, seller, msg.AmountDenom, order.Amount); err != nil { + return &types.MsgCancelSellOrderResponse{}, err + } + + return &types.MsgCancelSellOrderResponse{}, nil +} +``` + +### Implement the GetOrderFromID Function + +The `GetOrderFromID` function gets an order from the book from its ID. + +Add this function to the `x/dex/types/order_book.go` function in the `types` directory: + +```go +// x/dex/types/order_book.go + +func (book OrderBook) GetOrderFromID(id int32) (Order, error) { + for _, order := range book.Orders { + if order.Id == id { + return *order, nil + } + } + + return Order{}, ErrOrderNotFound +} +``` + +### Implement the RemoveOrderFromID Function + +The `RemoveOrderFromID` function removes an order from the book and keeps it ordered: + +```go +// x/dex/types/order_book.go + +func (book *OrderBook) RemoveOrderFromID(id int32) error { + for i, order := range book.Orders { + if order.Id == id { + book.Orders = append(book.Orders[:i], book.Orders[i+1:]...) + return nil + } + } + + return ErrOrderNotFound +} +``` + +## Cancel a Buy Order + +To cancel a buy order, you have to get the ID of the specific buy order. Then you can use the function `RemoveOrderFromID` to remove the specific order from the order book and update the keeper accordingly: + +```go +// x/dex/keeper/msg_server_cancel_buy_order.go + +package keeper + +import ( + "context" + "errors" + + sdk "github.com/cosmos/cosmos-sdk/types" + + "interchange/x/dex/types" +) + +func (k msgServer) CancelBuyOrder(goCtx context.Context, msg *types.MsgCancelBuyOrder) (*types.MsgCancelBuyOrderResponse, error) { + ctx := sdk.UnwrapSDKContext(goCtx) + + // Retrieve the book + pairIndex := types.OrderBookIndex(msg.Port, msg.Channel, msg.AmountDenom, msg.PriceDenom) + b, found := k.GetBuyOrderBook(ctx, pairIndex) + if !found { + return &types.MsgCancelBuyOrderResponse{}, errors.New("the pair doesn't exist") + } + + // Check order creator + order, err := b.Book.GetOrderFromID(msg.OrderID) + if err != nil { + return &types.MsgCancelBuyOrderResponse{}, err + } + + if order.Creator != msg.Creator { + return &types.MsgCancelBuyOrderResponse{}, errors.New("canceller must be creator") + } + + // Remove order + if err := b.Book.RemoveOrderFromID(msg.OrderID); err != nil { + return &types.MsgCancelBuyOrderResponse{}, err + } + + k.SetBuyOrderBook(ctx, b) + + // Refund buyer with remaining price amount + buyer, err := sdk.AccAddressFromBech32(order.Creator) + if err != nil { + return &types.MsgCancelBuyOrderResponse{}, err + } + + if err := k.SafeMint( + ctx, + msg.Port, + msg.Channel, + buyer, + msg.PriceDenom, + order.Amount*order.Price, + ); err != nil { + return &types.MsgCancelBuyOrderResponse{}, err + } + + return &types.MsgCancelBuyOrderResponse{}, nil +} +``` + +## Summary + +You have completed implementing the functions that are required for the `dex` module. In this chapter, you have implemented the design for cancelling specific buy or sell orders. + +To test if your Ignite CLI blockchain builds correctly, use the `chain build` command: + +```bash +ignite chain build +``` + +Again, it is a good time (a great time!) to add your state to the local GitHub repository: + +```bash +git add . +git commit -m "Add Cancelling Orders" +``` + +Finally, it's now time to write test files. diff --git a/docs/versioned_docs/version-v0.25.2/guide/08-interchange/09-tests.md b/docs/versioned_docs/version-v0.25.2/guide/08-interchange/09-tests.md new file mode 100644 index 0000000000..24981931ea --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/guide/08-interchange/09-tests.md @@ -0,0 +1,729 @@ +--- +sidebar_position: 9 +description: Add test files. +--- + +# Write Test Files + +To test your application, add the test files to your code. + +After you add the test files, change into the `interchange` directory with your terminal, then run: + +```bash +go test -timeout 30s ./x/dex/types +``` + +## Order Book Tests + +Create a new `x/dex/types/order_book_test.go` file in the `types` directory. + +Add the following testsuite: + +```go +// x/dex/types/order_book_test.go + +package types_test + +import ( + "math/rand" + "testing" + + "github.com/cosmos/cosmos-sdk/crypto/keys/ed25519" + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/stretchr/testify/require" + + "interchange/x/dex/types" +) + +func GenString(n int) string { + alpha := []rune("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ") + + buf := make([]rune, n) + for i := range buf { + buf[i] = alpha[rand.Intn(len(alpha))] + } + + return string(buf) +} + +func GenAddress() string { + pk := ed25519.GenPrivKey().PubKey() + addr := pk.Address() + return sdk.AccAddress(addr).String() +} + +func GenAmount() int32 { + return int32(rand.Intn(int(types.MaxAmount)) + 1) +} + +func GenPrice() int32 { + return int32(rand.Intn(int(types.MaxPrice)) + 1) +} + +func GenPair() (string, string) { + return GenString(10), GenString(10) +} + +func GenOrder() (string, int32, int32) { + return GenLocalAccount(), GenAmount(), GenPrice() +} + +func GenLocalAccount() string { + return GenAddress() +} + +func MockAccount(str string) string { + return str +} + +func OrderListToOrderBook(list []types.Order) types.OrderBook { + listCopy := make([]*types.Order, len(list)) + for i, order := range list { + order := order + listCopy[i] = &order + } + + return types.OrderBook{ + IdCount: 0, + Orders: listCopy, + } +} + +func TestRemoveOrderFromID(t *testing.T) { + inputList := []types.Order{ + {Id: 3, Creator: MockAccount("3"), Amount: 2, Price: 10}, + {Id: 2, Creator: MockAccount("2"), Amount: 30, Price: 15}, + {Id: 1, Creator: MockAccount("1"), Amount: 200, Price: 20}, + {Id: 0, Creator: MockAccount("0"), Amount: 50, Price: 25}, + } + + book := OrderListToOrderBook(inputList) + expectedList := []types.Order{ + {Id: 3, Creator: MockAccount("3"), Amount: 2, Price: 10}, + {Id: 1, Creator: MockAccount("1"), Amount: 200, Price: 20}, + {Id: 0, Creator: MockAccount("0"), Amount: 50, Price: 25}, + } + expectedBook := OrderListToOrderBook(expectedList) + err := book.RemoveOrderFromID(2) + require.NoError(t, err) + require.Equal(t, expectedBook, book) + + book = OrderListToOrderBook(inputList) + expectedList = []types.Order{ + {Id: 3, Creator: MockAccount("3"), Amount: 2, Price: 10}, + {Id: 2, Creator: MockAccount("2"), Amount: 30, Price: 15}, + {Id: 1, Creator: MockAccount("1"), Amount: 200, Price: 20}, + } + expectedBook = OrderListToOrderBook(expectedList) + err = book.RemoveOrderFromID(0) + require.NoError(t, err) + require.Equal(t, expectedBook, book) + + book = OrderListToOrderBook(inputList) + expectedList = []types.Order{ + {Id: 2, Creator: MockAccount("2"), Amount: 30, Price: 15}, + {Id: 1, Creator: MockAccount("1"), Amount: 200, Price: 20}, + {Id: 0, Creator: MockAccount("0"), Amount: 50, Price: 25}, + } + expectedBook = OrderListToOrderBook(expectedList) + err = book.RemoveOrderFromID(3) + require.NoError(t, err) + require.Equal(t, expectedBook, book) + + book = OrderListToOrderBook(inputList) + err = book.RemoveOrderFromID(4) + require.ErrorIs(t, err, types.ErrOrderNotFound) +} +``` + +## Buy Order Tests + +Create a new `x/dex/types/buy_order_book_test.go` file in the `types` directory to add the tests for the Buy Order Book: + +```go +// x/dex/types/buy_order_book_test.go + +package types_test + +import ( + "sort" + "testing" + + "github.com/stretchr/testify/require" + + "interchange/x/dex/types" +) + +func OrderListToBuyOrderBook(list []types.Order) types.BuyOrderBook { + listCopy := make([]*types.Order, len(list)) + for i, order := range list { + order := order + listCopy[i] = &order + } + + book := types.BuyOrderBook{ + AmountDenom: "foo", + PriceDenom: "bar", + Book: &types.OrderBook{ + IdCount: 0, + Orders: listCopy, + }, + } + return book +} + +func TestAppendOrder(t *testing.T) { + buyBook := types.NewBuyOrderBook(GenPair()) + + // Prevent zero amount + seller, amount, price := GenOrder() + _, err := buyBook.AppendOrder(seller, 0, price) + require.ErrorIs(t, err, types.ErrZeroAmount) + + // Prevent big amount + _, err = buyBook.AppendOrder(seller, types.MaxAmount+1, price) + require.ErrorIs(t, err, types.ErrMaxAmount) + + // Prevent zero price + _, err = buyBook.AppendOrder(seller, amount, 0) + require.ErrorIs(t, err, types.ErrZeroPrice) + + // Prevent big price + _, err = buyBook.AppendOrder(seller, amount, types.MaxPrice+1) + require.ErrorIs(t, err, types.ErrMaxPrice) + + // Can append buy orders + for i := 0; i < 20; i++ { + // Append a new order + creator, amount, price := GenOrder() + newOrder := types.Order{ + Id: buyBook.Book.IdCount, + Creator: creator, + Amount: amount, + Price: price, + } + orderID, err := buyBook.AppendOrder(creator, amount, price) + + // Checks + require.NoError(t, err) + require.Contains(t, buyBook.Book.Orders, &newOrder) + require.Equal(t, newOrder.Id, orderID) + } + + require.Len(t, buyBook.Book.Orders, 20) + require.True(t, sort.SliceIsSorted(buyBook.Book.Orders, func(i, j int) bool { + return buyBook.Book.Orders[i].Price < buyBook.Book.Orders[j].Price + })) +} + +type liquidateSellRes struct { + Book []types.Order + Remaining types.Order + Liquidated types.Order + Gain int32 + Match bool + Filled bool +} + +func simulateLiquidateFromSellOrder( + t *testing.T, + inputList []types.Order, + inputOrder types.Order, + expected liquidateSellRes, +) { + book := OrderListToBuyOrderBook(inputList) + expectedBook := OrderListToBuyOrderBook(expected.Book) + + require.True(t, sort.SliceIsSorted(book.Book.Orders, func(i, j int) bool { + return book.Book.Orders[i].Price < book.Book.Orders[j].Price + })) + require.True(t, sort.SliceIsSorted(expectedBook.Book.Orders, func(i, j int) bool { + return expectedBook.Book.Orders[i].Price < expectedBook.Book.Orders[j].Price + })) + + remaining, liquidated, gain, match, filled := book.LiquidateFromSellOrder(inputOrder) + + require.Equal(t, expectedBook, book) + require.Equal(t, expected.Remaining, remaining) + require.Equal(t, expected.Liquidated, liquidated) + require.Equal(t, expected.Gain, gain) + require.Equal(t, expected.Match, match) + require.Equal(t, expected.Filled, filled) +} + +func TestLiquidateFromSellOrder(t *testing.T) { + // No match for empty book + inputOrder := types.Order{Id: 10, Creator: MockAccount("1"), Amount: 100, Price: 30} + book := OrderListToBuyOrderBook([]types.Order{}) + _, _, _, match, _ := book.LiquidateFromSellOrder(inputOrder) + require.False(t, match) + + // Buy book + inputBook := []types.Order{ + {Id: 2, Creator: MockAccount("2"), Amount: 30, Price: 15}, + {Id: 1, Creator: MockAccount("1"), Amount: 200, Price: 20}, + {Id: 0, Creator: MockAccount("0"), Amount: 50, Price: 25}, + } + + // Test no match if highest bid too low (25 < 30) + book = OrderListToBuyOrderBook(inputBook) + _, _, _, match, _ = book.LiquidateFromSellOrder(inputOrder) + require.False(t, match) + + // Entirely filled (30 < 50) + inputOrder = types.Order{Id: 10, Creator: MockAccount("1"), Amount: 30, Price: 22} + expected := liquidateSellRes{ + Book: []types.Order{ + {Id: 2, Creator: MockAccount("2"), Amount: 30, Price: 15}, + {Id: 1, Creator: MockAccount("1"), Amount: 200, Price: 20}, + {Id: 0, Creator: MockAccount("0"), Amount: 20, Price: 25}, + }, + Remaining: types.Order{Id: 10, Creator: MockAccount("1"), Amount: 0, Price: 22}, + Liquidated: types.Order{Id: 0, Creator: MockAccount("0"), Amount: 30, Price: 25}, + Gain: int32(30 * 25), + Match: true, + Filled: true, + } + simulateLiquidateFromSellOrder(t, inputBook, inputOrder, expected) + + // Entirely filled and liquidated ( 50 = 50) + inputOrder = types.Order{Id: 10, Creator: MockAccount("1"), Amount: 50, Price: 15} + expected = liquidateSellRes{ + Book: []types.Order{ + {Id: 2, Creator: MockAccount("2"), Amount: 30, Price: 15}, + {Id: 1, Creator: MockAccount("1"), Amount: 200, Price: 20}, + }, + Remaining: types.Order{Id: 10, Creator: MockAccount("1"), Amount: 0, Price: 15}, + Liquidated: types.Order{Id: 0, Creator: MockAccount("0"), Amount: 50, Price: 25}, + Gain: int32(50 * 25), + Match: true, + Filled: true, + } + simulateLiquidateFromSellOrder(t, inputBook, inputOrder, expected) + + // Not filled and entirely liquidated (60 > 50) + inputOrder = types.Order{Id: 10, Creator: MockAccount("1"), Amount: 60, Price: 10} + expected = liquidateSellRes{ + Book: []types.Order{ + {Id: 2, Creator: MockAccount("2"), Amount: 30, Price: 15}, + {Id: 1, Creator: MockAccount("1"), Amount: 200, Price: 20}, + }, + Remaining: types.Order{Id: 10, Creator: MockAccount("1"), Amount: 10, Price: 10}, + Liquidated: types.Order{Id: 0, Creator: MockAccount("0"), Amount: 50, Price: 25}, + Gain: int32(50 * 25), + Match: true, + Filled: false, + } + simulateLiquidateFromSellOrder(t, inputBook, inputOrder, expected) +} + +type fillSellRes struct { + Book []types.Order + Remaining types.Order + Liquidated []types.Order + Gain int32 + Filled bool +} + +func simulateFillSellOrder( + t *testing.T, + inputList []types.Order, + inputOrder types.Order, + expected fillSellRes, +) { + book := OrderListToBuyOrderBook(inputList) + expectedBook := OrderListToBuyOrderBook(expected.Book) + + require.True(t, sort.SliceIsSorted(book.Book.Orders, func(i, j int) bool { + return book.Book.Orders[i].Price < book.Book.Orders[j].Price + })) + require.True(t, sort.SliceIsSorted(expectedBook.Book.Orders, func(i, j int) bool { + return expectedBook.Book.Orders[i].Price < expectedBook.Book.Orders[j].Price + })) + + remaining, liquidated, gain, filled := book.FillSellOrder(inputOrder) + + require.Equal(t, expectedBook, book) + require.Equal(t, expected.Remaining, remaining) + require.Equal(t, expected.Liquidated, liquidated) + require.Equal(t, expected.Gain, gain) + require.Equal(t, expected.Filled, filled) +} + +func TestFillSellOrder(t *testing.T) { + var inputBook []types.Order + + // Empty book + inputOrder := types.Order{Id: 10, Creator: MockAccount("1"), Amount: 30, Price: 30} + expected := fillSellRes{ + Book: []types.Order{}, + Remaining: inputOrder, + Liquidated: []types.Order(nil), + Gain: int32(0), + Filled: false, + } + simulateFillSellOrder(t, inputBook, inputOrder, expected) + + // No match + inputBook = []types.Order{ + {Id: 2, Creator: MockAccount("2"), Amount: 30, Price: 15}, + {Id: 1, Creator: MockAccount("1"), Amount: 200, Price: 20}, + {Id: 0, Creator: MockAccount("0"), Amount: 50, Price: 25}, + } + expected = fillSellRes{ + Book: inputBook, + Remaining: inputOrder, + Liquidated: []types.Order(nil), + Gain: int32(0), + Filled: false, + } + simulateFillSellOrder(t, inputBook, inputOrder, expected) + + // First order liquidated, not filled + inputOrder = types.Order{Id: 10, Creator: MockAccount("1"), Amount: 60, Price: 22} + expected = fillSellRes{ + Book: []types.Order{ + {Id: 2, Creator: MockAccount("2"), Amount: 30, Price: 15}, + {Id: 1, Creator: MockAccount("1"), Amount: 200, Price: 20}, + }, + Remaining: types.Order{Id: 10, Creator: MockAccount("1"), Amount: 10, Price: 22}, + Liquidated: []types.Order{ + {Id: 0, Creator: MockAccount("0"), Amount: 50, Price: 25}, + }, + Gain: int32(50 * 25), + Filled: false, + } + simulateFillSellOrder(t, inputBook, inputOrder, expected) + + // Filled with two order + inputOrder = types.Order{Id: 10, Creator: MockAccount("1"), Amount: 60, Price: 18} + expected = fillSellRes{ + Book: []types.Order{ + {Id: 2, Creator: MockAccount("2"), Amount: 30, Price: 15}, + {Id: 1, Creator: MockAccount("1"), Amount: 190, Price: 20}, + }, + Remaining: types.Order{Id: 10, Creator: MockAccount("1"), Amount: 0, Price: 18}, + Liquidated: []types.Order{ + {Id: 0, Creator: MockAccount("0"), Amount: 50, Price: 25}, + {Id: 1, Creator: MockAccount("1"), Amount: 10, Price: 20}, + }, + Gain: int32(50*25 + 10*20), + Filled: true, + } + simulateFillSellOrder(t, inputBook, inputOrder, expected) + + // Not filled, buy order book liquidated + inputOrder = types.Order{Id: 10, Creator: MockAccount("1"), Amount: 300, Price: 10} + expected = fillSellRes{ + Book: []types.Order{}, + Remaining: types.Order{Id: 10, Creator: MockAccount("1"), Amount: 20, Price: 10}, + Liquidated: []types.Order{ + {Id: 0, Creator: MockAccount("0"), Amount: 50, Price: 25}, + {Id: 1, Creator: MockAccount("1"), Amount: 200, Price: 20}, + {Id: 2, Creator: MockAccount("2"), Amount: 30, Price: 15}, + }, + Gain: int32(50*25 + 200*20 + 30*15), + Filled: false, + } + simulateFillSellOrder(t, inputBook, inputOrder, expected) +} +``` + +## Sell Order Tests + +Create a new testsuite for Sell Orders in a new file `x/dex/types/sell_order_book_test.go`: + +```go +// x/dex/types/sell_order_book_test.go + +package types_test + +import ( + "sort" + "testing" + + "github.com/stretchr/testify/require" + + "interchange/x/dex/types" +) + +func OrderListToSellOrderBook(list []types.Order) types.SellOrderBook { + listCopy := make([]*types.Order, len(list)) + for i, order := range list { + order := order + listCopy[i] = &order + } + + book := types.SellOrderBook{ + AmountDenom: "foo", + PriceDenom: "bar", + Book: &types.OrderBook{ + IdCount: 0, + Orders: listCopy, + }, + } + return book +} + +func TestSellOrderBook_AppendOrder(t *testing.T) { + sellBook := types.NewSellOrderBook(GenPair()) + + // Prevent zero amount + seller, amount, price := GenOrder() + _, err := sellBook.AppendOrder(seller, 0, price) + require.ErrorIs(t, err, types.ErrZeroAmount) + + // Prevent big amount + _, err = sellBook.AppendOrder(seller, types.MaxAmount+1, price) + require.ErrorIs(t, err, types.ErrMaxAmount) + + // Prevent zero price + _, err = sellBook.AppendOrder(seller, amount, 0) + require.ErrorIs(t, err, types.ErrZeroPrice) + + // Prevent big price + _, err = sellBook.AppendOrder(seller, amount, types.MaxPrice+1) + require.ErrorIs(t, err, types.ErrMaxPrice) + + // Can append sell orders + for i := 0; i < 20; i++ { + // Append a new order + creator, amount, price := GenOrder() + newOrder := types.Order{ + Id: sellBook.Book.IdCount, + Creator: creator, + Amount: amount, + Price: price, + } + orderID, err := sellBook.AppendOrder(creator, amount, price) + + // Checks + require.NoError(t, err) + require.Contains(t, sellBook.Book.Orders, &newOrder) + require.Equal(t, newOrder.Id, orderID) + } + require.Len(t, sellBook.Book.Orders, 20) + require.True(t, sort.SliceIsSorted(sellBook.Book.Orders, func(i, j int) bool { + return sellBook.Book.Orders[i].Price > sellBook.Book.Orders[j].Price + })) +} + +type liquidateBuyRes struct { + Book []types.Order + Remaining types.Order + Liquidated types.Order + Purchase int32 + Match bool + Filled bool +} + +func simulateLiquidateFromBuyOrder( + t *testing.T, + inputList []types.Order, + inputOrder types.Order, + expected liquidateBuyRes, +) { + book := OrderListToSellOrderBook(inputList) + expectedBook := OrderListToSellOrderBook(expected.Book) + require.True(t, sort.SliceIsSorted(book.Book.Orders, func(i, j int) bool { + return book.Book.Orders[i].Price > book.Book.Orders[j].Price + })) + require.True(t, sort.SliceIsSorted(expectedBook.Book.Orders, func(i, j int) bool { + return expectedBook.Book.Orders[i].Price > expectedBook.Book.Orders[j].Price + })) + + remaining, liquidated, purchase, match, filled := book.LiquidateFromBuyOrder(inputOrder) + + require.Equal(t, expectedBook, book) + require.Equal(t, expected.Remaining, remaining) + require.Equal(t, expected.Liquidated, liquidated) + require.Equal(t, expected.Purchase, purchase) + require.Equal(t, expected.Match, match) + require.Equal(t, expected.Filled, filled) +} + +func TestLiquidateFromBuyOrder(t *testing.T) { + // No match for empty book + inputOrder := types.Order{Id: 10, Creator: MockAccount("1"), Amount: 100, Price: 10} + book := OrderListToSellOrderBook([]types.Order{}) + _, _, _, match, _ := book.LiquidateFromBuyOrder(inputOrder) + require.False(t, match) + + // Sell book + inputBook := []types.Order{ + {Id: 0, Creator: MockAccount("0"), Amount: 50, Price: 25}, + {Id: 1, Creator: MockAccount("1"), Amount: 200, Price: 20}, + {Id: 2, Creator: MockAccount("2"), Amount: 30, Price: 15}, + } + + // Test no match if lowest ask too high (25 < 30) + book = OrderListToSellOrderBook(inputBook) + _, _, _, match, _ = book.LiquidateFromBuyOrder(inputOrder) + require.False(t, match) + + // Entirely filled (30 > 15) + inputOrder = types.Order{Id: 10, Creator: MockAccount("1"), Amount: 20, Price: 30} + expected := liquidateBuyRes{ + Book: []types.Order{ + {Id: 0, Creator: MockAccount("0"), Amount: 50, Price: 25}, + {Id: 1, Creator: MockAccount("1"), Amount: 200, Price: 20}, + {Id: 2, Creator: MockAccount("2"), Amount: 10, Price: 15}, + }, + Remaining: types.Order{Id: 10, Creator: MockAccount("1"), Amount: 0, Price: 30}, + Liquidated: types.Order{Id: 2, Creator: MockAccount("2"), Amount: 20, Price: 15}, + Purchase: int32(20), + Match: true, + Filled: true, + } + simulateLiquidateFromBuyOrder(t, inputBook, inputOrder, expected) + + // Entirely filled (30 = 30) + inputOrder = types.Order{Id: 10, Creator: MockAccount("1"), Amount: 30, Price: 30} + expected = liquidateBuyRes{ + Book: []types.Order{ + {Id: 0, Creator: MockAccount("0"), Amount: 50, Price: 25}, + {Id: 1, Creator: MockAccount("1"), Amount: 200, Price: 20}, + }, + Remaining: types.Order{Id: 10, Creator: MockAccount("1"), Amount: 0, Price: 30}, + Liquidated: types.Order{Id: 2, Creator: MockAccount("2"), Amount: 30, Price: 15}, + Purchase: int32(30), + Match: true, + Filled: true, + } + simulateLiquidateFromBuyOrder(t, inputBook, inputOrder, expected) + + // Not filled and entirely liquidated (60 > 30) + inputOrder = types.Order{Id: 10, Creator: MockAccount("1"), Amount: 60, Price: 30} + expected = liquidateBuyRes{ + Book: []types.Order{ + {Id: 0, Creator: MockAccount("0"), Amount: 50, Price: 25}, + {Id: 1, Creator: MockAccount("1"), Amount: 200, Price: 20}, + }, + Remaining: types.Order{Id: 10, Creator: MockAccount("1"), Amount: 30, Price: 30}, + Liquidated: types.Order{Id: 2, Creator: MockAccount("2"), Amount: 30, Price: 15}, + Purchase: int32(30), + Match: true, + Filled: false, + } + simulateLiquidateFromBuyOrder(t, inputBook, inputOrder, expected) +} + +type fillBuyRes struct { + Book []types.Order + Remaining types.Order + Liquidated []types.Order + Purchase int32 + Filled bool +} + +func simulateFillBuyOrder( + t *testing.T, + inputList []types.Order, + inputOrder types.Order, + expected fillBuyRes, +) { + book := OrderListToSellOrderBook(inputList) + expectedBook := OrderListToSellOrderBook(expected.Book) + + require.True(t, sort.SliceIsSorted(book.Book.Orders, func(i, j int) bool { + return book.Book.Orders[i].Price > book.Book.Orders[j].Price + })) + require.True(t, sort.SliceIsSorted(expectedBook.Book.Orders, func(i, j int) bool { + return expectedBook.Book.Orders[i].Price > expectedBook.Book.Orders[j].Price + })) + + remaining, liquidated, purchase, filled := book.FillBuyOrder(inputOrder) + + require.Equal(t, expectedBook, book) + require.Equal(t, expected.Remaining, remaining) + require.Equal(t, expected.Liquidated, liquidated) + require.Equal(t, expected.Purchase, purchase) + require.Equal(t, expected.Filled, filled) +} + +func TestFillBuyOrder(t *testing.T) { + var inputBook []types.Order + + // Empty book + inputOrder := types.Order{Id: 10, Creator: MockAccount("1"), Amount: 30, Price: 10} + expected := fillBuyRes{ + Book: []types.Order{}, + Remaining: inputOrder, + Liquidated: []types.Order(nil), + Purchase: int32(0), + Filled: false, + } + simulateFillBuyOrder(t, inputBook, inputOrder, expected) + + // No match + inputBook = []types.Order{ + {Id: 0, Creator: MockAccount("0"), Amount: 50, Price: 25}, + {Id: 1, Creator: MockAccount("1"), Amount: 200, Price: 20}, + {Id: 2, Creator: MockAccount("2"), Amount: 30, Price: 15}, + } + expected = fillBuyRes{ + Book: inputBook, + Remaining: inputOrder, + Liquidated: []types.Order(nil), + Purchase: int32(0), + Filled: false, + } + simulateFillBuyOrder(t, inputBook, inputOrder, expected) + + // First order liquidated, not filled + inputOrder = types.Order{Id: 10, Creator: MockAccount("1"), Amount: 60, Price: 18} + expected = fillBuyRes{ + Book: []types.Order{ + {Id: 0, Creator: MockAccount("0"), Amount: 50, Price: 25}, + {Id: 1, Creator: MockAccount("1"), Amount: 200, Price: 20}, + }, + Remaining: types.Order{Id: 10, Creator: MockAccount("1"), Amount: 30, Price: 18}, + Liquidated: []types.Order{ + {Id: 2, Creator: MockAccount("2"), Amount: 30, Price: 15}, + }, + Purchase: int32(30), + Filled: false, + } + simulateFillBuyOrder(t, inputBook, inputOrder, expected) + + // Filled with two order + inputOrder = types.Order{Id: 10, Creator: MockAccount("1"), Amount: 60, Price: 22} + expected = fillBuyRes{ + Book: []types.Order{ + {Id: 0, Creator: MockAccount("0"), Amount: 50, Price: 25}, + {Id: 1, Creator: MockAccount("1"), Amount: 170, Price: 20}, + }, + Remaining: types.Order{Id: 10, Creator: MockAccount("1"), Amount: 0, Price: 22}, + Liquidated: []types.Order{ + {Id: 2, Creator: MockAccount("2"), Amount: 30, Price: 15}, + {Id: 1, Creator: MockAccount("1"), Amount: 30, Price: 20}, + }, + Purchase: int32(30 + 30), + Filled: true, + } + simulateFillBuyOrder(t, inputBook, inputOrder, expected) + + // Not filled, sell order book liquidated + inputOrder = types.Order{Id: 10, Creator: MockAccount("1"), Amount: 300, Price: 30} + expected = fillBuyRes{ + Book: []types.Order{}, + Remaining: types.Order{Id: 10, Creator: MockAccount("1"), Amount: 20, Price: 30}, + Liquidated: []types.Order{ + {Id: 2, Creator: MockAccount("2"), Amount: 30, Price: 15}, + {Id: 1, Creator: MockAccount("1"), Amount: 200, Price: 20}, + {Id: 0, Creator: MockAccount("0"), Amount: 50, Price: 25}, + }, + Purchase: int32(30 + 200 + 50), + Filled: false, + } + simulateFillBuyOrder(t, inputBook, inputOrder, expected) +} +``` + +## Successful Test Output + +When the tests are successful, your output is: + +``` +ok interchange/x/dex/types 0.550s +``` diff --git a/docs/versioned_docs/version-v0.25.2/guide/08-interchange/_category_.json b/docs/versioned_docs/version-v0.25.2/guide/08-interchange/_category_.json new file mode 100644 index 0000000000..aab4fa0969 --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/guide/08-interchange/_category_.json @@ -0,0 +1,5 @@ +{ + "label": "Advanced Module: Interchange", + "position": 8, + "link": null + } \ No newline at end of file diff --git a/docs/versioned_docs/version-v0.25.2/guide/_category_.json b/docs/versioned_docs/version-v0.25.2/guide/_category_.json new file mode 100644 index 0000000000..505952f8fa --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/guide/_category_.json @@ -0,0 +1,5 @@ +{ + "label": "Developer Tutorials", + "position": 2, + "link": null + } \ No newline at end of file diff --git a/docs/versioned_docs/version-v0.25.2/guide/images/api.png b/docs/versioned_docs/version-v0.25.2/guide/images/api.png new file mode 100644 index 0000000000000000000000000000000000000000..2034f2bdacb6d30dfc7f6ea4aa7f6b12286ccb6d GIT binary patch literal 406674 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≧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 -MZuTjO$ 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 literal 0 HcmV?d00001 diff --git a/docs/versioned_docs/version-v0.25.2/guide/images/packet_sendpost.png b/docs/versioned_docs/version-v0.25.2/guide/images/packet_sendpost.png new file mode 100644 index 0000000000000000000000000000000000000000..c96cdcdd3e6c3e1637c46bc368c89fca52d85012 GIT binary patch literal 402229 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 d+F7Fu!S78Bjz>Pmd=p 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⩔7{smITr}MG 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%0D=b^bO-0r3%H^s8%kNypv?PAXlGRgqgx}^fV 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 literal 0 HcmV?d00001 diff --git a/docs/versioned_docs/version-v0.25.2/index.md b/docs/versioned_docs/version-v0.25.2/index.md new file mode 100644 index 0000000000..c5d3319678 --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/index.md @@ -0,0 +1,64 @@ +--- +sidebar_position: 1 +slug: / +--- + +# Ignite CLI + +[Ignite CLI](https://github.com/ignite/cli) offers everything you need to build, test, and launch your blockchain with a decentralized worldwide community. Ignite CLI is built on top of [Cosmos SDK](https://docs.cosmos.network), the world’s most popular blockchain framework. Ignite CLI accelerates chain development by scaffolding everything you need so you can focus on business logic. + +## What is Ignite CLI? + +Ignite CLI is an easy-to-use CLI tool for creating and maintaining sovereign application-specific blockchains. Blockchains created with Ignite CLI use Cosmos SDK and Tendermint. Ignite CLI and the Cosmos SDK modules are written in the Go programming language. The scaffolded blockchain that is created with Ignite CLI includes a command line interface that lets you manage keys, create validators, and send tokens. + +With just a few commands, you can use Ignite CLI to: + +* Create a modular blockchain written in Go +* Scaffold modules, messages, types with CRUD operations, IBC packets, and more +* Start a blockchain node in development with live reloading +* Connect to other blockchains with a built-in IBC relayer +* Use automatically generated TypeScript/Vuex clients to interact with your blockchain +* Use the Vue.js web app template with a set of components and Vuex modules + +## Install Ignite CLI + +To install the `ignite` binary in `/usr/local/bin` run the following command: + +``` +curl https://get.ignite.com/cli! | bash +``` + +## Bounty program + +Our [Ignite CLI bounty program](06-bounty.md) provides incentives for your participation and pays rewards. + +## 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 + +* [Sifchain: omni-chain solution for DEXs](https://github.com/Sifchain/sifnode) +* [Kyve](https://www.kyve.network/) +* [crypto.org chain](https://github.com/crypto-org-chain/chain-main) ([initialized with Ignite CLI](https://github.com/crypto-org-chain/chain-main/commit/37b2ecb49a9aae7c581270a4f2dbecfcd8e8a6e9)) +* [Cronos](https://github.com/crypto-org-chain/cronos) +* [Plugchain](https://github.com/oracleNetworkProtocol/plugchain) +* [BitCanna](https://github.com/BitCannaGlobal/bcna) +* [Panacea Core](https://github.com/medibloc/panacea-core) +* [Rook](https://github.com/cmwaters/rook) +* [PI Bridge](https://github.com/pchain-org/pi-bridge) +* [Polynetwork](https://github.com/Switcheo/polynetwork-cosmos) +* [Lotus](https://github.com/BabyBlockchains/Lotus) +* [OmniFlix Hub](https://github.com/OmniFlix/omniflixhub) +* [Cudos](https://github.com/CudoVentures/cudos-node) +* [Zenchain](https://github.com/zenchainprotocol/zenchain) +* [Onomy Protocol](https://github.com/onomyprotocol/ochain) +* [Interchain accounts demo](https://github.com/cosmos/interchain-accounts) +* [Celestia](https://github.com/celestiaorg/celestia-app) +* [Umee: decentralized universal capital facility](https://github.com/umee-network/umee) +* [Juno interoperable smart contract hub](https://github.com/CosmosContracts/Juno) +* [Affondra](https://github.com/EG-easy/affondra) +* [Finding Imposter](https://github.com/chantmk/Finding-imposter) +* [Flares payment network](https://github.com/wangfeiping/flares) +* [FirmaChain](https://github.com/firmachain/firmachain) +* [Sonr](https://github.com/sonr-io/sonr) diff --git a/docs/versioned_docs/version-v0.25.2/kb/00-kb.md b/docs/versioned_docs/version-v0.25.2/kb/00-kb.md new file mode 100644 index 0000000000..3ccfe2f231 --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/kb/00-kb.md @@ -0,0 +1,10 @@ +--- +sidebar_position: 1 +slug: /kb +--- + +# Knowledge Base + +Knowledge base articles cover different aspects of Ignite CLI. This online library includes reference content on supported types, protocol buffer files, chain simulation as well as an overview of scaffolding a chain all the way to starting an IBC relayer. + +If you're new to Ignite CLI or want to go through a series of tutorials, visit the [Developer Tutorials](/guide/). diff --git a/docs/versioned_docs/version-v0.25.2/kb/01-scaffold-chain.md b/docs/versioned_docs/version-v0.25.2/kb/01-scaffold-chain.md new file mode 100644 index 0000000000..a497cff5a1 --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/kb/01-scaffold-chain.md @@ -0,0 +1,68 @@ +--- +sidebar_position: 1 +description: High-level overview of a new Cosmos SDK blockchain project built with Ignite CLI. +--- + +# Scaffold a chain + +The `ignite scaffold chain` command scaffolds a new Cosmos SDK blockchain project. + +## Build a blockchain app + +To build the planet application: + +```bash +ignite scaffold chain planet +``` + +## Directory structure + +The `ignite scaffold chain planet` command creates a directory called `planet` that contains all the files for your project and initializes a local git repository. The `planet` argument is a string that is used for the Go module path. The repository name (`planet`, in this case) is used as the project's name. + +The project directory structure: + +- `app`: files that wire the blockchain together +- `cmd`: binary for the blockchain node +- `docs`: static `openapi.yml` API doc for the blockchain node +- `proto`: protocol buffer files for custom modules +- `x`: modules +- `vue`: scaffolded web application (optional) +- `config.yml`: configuration file + +### Application-specific logic + +Most of the logic of your application-specific 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 scaffold chain` scaffolds a module with a name that matches the name of the project. In this example, the module name is `x/planet`. + +### Proto files + +Every Cosmos SDK module has protocol buffer files that define data structures, messages, queries, RPCs, and so on. The `proto` directory contains a directory with proto files for each custom module in the `x` directory. + +### Global settings + +Global changes to your blockchain are defined in files inside the `app` directory. These changes include importing third-party modules, defining relationships between modules, and configuring blockchain-wide settings. + +### Configuration + +The `config.yml` file contains configuration options that Ignite CLI uses to build, initialize, and start your blockchain node in development. + +## Address prefix + +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`. + +### Change prefix on new blockchains + +When you create a new blockchain, pass a prefix as a value to the `--address-prefix` flag: + +```bash +ignite scaffold chain planet --address-prefix moonlight +``` + +Using the `moonlight` prefix, account addresses on your blockchain look like this: `moonlight12fjzdtqfrrve7zyg9sv8j25azw2ua6tvu07ypf`. + +### Change prefix on existing blockchains + +To change the prefix after the blockchain has been scaffolded, modify the `AccountAddressPrefix` in the `app/app.go` file. + +## Cosmos SDK version + +By default, the `ignite scaffold chain` command creates a Cosmos SDK blockchain using the latest stable version of the Cosmos SDK. diff --git a/docs/versioned_docs/version-v0.25.2/kb/02-serve.md b/docs/versioned_docs/version-v0.25.2/kb/02-serve.md new file mode 100644 index 0000000000..f452007bb9 --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/kb/02-serve.md @@ -0,0 +1,91 @@ +--- +order: 2 +description: Use the Ignite CLI serve command to start your blockchain. +--- + +# Start a blockchain + +Blockchains are decentralized applications. + +- 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. + +## Start a blockchain node in development + +Switch to the directory that contains a blockchain that was scaffolded with Ignite CLI. To start the blockchain node, run the following command: + +```bash +ignite chain serve +``` + +This command initializes a chain, builds the code, starts a single validator node, and starts watching for file changes. + +Whenever a file is changed, the chain is automatically reinitialized, rebuilt, and started again. The chain's state is preserved if the changes to the source code are compatible with the previous state. This state preservation is beneficial for development purposes. + +Because the `ignite chain serve` command is a development tool, it should not be used in a production environment. Read on to learn the process of running a blockchain in production. + +## The Magic of `ignite chain serve` + +The `ignite chain serve` command starts a fully operational blockchain. + +The `ignite chain serve` command performs the following tasks: + +- Installs dependencies +- Imports state, if possible +- Builds protocol buffer files +- Optionally generates TypeScript clients and Vuex stores +- Builds a compiled blockchain binary +- Creates accounts +- Initializes a blockchain node +- Starts the following processes: + - Tendermint RPC + - Cosmos SDK API + - Faucet, optional +- Watches for file changes and restarts +- Exports state + +You can use flags to configure how the blockchain runs. + +## Define how your blockchain starts + +Flags for the `ignite chain serve` command determine how your blockchain starts. All flags are optional. + +`--config` + +Custom configuration file. Using unique configuration files is required to launch two blockchains on the same machine from the same source code. When omitted, the default is `config.yml`. + +`--reset-once` + +Reset the state only once. Use this flag to resume a failed reset or to initialize a blockchain from an empty state. The default state persistence imports the existing state and resumes the blockchain. + +`--force-reset` + +Reset state on every file change. Do not import state and turn off state persistence. + +`--verbose` + +Enter verbose detailed mode with extensive logging. + +`--home` + +Specify a custom home directory. + +## Start a blockchain node in production + +The `ignite chain serve` and `ignite chain build` commands compile the source code of the chain in a binary file and install the binary in `~/go/bin`. By default, the binary name is the name of the repository appended with `d`. For example, if you scaffold a chain using `ignite scaffold chain mars`, then the binary is named `marsd`. + +You can customize the binary name in `config.yml`: + +```yaml +build: + binary: "newchaind" +``` + +Or also add custom `ldflags` into your app binary: + +```yaml +build: + ldflags: [ "-X main.Env=prod", "-X main.Version=1.0.1" ] +``` + +Learn more about how to use the binary to [run a chain in production](https://docs.cosmos.network/master/run-node/run-node.html). diff --git a/docs/versioned_docs/version-v0.25.2/kb/03-config.md b/docs/versioned_docs/version-v0.25.2/kb/03-config.md new file mode 100644 index 0000000000..278498af6b --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/kb/03-config.md @@ -0,0 +1,186 @@ +--- +sidebar_position: 3 +description: Primary configuration file to describe the development environment for your blockchain. +title: config.yml reference +--- + +# config.yml 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. + +## accounts + +A list of user accounts created during genesis of the blockchain. + +| Key | Required | Type | Description | +| -------- | -------- | --------------- | ------------------------------------------------------------------------------------------------------------------------------- | +| name | Y | String | Local name of a key pair. An account name must be listed to gain access to the account tokens after the blockchain is launched. | +| coins | Y | List of Strings | Initial coins with denominations. For example, "1000token" | +| address | N | String | Account address in Bech32 address format. | +| mnemonic | N | String | Mnemonic used to generate an account. This field is ignored if `address` is specified. | + +Note that you can only use `address` OR `mnemonic` for an account. You can't use both, because an address is derived from a mnemonic. + +If an account is a validator account (`alice` by default), it cannot have an `address` field. + +**accounts example** + +```yaml +accounts: + - name: alice + coins: ["1000token", "100000000stake"] + - name: bob + coins: ["500token"] + address: cosmos1adn9gxjmrc3hrsdx5zpc9sj2ra7kgqkmphf8yw +``` + +## build + +| Key | Required | Type | Description | +|----------|----------|------------------|--------------------------------------------------------------------------------------------------------------| +| main | N | String | When an app contains more than one main Go package, required to define the path of the chain's main package. | +| binary | N | String | Name of the node binary that is built, typically ends with `d`. | +| ldflags | N | List of Strings | ldflags to set version information for go applications. | + +**build example** + +```yaml +build: + binary: "mychaind" + ldflags: [ "-X main.Version=development", "-X main.Date=01/05/2022T19:54" ] +``` + +### build.proto + +| Key | Required | Type | Description | +| ----------------- | -------- | --------------- | ------------------------------------------------------------------------------------------ | +| path | N | String | Path to protocol buffer files. Default: `"proto"`. | +| third_party_paths | N | List of Strings | Path to third-party protocol buffer files. Default: `["third_party/proto", "proto_vendor"]`. | + +## client + +Configures and enables client code generation. To prevent Ignite CLI from regenerating the client, remove the `client` property. + +### client.vuex + +```yaml +client: + vuex: + path: "vue/src/store" +``` + +Generates Vuex stores for the blockchain in `path` on `serve` and `build` commands. + +### client.typescript + +```yaml +client: + typescript: + path: "vue/src/generated" +``` + +Generates TypeScript clients for the blockchain in `path` on `serve` and `build` commands. + +### client.openapi + +```yaml +client: + openapi: + path: "docs/static/openapi.yml" +``` + +Generates OpenAPI YAML file in `path`. By default this file is embedded in the node's binary. + +## faucet + +The faucet service sends tokens to addresses. The default address for the web user interface is <http://localhost:4500>. + +| Key | Required | Type | Description | +| ----------------- | -------- | --------------- | ----------------------------------------------------------- | +| name | Y | String | Name of a key pair. The `name` key pair must be in `accounts`. | +| coins | Y | List of Strings | One or more coins with denominations sent per request. | +| coins_max | N | List of Strings | One or more maximum amounts of tokens sent for each address. | +| host | N | String | Host and port number. Default: `:4500`. Cannot be higher than 65536 | +| rate_limit_window | N | String | Time after which the token limit is reset (in seconds). | + +**faucet example** + +```yaml +faucet: + name: faucet + coins: ["100token", "5foo"] + coins_max: ["2000token", "1000foo"] + port: 4500 +``` + +## validator + +A blockchain requires one or more validators. + +| Key | Required | Type | Description | +| ------ | -------- | ------ | ----------------------------------------------------------------------------------------------- | +| name | Y | String | The account that is used to initialize the validator. The `name` key pair must be in `accounts`. | +| staked | Y | String | Amount of coins to bond. Must be less than or equal to the amount of coins in the account. | + +**validator example** + +```yaml +accounts: + - name: alice + coins: ["1000token", "100000000stake"] +validator: + name: user1 + staked: "100000000stake" +``` + +## init.home + +The path to the data directory that stores blockchain data and blockchain configuration. + +**init example** + +```yaml +init: + home: "~/.myblockchain" +``` + +## init.config + +Overwrites properties in `config/config.toml` in the data directory. + +## init.app + +Overwrites properties in `config/app.toml` in the data directory. + +## init.client + +Overwrites properties in `config/client.toml` in the data directory. + +**init.client example** + +```yaml +init: + client: + keyring-backend: "os" +``` + +## host + +Configuration of host names and ports for processes started by Ignite CLI. Port numbers can't exceed 65536. + +**host example** + +```yaml +host: + rpc: ":26659" + p2p: ":26658" + prof: ":6061" + grpc: ":9091" + api: ":1318" +``` + +## genesis + +Use to overwrite values in `genesis.json` in the data directory to test different values in development environments. See [Genesis Overwrites for Development](../kb/04-genesis.md). diff --git a/docs/versioned_docs/version-v0.25.2/kb/04-genesis.md b/docs/versioned_docs/version-v0.25.2/kb/04-genesis.md new file mode 100644 index 0000000000..d400cb3c30 --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/kb/04-genesis.md @@ -0,0 +1,45 @@ +--- +sidebar_position: 4 +description: Test different scenarios after the blockchain is created. +--- + +# Genesis overwrites for development + +The `genesis.json` file for all new blockchains is automatically created from the `config.yml` file to define the initial state upon genesis of the blockchain. + +In development environments, it is useful to test different scenarios after the blockchain is created. The `genesis.json` file for the blockchain is overwritten by the top-level `genesis` parameter in `config.yml`. + +To set and test different values, add the `genesis` parameter to `config.yml`. + +## Change the value of a single parameter + +To change the value of one parameter, add the key-value pair under the `genesis` parameter. For example, change the value of `chain-id`: + +```yaml +genesis: + chain_id: "foobar" +``` + +## Change values in modules + +You can change one or more parameters of different modules. For example, in the `staking` module you can add a key-value pair to `bond_denom` to change which token gets staked: + +```yaml +genesis: + app_state: + staking: + params: + bond_denom: "denom" +``` + +## Genesis file + +For genesis file details and field definitions, see Cosmos Hub documentation for the [Genesis File](https://hub.cosmos.network/main/resources/genesis.html). + +## Genesis block summary + +- The genesis block is the first block of a blockchain. + +- The `genesis.json` file for the blockchain is overwritten by the top-level genesis parameter in `config.yml`. + +- After the blockchain is created, add the `genesis` parameter and key-value pairs to set and test different values in your development environment. diff --git a/docs/versioned_docs/version-v0.25.2/kb/05-types.md b/docs/versioned_docs/version-v0.25.2/kb/05-types.md new file mode 100644 index 0000000000..af10e7bc31 --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/kb/05-types.md @@ -0,0 +1,58 @@ +--- +sidebar_position: 5 +description: Reference list of supported types. +--- + +# Ignite CLI Supported Types + +Types with CRUD operations are scaffolded with the `ignite scaffold` command. + +## Built-in types + +| 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 | int32 | Integer type | +| array.int | ints | no | []int32 | 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 | + +Some types cannot be used an index, like the map and list indexes and module params. + +## Custom types + +You can create custom types and then use the custom type later. + +For example, you can create a `list` type called `user` and then use the `user` type in a subsequent `ignite scaffold` command. + +Here's an example of how to scaffold a new `CoordinatorDescription` type that is reusable in the future: + +```bash +ignite scaffold list coordinator-description description:string --no-message +``` + +Now you can scaffold a message using the `CoordinatorDescription` type: + +```bash +ignite scaffold message add-coordinator address:string description:CoordinatorDescription +``` + +Run the chain and then send the message using the CLI. + +To pass the custom type in JSON format: + +```bash +ignite chain serve +marsd tx mars add-coordinator cosmos1t4jkut0yfnsmqle9vxk3adfwwm9vj9gsj98vqf '{"description":"coordinator description"}' true --from alice --chain-id mars +``` + +If you try to use a type that is not created yet, the follow error occurs: + +```bash +ignite scaffold message validator validator:ValidatorDescription address:string +-> the field type ValidatorDescription doesn't exist +``` diff --git a/docs/versioned_docs/version-v0.25.2/kb/06-proto.md b/docs/versioned_docs/version-v0.25.2/kb/06-proto.md new file mode 100644 index 0000000000..ce2ecc6c2f --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/kb/06-proto.md @@ -0,0 +1,30 @@ +--- +description: Protocol buffer file support in Ignite CLI +sidebar_position: 6 +--- + +# Protocol buffer files + +Protocol buffer files define the data structures used by Cosmos SDK modules. + +## Files and directories + +Inside the `proto` directory, a directory for each custom module contains `query.proto`, `tx.proto`, `genesis.proto`, and other files. + +The `ignite chain serve` command automatically generates Go code from proto files on every file change. + +## Third-party proto files + +Third-party proto files, including those of Cosmos SDK and Tendermint, are bundled with Ignite CLI. To import third-party proto files in your custom proto files: + +```protobuf +import "cosmos/base/query/v1beta1/pagination.proto"; +``` + +You can also manually add third-party proto files. By default, Ignite CLI imports proto files from these directories: `third_party/proto` and `proto_vendor`. You can define third-party paths of the import directory in `config.yml`: + +```yaml +build: + proto: + third_party_paths: ["my_third_party_proto"] +``` diff --git a/docs/versioned_docs/version-v0.25.2/kb/07-frontend.md b/docs/versioned_docs/version-v0.25.2/kb/07-frontend.md new file mode 100644 index 0000000000..cdc5a6921d --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/kb/07-frontend.md @@ -0,0 +1,41 @@ +--- +description: Details on the Vue frontend app created by Ignite CLI. +sidebar_position: 7 +--- + +# Frontend overview + +A Vue frontend app is created in the `vue` directory when a blockchain is scaffolded. To start the frontend app run `npm i && npm run dev` in the `vue` directory. + +The frontend app is built using the `@starport/vue` and `@starport/vuex` packages. For details, see the [monorepo for Ignite CLI front-end development](https://github.com/ignite/web). + +## Client code generation + +A TypeScript (TS) client and associated Vuex stores are automatically generated for your blockchain for custom and standard Cosmos SDK modules. + +To enable client code generation, add the `client` entries to `config.yml`: + +```yaml +client: + typescript: + path: "ts-client" + vuex: + path: "vue/src/store" +``` + +A TS client is generated in the `ts-client` directory (see: [TypeScript client information](https://docs.ignite.com/clients/typescript)) and Vuex store modules making use of this client are generated in the `vue/src/store` directory. + +## Client code regeneration + +By default, the filesystem is watched and the clients are regenerated automatically. Clients for standard Cosmos SDK modules are generated after you scaffold a blockchain. + +To regenerate all clients for custom and standard Cosmos SDK modules, run this command: + +```bash +ignite generate vuex +``` + +(Note: this command also runs the typescript client generation and you do not need to run `ignite generate ts-client` separately.) +## Preventing client code regeneration + +To prevent regenerating the client, remove the `client:vuex` property from `config.yml`. diff --git a/docs/versioned_docs/version-v0.25.2/kb/08-relayer.md b/docs/versioned_docs/version-v0.25.2/kb/08-relayer.md new file mode 100644 index 0000000000..e66287cbfc --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/kb/08-relayer.md @@ -0,0 +1,51 @@ +--- +description: IBC relayer to connect local and remote blockchains. +sidebar_position: 8 +--- + +# IBC relayer + +A built-in IBC relayer in Ignite CLI lets you connect blockchains that run on your local computer to blockchains that run on remote computers. The Ignite CLI relayer uses the [TypeScript relayer](https://github.com/confio/ts-relayer). + +## Configure connections + +The `configure` command configures a connection between two blockchains: + +`ignite relayer configure` + +You are prompted for the required RPC endpoints and optional faucet endpoints. Accounts used by the relayer are created on both blockchains and faucets are used, if available, to automatically fetch tokens. + +If the relayer fails to receive tokens from a faucet, you must manually send tokens to addresses. + +By default, a connection for token transfers is set up for the `ibc-transfer` module. + +The optional `--advanced` flag lets you configure port and version for the custom IBC module. + +By default, relayer configuration is stored in `$HOME/.relayer/`. + +## Remove existing relayers + +If you previously used the Ignite CLI relayer, follow these steps to remove existing relayer and Ignite CLI configurations: + +1. Stop your blockchain or blockchains. +2. Delete previous configuration files: + + ```bash + rm -rf ~/.ignite/relayer + ``` + +3. Restart your blockchains. + +## Relayer configure example + +All values can be passed with flags. + +```bash +ignite relayer configure --advanced --source-rpc "http://0.0.0.0:26657" --source-faucet "http://0.0.0.0:4500" --source-port "blog" --source-version "blog-1" --target-rpc "http://0.0.0.0:26659" --target-faucet "http://0.0.0.0:4501" --target-port "blog" --target-version "blog-1" +``` + +## Connect blockchains and watch for IBC packets + +The `ignite relayer connect` command connects configured blockchains and watches for IBC packets to relay. + +**Tip:** You can observe the relayer packets on the terminal window where you connected your relayer. diff --git a/docs/versioned_docs/version-v0.25.2/kb/09-docker.md b/docs/versioned_docs/version-v0.25.2/kb/09-docker.md new file mode 100644 index 0000000000..9775950818 --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/kb/09-docker.md @@ -0,0 +1,103 @@ +--- +description: Run Ignite CLI using a Docker container. +sidebar_position: 9 +--- + +# Run Ignite CLI in Docker + +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 ignitehq/cli`. For example: + +```bash +docker run -ti ignitehq/cli -h +docker run -ti ignitehq/cli scaffold chain github.com/test/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 than `$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.16.0 scaffold chain github.com/hello/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.16.0` 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 then `/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.16.0 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, `ignitehq/cli` resolves to `ignitehq/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.15.1](https://github.com/ignite/cli/releases/tag/v0.19.2), the `latest` tag points to the `0.19.2` tag. + +### Specific version + +You can specify to use a specific version of Ignite CLI. All available tags are in the [ignitehq/cli image](https://hub.docker.com/r/ignitehq/cli/tags?page=1&ordering=last_updated) on Docker Hub. + +For example: + +- Use `ignitehq/cli:0.19.2` (without the `v` prefix) to use version 0.15.1. +- Use `ignitehq/cli:develop` to use the `develop` branch so you can experiment with the next version. + +To get the latest image, run `docker pull`. + +```bash +docker pull ignitehq/cli:develop +``` diff --git a/docs/versioned_docs/version-v0.25.2/kb/10-band.md b/docs/versioned_docs/version-v0.25.2/kb/10-band.md new file mode 100644 index 0000000000..ddd3d9e0e0 --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/kb/10-band.md @@ -0,0 +1,364 @@ +--- +sidebar_position: 10 +description: IBC oracle integration with BandChain +--- + +# BandChain oracle + +The BandChain oracle communication module has built-in compliance using IBC protocol that can query data points of various types from BandChain. + +Other chains can query this oracle module for real-time information. + +BandChain has multiple scripts deployed into the network. You can request any data using the script id. + +## High-level overview + +Steps to scaffold an IBC BandChain query oracle to request real-time data from BandChain scripts in a specific IBC-enabled Cosmos SDK module. + +## IBC module packet scaffold + +BandChain oracle queries can be scaffolded only in IBC modules. + +The basic syntax to scaffold a band oracle module is: + +```bash +ignite scaffold band [queryName] --module [moduleName] +``` + +Customize your band oracle with flags: + +- --module string - name of the new IBC Module to add the packets to +- --path string - path of the app, default is the current directory (`"."`) +- --signer string - signer label, default is `creator` + +### Acknowledgement messages + +The BandChain oracle returns the ack messages with the request id. The last request id is saved for future queries. + +## Files and directories + +When you scaffold a BandChain oracle module, the following files and directories are created and modified: + +- `proto`: oracle request and response data. +- `x/module_name/keeper`: IBC hooks, gRPC message server. +- `x/module_name/types`: message types, IBC events. +- `x/module_name/client/cli`: CLI command to broadcast a transaction containing a message with a packet. +- `x/module_name/oracle.go`: BandChain oracle packet handlers. + +## Scaffold a BandChain oracle chain + +First, scaffold a chain but don't scaffold a default module: + +```bash +ignite scaffold chain oracle --no-module +``` + +Next, change to the new `oracle` directory and scaffold an IBC-enabled module named `consuming`: + +```bash +cd oracle +ignite scaffold module consuming --ibc +``` + +Finally, scaffold a BandChain query oracle that can request real-time data: + +```bash +ignite scaffold band coinRates --module consuming +``` + +So far, you have scaffolded: + +- A new `oracle` chain without a default module +- A new IBC-enabled `consuming` module +- A new `coinRates` BandChain query oracle + +Now it's time to change the data. + +## Update version + +The output of the `ignite scaffold band coinRates --module consuming` command prompts you to update the `keys.go` file. + +In the `x/consuming/types/keys.go` file, update the `Version` variable in the `const` block to the required version that the IBC module supports: + +```go +const ( + // ... + + // Version defines the current version the IBC module supports + Version = "bandchain-1" + + // ... +) +``` + +## Start your chain in development + +To run the chain from the `oracle` directory: + +```bash +ignite chain serve +``` + +Keep this terminal window open. + +## Configure and connect the Ignite CLI relayer + +If you previously used the Ignite CLI relayer, it is a good idea to remove existing relayer and Ignite CLI configurations: + +1. Stop your blockchains. +2. Delete previous configuration files: + + ```bash + rm -rf ~/.ignite/relayer + ``` + +3. Restart your blockchains. + +In another terminal tab, configure the [Ignite CLI relayer](./08-relayer.md): + +```bash +ignite relayer configure -a \ +--source-rpc "http://rpc-laozi-testnet4.bandchain.org:80" \ +--source-faucet "https://laozi-testnet4.bandchain.org/faucet" \ +--source-port "oracle" \ +--source-gasprice "0uband" \ +--source-gaslimit 5000000 \ +--source-prefix "band" \ +--source-version "bandchain-1" \ +--target-rpc "http://localhost:26657" \ +--target-faucet "http://localhost:4500" \ +--target-port "consuming" \ +--target-gasprice "0.0stake" \ +--target-gaslimit 300000 \ +--target-prefix "cosmos" \ +--target-version "bandchain-1" +``` + +When prompted, press Enter to accept the default source and target accounts. + +The command output confirms the relayer is successfully configured: + +``` +? Source Account default +? Target Account default + +πŸ” Account on "source" is default(band1dscvlx0mhpys9fazuk7ej9z4cq7qknzn09pjpq) + + |Β· received coins from a faucet + |Β· (balance: 10000000uband) + +πŸ” Account on "target" is default(cosmos1dscvlx0mhpys9fazuk7ej9z4cq7qknznk2pseg) + + |Β· received coins from a faucet + |Β· (balance: 100000stake,5token) + +β›“ Configured chains: band-laozi-testnet4-oracle +``` + +Connect the relayer: + +```bash +ignite relayer connect +``` + +You can see the paths of the `oracle` port on the testnet and the `consuming` port on your local oracle module in the relayer connection status that is output to the terminal: + +``` +------ +Paths +------ + +band-laozi-testnet4-oracle: + band-laozi-testnet4 > (port: oracle) (channel: channel-405) + oracle > (port: consuming) (channel: channel-0) + +------ +Listening and relaying packets between chains... +------ +``` + +Leave this terminal tab open so you can monitor the relayer. + +## Make a request transaction + +In another terminal tab, use the `oracled` binary to make a request transaction. Because BandChain has multiple scripts already deployed into the network, you can request any data using the BandChain script id. In this case, use script 37 for Coin Rates: + +```bash +# Coin Rates (script 37 into the testnet) +oracled tx consuming coin-rates-data 37 4 3 --channel channel-0 --symbols "BTC,ETH,XRP,BCH" --multiplier 1000000 --fee-limit 30uband --prepare-gas 600000 --execute-gas 600000 --from alice --chain-id oracle +``` + +You can check the last request id that was returned by ack: + +```bash +oracled query consuming last-coin-rates-id +# output: request_id: "101276" +``` + +Now you can check the data by request id to receive the data packet: + +```bash +oracled query consuming coin-rates-result 101276 +``` + +### Multiple oracles + +You can scaffold multiples oracles by module. After scaffold, you must change the `Calldata` and `Result` parameters in the proto file `moduleName.proto` and then adapt the request in the `cli/client/tx_module_name.go` file. + +To create an example for the [gold price](https://laozi-testnet4.cosmoscan.io/oracle-script/33#bridge) bridge: + +```bash +ignite scaffold band goldPrice --module consuming +``` + +In the `proto/consuming/gold_price.proto` file: + +```protobuf +syntax = "proto3"; +package oracle.consuming; + +option go_package = "oracle/x/consuming/types"; + +message GoldPriceCallData { + uint64 multiplier = 2; +} + +message GoldPriceResult { + uint64 price = 1; +} +``` + +In the `x/consuming/cli/client/tx_gold_price.go` file: + +```go +package cli + +import ( + "strconv" + + "github.com/cosmos/cosmos-sdk/client" + "github.com/cosmos/cosmos-sdk/client/flags" + "github.com/cosmos/cosmos-sdk/client/tx" + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/spf13/cobra" + + "oracle/x/consuming/types" +) + +// CmdRequestGoldPriceData creates and broadcast a GoldPrice request transaction +func CmdRequestGoldPriceData() *cobra.Command { + cmd := &cobra.Command{ + Use: "gold-price-data [oracle-script-id] [requested-validator-count] [sufficient-validator-count]", + Short: "Make a new GoldPrice query request via an existing BandChain oracle script", + Args: cobra.ExactArgs(3), + RunE: func(cmd *cobra.Command, args []string) error { + // retrieve the oracle script id. + uint64OracleScriptID, err := strconv.ParseUint(args[0], 10, 64) + if err != nil { + return err + } + oracleScriptID := types.OracleScriptID(uint64OracleScriptID) + + // retrieve the requested validator count. + askCount, err := strconv.ParseUint(args[1], 10, 64) + if err != nil { + return err + } + + // retrieve the sufficient(minimum) validator count. + minCount, err := strconv.ParseUint(args[2], 10, 64) + if err != nil { + return err + } + + channel, err := cmd.Flags().GetString(flagChannel) + if err != nil { + return err + } + + // retrieve the multiplier for the symbols' price. + multiplier, err := cmd.Flags().GetUint64(flagMultiplier) + if err != nil { + return err + } + + calldata := &types.GoldPriceCallData{ + Multiplier: multiplier, + } + + // retrieve the amount of coins allowed to be paid for oracle request fee from the pool account. + coinStr, err := cmd.Flags().GetString(flagFeeLimit) + if err != nil { + return err + } + feeLimit, err := sdk.ParseCoinsNormalized(coinStr) + if err != nil { + return err + } + + // retrieve the amount of gas allowed for the prepare step of the oracle script. + prepareGas, err := cmd.Flags().GetUint64(flagPrepareGas) + if err != nil { + return err + } + + // retrieve the amount of gas allowed for the execute step of the oracle script. + executeGas, err := cmd.Flags().GetUint64(flagExecuteGas) + if err != nil { + return err + } + + clientCtx, err := client.GetClientTxContext(cmd) + if err != nil { + return err + } + + msg := types.NewMsgGoldPriceData( + clientCtx.GetFromAddress().String(), + oracleScriptID, + channel, + calldata, + askCount, + minCount, + feeLimit, + prepareGas, + executeGas, + ) + if err := msg.ValidateBasic(); err != nil { + return err + } + return tx.GenerateOrBroadcastTxCLI(clientCtx, cmd.Flags(), msg) + }, + } + + cmd.Flags().String(flagChannel, "", "The channel id") + cmd.MarkFlagRequired(flagChannel) + cmd.Flags().Uint64(flagMultiplier, 1000000, "Multiplier used in calling the oracle script") + cmd.Flags().String(flagFeeLimit, "", "the maximum tokens that will be paid to all data source providers") + cmd.Flags().Uint64(flagPrepareGas, 200000, "Prepare gas used in fee counting for prepare request") + cmd.Flags().Uint64(flagExecuteGas, 200000, "Execute gas used in fee counting for execute request") + flags.AddTxFlagsToCmd(cmd) + + return cmd +} +``` + +Make the request transaction: + +```bash +# Gold Price (script 33 into the testnet) +oracled tx consuming gold-price-data 33 4 3 --channel channel-0 --multiplier 1000000 --fee-limit 30uband --prepare-gas 600000 --execute-gas 600000 --from alice --chain-id oracle +``` + +Check the last request id that was returned by ack: + +```bash +oracled query consuming last-gold-price-id +# output: request_id: "101290" +``` + +Request the package data: + +```bash +oracled query consuming gold-price-result 101290 +``` diff --git a/docs/versioned_docs/version-v0.25.2/kb/11-simapp.md b/docs/versioned_docs/version-v0.25.2/kb/11-simapp.md new file mode 100644 index 0000000000..c395265fce --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/kb/11-simapp.md @@ -0,0 +1,131 @@ +--- +sidebar_position: 11 +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/master/building-modules/simulator.html). + +- 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/<module>/simulation` folder and registers these methods in `x/<module>/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: + +```bash +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: + +```bash +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: + +```bash +ignite chain simulate +``` + +You can also define flags that are provided by the simulation. Flags are defined by the method `simapp.GetSimulatorFlags()`: + +```bash +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: + +```bash +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: + +```bash +ignite s module earth --params channel:string,minLaunch:uint,maxLaunch:int +``` + +After the parameters are scaffolded, change the `x/<module>/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/master/building-modules/invariants.html). 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 +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 +// 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-v0.25.2/kb/12-params.md b/docs/versioned_docs/version-v0.25.2/kb/12-params.md new file mode 100644 index 0000000000..30a8010153 --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/kb/12-params.md @@ -0,0 +1,31 @@ +--- +sidebar_position: 12 +description: Scaffold module parameters to be accessible to the module. +--- + +# Module parameters + +Sometimes you need to set default parameters for a module. The Cosmos SDK [params package](https://docs.cosmos.network/master/modules/params) provides a globally available parameter that is saved into the key-value store. + +Params are managed and centralized by the Cosmos SDK `params` module and are updated with a governance proposal. + +You can use Ignite CLI to scaffold parameters to be accessible for the module. Parameters have default values that can be changed when the chain is live. Since the parameters are managed and centralized by the Cosmos SDK params module, they can be easily updated using a governance proposal. + +To scaffold a module with params using the `--params` flag: + +```bash +ignite scaffold module launch --params minLaunch:uint,maxLaunch:int +``` + +After the parameters are scaffolded, change the `x/<module>/types/params.go` file to set the default values and validate the fields. + +The params module supports all [built-in Ignite CLI types](./05-types.md). + +## Params types + +| Type | Code type | Description | +| ------ | --------- | ----------------------- | +| string | string | Text type | +| bool | bool | Boolean type | +| int | int32 | Integer number | +| uint | uint64 | Unsigned integer number | diff --git a/docs/versioned_docs/version-v0.25.2/kb/_category_.json b/docs/versioned_docs/version-v0.25.2/kb/_category_.json new file mode 100644 index 0000000000..f5d19245c6 --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/kb/_category_.json @@ -0,0 +1,5 @@ +{ + "label": "Knowledge Base", + "position": 3, + "link": null + } \ No newline at end of file diff --git a/docs/versioned_docs/version-v0.25.2/migration/_category_.json b/docs/versioned_docs/version-v0.25.2/migration/_category_.json new file mode 100644 index 0000000000..0ca9b68706 --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/migration/_category_.json @@ -0,0 +1,5 @@ +{ + "label": "Migration", + "position": 4, + "link": null + } \ No newline at end of file diff --git a/docs/versioned_docs/version-v0.25.2/migration/v0.18.md b/docs/versioned_docs/version-v0.25.2/migration/v0.18.md new file mode 100644 index 0000000000..8586bb920f --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/migration/v0.18.md @@ -0,0 +1,448 @@ +--- +sidebar_position: 5 +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 +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/username/mars/x/mars/keeper" + "github.com/username/mars/x/mars/types" + "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" +) + +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/username/test/x/mars/keeper" + "github.com/username/test/x/mars/types" + "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" +) + +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 +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 +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-v0.25.2/migration/v0.19.2.md b/docs/versioned_docs/version-v0.25.2/migration/v0.19.2.md new file mode 100644 index 0000000000..eab1264ad4 --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/migration/v0.19.2.md @@ -0,0 +1,22 @@ +--- +sidebar_position: 4 +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/main/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-v0.25.2/migration/v0.20.0.md b/docs/versioned_docs/version-v0.25.2/migration/v0.20.0.md new file mode 100644 index 0000000000..970ec04ced --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/migration/v0.20.0.md @@ -0,0 +1,11 @@ +--- +sidebar_position: 3 +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-v0.25.2/migration/v0.22.0.md b/docs/versioned_docs/version-v0.25.2/migration/v0.22.0.md new file mode 100644 index 0000000000..13eedde81f --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/migration/v0.22.0.md @@ -0,0 +1,30 @@ +--- +sidebar_position: 2 +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-v0.25.2/migration/v0.24.0.md b/docs/versioned_docs/version-v0.25.2/migration/v0.24.0.md new file mode 100644 index 0000000000..79d7036b7b --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/migration/v0.24.0.md @@ -0,0 +1,246 @@ +--- +sidebar_position: 1 +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. +--- + +## 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 +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 + +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 + +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 +// 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 + +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 + +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 + +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 + +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 + +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.html). 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 + +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 + +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 + +func (im IBCModule) OnChanOpenInit(...) (string, error) { + //... + return "", sdkerrors.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 + +func (im IBCModule) OnRecvPacket(...) { + //... + if err := modulePacketData.Unmarshal(modulePacket.GetData()); err != nil { + // return channeltypes.NewErrorAcknowledgement(sdkerrors.Wrapf(sdkerrors.ErrUnknownRequest, "cannot unmarshal packet data: %s", err.Error()).Error()) + return channeltypes.NewErrorAcknowledgement(sdkerrors.Wrapf(sdkerrors.ErrUnknownRequest, "cannot unmarshal packet data: %s", err.Error())) + } + //... + 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 +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 + +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 + +func (am AppModule) Route() sdk.Route { return sdk.Route{} } +``` diff --git a/docs/versioned_docs/version-v0.25.2/migration/v0.25.0.md b/docs/versioned_docs/version-v0.25.2/migration/v0.25.0.md new file mode 100644 index 0000000000..0abcaaf216 --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/migration/v0.25.0.md @@ -0,0 +1,67 @@ +--- +sidebar_position: 0 +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.24.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. \ No newline at end of file diff --git a/docs/versioned_docs/version-v0.25.2/network/01-introduction.md b/docs/versioned_docs/version-v0.25.2/network/01-introduction.md new file mode 100644 index 0000000000..6bcd376ffe --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/network/01-introduction.md @@ -0,0 +1,69 @@ +--- +sidebar_position: 1 +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 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-v0.25.2/network/02-coordinator.md b/docs/versioned_docs/version-v0.25.2/network/02-coordinator.md new file mode 100644 index 0000000000..0183ad800c --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/network/02-coordinator.md @@ -0,0 +1,138 @@ +--- +sidebar_position: 2 +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` 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 https://example.com/genesis.tar.gz +``` + +## 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-v0.25.2/network/03-validator.md b/docs/versioned_docs/version-v0.25.2/network/03-validator.md new file mode 100644 index 0000000000..f0b8d667b4 --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/network/03-validator.md @@ -0,0 +1,159 @@ +--- +sidebar_position: 3 +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 identifer 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-v0.25.2/network/_category_.json b/docs/versioned_docs/version-v0.25.2/network/_category_.json new file mode 100644 index 0000000000..60941f6bed --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/network/_category_.json @@ -0,0 +1,5 @@ +{ + "label": "Network", + "position": 7, + "link": null + } diff --git a/docs/versioned_docs/version-v0.25.2/packages/_category_.json b/docs/versioned_docs/version-v0.25.2/packages/_category_.json new file mode 100644 index 0000000000..c3d2f06613 --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/packages/_category_.json @@ -0,0 +1,5 @@ +{ + "label": "Packages", + "position": 5, + "link": null + } diff --git a/docs/versioned_docs/version-v0.25.2/packages/cosmostxcollector.md b/docs/versioned_docs/version-v0.25.2/packages/cosmostxcollector.md new file mode 100644 index 0000000000..4e6e238698 --- /dev/null +++ b/docs/versioned_docs/version-v0.25.2/packages/cosmostxcollector.md @@ -0,0 +1,200 @@ +--- +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/ignite/pkg/clictx" + "github.com/ignite/cli/ignite/pkg/cosmosclient" + "github.com/ignite/cli/ignite/pkg/cosmostxcollector" + "github.com/ignite/cli/ignite/pkg/cosmostxcollector/adapter/postgres" +) + +const ( + // Name of a local PostgreSQL database + dbName = "cosmos" + + // Cosmos RPC address + rpcAddr = "https://rpc.cosmos.network:443" +) + +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_sidebars/version-v0.25.2-sidebars.json b/docs/versioned_sidebars/version-v0.25.2-sidebars.json new file mode 100644 index 0000000000..dbd7f9f205 --- /dev/null +++ b/docs/versioned_sidebars/version-v0.25.2-sidebars.json @@ -0,0 +1,25 @@ +{ + "tutorialSidebar": [ + { + "type": "autogenerated", + "dirName": "." + }, + { + "type": "category", + "label": "Resources", + "collapsed": false, + "items": [ + { + "type": "link", + "label": "Ignite CLI on Github", + "href": "https://github.com/ignite/cli" + }, + { + "type": "link", + "label": "Cosmos SDK Docs", + "href": "https://docs.cosmos.network/" + } + ] + } + ] +} diff --git a/docs/versions.json b/docs/versions.json new file mode 100644 index 0000000000..cabe4d0e14 --- /dev/null +++ b/docs/versions.json @@ -0,0 +1,3 @@ +[ + "v0.25.2" +]