From 7ec89f22492bd97a744be1eb36fb6bc81e7df455 Mon Sep 17 00:00:00 2001 From: tansawit Date: Wed, 18 Feb 2026 12:14:45 +0700 Subject: [PATCH 1/2] chore: add prettier tooling and normalize docs formatting --- .husky/pre-commit | 1 + .prettierrc | 12 +- .../registry/introduction.mdx | 4 +- .../integrating-initia-apps/usernames.mdx | 16 +- .../vip/update-vip-scoring-criteria.mdx | 35 +- .../vip/whitelist-rollup-for-vip.mdx | 10 +- .../tools/clis/initiad-cli/accounts.mdx | 15 +- .../tools/clis/initiad-cli/introduction.mdx | 28 +- .../tools/clis/minitiad-cli/introduction.mdx | 37 +- .../tools/clis/weave-cli/gas-station.mdx | 16 +- .../tools/clis/weave-cli/installation.mdx | 3 +- .../tools/clis/weave-cli/rollup/launch.mdx | 24 +- .../clis/weave-cli/rollup/next-steps.mdx | 9 +- .../clis/weave-cli/rollup/opinit-bots.mdx | 5 +- .../tools/clis/weave-cli/rollup/relayer.mdx | 13 +- .../tools/indexers/nft-collection-details.mdx | 3 +- .../indexers/nft-collections-by-account.mdx | 3 +- .../tools/indexers/nft-tokens-by-account.mdx | 3 +- .../indexers/nft-tokens-by-collection.mdx | 3 +- .../indexers/transactions-by-account.mdx | 3 +- .../tools/indexers/transactions-by-hash.mdx | 3 +- .../tools/indexers/transactions-by-height.mdx | 3 +- .../getting-single-asset-price.mdx | 3 +- .../fetching-prices-from-contracts.mdx | 12 +- .../tools/sdks/initia-js/accounts.mdx | 5 +- .../tools/sdks/initia-js/querying-data.mdx | 25 +- .../transactions/sending-transactions.mdx | 36 +- .../transactions/signing-transactions.mdx | 36 +- .../evm/address-conversion.mdx | 4 +- .../api-endpoints/nft-collection-details.mdx | 3 +- .../nft-collections-by-account.mdx | 3 +- .../api-endpoints/nft-tokens-by-account.mdx | 3 +- .../nft-tokens-by-collection.mdx | 3 +- .../evm/connect-oracles.mdx | 6 +- .../evm/cosmos-coin-to-erc20.mdx | 16 +- .../creating-custom-erc20s.mdx | 8 +- .../creating-standard-erc20s.mdx | 32 +- .../evm/creating-erc20s/introduction.mdx | 3 +- .../vm-specific-tutorials/evm/ibc-hooks.mdx | 13 +- .../evm/update-fee-token.mdx | 13 +- .../movevm/ibc-hooks.mdx | 22 +- .../vm-specific-tutorials/movevm/multisig.mdx | 31 +- .../wasmvm/ibc-hooks.mdx | 20 +- developers/running-nodes/introduction.mdx | 5 +- .../manual-setup/node-configuration.mdx | 5 +- .../running-nodes/manual-setup/node-setup.mdx | 4 +- .../manual-setup/starting-the-node.mdx | 17 +- .../becoming-a-validator.mdx | 11 +- docs.json | 20 +- home/core-concepts/minitswap/architecture.mdx | 17 +- home/core-concepts/minitswap/introduction.mdx | 8 +- home/core-concepts/vip/architecture.mdx | 23 +- home/core-concepts/vip/eligibility.mdx | 7 +- home/general/welcome.mdx | 18 +- home/tools/wallet.mdx | 2 +- .../features/autosign/api-reference.mdx | 15 +- .../features/autosign/configuration.mdx | 28 +- .../features/autosign/introduction.mdx | 8 +- interwovenkit/features/autosign/usage.mdx | 12 +- .../features/transfers/deposit-withdraw.mdx | 16 +- interwovenkit/getting-started.mdx | 24 +- interwovenkit/integrations/evm.mdx | 29 +- interwovenkit/integrations/native.mdx | 30 +- interwovenkit/integrations/rainbowkit.mdx | 5 +- interwovenkit/migration.mdx | 39 +- .../components/interwovenkit-provider.mdx | 22 +- .../references/constants/privy-app-id.mdx | 6 +- .../references/hooks/use-address.mdx | 4 +- .../references/hooks/use-hex-address.mdx | 4 +- .../references/hooks/use-initia-address.mdx | 4 +- .../references/hooks/use-interwovenkit.mdx | 149 ++--- .../references/hooks/use-portfolio.mdx | 4 +- .../references/hooks/use-username-query.mdx | 4 +- interwovenkit/references/setup/providers.mdx | 19 +- .../references/utilities/inject-styles.mdx | 4 +- .../deploying-rollups/deploy.mdx | 13 +- .../deploying-rollups/initia-registry.mdx | 45 +- nodes-and-rollups/indexing/introduction.mdx | 3 +- .../indexing/kv-indexer/legacy-overview.mdx | 3 +- .../indexing/rollytics/api-reference.mdx | 6 +- nodes-and-rollups/indexing/rollytics/faq.mdx | 3 +- .../rollytics/setup-and-migration.mdx | 3 +- .../running-nodes/introduction.mdx | 5 +- .../running-nodes/manual-setup/cosmovisor.mdx | 3 +- .../manual-setup/node-configuration.mdx | 5 +- .../running-nodes/manual-setup/node-setup.mdx | 4 +- .../manual-setup/starting-the-node.mdx | 17 +- .../becoming-a-validator.mdx | 5 +- .../running-l1-nodes/l1-nodes-initiad.mdx | 21 +- .../running-l1-nodes/l1-nodes-weave.mdx | 6 +- package-lock.json | 509 ++++++++++++++++++ package.json | 8 +- .../developer/deployed-contracts/initia.mdx | 6 +- .../developer/deployed-contracts/minievm.mdx | 13 +- resources/developer/initia-l1.mdx | 108 ++-- snippets/networks.mdx | 7 +- snippets/terminology.mdx | 9 +- .../wallet/auto-signing/introduction.mdx | 4 +- 98 files changed, 961 insertions(+), 954 deletions(-) create mode 100644 .husky/pre-commit diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100644 index 00000000..2312dc58 --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1 @@ +npx lint-staged diff --git a/.prettierrc b/.prettierrc index 54ae4563..b16066db 100644 --- a/.prettierrc +++ b/.prettierrc @@ -2,6 +2,14 @@ "singleQuote": true, "semi": false, "trailingComma": "all", - "printWidth": 80, - "proseWrap": "always" + "printWidth": 100, + "overrides": [ + { + "files": ["*.md", "*.mdx"], + "options": { + "proseWrap": "preserve", + "printWidth": 120 + } + } + ] } diff --git a/developers/developer-guides/integrating-initia-apps/registry/introduction.mdx b/developers/developer-guides/integrating-initia-apps/registry/introduction.mdx index 1ba4c540..2b95d7ee 100644 --- a/developers/developer-guides/integrating-initia-apps/registry/introduction.mdx +++ b/developers/developer-guides/integrating-initia-apps/registry/introduction.mdx @@ -38,8 +38,8 @@ created in the previous step. You then need to create two files in the folder: and decimal precision. - You can create a PR to add both a profile and rollup at the same time, but the - profile file is required for the rollup to be fully supported. + You can create a PR to add both a profile and rollup at the same time, but the profile file is required for the rollup + to be fully supported. ## Adding Assets diff --git a/developers/developer-guides/integrating-initia-apps/usernames.mdx b/developers/developer-guides/integrating-initia-apps/usernames.mdx index 886942c9..e107cdd4 100644 --- a/developers/developer-guides/integrating-initia-apps/usernames.mdx +++ b/developers/developer-guides/integrating-initia-apps/usernames.mdx @@ -31,13 +31,7 @@ const restClient = new RESTClient('https://rest.testnet.initia.xyz', { }) restClient.move - .view( - moduleAddress, - 'usernames', - 'get_address_from_name', - [], - [bcs.string().serialize(name).toBase64()], - ) + .view(moduleAddress, 'usernames', 'get_address_from_name', [], [bcs.string().serialize(name).toBase64()]) .then(console.log) // Response: @@ -69,13 +63,7 @@ const restClient = new RESTClient('https://rest.testnet.initia.xyz', { }) restClient.move - .view( - moduleAddress, - 'usernames', - 'get_name_from_address', - [], - [bcs.address().serialize(address).toBase64()], - ) + .view(moduleAddress, 'usernames', 'get_name_from_address', [], [bcs.address().serialize(address).toBase64()]) .then(console.log) // Response: diff --git a/developers/developer-guides/integrating-initia-apps/vip/update-vip-scoring-criteria.mdx b/developers/developer-guides/integrating-initia-apps/vip/update-vip-scoring-criteria.mdx index 78ace310..d085edc7 100644 --- a/developers/developer-guides/integrating-initia-apps/vip/update-vip-scoring-criteria.mdx +++ b/developers/developer-guides/integrating-initia-apps/vip/update-vip-scoring-criteria.mdx @@ -6,34 +6,29 @@ This guide explains how to update the VIP scoring criteria for a rollup. - Use the provided [proposal - template](https://forum.initia.xyz/t/epoch-x-rollup-vip-update/263) to - submit forum proposal on the [Initia Forum](https://forum.initia.xyz) - outlining the new scoring criteria and the changes. This proposal should be - submitted at least one week before the VIP scoring criteria update date to - allow the community to review and discuss it. + Use the provided [proposal template](https://forum.initia.xyz/t/epoch-x-rollup-vip-update/263) to submit forum + proposal on the [Initia Forum](https://forum.initia.xyz) outlining the new scoring criteria and the changes. This + proposal should be submitted at least one week before the VIP scoring criteria update date to allow the community to + review and discuss it. - In your original VIP whitelist proposal forum post, add a comment that links - to the new draft so community members can follow the discussion. + In your original VIP whitelist proposal forum post, add a comment that links to the new draft so community members + can follow the discussion. - Inform the Initia team about your new criteria and share the link to the - corresponding forum post so the VIP Committee can review it. + Inform the Initia team about your new criteria and share the link to the corresponding forum post so the VIP + Committee can review it. The VIP committee will verify that your new criteria follow the [scoring - policy](/home/core-concepts/vip/scoring#scoring-criteria) and is logically - sound. If the new scoring criteria meet the requirements, the VIP committee - will approve them and notify you. + policy](/home/core-concepts/vip/scoring#scoring-criteria) and is logically sound. If the new scoring criteria meet + the requirements, the VIP committee will approve them and notify you. - After the VIP committee approves the new scoring criteria, announce the - changes at least one week before it is implemented to your community. - Examples include posting on Discord, X (Twitter), and your other - communication channels. The announcement must clearly explain every change, - giving the exact date and time when the new criteria take effect. It should - also link to the forum post and list any actions users must take so they - have enough time to prepare. + After the VIP committee approves the new scoring criteria, announce the changes at least one week before it is + implemented to your community. Examples include posting on Discord, X (Twitter), and your other communication + channels. The announcement must clearly explain every change, giving the exact date and time when the new criteria + take effect. It should also link to the forum post and list any actions users must take so they have enough time to + prepare. diff --git a/developers/developer-guides/integrating-initia-apps/vip/whitelist-rollup-for-vip.mdx b/developers/developer-guides/integrating-initia-apps/vip/whitelist-rollup-for-vip.mdx index 43f8c29d..fb1ec1fb 100644 --- a/developers/developer-guides/integrating-initia-apps/vip/whitelist-rollup-for-vip.mdx +++ b/developers/developer-guides/integrating-initia-apps/vip/whitelist-rollup-for-vip.mdx @@ -6,12 +6,10 @@ A rollup must be whitelisted before it can participate in the Vested Interest Program (VIP). - The following steps are for whitelisting a rollup for VIP on Mainnet. For - testnet rollups, please contact the Initia team. This section also assumes you - have already added your rollup to the [Initia - Registry](/developers/developer-guides/integrating-initia-apps/registry/introduction). - If not, please follow the guide in the [previous - section](/developers/developer-guides/integrating-initia-apps/vip/integrate-vip). + The following steps are for whitelisting a rollup for VIP on Mainnet. For testnet rollups, please contact the Initia + team. This section also assumes you have already added your rollup to the [Initia + Registry](/developers/developer-guides/integrating-initia-apps/registry/introduction). If not, please follow the guide + in the [previous section](/developers/developer-guides/integrating-initia-apps/vip/integrate-vip). diff --git a/developers/developer-guides/tools/clis/initiad-cli/accounts.mdx b/developers/developer-guides/tools/clis/initiad-cli/accounts.mdx index 69c0f0ec..f1c5cc47 100644 --- a/developers/developer-guides/tools/clis/initiad-cli/accounts.mdx +++ b/developers/developer-guides/tools/clis/initiad-cli/accounts.mdx @@ -21,10 +21,7 @@ initiad keys add $ACCOUNT_NAME # glass easy miracle sign tent anchor position cluster shift calm march elite menu must nose inform antique reason meadow relief layer term crush gesture ``` - - The mnemonic key is the only way to recover your account if you forget your - password. - +The mnemonic key is the only way to recover your account if you forget your password. If you want to create an EVM account, you can use the following command: @@ -36,9 +33,8 @@ initiad keys add $ACCOUNT_NAME --key-type $ETH_KEY_TYPE --coin-type $ETH_COIN_TY ``` - Even with the same mnemonic phrase, the derived addresses differ because the - method of generating the public key varies, leading to each account being - treated separately. + Even with the same mnemonic phrase, the derived addresses differ because the method of generating the public key + varies, leading to each account being treated separately. ## Importing an Account @@ -76,9 +72,8 @@ initiad keys export $ACCOUNT_NAME > key.json ``` - The exported private key is encrypted with a passphrase. So, you can only - import it using `initiad` CLI. It is not possible to import it directly on - Wallet Apps. + The exported private key is encrypted with a passphrase. So, you can only import it using `initiad` CLI. It is not + possible to import it directly on Wallet Apps. To import the account using the exported private key, run: diff --git a/developers/developer-guides/tools/clis/initiad-cli/introduction.mdx b/developers/developer-guides/tools/clis/initiad-cli/introduction.mdx index abb0f070..adef4573 100644 --- a/developers/developer-guides/tools/clis/initiad-cli/introduction.mdx +++ b/developers/developer-guides/tools/clis/initiad-cli/introduction.mdx @@ -1,7 +1,6 @@ --- title: Introduction -description: - Learn how to install and get started with the initiad command-line interface +description: Learn how to install and get started with the initiad command-line interface for interacting with Initia L1 --- @@ -25,8 +24,7 @@ With initiad, you can: local) - initiad is built using the Cosmos SDK and provides a familiar interface for - users of other Cosmos-based chains. + initiad is built using the Cosmos SDK and provides a familiar interface for users of other Cosmos-based chains. ## Prerequisites @@ -37,9 +35,7 @@ Before installing initiad, ensure you have the following requirements: - **Git**: For cloning the repository - **Make**: For building the binary - - You can verify your Go installation by running `go version` in your terminal. - +You can verify your Go installation by running `go version` in your terminal. ## Installation @@ -68,10 +64,9 @@ git checkout $VERSION - ```bash # Get the current testnet version and checkout export VERSION=$(curl - -s https://rest.testnet.initia.xyz/cosmos/base/tendermint/v1beta1/node_info | - jq -r '.application_version.version' | grep -oE 'v[0-9]+\.[0-9]+\.[0-9]+') - echo "Checking out version: $VERSION" git checkout $VERSION ``` + ```bash # Get the current testnet version and checkout export VERSION=$(curl -s + https://rest.testnet.initia.xyz/cosmos/base/tendermint/v1beta1/node_info | jq -r '.application_version.version' | grep + -oE 'v[0-9]+\.[0-9]+\.[0-9]+') echo "Checking out version: $VERSION" git checkout $VERSION ``` @@ -85,8 +80,7 @@ git checkout $VERSION - Always use a specific version tag rather than the main branch for production - environments to ensure stability. + Always use a specific version tag rather than the main branch for production environments to ensure stability. @@ -144,8 +138,7 @@ initiad config node https://rpc.initia.xyz:443 - ```bash initiad config chain-id initiation-1 initiad config node - https://rpc.testnet.initia.xyz:443 ``` + ```bash initiad config chain-id initiation-1 initiad config node https://rpc.testnet.initia.xyz:443 ``` @@ -165,10 +158,7 @@ Now that you have initiad installed and configured, you can: Set up accounts for sending transactions and managing assets - + Learn how to query balances, transactions, and network information diff --git a/developers/developer-guides/tools/clis/minitiad-cli/introduction.mdx b/developers/developer-guides/tools/clis/minitiad-cli/introduction.mdx index d6a02649..804d9561 100644 --- a/developers/developer-guides/tools/clis/minitiad-cli/introduction.mdx +++ b/developers/developer-guides/tools/clis/minitiad-cli/introduction.mdx @@ -1,7 +1,6 @@ --- title: Introduction -description: - Learn how to install and get started with the minitiad command-line interface +description: Learn how to install and get started with the minitiad command-line interface for interacting with Initia rollups --- @@ -27,8 +26,8 @@ With minitiad, you can: rollup chains - minitiad is built using the Cosmos SDK and provides a familiar interface for - users of other Cosmos-based chains, specifically optimized for Initia rollups. + minitiad is built using the Cosmos SDK and provides a familiar interface for users of other Cosmos-based chains, + specifically optimized for Initia rollups. ## VM Types and Repositories @@ -43,10 +42,7 @@ requires a specific minitiad implementation: - **EVM**: [minievm](https://github.com/initia-labs/minievm) - For rollups running Ethereum Virtual Machine smart contracts - - Check your rollup chain's documentation to determine which VM type it uses - before installation. - +Check your rollup chain's documentation to determine which VM type it uses before installation. ## Prerequisites @@ -56,9 +52,7 @@ Before installing minitiad, ensure you have the following requirements: - **Git**: For cloning the repository - **Make**: For building the binary - - You can verify your Go installation by running `go version` in your terminal. - +You can verify your Go installation by running `go version` in your terminal. ## Installation @@ -74,9 +68,7 @@ cd minimove ``` - - ```bash git clone https://github.com/initia-labs/miniwasm.git cd miniwasm ``` - +```bash git clone https://github.com/initia-labs/miniwasm.git cd miniwasm ``` ```bash @@ -120,8 +112,7 @@ git checkout $VERSION - Always use a specific version tag rather than the main branch for production - environments to ensure stability. + Always use a specific version tag rather than the main branch for production environments to ensure stability. @@ -145,10 +136,7 @@ This will build the binary and install it to your `$GOPATH/bin` directory. After installation, verify that minitiad is correctly installed and accessible: - - The CLI binary is always named `minitiad` regardless of which VM-specific - repository you cloned. - +The CLI binary is always named `minitiad` regardless of which VM-specific repository you cloned. ### Check CLI Version @@ -189,8 +177,8 @@ minitiad config node $CHAIN_RPC_ENDPOINT ``` - Make sure to use the correct endpoints for your specific rollup chain. Each - Initia rollup has its own unique endpoints and chain ID. + Make sure to use the correct endpoints for your specific rollup chain. Each Initia rollup has its own unique endpoints + and chain ID. ## Next Steps @@ -199,7 +187,4 @@ Now that you have minitiad installed and configured, you can start building and deploying applications on Initia rollup chains. The specific workflow will depend on your rollup's VM type (Move, Wasm, or EVM). - - Additional minitiad CLI documentation pages are currently being developed and - will be available soon. - +Additional minitiad CLI documentation pages are currently being developed and will be available soon. diff --git a/developers/developer-guides/tools/clis/weave-cli/gas-station.mdx b/developers/developer-guides/tools/clis/weave-cli/gas-station.mdx index 338d90d6..fa293c24 100644 --- a/developers/developer-guides/tools/clis/weave-cli/gas-station.mdx +++ b/developers/developer-guides/tools/clis/weave-cli/gas-station.mdx @@ -15,10 +15,9 @@ This is essential for seamless operation with Weave as it eliminates the need for manual fund distribution. - While Weave requires your consent for all fund transfers, using a separate - account prevents any potential misuse of an existing account. We strongly - recommend creating a new dedicated account for Gas Station use rather than - using an existing account + While Weave requires your consent for all fund transfers, using a separate account prevents any potential misuse of an + existing account. We strongly recommend creating a new dedicated account for Gas Station use rather than using an + existing account ## Setting up the Gas Station @@ -32,8 +31,8 @@ Once setup is complete, you'll see two addresses in `init` and `celestia` format. - While the Gas Station addresses for Celestia and the Initia ecosystem will be - different, both are derived from the same mnemonic that you entered. + While the Gas Station addresses for Celestia and the Initia ecosystem will be different, both are derived from the + same mnemonic that you entered. Then fund the account with at least 10 INIT tokens to support the necessary @@ -41,9 +40,8 @@ components. If you're planning to use Celestia as your Data Availability Layer, you'll also need to fund the account with `TIA` tokens. - For testnet operations: - Get testnet `INIT` tokens from the [Initia - faucet](https://faucet.testnet.initia.xyz/) - Get testnet `TIA` tokens from - the [Celestia + For testnet operations: - Get testnet `INIT` tokens from the [Initia faucet](https://faucet.testnet.initia.xyz/) - Get + testnet `TIA` tokens from the [Celestia faucet](https://docs.celestia.org/how-to-guides/mocha-testnet#mocha-testnet-faucet) diff --git a/developers/developer-guides/tools/clis/weave-cli/installation.mdx b/developers/developer-guides/tools/clis/weave-cli/installation.mdx index 546cd53c..3a9d41b1 100644 --- a/developers/developer-guides/tools/clis/weave-cli/installation.mdx +++ b/developers/developer-guides/tools/clis/weave-cli/installation.mdx @@ -101,8 +101,7 @@ weave analytics disable icon="arrow-right-arrow-left" href="/developers/developer-guides/tools/clis/weave-cli/rollup/relayer" > - Setup and run the IBC relayer. This is necessary for built-in oracle to - work. + Setup and run the IBC relayer. This is necessary for built-in oracle to work. - Weave will send some funds from Gas Station to the OPinit Bot accounts during - this process. Please make sure that your Gas Station account has enough funds - to cover the total amount of funds to be sent (this amount will be shown to - you before sending the funds). + Weave will send some funds from Gas Station to the OPinit Bot accounts during this process. Please make sure that your + Gas Station account has enough funds to cover the total amount of funds to be sent (this amount will be shown to you + before sending the funds). Haven't set up the Gas Station yet? Please [Check out this @@ -49,16 +48,16 @@ weave rollup launch --with-config --vm The directory to store the rollup node data and configuration files. - Path to the rollup config file. Use this flag to launch from a config file - without going through the interactive setup process. + Path to the rollup config file. Use this flag to launch from a config file without going through the interactive setup + process. - The VM to use for the rollup node. The available options are `move`, `wasm`, - and `evm`. **This is required when `--with-config` flag is provided.** + The VM to use for the rollup node. The available options are `move`, `wasm`, and `evm`. **This is required when + `--with-config` flag is provided.** - Force the launch of the rollup node even if the config file already exists. - **This only works when `--with-config` flag is provided.** + Force the launch of the rollup node even if the config file already exists. **This only works when `--with-config` + flag is provided.** ## Running your Rollup node @@ -67,9 +66,8 @@ weave rollup launch --with-config --vm ```bash weave rollup start ``` - Note that `launch` command already starts the rollup node for you. This - command is only needed if you have stopped the node and want to start it - again. + Note that `launch` command already starts the rollup node for you. This command is only needed if you have stopped + the node and want to start it again. **Available Flags** diff --git a/developers/developer-guides/tools/clis/weave-cli/rollup/next-steps.mdx b/developers/developer-guides/tools/clis/weave-cli/rollup/next-steps.mdx index 0f7889ac..ab94893d 100644 --- a/developers/developer-guides/tools/clis/weave-cli/rollup/next-steps.mdx +++ b/developers/developer-guides/tools/clis/weave-cli/rollup/next-steps.mdx @@ -24,11 +24,10 @@ will help you get started: ## Going Live - If you are launching a rollup for testing purposes, you can skip this section. - When your rollup is ready for production and you want it to be publicly - visible in the Initia ecosystem, contact the Initia team first via - [Discord](https://discord.gg/initia) by raising a ticket. We will walk you - through the registry and bridge integration steps described below. + If you are launching a rollup for testing purposes, you can skip this section. When your rollup is ready for + production and you want it to be publicly visible in the Initia ecosystem, contact the Initia team first via + [Discord](https://discord.gg/initia) by raising a ticket. We will walk you through the registry and bridge integration + steps described below. To make your rollup node visible to the Initia ecosystem, register it in the diff --git a/developers/developer-guides/tools/clis/weave-cli/rollup/opinit-bots.mdx b/developers/developer-guides/tools/clis/weave-cli/rollup/opinit-bots.mdx index c9dc3ee4..04f4a16f 100644 --- a/developers/developer-guides/tools/clis/weave-cli/rollup/opinit-bots.mdx +++ b/developers/developer-guides/tools/clis/weave-cli/rollup/opinit-bots.mdx @@ -110,9 +110,8 @@ weave opinit setup-keys The directory to store OPinit bots data and configuration files - Path to the rollup directory that contains the rollup's artifacts. This is - useful when you are setting up OPinit bots for a rollup that you have just - launched, as it can use the artifacts from the rollup to setup the bots. + Path to the rollup directory that contains the rollup's artifacts. This is useful when you are setting up OPinit bots + for a rollup that you have just launched, as it can use the artifacts from the rollup to setup the bots. diff --git a/developers/developer-guides/tools/clis/weave-cli/rollup/relayer.mdx b/developers/developer-guides/tools/clis/weave-cli/rollup/relayer.mdx index 8cf52b06..b3b0413a 100644 --- a/developers/developer-guides/tools/clis/weave-cli/rollup/relayer.mdx +++ b/developers/developer-guides/tools/clis/weave-cli/rollup/relayer.mdx @@ -13,9 +13,8 @@ information about Rapid relayer, see the [Rapid relayer documentation](https://github.com/initia-labs/rapid-relayer). - Weave only supports IBC relayer setup between Initia L1 and Interwoven - Rollups. Setting up relayers between other arbitrary networks is not - supported. + Weave only supports IBC relayer setup between Initia L1 and Interwoven Rollups. Setting up relayers between other + arbitrary networks is not supported. ## Setting up @@ -47,9 +46,8 @@ on the rollup and able to stop other relayers from relaying when it detects a malicious message. - Relayer requires funds to relay messages between Initia L1 and your rollup (if - it's not in the fee whitelist). If Weave detects that your account does not - have enough funds, Weave will ask you to fund via Gas Station. + Relayer requires funds to relay messages between Initia L1 and your rollup (if it's not in the fee whitelist). If + Weave detects that your account does not have enough funds, Weave will ask you to fund via Gas Station. ## Running Relayer @@ -59,8 +57,7 @@ relayer directly. You'll need to manually set up and run the Rapid relayer using the generated configuration. - Make sure you have Node.js and npm installed on your system if you wish to run - the relayer in the same machine. + Make sure you have Node.js and npm installed on your system if you wish to run the relayer in the same machine. diff --git a/developers/developer-guides/tools/indexers/nft-collection-details.mdx b/developers/developer-guides/tools/indexers/nft-collection-details.mdx index d8842c74..69c00cdf 100644 --- a/developers/developer-guides/tools/indexers/nft-collection-details.mdx +++ b/developers/developer-guides/tools/indexers/nft-collection-details.mdx @@ -1,7 +1,6 @@ --- title: NFT Collection Details -api: - GET +api: GET https://rollytics-api-evm-1.anvil.asia-southeast.initia.xyz/indexer/nft/v1/collections/{collection_addr} --- diff --git a/developers/developer-guides/tools/indexers/nft-collections-by-account.mdx b/developers/developer-guides/tools/indexers/nft-collections-by-account.mdx index b63671b8..dc36ec9b 100644 --- a/developers/developer-guides/tools/indexers/nft-collections-by-account.mdx +++ b/developers/developer-guides/tools/indexers/nft-collections-by-account.mdx @@ -1,7 +1,6 @@ --- title: NFT Collections by Account -api: - GET +api: GET https://rollytics-api-evm-1.anvil.asia-southeast.initia.xyz/indexer/nft/v1/collections/by_account/{account} --- diff --git a/developers/developer-guides/tools/indexers/nft-tokens-by-account.mdx b/developers/developer-guides/tools/indexers/nft-tokens-by-account.mdx index f9ca553c..90f42b8a 100644 --- a/developers/developer-guides/tools/indexers/nft-tokens-by-account.mdx +++ b/developers/developer-guides/tools/indexers/nft-tokens-by-account.mdx @@ -1,7 +1,6 @@ --- title: NFT Tokens by Account -api: - GET +api: GET https://rollytics-api-evm-1.anvil.asia-southeast.initia.xyz/indexer/nft/v1/tokens/by_account/{account} --- diff --git a/developers/developer-guides/tools/indexers/nft-tokens-by-collection.mdx b/developers/developer-guides/tools/indexers/nft-tokens-by-collection.mdx index 6825b4ee..a10f6fe7 100644 --- a/developers/developer-guides/tools/indexers/nft-tokens-by-collection.mdx +++ b/developers/developer-guides/tools/indexers/nft-tokens-by-collection.mdx @@ -1,7 +1,6 @@ --- title: NFT Tokens by Collection -api: - GET +api: GET https://rollytics-api-evm-1.anvil.asia-southeast.initia.xyz/indexer/nft/v1/tokens/by_collection/{collection_addr} --- diff --git a/developers/developer-guides/tools/indexers/transactions-by-account.mdx b/developers/developer-guides/tools/indexers/transactions-by-account.mdx index ac229e98..01123a38 100644 --- a/developers/developer-guides/tools/indexers/transactions-by-account.mdx +++ b/developers/developer-guides/tools/indexers/transactions-by-account.mdx @@ -1,7 +1,6 @@ --- title: Transactions by Account -api: - GET +api: GET https://rollytics-api-evm-1.anvil.asia-southeast.initia.xyz/indexer/tx/v1/txs/by_account/{account} --- diff --git a/developers/developer-guides/tools/indexers/transactions-by-hash.mdx b/developers/developer-guides/tools/indexers/transactions-by-hash.mdx index cf065cc0..96244ac1 100644 --- a/developers/developer-guides/tools/indexers/transactions-by-hash.mdx +++ b/developers/developer-guides/tools/indexers/transactions-by-hash.mdx @@ -1,7 +1,6 @@ --- title: Transaction by Hash -api: - GET +api: GET https://rollytics-api-move-1.anvil.asia-southeast.initia.xyz/indexer/tx/v1/txs/{tx_hash} --- diff --git a/developers/developer-guides/tools/indexers/transactions-by-height.mdx b/developers/developer-guides/tools/indexers/transactions-by-height.mdx index d1b666f8..10b9aafa 100644 --- a/developers/developer-guides/tools/indexers/transactions-by-height.mdx +++ b/developers/developer-guides/tools/indexers/transactions-by-height.mdx @@ -1,7 +1,6 @@ --- title: Transactions by Height -api: - GET +api: GET https://rollytics-api-evm-1.anvil.asia-southeast.initia.xyz/indexer/tx/v1/txs/by_height/{height} --- diff --git a/developers/developer-guides/tools/oracles/connect/fetching-prices-from-api/getting-single-asset-price.mdx b/developers/developer-guides/tools/oracles/connect/fetching-prices-from-api/getting-single-asset-price.mdx index 2866d663..4b3313ac 100644 --- a/developers/developer-guides/tools/oracles/connect/fetching-prices-from-api/getting-single-asset-price.mdx +++ b/developers/developer-guides/tools/oracles/connect/fetching-prices-from-api/getting-single-asset-price.mdx @@ -1,7 +1,6 @@ --- title: Single Asset Price -api: - GET /connect/oracle/v2/get_price?currency_pair={baseCurrency}/{quoteCurrency} +api: GET /connect/oracle/v2/get_price?currency_pair={baseCurrency}/{quoteCurrency} --- diff --git a/developers/developer-guides/tools/oracles/connect/fetching-prices-from-contracts.mdx b/developers/developer-guides/tools/oracles/connect/fetching-prices-from-contracts.mdx index c75bf85c..83100d77 100644 --- a/developers/developer-guides/tools/oracles/connect/fetching-prices-from-contracts.mdx +++ b/developers/developer-guides/tools/oracles/connect/fetching-prices-from-contracts.mdx @@ -7,11 +7,7 @@ utilized directly by smart contracts. On Initia, the way that this is done varies depending on the smart contract framework that is used - + Fetch prices from Solidity and other EVM-based smart contracts Fetch prices from Move modules - + Fetch prices from CosmWasm contracts diff --git a/developers/developer-guides/tools/sdks/initia-js/accounts.mdx b/developers/developer-guides/tools/sdks/initia-js/accounts.mdx index 2b4f43d7..e66a2416 100644 --- a/developers/developer-guides/tools/sdks/initia-js/accounts.mdx +++ b/developers/developer-guides/tools/sdks/initia-js/accounts.mdx @@ -12,10 +12,7 @@ import { MnemonicKey } from '@initia/initia.js' const key = new MnemonicKey() ``` - - The mnemonic key is the only way to recover your account if you forget your - password. - +The mnemonic key is the only way to recover your account if you forget your password. ## Importing an Account diff --git a/developers/developer-guides/tools/sdks/initia-js/querying-data.mdx b/developers/developer-guides/tools/sdks/initia-js/querying-data.mdx index 6874aae2..4a35f9fe 100644 --- a/developers/developer-guides/tools/sdks/initia-js/querying-data.mdx +++ b/developers/developer-guides/tools/sdks/initia-js/querying-data.mdx @@ -34,9 +34,8 @@ const restClient = new RESTClient('https://rest.testnet.initia.xyz', { {' '} - Adjust gasPrices and gasAdjustment according to current - [network](/resources/developer/initia-l1) conditions for optimal transaction - processing.{' '} + Adjust gasPrices and gasAdjustment according to current [network](/resources/developer/initia-l1) conditions for + optimal transaction processing.{' '} Next, we will create a function to query the balance of an account. This @@ -118,9 +117,7 @@ VM-agnostic queries are queries that can be used across all VMs. - `balance()` : query the balance of an account ```typescript -const balances = await restClient.bank.balance( - 'init14l3c2vxrdvu6y0sqykppey930s4kufsvt97aeu', -) +const balances = await restClient.bank.balance('init14l3c2vxrdvu6y0sqykppey930s4kufsvt97aeu') ``` - `blockInfo()`: query the block information @@ -132,9 +129,7 @@ const blockInfo = await restClient.tendermint.blockInfo(10000) // If no height i - `txInfo()`: query the transaction information ```typescript -const txInfo = await restClient.tx.txInfo( - '6DFEE8E4BFC38341E8AADBD74A23588D8DE94FA38052CB5721DDA780A24F8B1D', -) +const txInfo = await restClient.tx.txInfo('6DFEE8E4BFC38341E8AADBD74A23588D8DE94FA38052CB5721DDA780A24F8B1D') ``` - `price()`: query the oracle price @@ -165,14 +160,7 @@ const res = await restClient.move.viewFunction( 'object', // name of the module 'owner', // function name ['0x1::object::ObjectCore'], // type arguments - [ - bcs - .object() - .serialize( - '0xc4f0b3c2300c99b0d7717ce43cd76821407a34c79587542919876a8c241a2f94', - ) - .toBase64(), - ], // arguments + [bcs.object().serialize('0xc4f0b3c2300c99b0d7717ce43cd76821407a34c79587542919876a8c241a2f94').toBase64()], // arguments ) ``` @@ -205,8 +193,7 @@ const module = await restClient.move.module('0x1', 'object') - `tableInfo()`: query the move contract table info ```typescript -const tableHandle = - '0xc8c40eef193fc150fcb54264419bd3e39339c2ee8ba5834aed7826a9841cfb53' +const tableHandle = '0xc8c40eef193fc150fcb54264419bd3e39339c2ee8ba5834aed7826a9841cfb53' const entryKeyBytes = 'A0vD7ATVOvfCWo1T7H8Pz2MOt5k6rvsScYEGgXe0QDw=' const tableInfo = await restClient.move.tableInfo(tableHandle) diff --git a/developers/developer-guides/tools/sdks/initia-js/transactions/sending-transactions.mdx b/developers/developer-guides/tools/sdks/initia-js/transactions/sending-transactions.mdx index 756bfe5f..601a2ff1 100644 --- a/developers/developer-guides/tools/sdks/initia-js/transactions/sending-transactions.mdx +++ b/developers/developer-guides/tools/sdks/initia-js/transactions/sending-transactions.mdx @@ -6,14 +6,7 @@ Sending transactions using InitiaJS is straightforward. First, we need to import the necessary classes and functions. ```ts -import { - Wallet, - RESTClient, - MnemonicKey, - MsgSend, - Tx, - WaitTxBroadcastResult, -} from '@initia/initia.js' +import { Wallet, RESTClient, MnemonicKey, MsgSend, Tx, WaitTxBroadcastResult } from '@initia/initia.js' ``` Next, we need to set up our environment variables. We will need the following: @@ -35,10 +28,8 @@ const mnemonic = process.env.MNEMONIC const restUrl = process.env.REST_URL || 'https://rest.testnet.initia.xyz' const gasPrices = process.env.GAS_PRICES || '0.015uinit' // Will be INIT for mainnet -const senderAddress = - process.env.SENDER_ADDRESS || 'init1w4cqq6udjqtvl5xx0x6gjeyzgwtze8c05kysnu' -const recipientAddress = - process.env.RECIPIENT_ADDRESS || 'init1w4cqq6udjqtvl5xx0x6gjeyzgwtze8c05kysnu' +const senderAddress = process.env.SENDER_ADDRESS || 'init1w4cqq6udjqtvl5xx0x6gjeyzgwtze8c05kysnu' +const recipientAddress = process.env.RECIPIENT_ADDRESS || 'init1w4cqq6udjqtvl5xx0x6gjeyzgwtze8c05kysnu' const amount = process.env.AMOUNT || '1000uinit' ``` @@ -72,8 +63,7 @@ async function sendTransaction(): Promise { memo: 'memo', }) - const result: WaitTxBroadcastResult = - await restClient.tx.broadcast(signedTx) + const result: WaitTxBroadcastResult = await restClient.tx.broadcast(signedTx) console.log('Transaction successful') console.log('Transaction hash:', result.txhash) return result @@ -107,23 +97,14 @@ Transaction hash: 4F0B810D15FA7D6A2B9EC2B98B263B0A20E791A8DABCB549620445941B25C6 ### Full Example ```ts src/sending-transactions.ts -import { - Wallet, - RESTClient, - MnemonicKey, - MsgSend, - Tx, - WaitTxBroadcastResult, -} from '@initia/initia.js' +import { Wallet, RESTClient, MnemonicKey, MsgSend, Tx, WaitTxBroadcastResult } from '@initia/initia.js' const mnemonic = process.env.MNEMONIC const restUrl = process.env.REST_URL || 'https://rest.testnet.initia.xyz' const gasPrices = process.env.GAS_PRICES || '0.015uinit' // Will be INIT for mainnet -const senderAddress = - process.env.SENDER_ADDRESS || 'init1w4cqq6udjqtvl5xx0x6gjeyzgwtze8c05kysnu' -const recipientAddress = - process.env.RECIPIENT_ADDRESS || 'init1w4cqq6udjqtvl5xx0x6gjeyzgwtze8c05kysnu' +const senderAddress = process.env.SENDER_ADDRESS || 'init1w4cqq6udjqtvl5xx0x6gjeyzgwtze8c05kysnu' +const recipientAddress = process.env.RECIPIENT_ADDRESS || 'init1w4cqq6udjqtvl5xx0x6gjeyzgwtze8c05kysnu' const amount = process.env.AMOUNT || '1000uinit' const key: MnemonicKey = new MnemonicKey({ mnemonic }) @@ -139,8 +120,7 @@ async function sendTransaction(): Promise { memo: 'memo', }) - const result: WaitTxBroadcastResult = - await restClient.tx.broadcast(signedTx) + const result: WaitTxBroadcastResult = await restClient.tx.broadcast(signedTx) console.log('Transaction successful') console.log('Transaction hash:', result.txhash) return result diff --git a/developers/developer-guides/tools/sdks/initia-js/transactions/signing-transactions.mdx b/developers/developer-guides/tools/sdks/initia-js/transactions/signing-transactions.mdx index 36c44b5c..0d32d278 100644 --- a/developers/developer-guides/tools/sdks/initia-js/transactions/signing-transactions.mdx +++ b/developers/developer-guides/tools/sdks/initia-js/transactions/signing-transactions.mdx @@ -19,14 +19,7 @@ First, we need to import the necessary classes and functions. - `Wallet`: A class that represents a wallet. ```ts -import { - Coins, - Fee, - RESTClient, - MnemonicKey, - MsgSend, - Wallet, -} from '@initia/initia.js' +import { Coins, Fee, RESTClient, MnemonicKey, MsgSend, Wallet } from '@initia/initia.js' import crypto from 'crypto' ``` @@ -49,10 +42,7 @@ data into a transaction hash hex string. ```ts export function getTxHash(tx: Uint8Array): string { - const s256Buffer = crypto - .createHash(`sha256`) - .update(Buffer.from(tx)) - .digest() + const s256Buffer = crypto.createHash(`sha256`).update(Buffer.from(tx)).digest() const txbytes = new Uint8Array(s256Buffer) return Buffer.from(txbytes.slice(0, 32)).toString(`hex`).toUpperCase() } @@ -97,9 +87,7 @@ const msg = new MsgSend(key.accAddress, key.accAddress, '100uinit') // use fixed fee to not estimate gas const gasLimit = 500000 -const feeAmount = new Coins(offlineRestClient.config.gasPrices) - .toArray()[0] - .mul(gasLimit) +const feeAmount = new Coins(offlineRestClient.config.gasPrices).toArray()[0].mul(gasLimit) const fee = new Fee(gasLimit, new Coins([feeAmount])) ``` @@ -144,14 +132,7 @@ console.log(txHash === broadcastRes.txhash) ### Full Example ```ts src/signing-transaction.ts -import { - Coins, - Fee, - RESTClient, - MnemonicKey, - MsgSend, - Wallet, -} from '@initia/initia.js' +import { Coins, Fee, RESTClient, MnemonicKey, MsgSend, Wallet } from '@initia/initia.js' import crypto from 'crypto' const mnemonic = process.env.MNEMONIC @@ -160,10 +141,7 @@ const restUrl = process.env.REST_URL || 'https://rest.testnet.initia.xyz' const gasPrices = process.env.GAS_PRICES || '0.015uinit' // Will be INIT for mainnet export function getTxHash(tx: Uint8Array): string { - const s256Buffer = crypto - .createHash(`sha256`) - .update(Buffer.from(tx)) - .digest() + const s256Buffer = crypto.createHash(`sha256`).update(Buffer.from(tx)).digest() const txbytes = new Uint8Array(s256Buffer) return Buffer.from(txbytes.slice(0, 32)).toString(`hex`).toUpperCase() } @@ -193,9 +171,7 @@ async function offlineSingingTest() { // use fixed fee to not estimate gas const gasLimit = 500000 - const feeAmount = new Coins(offlineRestClient.config.gasPrices) - .toArray()[0] - .mul(gasLimit) + const feeAmount = new Coins(offlineRestClient.config.gasPrices).toArray()[0].mul(gasLimit) const fee = new Fee(gasLimit, new Coins([feeAmount])) diff --git a/developers/developer-guides/vm-specific-tutorials/evm/address-conversion.mdx b/developers/developer-guides/vm-specific-tutorials/evm/address-conversion.mdx index 730bc5f4..126eb303 100644 --- a/developers/developer-guides/vm-specific-tutorials/evm/address-conversion.mdx +++ b/developers/developer-guides/vm-specific-tutorials/evm/address-conversion.mdx @@ -32,8 +32,8 @@ We then create a new file called `index.js` in the `src` directory where we will write our code. - You can use any package that allows you to encode and decode bech32-prefixed - addresses. However, the specific steps for using those packages may vary. + You can use any package that allows you to encode and decode bech32-prefixed addresses. However, the specific steps + for using those packages may vary. ## Development diff --git a/developers/developer-guides/vm-specific-tutorials/evm/api-endpoints/nft-collection-details.mdx b/developers/developer-guides/vm-specific-tutorials/evm/api-endpoints/nft-collection-details.mdx index 8027a85d..d0bb6fb1 100644 --- a/developers/developer-guides/vm-specific-tutorials/evm/api-endpoints/nft-collection-details.mdx +++ b/developers/developer-guides/vm-specific-tutorials/evm/api-endpoints/nft-collection-details.mdx @@ -1,7 +1,6 @@ --- title: NFT Collection Details -api: - GET +api: GET https://rest-evm-1.anvil.asia-southeast.initia.xyz/indexer/nft/v1/collections/{collection_addr} --- diff --git a/developers/developer-guides/vm-specific-tutorials/evm/api-endpoints/nft-collections-by-account.mdx b/developers/developer-guides/vm-specific-tutorials/evm/api-endpoints/nft-collections-by-account.mdx index feea61f1..183e2420 100644 --- a/developers/developer-guides/vm-specific-tutorials/evm/api-endpoints/nft-collections-by-account.mdx +++ b/developers/developer-guides/vm-specific-tutorials/evm/api-endpoints/nft-collections-by-account.mdx @@ -1,7 +1,6 @@ --- title: NFT Collections by Account -api: - GET +api: GET https://rest-evm-1.anvil.asia-southeast.initia.xyz/indexer/nft/v1/collections/by_account/{account} --- diff --git a/developers/developer-guides/vm-specific-tutorials/evm/api-endpoints/nft-tokens-by-account.mdx b/developers/developer-guides/vm-specific-tutorials/evm/api-endpoints/nft-tokens-by-account.mdx index 8a859915..c35bfcfe 100644 --- a/developers/developer-guides/vm-specific-tutorials/evm/api-endpoints/nft-tokens-by-account.mdx +++ b/developers/developer-guides/vm-specific-tutorials/evm/api-endpoints/nft-tokens-by-account.mdx @@ -1,7 +1,6 @@ --- title: NFT Tokens by Account -api: - GET +api: GET https://rest-evm-1.anvil.asia-southeast.initia.xyz/indexer/nft/v1/tokens/by_account/{account} --- diff --git a/developers/developer-guides/vm-specific-tutorials/evm/api-endpoints/nft-tokens-by-collection.mdx b/developers/developer-guides/vm-specific-tutorials/evm/api-endpoints/nft-tokens-by-collection.mdx index 92b397a3..5412939c 100644 --- a/developers/developer-guides/vm-specific-tutorials/evm/api-endpoints/nft-tokens-by-collection.mdx +++ b/developers/developer-guides/vm-specific-tutorials/evm/api-endpoints/nft-tokens-by-collection.mdx @@ -1,7 +1,6 @@ --- title: NFT Tokens by Collection -api: - GET +api: GET https://rest-evm-1.anvil.asia-southeast.initia.xyz/indexer/nft/v1/tokens/by_collection/{collection_addr} --- diff --git a/developers/developer-guides/vm-specific-tutorials/evm/connect-oracles.mdx b/developers/developer-guides/vm-specific-tutorials/evm/connect-oracles.mdx index 544a465a..335bf25b 100644 --- a/developers/developer-guides/vm-specific-tutorials/evm/connect-oracles.mdx +++ b/developers/developer-guides/vm-specific-tutorials/evm/connect-oracles.mdx @@ -7,10 +7,8 @@ title: Using Connect Oracle Compiling contracts that use [ConnectOracle.sol](https://github.com/initia-labs/minievm/blob/main/x/evm/contracts/connect_oracle/ConnectOracle.sol) - requires the - [viaIR](https://soliditylang.org/blog/2024/07/12/a-closer-look-at-via-ir) - feature. For Foundry/Forge, this can be done by using the `--via-ir` flag. The - relevant methods for other tools may vary. + requires the [viaIR](https://soliditylang.org/blog/2024/07/12/a-closer-look-at-via-ir) feature. For Foundry/Forge, + this can be done by using the `--via-ir` flag. The relevant methods for other tools may vary. ### Foundry diff --git a/developers/developer-guides/vm-specific-tutorials/evm/cosmos-coin-to-erc20.mdx b/developers/developer-guides/vm-specific-tutorials/evm/cosmos-coin-to-erc20.mdx index 69e787fd..f5237dea 100644 --- a/developers/developer-guides/vm-specific-tutorials/evm/cosmos-coin-to-erc20.mdx +++ b/developers/developer-guides/vm-specific-tutorials/evm/cosmos-coin-to-erc20.mdx @@ -50,9 +50,7 @@ To actually do the conversion, we will be using the REST's ```js src/index.js // previous code async function erc20ToCoinDenom(contractAddress) { - const response = await fetch( - `${restUrl}/minievm/evm/v1/denoms/${contractAddress}`, - ) + const response = await fetch(`${restUrl}/minievm/evm/v1/denoms/${contractAddress}`) const data = await response.json() return data } @@ -73,9 +71,7 @@ the REST's `/minievm/evm/v1/contracts/by_denom?denom={denom}` endpoint. ```js src/index.js // previous code async function coinDenomToErc20(denom) { - const response = await fetch( - `${restUrl}/minievm/evm/v1/contracts/by_denom?denom=${denom}`, - ) + const response = await fetch(`${restUrl}/minievm/evm/v1/contracts/by_denom?denom=${denom}`) const data = await response.json() return data } @@ -96,16 +92,12 @@ const restUrl = `https://rest-evm-1.anvil.asia-southeast.initia.xyz` const erc20Address = '0x5E5f1a92eECA58053E8364630b66763aa6265Ab0' async function erc20ToCoinDenom(contractAddress) { - const response = await fetch( - `${restUrl}/minievm/evm/v1/denoms/${contractAddress}`, - ) + const response = await fetch(`${restUrl}/minievm/evm/v1/denoms/${contractAddress}`) const data = await response.json() return data } async function coinDenomToErc20(denom) { - const response = await fetch( - `${restUrl}/minievm/evm/v1/contracts/by_denom?denom=${denom}`, - ) + const response = await fetch(`${restUrl}/minievm/evm/v1/contracts/by_denom?denom=${denom}`) const data = await response.json() return data } diff --git a/developers/developer-guides/vm-specific-tutorials/evm/creating-erc20s/creating-custom-erc20s.mdx b/developers/developer-guides/vm-specific-tutorials/evm/creating-erc20s/creating-custom-erc20s.mdx index 9a8ac99f..d1621aa1 100644 --- a/developers/developer-guides/vm-specific-tutorials/evm/creating-erc20s/creating-custom-erc20s.mdx +++ b/developers/developer-guides/vm-specific-tutorials/evm/creating-erc20s/creating-custom-erc20s.mdx @@ -159,11 +159,9 @@ Now that our contract is compiled and ready, we can deploy it to the MiniEVM. To accomplish this, we will use Foundry's `forge create` command - **Security Note:** In this tutorial we export a private key directly in the - terminal for simplicity. This is fine for *testnet* or *throwaway* accounts. - Do **not** use this method for accounts holding real funds. For production - usage, place sensitive keys in a `.env` file (ignored by git) or use a secure - key manager. + **Security Note:** In this tutorial we export a private key directly in the terminal for simplicity. This is fine for + *testnet* or *throwaway* accounts. Do **not** use this method for accounts holding real funds. For production usage, + place sensitive keys in a `.env` file (ignored by git) or use a secure key manager. ```sh diff --git a/developers/developer-guides/vm-specific-tutorials/evm/creating-erc20s/creating-standard-erc20s.mdx b/developers/developer-guides/vm-specific-tutorials/evm/creating-erc20s/creating-standard-erc20s.mdx index aa73ec6b..9672295f 100644 --- a/developers/developer-guides/vm-specific-tutorials/evm/creating-erc20s/creating-standard-erc20s.mdx +++ b/developers/developer-guides/vm-specific-tutorials/evm/creating-erc20s/creating-standard-erc20s.mdx @@ -95,9 +95,8 @@ ERC20_FACTORY_ADDRESS={{FACTORY_CONTRACT_ADDRESS}} ``` - Never share your `.env` file or private key. Anyone with this key can control - your account. Keep it local and **add `.env` to your `.gitignore`** so it is - never committed to Git. + Never share your `.env` file or private key. Anyone with this key can control your account. Keep it local and **add + `.env` to your `.gitignore`** so it is never committed to Git. ## Development @@ -148,13 +147,7 @@ touch src/index.js Start with the imports: ```js -const { - createPublicClient, - createWalletClient, - decodeEventLog, - getContract, - http, -} = require('viem') +const { createPublicClient, createWalletClient, decodeEventLog, getContract, http } = require('viem') const { privateKeyToAccount } = require('viem/accounts') const erc20Abi = require('../abis/erc20Abi.json') const erc20FactoryAbi = require('../abis/erc20FactoryAbi.json') @@ -164,8 +157,7 @@ const miniEVM = require('./chain') Load the environment variables: - You can also find factory addresses on the - [Networks](/resources/developer/initia-l1) page or by calling the + You can also find factory addresses on the [Networks](/resources/developer/initia-l1) page or by calling the `/minievm/evm/v1/contracts/erc20_factory` endpoint on any MiniEVM rollup. @@ -176,9 +168,7 @@ const rawPrivateKey = process.env.PRIVATE_KEY if (!rawPrivateKey) { throw new Error('PRIVATE_KEY environment variable is not set.') } -const privateKey = rawPrivateKey.startsWith('0x') - ? rawPrivateKey - : `0x${rawPrivateKey}` +const privateKey = rawPrivateKey.startsWith('0x') ? rawPrivateKey : `0x${rawPrivateKey}` const erc20FactoryAddress = process.env.ERC20_FACTORY_ADDRESS if (!erc20FactoryAddress) { @@ -276,13 +266,7 @@ createERC20() Here is the entire script for reference: ```js -const { - createPublicClient, - createWalletClient, - decodeEventLog, - getContract, - http, -} = require('viem') +const { createPublicClient, createWalletClient, decodeEventLog, getContract, http } = require('viem') const { privateKeyToAccount } = require('viem/accounts') const erc20Abi = require('../abis/erc20Abi.json') const erc20FactoryAbi = require('../abis/erc20FactoryAbi.json') @@ -294,9 +278,7 @@ const rawPrivateKey = process.env.PRIVATE_KEY if (!rawPrivateKey) { throw new Error('PRIVATE_KEY environment variable is not set.') } -const privateKey = rawPrivateKey.startsWith('0x') - ? rawPrivateKey - : `0x${rawPrivateKey}` +const privateKey = rawPrivateKey.startsWith('0x') ? rawPrivateKey : `0x${rawPrivateKey}` const erc20FactoryAddress = process.env.ERC20_FACTORY_ADDRESS if (!erc20FactoryAddress) { diff --git a/developers/developer-guides/vm-specific-tutorials/evm/creating-erc20s/introduction.mdx b/developers/developer-guides/vm-specific-tutorials/evm/creating-erc20s/introduction.mdx index c7d8d177..37f6036b 100644 --- a/developers/developer-guides/vm-specific-tutorials/evm/creating-erc20s/introduction.mdx +++ b/developers/developer-guides/vm-specific-tutorials/evm/creating-erc20s/introduction.mdx @@ -16,6 +16,5 @@ Developers looking to create and deploy ERC20s on EVM rollups have two options: contract. - While Initia's `CustomERC20.sol` contains additional logic, it is still fully - compatible with the ERC20 standard. + While Initia's `CustomERC20.sol` contains additional logic, it is still fully compatible with the ERC20 standard. diff --git a/developers/developer-guides/vm-specific-tutorials/evm/ibc-hooks.mdx b/developers/developer-guides/vm-specific-tutorials/evm/ibc-hooks.mdx index 397e0330..ee9afc2e 100644 --- a/developers/developer-guides/vm-specific-tutorials/evm/ibc-hooks.mdx +++ b/developers/developer-guides/vm-specific-tutorials/evm/ibc-hooks.mdx @@ -279,14 +279,7 @@ After the contract is deployed and the ACL is set, we can execute the IBC hooks message to call the contract. ```typescript -import { - Coin, - Height, - RESTClient, - MnemonicKey, - MsgTransfer, - Wallet, -} from '@initia/initia.js' +import { Coin, Height, RESTClient, MnemonicKey, MsgTransfer, Wallet } from '@initia/initia.js' import { ethers } from 'ethers' import * as fs from 'fs' @@ -310,9 +303,7 @@ async function main() { const amount = '1000' - const contractInfo = JSON.parse( - fs.readFileSync('./bin/Counter.json').toString(), - ) + const contractInfo = JSON.parse(fs.readFileSync('./bin/Counter.json').toString()) const abi = contractInfo.abi const contractAddress = '0x4cb5cE12e3bB85348791A3cDd4dc3A5b7836270e' diff --git a/developers/developer-guides/vm-specific-tutorials/evm/update-fee-token.mdx b/developers/developer-guides/vm-specific-tutorials/evm/update-fee-token.mdx index a17fdc93..514c8c46 100644 --- a/developers/developer-guides/vm-specific-tutorials/evm/update-fee-token.mdx +++ b/developers/developer-guides/vm-specific-tutorials/evm/update-fee-token.mdx @@ -16,19 +16,10 @@ Fee Token as an ERC20 token. Use validator (admin) account to update the chain parameter. - - The deployed ERC20 token must inherit the `InitiaERC20` contract. - +The deployed ERC20 token must inherit the `InitiaERC20` contract. ```ts -import { - EvmParams, - RESTClient, - MnemonicKey, - MsgUpdateEvmParams, - Wallet, - MsgExecuteMessages, -} from '@initia/initia.js' +import { EvmParams, RESTClient, MnemonicKey, MsgUpdateEvmParams, Wallet, MsgExecuteMessages } from '@initia/initia.js' /** * main() demonstrates how to update EVM-related chain parameters (such as fee denom, allowed publishers, etc.). diff --git a/developers/developer-guides/vm-specific-tutorials/movevm/ibc-hooks.mdx b/developers/developer-guides/vm-specific-tutorials/movevm/ibc-hooks.mdx index 33d7f43c..933368eb 100644 --- a/developers/developer-guides/vm-specific-tutorials/movevm/ibc-hooks.mdx +++ b/developers/developer-guides/vm-specific-tutorials/movevm/ibc-hooks.mdx @@ -310,15 +310,7 @@ After the contract is deployed and the ACL is set, we can execute the IBC hooks message to call the contract. ```typescript -import { - bcs, - Coin, - Height, - RESTClient, - MnemonicKey, - MsgTransfer, - Wallet, -} from '@initia/initia.js' +import { bcs, Coin, Height, RESTClient, MnemonicKey, MsgTransfer, Wallet } from '@initia/initia.js' function createHook(params: object) { const hook = { move: { message: params } } @@ -331,14 +323,10 @@ async function main() { gasPrices: '0.015uinit', }) - const l2RestClient = new RESTClient( - 'https://rest-move-1.anvil.asia-southeast.initia.xyz', - { - gasAdjustment: '1.75', - gasPrices: - '0.15l2/07b129ceb9c4b0bdef7db171ce1e22f90d34bc930058b23e21adf8cc938d8145', // set l2 gas price - }, - ) + const l2RestClient = new RESTClient('https://rest-move-1.anvil.asia-southeast.initia.xyz', { + gasAdjustment: '1.75', + gasPrices: '0.15l2/07b129ceb9c4b0bdef7db171ce1e22f90d34bc930058b23e21adf8cc938d8145', // set l2 gas price + }) const sender = new Wallet( l2RestClient, diff --git a/developers/developer-guides/vm-specific-tutorials/movevm/multisig.mdx b/developers/developer-guides/vm-specific-tutorials/movevm/multisig.mdx index e3f6d031..2b077cb8 100644 --- a/developers/developer-guides/vm-specific-tutorials/movevm/multisig.mdx +++ b/developers/developer-guides/vm-specific-tutorials/movevm/multisig.mdx @@ -48,11 +48,7 @@ const msgCreateNonWeightedMultisigAccount = new MsgExecute( bcs.string().serialize(multisigName), // name bcs .vector(bcs.address()) - .serialize([ - multisigCreator.key.accAddress, - multisigMember1.key.accAddress, - multisigMember2.key.accAddress, - ]), // members + .serialize([multisigCreator.key.accAddress, multisigMember1.key.accAddress, multisigMember2.key.accAddress]), // members bcs.u64().serialize(2), // threshold ].map((v) => v.toBase64()), ) @@ -105,11 +101,7 @@ const msgMiultiSigProposal1 = new MsgSend( // Proposal 2. send token with `0x1::coin::transfer` function const msgMiultiSigProposal2Args = [ bcs.address().serialize(recipient), // recipient - bcs - .object() - .serialize( - '0x8e4733bdabcf7d4afc3d14f0dd46c9bf52fb0fce9e4b996c939e195b8bc891d9', - ), // coin metadata + bcs.object().serialize('0x8e4733bdabcf7d4afc3d14f0dd46c9bf52fb0fce9e4b996c939e195b8bc891d9'), // coin metadata bcs.u64().serialize(1_000_000), // amount ] @@ -130,9 +122,7 @@ const msgCreateProposal = new MsgExecute( [ ...bcs .vector(bcs.u8()) - .serialize( - Buffer.from(JSON.stringify(msgMiultiSigProposal1.toData())), - ) + .serialize(Buffer.from(JSON.stringify(msgMiultiSigProposal1.toData()))) .toBytes(), ], ], @@ -167,11 +157,9 @@ const msgVoteProposal1 = new MsgExecute( 'multisig_v2', 'vote_proposal', [], - [ - bcs.address().serialize(multisigAddress), - bcs.u64().serialize(1), - bcs.bool().serialize(true), - ].map((v) => v.toBase64()), + [bcs.address().serialize(multisigAddress), bcs.u64().serialize(1), bcs.bool().serialize(true)].map((v) => + v.toBase64(), + ), ) ``` @@ -198,10 +186,9 @@ const msgExecuteProposal = new MsgExecute( 'multisig_v2', 'execute_proposal', [], - [ - bcs.address().serialize(AccAddress.toHex(multisigAddress)), - bcs.u64().serialize(proposalId), - ].map((v) => v.toBase64()), + [bcs.address().serialize(AccAddress.toHex(multisigAddress)), bcs.u64().serialize(proposalId)].map((v) => + v.toBase64(), + ), ) ``` diff --git a/developers/developer-guides/vm-specific-tutorials/wasmvm/ibc-hooks.mdx b/developers/developer-guides/vm-specific-tutorials/wasmvm/ibc-hooks.mdx index 6bb96be9..53f427f9 100644 --- a/developers/developer-guides/vm-specific-tutorials/wasmvm/ibc-hooks.mdx +++ b/developers/developer-guides/vm-specific-tutorials/wasmvm/ibc-hooks.mdx @@ -63,10 +63,9 @@ So we detail where we want to get each of these fields from: representation. - Due to a [bug](https://x.com/SCVSecurity/status/1682329758020022272) in the - packet forward middleware, we cannot trust the sender from chains that use - PFM. Until that is fixed, we recommend chains to not trust the sender on - contracts executed via IBC hooks. + Due to a [bug](https://x.com/SCVSecurity/status/1682329758020022272) in the packet forward middleware, we cannot trust + the sender from chains that use PFM. Until that is fixed, we recommend chains to not trust the sender on contracts + executed via IBC hooks. ```go @@ -300,15 +299,7 @@ After the contract is deployed and the ACL is set, we can execute the IBC hooks message to call the contract. ```typescript -import { - Coin, - Height, - RESTClient, - MnemonicKey, - MsgTransfer, - sha256, - Wallet, -} from '@initia/initia.js' +import { Coin, Height, RESTClient, MnemonicKey, MsgTransfer, sha256, Wallet } from '@initia/initia.js' function createHook(params: object) { const hook = { wasm: { message: params } } @@ -350,8 +341,7 @@ async function main() { new Height(0, 0), ((new Date().valueOf() + 100000) * 1000000).toString(), createHook({ - contract: - 'init1436kxs0w2es6xlqpp9rd35e3d0cjnw4sv8j3a7483sgks29jqwgs9nxzw8', + contract: 'init1436kxs0w2es6xlqpp9rd35e3d0cjnw4sv8j3a7483sgks29jqwgs9nxzw8', msg: { simple_transfer: { amount: Number(amount), diff --git a/developers/running-nodes/introduction.mdx b/developers/running-nodes/introduction.mdx index 81c3f960..f47e7377 100644 --- a/developers/running-nodes/introduction.mdx +++ b/developers/running-nodes/introduction.mdx @@ -7,9 +7,8 @@ The following guide will walk you through the steps of how to run an Initia node and optionally to join the Initia network as a validator. - This guide has been tested against Linux distributions only. While it might be - possible to run an Initia node on other operating systems, the process is not - as straightforward and may require additional configuration. + This guide has been tested against Linux distributions only. While it might be possible to run an Initia node on other + operating systems, the process is not as straightforward and may require additional configuration. ## Hardware Requirements diff --git a/developers/running-nodes/manual-setup/node-configuration.mdx b/developers/running-nodes/manual-setup/node-configuration.mdx index b400a41d..0f94e11b 100644 --- a/developers/running-nodes/manual-setup/node-configuration.mdx +++ b/developers/running-nodes/manual-setup/node-configuration.mdx @@ -25,9 +25,8 @@ where: the [Networks](/resources/developer/initia-l1) section of the docs - Note that the `moniker` field here is the name of the node itself and does not - apply to the validator name/moniker. The validator name/moniker is set when - you create your validator and is used to identify your validator on the + Note that the `moniker` field here is the name of the node itself and does not apply to the validator name/moniker. + The validator name/moniker is set when you create your validator and is used to identify your validator on the network. diff --git a/developers/running-nodes/manual-setup/node-setup.mdx b/developers/running-nodes/manual-setup/node-setup.mdx index dcf1e723..15efdc73 100644 --- a/developers/running-nodes/manual-setup/node-setup.mdx +++ b/developers/running-nodes/manual-setup/node-setup.mdx @@ -65,9 +65,7 @@ opened by a process to 1024. It is recomemneded that you increase this amount. To do so, modify `/etc/security/limits.conf` to increase the amount. The `nofile` is the number of files a process may open at a time. - - If you are using a non-root user, replace `*` with the username of the user. - +If you are using a non-root user, replace `*` with the username of the user. ```sh limits.conf * soft nofile 65535 diff --git a/developers/running-nodes/manual-setup/starting-the-node.mdx b/developers/running-nodes/manual-setup/starting-the-node.mdx index 1c9fa6a9..8e6104fb 100644 --- a/developers/running-nodes/manual-setup/starting-the-node.mdx +++ b/developers/running-nodes/manual-setup/starting-the-node.mdx @@ -25,18 +25,15 @@ snapshot syncing and StateSync - A chain snapshot sync works by downloading the entire state of the chain at - a certain height and then running the node off of that states. Nodes that - uses snapshots usually have more historical transaction and block data - compared to nodes that use StateSync. However, in exchange, snapshot syncing - is typically much slower due to more information required to be downloaded. + A chain snapshot sync works by downloading the entire state of the chain at a certain height and then running the + node off of that states. Nodes that uses snapshots usually have more historical transaction and block data compared + to nodes that use StateSync. However, in exchange, snapshot syncing is typically much slower due to more information + required to be downloaded. - A StateSync works by directly downloading the application state from other - nodes in the network. Unlike syncing from a snapshot, StateSync focuses on - the downloading the processing the current state of the chain, ignoring - historical transactions and block. However, in exchange for this, - state-syncing is typically much faster + A StateSync works by directly downloading the application state from other nodes in the network. Unlike syncing from + a snapshot, StateSync focuses on the downloading the processing the current state of the chain, ignoring historical + transactions and block. However, in exchange for this, state-syncing is typically much faster diff --git a/developers/running-nodes/running-a-validator/becoming-a-validator.mdx b/developers/running-nodes/running-a-validator/becoming-a-validator.mdx index fa05951e..4e2b1b74 100644 --- a/developers/running-nodes/running-a-validator/becoming-a-validator.mdx +++ b/developers/running-nodes/running-a-validator/becoming-a-validator.mdx @@ -3,9 +3,8 @@ title: Becoming a Validator --- - Before proceeding to create the a validator, first make sure that your Initia - node is fully synced to the latest height. This can be done by running - comparing the latest block height of your node with those of the network. + Before proceeding to create the a validator, first make sure that your Initia node is fully synced to the latest + height. This can be done by running comparing the latest block height of your node with those of the network. ## Create the Validator Account @@ -65,10 +64,8 @@ If the command returns something, your validator is in the active and is actively proposing and signing blocks. - Only the top 130 validators in voting power are included in the active - validator set. This means that even if you `CreateValidator` transaction - passes, your validator might not be active until it has sufficient token - delegations. + Only the top 130 validators in voting power are included in the active validator set. This means that even if you + `CreateValidator` transaction passes, your validator might not be active until it has sufficient token delegations. ## Secure Your Validator Keys diff --git a/docs.json b/docs.json index df76bee4..d9311dd3 100644 --- a/docs.json +++ b/docs.json @@ -171,9 +171,7 @@ }, { "group": "KV Indexer (Legacy)", - "pages": [ - "nodes-and-rollups/indexing/kv-indexer/legacy-overview" - ] + "pages": ["nodes-and-rollups/indexing/kv-indexer/legacy-overview"] } ] } @@ -270,9 +268,7 @@ { "group": "DEX", "icon": "swap", - "pages": [ - "developers/developer-guides/integrating-initia-apps/initiadex" - ] + "pages": ["developers/developer-guides/integrating-initia-apps/initiadex"] }, { "group": "VIP", @@ -287,9 +283,7 @@ { "group": "Usernames", "icon": "user", - "pages": [ - "developers/developer-guides/integrating-initia-apps/usernames" - ] + "pages": ["developers/developer-guides/integrating-initia-apps/usernames"] } ] }, @@ -354,9 +348,7 @@ }, { "group": "Rollup CLI", - "pages": [ - "developers/developer-guides/tools/clis/minitiad-cli/introduction" - ] + "pages": ["developers/developer-guides/tools/clis/minitiad-cli/introduction"] } ] }, @@ -452,9 +444,7 @@ }, { "group": "Components", - "pages": [ - "interwovenkit/references/components/interwovenkit-provider" - ] + "pages": ["interwovenkit/references/components/interwovenkit-provider"] }, { "group": "Hooks", diff --git a/home/core-concepts/minitswap/architecture.mdx b/home/core-concepts/minitswap/architecture.mdx index c194f068..9bf5a340 100644 --- a/home/core-concepts/minitswap/architecture.mdx +++ b/home/core-concepts/minitswap/architecture.mdx @@ -2,13 +2,7 @@ title: Minitswap Architecture --- -import { - INIT, - IbcOpINIT, - FullyRecoveredRatio, - MaxRatio, - Flexibility, -} from '/snippets/terminology.mdx' +import { INIT, IbcOpINIT, FullyRecoveredRatio, MaxRatio, Flexibility } from '/snippets/terminology.mdx' ## Goals @@ -26,9 +20,8 @@ import { Minitswap itself is designed as a virtual pool DEX between INIT and the various -IbcOpINIT tokens for each of the rollups. The -exchange rates on each swap are determined by the -[StableSwap](https://docs.curve.finance/stableswap-exchange/overview/) formula. +IbcOpINIT tokens for each of the rollups. The exchange rates on each swap are +determined by the [StableSwap](https://docs.curve.finance/stableswap-exchange/overview/) formula. To achieve the above goals, two main improvements are made to the base StableSwap pool design: @@ -163,9 +156,7 @@ $$ #### Peg Keeper Swaps - - ![Peg Keeper Swaps](/images/minitswap/minitswap_peg_keeper_swaps.png) - +![Peg Keeper Swaps](/images/minitswap/minitswap_peg_keeper_swaps.png) The Peg Keeper Swap is a mechanism designed to keep the exchange rate between $INIT$ and $IbcOpINIT$ close to 1:1. This ensures that users always receive the diff --git a/home/core-concepts/minitswap/introduction.mdx b/home/core-concepts/minitswap/introduction.mdx index d8d8085b..0346f1a7 100644 --- a/home/core-concepts/minitswap/introduction.mdx +++ b/home/core-concepts/minitswap/introduction.mdx @@ -2,13 +2,7 @@ title: Minitswap Introduction --- -import { - INIT, - m, - OpINIT, - IbcOpINIT, - OPinitBridge, -} from '/snippets/terminology.mdx' +import { INIT, m, OpINIT, IbcOpINIT, OPinitBridge } from '/snippets/terminology.mdx' Minitswap is Initia's proprietary solution to address the user experience challenges posed by the lengthy withdrawal diff --git a/home/core-concepts/vip/architecture.mdx b/home/core-concepts/vip/architecture.mdx index 7a572bc4..cc38368f 100644 --- a/home/core-concepts/vip/architecture.mdx +++ b/home/core-concepts/vip/architecture.mdx @@ -11,16 +11,14 @@ The total rewards are first distributed to each rollup, then subsequently to the rollup's users and operators. - Before a rollup can qualify for VIP rewards, it must first achieve a minimum - INIT TVL and then be whitelisted by the Initia L1 governance through an - on-chain proposal. See the [VIP - Eligibility](/home/core-concepts/vip/eligibility) page for more details. + Before a rollup can qualify for VIP rewards, it must first achieve a minimum INIT TVL and then be whitelisted by the + Initia L1 governance through an on-chain proposal. See the [VIP Eligibility](/home/core-concepts/vip/eligibility) page + for more details. - For details on the specific VIP parameters such as stage and cycle duration, - see the [VIP Parameters](/resources/developer/initia-l1#vip-parameters) - section. + For details on the specific VIP parameters such as stage and cycle duration, see the [VIP + Parameters](/resources/developer/initia-l1#vip-parameters) section. ## Rewards Distribution @@ -40,9 +38,7 @@ At each stage $t$, the total VIP rewards for that stage $R_t$ are distributed amongst each rollup ecosystem. The total rewards are then split into two pools: the **Balance Pool $R_B$** and the **Weight Pool $R_W$**. - - ![VIP Rewards Distribution](/images/vip/vip_rewards_distribution.png) - +![VIP Rewards Distribution](/images/vip/vip_rewards_distribution.png) These two pools aim to incentivize and reward different aspects of rollup operations. The ratio between $R_B$ and $R_W$, called `poolSplitRatio`, is set @@ -138,8 +134,7 @@ active and useful, they can set an `operatorCommissionRate`, $c$. This rate allows them to take a portion of the rewards for their rollup. - ![VIP Operator Rewards - Distribution](/images/vip/vip_distribution_operators.png) + ![VIP Operator Rewards Distribution](/images/vip/vip_distribution_operators.png) The rewards for an operator $o$ of rollup $m$ during a stage are: @@ -173,9 +168,7 @@ These tokens are initially non-transferable and can be vested in two ways: 2. **Convert into LP Lock-Staked Position:** Convert the escrowed tokens into a whitelisted INIT:TOKEN staking position. - - ![VIP User Vesting](/images/vip/vip_rewards_vesting_users.png) - +![VIP User Vesting](/images/vip/vip_rewards_vesting_users.png) #### Maintaining a VIP Score diff --git a/home/core-concepts/vip/eligibility.mdx b/home/core-concepts/vip/eligibility.mdx index 2479b9f6..a9413764 100644 --- a/home/core-concepts/vip/eligibility.mdx +++ b/home/core-concepts/vip/eligibility.mdx @@ -28,8 +28,7 @@ proposals, the whitelisting proposal will be voted on by INIT and Enshrined Liquidity stakers. - - Rollups that add little value to the ecosystem (e.g., rollups that only - accumulate TVL with no productive use case) - Rollups that exist solely to - allow the corresponding app to qualify for VIP rewards (e.g., rollups where - the app is otherwise completely off-chain) + - Rollups that add little value to the ecosystem (e.g., rollups that only accumulate TVL with no productive use case) + - Rollups that exist solely to allow the corresponding app to qualify for VIP rewards (e.g., rollups where the app is + otherwise completely off-chain) diff --git a/home/general/welcome.mdx b/home/general/welcome.mdx index 69bcdf32..69c2fbb6 100644 --- a/home/general/welcome.mdx +++ b/home/general/welcome.mdx @@ -14,24 +14,14 @@ accessibility to the application ecosystem. ## Learn More About Initia - + Discover the framework that powers all of Initia's rollups. - - Initia's solution to bootstrapping cross-chain liquidity while maintaining - network security. + + Initia's solution to bootstrapping cross-chain liquidity while maintaining network security. - Initia's incentive program that aims to foster long-term ecosystem-wide - alignment. + Initia's incentive program that aims to foster long-term ecosystem-wide alignment. diff --git a/home/tools/wallet.mdx b/home/tools/wallet.mdx index 655f8ea9..9a88969b 100644 --- a/home/tools/wallet.mdx +++ b/home/tools/wallet.mdx @@ -5,4 +5,4 @@ icon: wallet One barrier for users onboarding into a new ecosystem has always been the need to download, install, and use a new wallet. With the Initia Wallet, users can sign in to an application using their existing EVM-compatible wallet, regardless of the VM or smart contract language the application uses.. -For those without an existing wallet, the Initia Wallet also allows users to create a new wallet using their email address or Google or Twitter account, protected by [Privy](https://privy.io/). \ No newline at end of file +For those without an existing wallet, the Initia Wallet also allows users to create a new wallet using their email address or Google or Twitter account, protected by [Privy](https://privy.io/). diff --git a/interwovenkit/features/autosign/api-reference.mdx b/interwovenkit/features/autosign/api-reference.mdx index c8993015..eb145034 100644 --- a/interwovenkit/features/autosign/api-reference.mdx +++ b/interwovenkit/features/autosign/api-reference.mdx @@ -42,8 +42,8 @@ interface AutoSign { Indicates whether autosign status is currently being checked. - Returns `true` when autosign status is being initialized or checked, `false` - otherwise. Use this to show loading indicators in your UI. + Returns `true` when autosign status is being initialized or checked, `false` otherwise. Use this to show loading + indicators in your UI. **Example:** @@ -65,9 +65,8 @@ function AutosignButton() { Expiration date for autosign on the default chain. - Returns a `Date` object representing when autosign expires on the default - chain, or `null` if autosign is not enabled. Use this to display expiration - information and check if autosign is currently active. + Returns a `Date` object representing when autosign expires on the default chain, or `null` if autosign is not enabled. + Use this to display expiration information and check if autosign is currently active. **Example:** @@ -89,10 +88,8 @@ function ExpirationDisplay() { Map of chain IDs to expiration timestamps for all configured chains. - Returns an object mapping chain IDs to expiration timestamps (in milliseconds - since epoch). Use this for multi-chain applications to check autosign status - across multiple chains. Returns `null` for chains where autosign is not - enabled. + Returns an object mapping chain IDs to expiration timestamps (in milliseconds since epoch). Use this for multi-chain + applications to check autosign status across multiple chains. Returns `null` for chains where autosign is not enabled. **Example:** diff --git a/interwovenkit/features/autosign/configuration.mdx b/interwovenkit/features/autosign/configuration.mdx index f7646f31..d0f8a1cf 100644 --- a/interwovenkit/features/autosign/configuration.mdx +++ b/interwovenkit/features/autosign/configuration.mdx @@ -73,8 +73,8 @@ dashboard to ensure security and proper functionality: - Any staging domains you use - Privy services will only work on domains you've explicitly allowed. Add all - domains where your application will run, including localhost for development. + Privy services will only work on domains you've explicitly allowed. Add all domains where your application will run, + including localhost for development. @@ -100,17 +100,8 @@ wallets and autosign: prevent autosign from working. ```tsx providers.tsx -import { - PrivyProvider, - useCreateWallet, - useLoginWithSiwe, - usePrivy, - useWallets, -} from '@privy-io/react-auth' -import { - InterwovenKitProvider, - PRIVY_APP_ID, -} from '@initia/interwovenkit-react' +import { PrivyProvider, useCreateWallet, useLoginWithSiwe, usePrivy, useWallets } from '@privy-io/react-auth' +import { InterwovenKitProvider, PRIVY_APP_ID } from '@initia/interwovenkit-react' function InterwovenKitWrapper({ children }) { const privy = usePrivy() @@ -194,10 +185,9 @@ intentionally restrictive. ``` - If you later need to support token transfers, staking, or multiple chains, you - must switch from the boolean configuration to the per-chain configuration in - the [Advanced Configuration](#advanced-configuration-explicit-permissions) - section. + If you later need to support token transfers, staking, or multiple chains, you must switch from the boolean + configuration to the per-chain configuration in the [Advanced + Configuration](#advanced-configuration-explicit-permissions) section. When using boolean configuration, InterwovenKit automatically: @@ -246,6 +236,6 @@ The `enableAutoSign` prop accepts an object where: - **Staking**: `/cosmos.staking.v1beta1.MsgDelegate` - Only grant permissions for message types that your application actually needs. - Granting overly broad permissions increases security risk. + Only grant permissions for message types that your application actually needs. Granting overly broad permissions + increases security risk. diff --git a/interwovenkit/features/autosign/introduction.mdx b/interwovenkit/features/autosign/introduction.mdx index 6ad9457a..18f6c252 100644 --- a/interwovenkit/features/autosign/introduction.mdx +++ b/interwovenkit/features/autosign/introduction.mdx @@ -1,7 +1,6 @@ --- title: Introduction -description: - Learn about autosign and ghost wallets for seamless transaction signing. +description: Learn about autosign and ghost wallets for seamless transaction signing. icon: robot --- @@ -14,9 +13,8 @@ users, providing a seamless user experience while maintaining security through granular permission controls. - Autosign is built on the Cosmos SDK's `authz` and `feegrant` modules, allowing - fine-grained control over which transaction types can be automatically signed - and when permissions expire. + Autosign is built on the Cosmos SDK's `authz` and `feegrant` modules, allowing fine-grained control over which + transaction types can be automatically signed and when permissions expire. ## What Are Ghost Wallets? diff --git a/interwovenkit/features/autosign/usage.mdx b/interwovenkit/features/autosign/usage.mdx index c6f5b532..ff81855e 100644 --- a/interwovenkit/features/autosign/usage.mdx +++ b/interwovenkit/features/autosign/usage.mdx @@ -1,7 +1,6 @@ --- title: Usage -description: - Learn how to enable, disable, and manage autosign in your application +description: Learn how to enable, disable, and manage autosign in your application icon: play --- @@ -83,18 +82,15 @@ When `autoSign.enable()` is called: - The user can select an expiration duration from available defaults or use a - custom duration. + The user can select an expiration duration from available defaults or use a custom duration. - Privy creates an embedded wallet if one does not exist. This happens - automatically in the background. + Privy creates an embedded wallet if one does not exist. This happens automatically in the background. - The user signs a single transaction to grant `authz` and `feegrant` - permissions to the ghost wallet. + The user signs a single transaction to grant `authz` and `feegrant` permissions to the ghost wallet. diff --git a/interwovenkit/features/transfers/deposit-withdraw.mdx b/interwovenkit/features/transfers/deposit-withdraw.mdx index 3bc5e8ed..1d192898 100644 --- a/interwovenkit/features/transfers/deposit-withdraw.mdx +++ b/interwovenkit/features/transfers/deposit-withdraw.mdx @@ -20,20 +20,8 @@ function TransferButtons() { return ( <> - - + + ) } diff --git a/interwovenkit/getting-started.mdx b/interwovenkit/getting-started.mdx index a0974cc4..06f9b180 100644 --- a/interwovenkit/getting-started.mdx +++ b/interwovenkit/getting-started.mdx @@ -1,7 +1,6 @@ --- title: Getting Started -description: - Integrate Initia Wallet into your React application with InterwovenKit +description: Integrate Initia Wallet into your React application with InterwovenKit icon: play --- @@ -52,26 +51,13 @@ reference implementation. ## Existing Projects - - Set up InterwovenKit as the default wallet connection option for your - application + + Set up InterwovenKit as the default wallet connection option for your application - + Integrate InterwovenKit with an existing EVM application - + Integrate InterwovenKit with an existing RainbowKit application diff --git a/interwovenkit/integrations/evm.mdx b/interwovenkit/integrations/evm.mdx index a2136a00..549e5900 100644 --- a/interwovenkit/integrations/evm.mdx +++ b/interwovenkit/integrations/evm.mdx @@ -14,9 +14,8 @@ approach allows you to: - Maintain seamless connectivity between different blockchain environments - **Non-EVM chains**: If your chain is not EVM-based, you can leave the default - chain set to mainnet. Initia Wallet won't actually connect to Ethereum—it only - uses an arbitrary signer to sign amino messages. + **Non-EVM chains**: If your chain is not EVM-based, you can leave the default chain set to mainnet. Initia Wallet + won't actually connect to Ethereum—it only uses an arbitrary signer to sign amino messages. ## Setup Guide @@ -35,12 +34,7 @@ provider. import { PropsWithChildren, useEffect } from 'react' import { createConfig, http, WagmiProvider } from 'wagmi' import { QueryClient, QueryClientProvider } from '@tanstack/react-query' -import { - initiaPrivyWalletConnector, - injectStyles, - InterwovenKitProvider, - TESTNET, -} from '@initia/interwovenkit-react' +import { initiaPrivyWalletConnector, injectStyles, InterwovenKitProvider, TESTNET } from '@initia/interwovenkit-react' import interwovenKitStyles from '@initia/interwovenkit-react/styles.js' const minievm = { @@ -92,12 +86,10 @@ export default function Providers({ children }: PropsWithChildren) { for Minievm testnet) - **Chain ID Configuration**: The `defaultChainId` parameter sets the primary - blockchain for Initia Wallet operations. For EVM rollups, use your rollup's - chain ID (like `"minievm-2"`), not the EVM chain ID. This ensures proper - balance display and bridging functionality. See [InterwovenKitProvider - reference](/interwovenkit/references/components/interwovenkit-provider) for - more details. + **Chain ID Configuration**: The `defaultChainId` parameter sets the primary blockchain for Initia Wallet operations. + For EVM rollups, use your rollup's chain ID (like `"minievm-2"`), not the EVM chain ID. This ensures proper balance + display and bridging functionality. See [InterwovenKitProvider + reference](/interwovenkit/references/components/interwovenkit-provider) for more details. @@ -128,12 +120,7 @@ to: 'use client' import { parseEther } from 'viem' -import { - useAccount, - useChainId, - useSendTransaction, - useSwitchChain, -} from 'wagmi' +import { useAccount, useChainId, useSendTransaction, useSwitchChain } from 'wagmi' import { truncate } from '@initia/utils' import { useInterwovenKit } from '@initia/interwovenkit-react' diff --git a/interwovenkit/integrations/native.mdx b/interwovenkit/integrations/native.mdx index a297b153..ae223e79 100644 --- a/interwovenkit/integrations/native.mdx +++ b/interwovenkit/integrations/native.mdx @@ -63,11 +63,7 @@ import { PropsWithChildren, useEffect } from 'react' import { createConfig, http, WagmiProvider } from 'wagmi' import { mainnet } from 'wagmi/chains' import { QueryClient, QueryClientProvider } from '@tanstack/react-query' -import { - initiaPrivyWalletConnector, - injectStyles, - InterwovenKitProvider, -} from '@initia/interwovenkit-react' +import { initiaPrivyWalletConnector, injectStyles, InterwovenKitProvider } from '@initia/interwovenkit-react' import interwovenKitStyles from '@initia/interwovenkit-react/styles.js' const wagmiConfig = createConfig({ @@ -86,9 +82,7 @@ export default function Providers({ children }: PropsWithChildren) { return ( - - {children} - + {children} ) @@ -96,14 +90,11 @@ export default function Providers({ children }: PropsWithChildren) { ``` - **Chain Configuration**: Replace `YOUR_CHAIN_ID` with your target blockchain - network: - `"interwoven-1"` for Initia mainnet (default) - `"initiation-2"` - for Initia testnet - Or any valid chain ID from the - [initia-registry](https://registry.initia.xyz) This sets the primary network - for transactions, balance queries, and serves as the default for all - operations. See the [InterwovenKitProvider - reference](/interwovenkit/references/components/interwovenkit-provider) for - details. + **Chain Configuration**: Replace `YOUR_CHAIN_ID` with your target blockchain network: - `"interwoven-1"` for Initia + mainnet (default) - `"initiation-2"` for Initia testnet - Or any valid chain ID from the + [initia-registry](https://registry.initia.xyz) This sets the primary network for transactions, balance queries, and + serves as the default for all operations. See the [InterwovenKitProvider + reference](/interwovenkit/references/components/interwovenkit-provider) for details. @@ -144,8 +135,7 @@ import { truncate } from '@initia/utils' import { useInterwovenKit } from '@initia/interwovenkit-react' export default function WalletConnection() { - const { address, username, isConnected, openConnect, openWallet } = - useInterwovenKit() + const { address, username, isConnected, openConnect, openWallet } = useInterwovenKit() if (!isConnected) { return ( @@ -238,8 +228,8 @@ You can provide fees in two ways: - `Estimated`: Use estimateGas to simulate the required fee. - Since this skips the standard fee selection UI, ensure the fee is displayed - somewhere else in your app to maintain transparency for users. + Since this skips the standard fee selection UI, ensure the fee is displayed somewhere else in your app to maintain + transparency for users. ```tsx components/TransactionExampleWithFee.tsx diff --git a/interwovenkit/integrations/rainbowkit.mdx b/interwovenkit/integrations/rainbowkit.mdx index 88052313..be9131e4 100644 --- a/interwovenkit/integrations/rainbowkit.mdx +++ b/interwovenkit/integrations/rainbowkit.mdx @@ -10,9 +10,8 @@ only changes the wallet connection interface—all other features remain identical. - This integration is perfect if you're already using RainbowKit in your - application or prefer its UI components over the default InterwovenKit - interface. + This integration is perfect if you're already using RainbowKit in your application or prefer its UI components over + the default InterwovenKit interface. ## Overview diff --git a/interwovenkit/migration.mdx b/interwovenkit/migration.mdx index dc22bfc8..ed7fcfea 100644 --- a/interwovenkit/migration.mdx +++ b/interwovenkit/migration.mdx @@ -1,7 +1,6 @@ --- title: Migrating from Wallet Widget -description: - Complete guide for upgrading from the legacy Wallet Widget to InterwovenKit v2 +description: Complete guide for upgrading from the legacy Wallet Widget to InterwovenKit v2 icon: up --- @@ -11,9 +10,8 @@ This comprehensive guide will help you migrate from the legacy improved TypeScript support, and a more intuitive API. - **Migration Benefits** - No more SSR configuration required - Better - TypeScript support - Improved performance and bundle size - Simplified API - with consistent naming - Enhanced error handling + **Migration Benefits** - No more SSR configuration required - Better TypeScript support - Improved performance and + bundle size - Simplified API with consistent naming - Enhanced error handling ## Step-by-Step Migration @@ -233,8 +231,8 @@ export default function Home() { - Bridge configuration has moved from the provider level to individual method - calls, providing more flexibility and better user experience. + Bridge configuration has moved from the provider level to individual method calls, providing more flexibility and + better user experience. #### Removed Provider Props @@ -247,8 +245,7 @@ The following props are no longer supported: ``` - To customize wallet options, use [wagmi - connectors](https://wagmi.sh/react/api/connectors) in your wagmi configuration + To customize wallet options, use [wagmi connectors](https://wagmi.sh/react/api/connectors) in your wagmi configuration instead. @@ -342,11 +339,9 @@ export default function TransactionComponent() { - For more granular control over transaction states, use `requestTxSync()` to - get the transaction hash immediately, then `waitForTxConfirmation()` to wait - for blockchain confirmation. See the [useInterwovenKit - reference](./references/hooks/use-interwovenkit#transaction-methods) for - details. + For more granular control over transaction states, use `requestTxSync()` to get the transaction hash immediately, then + `waitForTxConfirmation()` to wait for blockchain confirmation. See the [useInterwovenKit + reference](./references/hooks/use-interwovenkit#transaction-methods) for details. ## Advanced Integration @@ -415,15 +410,14 @@ export default function SendTransaction() { - - [ ] Removed SSR-related imports - [ ] Removed build configuration changes - - [ ] Removed CDN scripts - [ ] Updated provider configuration + - [ ] Removed SSR-related imports - [ ] Removed build configuration changes - [ ] Removed CDN scripts - [ ] Updated + provider configuration - - [ ] Replaced `WalletWidgetProvider` with `InterwovenKitProvider` - [ ] - Updated `useWallet` to `useInterwovenKit` - [ ] Migrated method calls - (`onboard` → `openConnect`, etc.) - [ ] Updated transaction handling - (`requestTx` → `requestTxBlock`) + - [ ] Replaced `WalletWidgetProvider` with `InterwovenKitProvider` - [ ] Updated `useWallet` to `useInterwovenKit` - [ + ] Migrated method calls (`onboard` → `openConnect`, etc.) - [ ] Updated transaction handling (`requestTx` → + `requestTxBlock`) @@ -435,7 +429,6 @@ export default function SendTransaction() { - Need help with migration? Check out the [Getting Started - guide](./getting-started) for complete implementation examples, or refer to - the [API Reference](./references/index) for detailed method documentation. + Need help with migration? Check out the [Getting Started guide](./getting-started) for complete implementation + examples, or refer to the [API Reference](./references/index) for detailed method documentation. diff --git a/interwovenkit/references/components/interwovenkit-provider.mdx b/interwovenkit/references/components/interwovenkit-provider.mdx index 61f3333c..b5f38c7a 100644 --- a/interwovenkit/references/components/interwovenkit-provider.mdx +++ b/interwovenkit/references/components/interwovenkit-provider.mdx @@ -32,12 +32,7 @@ import { useEffect } from 'react' import { QueryClient, QueryClientProvider } from '@tanstack/react-query' import { createConfig, http, WagmiProvider } from 'wagmi' import { mainnet } from 'wagmi/chains' -import { - initiaPrivyWalletConnector, - injectStyles, - InterwovenKitProvider, - MAINNET, -} from '@initia/interwovenkit-react' +import { initiaPrivyWalletConnector, injectStyles, InterwovenKitProvider, MAINNET } from '@initia/interwovenkit-react' import interwovenKitStyles from '@initia/interwovenkit-react/styles.js' const queryClient = new QueryClient() @@ -63,8 +58,8 @@ export function AppProviders({ children }: { children: React.ReactNode }) { ``` - This example shows the provider structure. For complete setup configurations, - see [Provider Setup](../setup/providers). + This example shows the provider structure. For complete setup configurations, see [Provider + Setup](../setup/providers). ## Props @@ -120,11 +115,7 @@ const MY_ROLLUP: Chain = { export function Providers({ children }: { children: React.ReactNode }) { return ( - + {children} ) @@ -132,9 +123,8 @@ export function Providers({ children }: { children: React.ReactNode }) { ``` - This example shows only the `InterwovenKitProvider` configuration. For - complete provider setup including `QueryClientProvider`, `WagmiProvider`, and - `injectStyles`, see [Provider Setup](../setup/providers). + This example shows only the `InterwovenKitProvider` configuration. For complete provider setup including + `QueryClientProvider`, `WagmiProvider`, and `injectStyles`, see [Provider Setup](../setup/providers). ## Notes diff --git a/interwovenkit/references/constants/privy-app-id.mdx b/interwovenkit/references/constants/privy-app-id.mdx index 2128f22c..ac9dc81b 100644 --- a/interwovenkit/references/constants/privy-app-id.mdx +++ b/interwovenkit/references/constants/privy-app-id.mdx @@ -38,10 +38,8 @@ export function Providers({ children }: { children: React.ReactNode }) { ``` - This example shows only `PrivyProvider` configuration. For complete provider - setup including `InterwovenKitProvider`, `WagmiProvider`, - `QueryClientProvider`, and `injectStyles`, see [Provider - Setup](../setup/providers). + This example shows only `PrivyProvider` configuration. For complete provider setup including `InterwovenKitProvider`, + `WagmiProvider`, `QueryClientProvider`, and `injectStyles`, see [Provider Setup](../setup/providers). ## Value diff --git a/interwovenkit/references/hooks/use-address.mdx b/interwovenkit/references/hooks/use-address.mdx index 6ad99a3d..dcc96126 100644 --- a/interwovenkit/references/hooks/use-address.mdx +++ b/interwovenkit/references/hooks/use-address.mdx @@ -30,8 +30,8 @@ function Address() { ``` - This example assumes providers are already set up. For complete setup - configurations, see [Provider Setup](../setup/providers). + This example assumes providers are already set up. For complete setup configurations, see [Provider + Setup](../setup/providers). ## Return value diff --git a/interwovenkit/references/hooks/use-hex-address.mdx b/interwovenkit/references/hooks/use-hex-address.mdx index c83eb9d4..c2816fe4 100644 --- a/interwovenkit/references/hooks/use-hex-address.mdx +++ b/interwovenkit/references/hooks/use-hex-address.mdx @@ -31,8 +31,8 @@ function Address() { ``` - This example assumes providers are already set up. For complete setup - configurations, see [Provider Setup](../setup/providers). + This example assumes providers are already set up. For complete setup configurations, see [Provider + Setup](../setup/providers). ## Return value diff --git a/interwovenkit/references/hooks/use-initia-address.mdx b/interwovenkit/references/hooks/use-initia-address.mdx index 7e9fb421..693bdd44 100644 --- a/interwovenkit/references/hooks/use-initia-address.mdx +++ b/interwovenkit/references/hooks/use-initia-address.mdx @@ -31,8 +31,8 @@ function Address() { ``` - This example assumes providers are already set up. For complete setup - configurations, see [Provider Setup](../setup/providers). + This example assumes providers are already set up. For complete setup configurations, see [Provider + Setup](../setup/providers). ## Return value diff --git a/interwovenkit/references/hooks/use-interwovenkit.mdx b/interwovenkit/references/hooks/use-interwovenkit.mdx index d5bd6e4b..347eb217 100644 --- a/interwovenkit/references/hooks/use-interwovenkit.mdx +++ b/interwovenkit/references/hooks/use-interwovenkit.mdx @@ -9,9 +9,8 @@ information, UI controls, transaction utilities, and AutoSign functionality for interacting with the Initia blockchain. - This hook must be used within a component wrapped by `InterwovenKitProvider` - to access wallet functionality. For simple reads, prefer smaller hooks - (`useAddress`, `useUsernameQuery`) to avoid overhead. + This hook must be used within a component wrapped by `InterwovenKitProvider` to access wallet functionality. For + simple reads, prefer smaller hooks (`useAddress`, `useUsernameQuery`) to avoid overhead. ## Prerequisites @@ -31,17 +30,13 @@ import { useInterwovenKit } from '@initia/interwovenkit-react' function ConnectButton() { const { isConnected, openConnect, openWallet } = useInterwovenKit() - return ( - - ) + return } ``` - This example assumes providers are already set up. For complete setup - configurations, see [Provider Setup](../setup/providers). + This example assumes providers are already set up. For complete setup configurations, see [Provider + Setup](../setup/providers). ## Account Information @@ -50,24 +45,21 @@ The hook provides multiple address formats and account details for the currently connected wallet: - Current address in either Bech32 or hex format, depending on the configured - chain type (hex for `minievm`, bech32 for others). Returns an empty string - when not connected. + Current address in either Bech32 or hex format, depending on the configured chain type (hex for `minievm`, bech32 for + others). Returns an empty string when not connected. - Bech32-formatted Initia wallet address of the connected account. Returns an - empty string when not connected. + Bech32-formatted Initia wallet address of the connected account. Returns an empty string when not connected. - Hex-encoded Ethereum-compatible address of the connected account. Returns an - empty string when not connected. + Hex-encoded Ethereum-compatible address of the connected account. Returns an empty string when not connected. - Optional username linked to the account. Returns `null` if no username is - associated, or `undefined` before the query has produced a value. + Optional username linked to the account. Returns `null` if no username is associated, or `undefined` before the query + has produced a value. @@ -84,8 +76,7 @@ connected wallet: ```tsx function AccountInfo() { - const { address, initiaAddress, hexAddress, username, isConnected } = - useInterwovenKit() + const { address, initiaAddress, hexAddress, username, isConnected } = useInterwovenKit() if (!isConnected) return
Not connected
@@ -112,10 +103,7 @@ The hook provides methods for controlling wallet-related UI components: Opens the main wallet drawer showing balances for the connected account.
- + Opens the bridge drawer to onboard assets with optional pre-populated values. @@ -179,8 +167,7 @@ form: - All bridge form values are optional. You can pre-populate any subset of fields - to improve the user experience. + All bridge form values are optional. You can pre-populate any subset of fields to improve the user experience. ```tsx @@ -259,54 +246,42 @@ transactions on the blockchain: path="simulateTx" type="(tx: Pick<TxRequest, 'messages' | 'memo' | 'chainId'>) => Promise<unknown>" > - Simulates a transaction without broadcasting, returning the transaction - result. + Simulates a transaction without broadcasting, returning the transaction result.
- - Signs and broadcasts a transaction, returning the transaction hash immediately - without waiting for block inclusion. Shows transaction approval UI before - signing. + + Signs and broadcasts a transaction, returning the transaction hash immediately without waiting for block inclusion. + Shows transaction approval UI before signing. - Signs, broadcasts, and waits for block inclusion, returning the complete - transaction response. Shows transaction approval UI before signing. Defaults - to `timeoutMs: 30000` (30 seconds) and `intervalMs: 500` (0.5 seconds). + Signs, broadcasts, and waits for block inclusion, returning the complete transaction response. Shows transaction + approval UI before signing. Defaults to `timeoutMs: 30000` (30 seconds) and `intervalMs: 500` (0.5 seconds). - Signs and broadcasts a transaction with pre-calculated fee, returning the - transaction hash immediately without waiting for block inclusion. Does not - show UI. + Signs and broadcasts a transaction with pre-calculated fee, returning the transaction hash immediately without waiting + for block inclusion. Does not show UI. - Signs, broadcasts, and waits for block inclusion with pre-calculated fee, - returning the complete transaction response. Does not show UI. Defaults to - `timeoutMs: 30000` (30 seconds) and `intervalMs: 500` (0.5 seconds). + Signs, broadcasts, and waits for block inclusion with pre-calculated fee, returning the complete transaction response. + Does not show UI. Defaults to `timeoutMs: 30000` (30 seconds) and `intervalMs: 500` (0.5 seconds). - + Polls for transaction confirmation on-chain using a transaction hash. - Use `requestTxSync` for better UX when you want to show immediate feedback, - then use `waitForTxConfirmation` to track the final transaction status. Use - `requestTxBlock` when you need the complete transaction result immediately. + Use `requestTxSync` for better UX when you want to show immediate feedback, then use `waitForTxConfirmation` to track + the final transaction status. Use `requestTxBlock` when you need the complete transaction result immediately. ### Transaction Request Interface @@ -323,8 +298,7 @@ include gas estimation: - Target chain ID for the transaction. Defaults to the provider's - `defaultChainId`. + Target chain ID for the transaction. Defaults to the provider's `defaultChainId`. @@ -357,8 +331,7 @@ fees: - Target chain ID for the transaction. Defaults to the provider's - `defaultChainId`. + Target chain ID for the transaction. Defaults to the provider's `defaultChainId`. @@ -379,13 +352,11 @@ confirmation: - Maximum time in milliseconds to wait for transaction confirmation before - failing. Defaults to 30000 (30 seconds). + Maximum time in milliseconds to wait for transaction confirmation before failing. Defaults to 30000 (30 seconds). - Polling interval in milliseconds for checking transaction status. Defaults to - 500 (0.5 seconds). + Polling interval in milliseconds for checking transaction status. Defaults to 500 (0.5 seconds). ### Transaction Examples @@ -395,8 +366,7 @@ import { useInterwovenKit } from '@initia/interwovenkit-react' import type { EncodeObject, StdFee } from '@cosmjs/stargate' function SendTransaction() { - const { requestTxBlock, submitTxSync, waitForTxConfirmation } = - useInterwovenKit() + const { requestTxBlock, submitTxSync, waitForTxConfirmation } = useInterwovenKit() // Example: Request transaction with UI approval const handleRequestTx = async (messages: EncodeObject[]) => { @@ -457,10 +427,7 @@ function SendTransaction() { The hook provides AutoSign state and control methods for automatic transaction signing: - + Expiration dates for AutoSign permissions by chain ID. @@ -473,19 +440,18 @@ signing: - Opens UI to enable AutoSign for a chain. Optionally specify a chain ID, or - defaults to the provider's `defaultChainId` if omitted. + Opens UI to enable AutoSign for a chain. Optionally specify a chain ID, or defaults to the provider's `defaultChainId` + if omitted. - Disables AutoSign for a chain. Optionally specify a chain ID, or defaults to - the provider's `defaultChainId` if omitted. + Disables AutoSign for a chain. Optionally specify a chain ID, or defaults to the provider's `defaultChainId` if + omitted. - AutoSign requires Privy integration. See [AutoSign - setup](../setup/providers#autosign-setup-requires-privy) for complete AutoSign - configuration. + AutoSign requires Privy integration. See [AutoSign setup](../setup/providers#autosign-setup-requires-privy) for + complete AutoSign configuration. ```tsx @@ -499,21 +465,12 @@ function AutoSignControls() {
Loading AutoSign status...
) : ( <> -
- AutoSign enabled:{' '} - {autoSign.isEnabledByChain[chainId] ? 'Yes' : 'No'} -
+
AutoSign enabled: {autoSign.isEnabledByChain[chainId] ? 'Yes' : 'No'}
{autoSign.expiredAtByChain[chainId] && ( -
- Expires: {autoSign.expiredAtByChain[chainId]?.toLocaleString()} -
+
Expires: {autoSign.expiredAtByChain[chainId]?.toLocaleString()}
)} - - + + )} @@ -547,24 +504,12 @@ type InterwovenKitResult = { openBridge: (defaultValues?: Partial) => void disconnect: () => void autoSign: AutoSignState - estimateGas: ( - tx: Pick, - ) => Promise - simulateTx: ( - tx: Pick, - ) => Promise + estimateGas: (tx: Pick) => Promise + simulateTx: (tx: Pick) => Promise requestTxSync: (tx: TxRequest) => Promise - requestTxBlock: ( - tx: TxRequest, - timeoutMs?: number, - intervalMs?: number, - ) => Promise + requestTxBlock: (tx: TxRequest, timeoutMs?: number, intervalMs?: number) => Promise submitTxSync: (tx: TxParams) => Promise - submitTxBlock: ( - tx: TxParams, - timeoutMs?: number, - intervalMs?: number, - ) => Promise + submitTxBlock: (tx: TxParams, timeoutMs?: number, intervalMs?: number) => Promise waitForTxConfirmation: (options: WaitForTxOptions) => Promise } diff --git a/interwovenkit/references/hooks/use-portfolio.mdx b/interwovenkit/references/hooks/use-portfolio.mdx index 83039ad8..19c32713 100644 --- a/interwovenkit/references/hooks/use-portfolio.mdx +++ b/interwovenkit/references/hooks/use-portfolio.mdx @@ -33,8 +33,8 @@ function PortfolioValue() { ``` - This example assumes providers are already set up. For complete setup - configurations, see [Provider Setup](../setup/providers). + This example assumes providers are already set up. For complete setup configurations, see [Provider + Setup](../setup/providers). ## Return value diff --git a/interwovenkit/references/hooks/use-username-query.mdx b/interwovenkit/references/hooks/use-username-query.mdx index f5c3a947..36a1cbc6 100644 --- a/interwovenkit/references/hooks/use-username-query.mdx +++ b/interwovenkit/references/hooks/use-username-query.mdx @@ -32,8 +32,8 @@ function Username() { ``` - This example assumes providers are already set up. For complete setup - configurations, see [Provider Setup](../setup/providers). + This example assumes providers are already set up. For complete setup configurations, see [Provider + Setup](../setup/providers). ## Return value diff --git a/interwovenkit/references/setup/providers.mdx b/interwovenkit/references/setup/providers.mdx index 23c42f7f..cf40ff1a 100644 --- a/interwovenkit/references/setup/providers.mdx +++ b/interwovenkit/references/setup/providers.mdx @@ -14,8 +14,8 @@ title: Provider Setup For apps that don't need AutoSign or embedded wallets. - This setup uses `initiaPrivyWalletConnector` as a wagmi connector option, but - does not require `PrivyProvider` at runtime. + This setup uses `initiaPrivyWalletConnector` as a wagmi connector option, but does not require `PrivyProvider` at + runtime. ```tsx @@ -25,12 +25,7 @@ import { PropsWithChildren, useEffect } from 'react' import { createConfig, http, WagmiProvider } from 'wagmi' import { mainnet } from 'wagmi/chains' import { QueryClient, QueryClientProvider } from '@tanstack/react-query' -import { - initiaPrivyWalletConnector, - injectStyles, - InterwovenKitProvider, - MAINNET, -} from '@initia/interwovenkit-react' +import { initiaPrivyWalletConnector, injectStyles, InterwovenKitProvider, MAINNET } from '@initia/interwovenkit-react' import interwovenKitStyles from '@initia/interwovenkit-react/styles.js' const wagmiConfig = createConfig({ @@ -75,13 +70,7 @@ import { PRIVY_APP_ID, } from '@initia/interwovenkit-react' import interwovenKitStyles from '@initia/interwovenkit-react/styles.js' -import { - PrivyProvider, - useCreateWallet, - useLoginWithSiwe, - usePrivy, - useWallets, -} from '@privy-io/react-auth' +import { PrivyProvider, useCreateWallet, useLoginWithSiwe, usePrivy, useWallets } from '@privy-io/react-auth' const wagmiConfig = createConfig({ connectors: [initiaPrivyWalletConnector], diff --git a/interwovenkit/references/utilities/inject-styles.mdx b/interwovenkit/references/utilities/inject-styles.mdx index 5b117d1d..5c7c3d65 100644 --- a/interwovenkit/references/utilities/inject-styles.mdx +++ b/interwovenkit/references/utilities/inject-styles.mdx @@ -54,8 +54,8 @@ export default function Providers({ children }: PropsWithChildren) { ``` - This example shows the typical usage pattern. For complete setup - configurations, see [Provider Setup](../setup/providers). + This example shows the typical usage pattern. For complete setup configurations, see [Provider + Setup](../setup/providers). ## API diff --git a/nodes-and-rollups/deploying-rollups/deploy.mdx b/nodes-and-rollups/deploying-rollups/deploy.mdx index b0252837..c36552a8 100644 --- a/nodes-and-rollups/deploying-rollups/deploy.mdx +++ b/nodes-and-rollups/deploying-rollups/deploy.mdx @@ -73,9 +73,8 @@ If you want more information about a specific option, access the tooltip by pressing `ctrl+T`. If you want to go back to the previous step, press `ctrl+Z`. - To ensure that you have tokens available to send transactions on your rollup, - you should add at least 1 address you control to the list of genesis accounts - when prompted. + To ensure that you have tokens available to send transactions on your rollup, you should add at least 1 address you + control to the list of genesis accounts when prompted. Once you have selected all the options, Weave will automatically start the @@ -104,9 +103,8 @@ deploy contracts on the rollup. However, for full functionality, you will also need to run the OPinit Executor and Challenger bots as well as the IBC Relayer. - At this stage, you can interact with your rollup and deploy contracts, as well - as send transactions. However, to enable bridging INIT and other tokens from - L1, setting up DA, and more, you will also need to run the OPinit Executor, + At this stage, you can interact with your rollup and deploy contracts, as well as send transactions. However, to + enable bridging INIT and other tokens from L1, setting up DA, and more, you will also need to run the OPinit Executor, Challenger bots, and the IBC Relayer. To do this, follow the steps below. @@ -178,8 +176,7 @@ Streaming logs from launchd com.opinitd.executor.daemon - For production use, we recommend setting up the Challenger bot on a separate - machine from the Executor bot. + For production use, we recommend setting up the Challenger bot on a separate machine from the Executor bot. The OPinit Challenger bot is responsible for monitoring the Executor bot's diff --git a/nodes-and-rollups/deploying-rollups/initia-registry.mdx b/nodes-and-rollups/deploying-rollups/initia-registry.mdx index 1e192617..15ef21b7 100644 --- a/nodes-and-rollups/deploying-rollups/initia-registry.mdx +++ b/nodes-and-rollups/deploying-rollups/initia-registry.mdx @@ -367,16 +367,9 @@ import { RESTClient } from '@initia/initia.js' * @param {string} l1_denom - The L1 denomination (e.g., "uinit"). * @returns {Promise} - The corresponding L2 denomination (e.g., "l2/..."). */ -export async function opDenomByL1Denom( - uri: string, - bridge_id: number, - l1_denom: string, -): Promise { +export async function opDenomByL1Denom(uri: string, bridge_id: number, l1_denom: string): Promise { const restClient = new RESTClient(uri) - const tokenPair = await restClient.ophost.tokenPairByL1Denom( - bridge_id, - l1_denom, - ) + const tokenPair = await restClient.ophost.tokenPairByL1Denom(bridge_id, l1_denom) return tokenPair.l2_denom } @@ -390,16 +383,9 @@ export async function opDenomByL1Denom( * @param {string} l2_denom - The L2 denomination (e.g., "l2/xyz..."). * @returns {Promise} - The corresponding L1 denomination (e.g., "uinit"). */ -export async function opDenomByL2Denom( - uri: string, - bridge_id: number, - l2_denom: string, -): Promise { +export async function opDenomByL2Denom(uri: string, bridge_id: number, l2_denom: string): Promise { const restClient = new RESTClient(uri) - const tokenPair = await restClient.ophost.tokenPairByL2Denom( - bridge_id, - l2_denom, - ) + const tokenPair = await restClient.ophost.tokenPairByL2Denom(bridge_id, l2_denom) return tokenPair.l1_denom } @@ -409,8 +395,7 @@ async function main() { const bridge_id = 1 const l1_denom = 'uinit' - const l2_denom = - 'l2/07b129ceb9c4b0bdef7db171ce1e22f90d34bc930058b23e21adf8cc938d8145' + const l2_denom = 'l2/07b129ceb9c4b0bdef7db171ce1e22f90d34bc930058b23e21adf8cc938d8145' const l2_denom_for_l1_denom = await opDenomByL1Denom(uri, bridge_id, l1_denom) console.log(`L2 denom for L1 denom "${l1_denom}":`, l2_denom_for_l1_denom) @@ -460,17 +445,12 @@ function makeIBCHash(fullTrace: string): string { * @param {string} denom - The IBC denom (must start with "ibc/"). * @returns {Promise} - The combined path and base denom (e.g., "transfer/channel-0/uinit"). */ -async function getFullTrace( - restClient: RESTClient, - denom: string, -): Promise { +async function getFullTrace(restClient: RESTClient, denom: string): Promise { if (!denom.startsWith('ibc/')) { throw Error('Not an IBC denom') } - const trace = await restClient.apiRequester.get( - `/ibc/apps/transfer/v1/denom_traces/${denom}`, - ) + const trace = await restClient.apiRequester.get(`/ibc/apps/transfer/v1/denom_traces/${denom}`) return `${trace.denom_trace.path}/${trace.denom_trace.base_denom}` } @@ -523,9 +503,7 @@ export async function ibcDenom( } // If it starts with "transfer/", convert to an IBC hash; otherwise, return as is - const denomInChainB = fullTraceOnChainB.startsWith('transfer/') - ? makeIBCHash(fullTraceOnChainB) - : fullTraceOnChainB + const denomInChainB = fullTraceOnChainB.startsWith('transfer/') ? makeIBCHash(fullTraceOnChainB) : fullTraceOnChainB return denomInChainB } @@ -537,12 +515,7 @@ async function main() { const channelA = 'channel-132' // Example channel ID for chain A const channelB = 'channel-0' // Example channel ID for chain B - const ibcDenomStr = await ibcDenom( - restClientChainA, - denom, - channelA, - channelB, - ) + const ibcDenomStr = await ibcDenom(restClientChainA, denom, channelA, channelB) console.log('Calculated IBC Denom:', ibcDenomStr) } diff --git a/nodes-and-rollups/indexing/introduction.mdx b/nodes-and-rollups/indexing/introduction.mdx index e0a688cd..6937b785 100644 --- a/nodes-and-rollups/indexing/introduction.mdx +++ b/nodes-and-rollups/indexing/introduction.mdx @@ -1,7 +1,6 @@ --- title: 'Indexing on Initia' -description: - 'Overview of indexing on Initia rollups and the recommended approach using +description: 'Overview of indexing on Initia rollups and the recommended approach using Rollytics.' --- diff --git a/nodes-and-rollups/indexing/kv-indexer/legacy-overview.mdx b/nodes-and-rollups/indexing/kv-indexer/legacy-overview.mdx index 34cd4fca..424443dc 100644 --- a/nodes-and-rollups/indexing/kv-indexer/legacy-overview.mdx +++ b/nodes-and-rollups/indexing/kv-indexer/legacy-overview.mdx @@ -1,7 +1,6 @@ --- title: 'KV Indexer (Legacy)' -description: - 'Overview of the legacy KV Indexer, its limitations, and why Rollytics is the +description: 'Overview of the legacy KV Indexer, its limitations, and why Rollytics is the recommended replacement.' --- diff --git a/nodes-and-rollups/indexing/rollytics/api-reference.mdx b/nodes-and-rollups/indexing/rollytics/api-reference.mdx index 03d7a16e..ed838010 100644 --- a/nodes-and-rollups/indexing/rollytics/api-reference.mdx +++ b/nodes-and-rollups/indexing/rollytics/api-reference.mdx @@ -1,7 +1,6 @@ --- title: 'API Reference' -description: - 'Rollytics KV Indexer endpoint-compatible API reference, with endpoints for +description: 'Rollytics KV Indexer endpoint-compatible API reference, with endpoints for status, blocks, transactions, NFTs, and rich lists.' --- @@ -471,8 +470,7 @@ Schema: see OpenAPI (`/swagger/doc.json`) # Rich List - Rich list indexing is currently available only for EVM rollups. Move and Wasm - rollups are not yet supported. + Rich list indexing is currently available only for EVM rollups. Move and Wasm rollups are not yet supported. ## GET `/indexer/richlist/v1/{denom}` diff --git a/nodes-and-rollups/indexing/rollytics/faq.mdx b/nodes-and-rollups/indexing/rollytics/faq.mdx index abb76e4d..17c7c35a 100644 --- a/nodes-and-rollups/indexing/rollytics/faq.mdx +++ b/nodes-and-rollups/indexing/rollytics/faq.mdx @@ -1,7 +1,6 @@ --- title: 'FAQ' -description: - 'Frequently asked questions about Rollytics and migrating from the legacy KV +description: 'Frequently asked questions about Rollytics and migrating from the legacy KV Indexer.' --- diff --git a/nodes-and-rollups/indexing/rollytics/setup-and-migration.mdx b/nodes-and-rollups/indexing/rollytics/setup-and-migration.mdx index 4cb261f0..72949742 100644 --- a/nodes-and-rollups/indexing/rollytics/setup-and-migration.mdx +++ b/nodes-and-rollups/indexing/rollytics/setup-and-migration.mdx @@ -1,7 +1,6 @@ --- title: 'Setup and Migration Guide' -description: - 'Step-by-step guide to deploying Rollytics and migrating from the legacy KV +description: 'Step-by-step guide to deploying Rollytics and migrating from the legacy KV Indexer.' --- diff --git a/nodes-and-rollups/running-nodes/introduction.mdx b/nodes-and-rollups/running-nodes/introduction.mdx index 92d72a41..5c9f2337 100644 --- a/nodes-and-rollups/running-nodes/introduction.mdx +++ b/nodes-and-rollups/running-nodes/introduction.mdx @@ -7,9 +7,8 @@ The following guide will walk you through the steps of how to run an Initia node and optionally to join the Initia network as a validator. - This guide has been tested against Linux distributions only. While it might be - possible to run an Initia node on other operating systems, the process is not - as straightforward and may require additional configuration. + This guide has been tested against Linux distributions only. While it might be possible to run an Initia node on other + operating systems, the process is not as straightforward and may require additional configuration. ## Hardware Requirements diff --git a/nodes-and-rollups/running-nodes/manual-setup/cosmovisor.mdx b/nodes-and-rollups/running-nodes/manual-setup/cosmovisor.mdx index 8d588f87..d1adbec4 100644 --- a/nodes-and-rollups/running-nodes/manual-setup/cosmovisor.mdx +++ b/nodes-and-rollups/running-nodes/manual-setup/cosmovisor.mdx @@ -8,8 +8,7 @@ upgrades. **Prerequisite:** complete the [Running L1 Nodes with - Initiad](/nodes-and-rollups/running-nodes/running-l1-nodes/l1-nodes-initiad) - guide first, then follow the steps below. + Initiad](/nodes-and-rollups/running-nodes/running-l1-nodes/l1-nodes-initiad) guide first, then follow the steps below. ## Install Cosmovisor diff --git a/nodes-and-rollups/running-nodes/manual-setup/node-configuration.mdx b/nodes-and-rollups/running-nodes/manual-setup/node-configuration.mdx index 1b01609d..5178b136 100644 --- a/nodes-and-rollups/running-nodes/manual-setup/node-configuration.mdx +++ b/nodes-and-rollups/running-nodes/manual-setup/node-configuration.mdx @@ -25,9 +25,8 @@ where: the [Networks](/resources/developer/initia-l1) section of the docs - Note that the `moniker` field here is the name of the node itself and does not - apply to the validator name/moniker. The validator name/moniker is set when - you create your validator and is used to identify your validator on the + Note that the `moniker` field here is the name of the node itself and does not apply to the validator name/moniker. + The validator name/moniker is set when you create your validator and is used to identify your validator on the network. diff --git a/nodes-and-rollups/running-nodes/manual-setup/node-setup.mdx b/nodes-and-rollups/running-nodes/manual-setup/node-setup.mdx index dcf1e723..15efdc73 100644 --- a/nodes-and-rollups/running-nodes/manual-setup/node-setup.mdx +++ b/nodes-and-rollups/running-nodes/manual-setup/node-setup.mdx @@ -65,9 +65,7 @@ opened by a process to 1024. It is recomemneded that you increase this amount. To do so, modify `/etc/security/limits.conf` to increase the amount. The `nofile` is the number of files a process may open at a time. - - If you are using a non-root user, replace `*` with the username of the user. - +If you are using a non-root user, replace `*` with the username of the user. ```sh limits.conf * soft nofile 65535 diff --git a/nodes-and-rollups/running-nodes/manual-setup/starting-the-node.mdx b/nodes-and-rollups/running-nodes/manual-setup/starting-the-node.mdx index 9f7dd8a6..1c3f3feb 100644 --- a/nodes-and-rollups/running-nodes/manual-setup/starting-the-node.mdx +++ b/nodes-and-rollups/running-nodes/manual-setup/starting-the-node.mdx @@ -25,18 +25,15 @@ snapshot syncing and StateSync - A chain snapshot sync works by downloading the entire state of the chain at - a certain height and then running the node off of that states. Nodes that - uses snapshos usually have more historical transaction and block data - compared to nodes that use StateSync. However, in exchange, snapshot syncing - is typically much slower due to more information required to be downloaded. + A chain snapshot sync works by downloading the entire state of the chain at a certain height and then running the + node off of that states. Nodes that uses snapshos usually have more historical transaction and block data compared + to nodes that use StateSync. However, in exchange, snapshot syncing is typically much slower due to more information + required to be downloaded. - A StateSync works by directly downloading the application state from other - nodes in the network. Unlike syncing from a snapshot, StateSync focuses on - the downloading the processing the current state of the chain, ignoring - historical transactions and block. However, in exchange for this, - state-syncing is typically much faster + A StateSync works by directly downloading the application state from other nodes in the network. Unlike syncing from + a snapshot, StateSync focuses on the downloading the processing the current state of the chain, ignoring historical + transactions and block. However, in exchange for this, state-syncing is typically much faster diff --git a/nodes-and-rollups/running-nodes/running-a-validator/becoming-a-validator.mdx b/nodes-and-rollups/running-nodes/running-a-validator/becoming-a-validator.mdx index e649eb5e..46d8fae5 100644 --- a/nodes-and-rollups/running-nodes/running-a-validator/becoming-a-validator.mdx +++ b/nodes-and-rollups/running-nodes/running-a-validator/becoming-a-validator.mdx @@ -4,9 +4,8 @@ icon: check-to-slot --- - Before proceeding to create a validator, first make sure that your Initia node - is fully synced to the latest height. You can verify this by comparing your - node's latest block height with the network's. + Before proceeding to create a validator, first make sure that your Initia node is fully synced to the latest height. + You can verify this by comparing your node's latest block height with the network's. diff --git a/nodes-and-rollups/running-nodes/running-l1-nodes/l1-nodes-initiad.mdx b/nodes-and-rollups/running-nodes/running-l1-nodes/l1-nodes-initiad.mdx index 2fe8e494..ba8d43f4 100644 --- a/nodes-and-rollups/running-nodes/running-l1-nodes/l1-nodes-initiad.mdx +++ b/nodes-and-rollups/running-nodes/running-l1-nodes/l1-nodes-initiad.mdx @@ -20,10 +20,8 @@ Before proceeding, ensure your system meets the following requirements: | High | 8 cores | 32GB RAM | 2 TB NVMe/SSD with write throughput > 1000 MiBps | 100 Mbps bandwidth | - We strongly recommend running Initia nodes on a Linux-based operating system. - While it may be possible to run on other operating systems, we have not tested - them and cannot guarantee the same environment settings and running - conditions. + We strongly recommend running Initia nodes on a Linux-based operating system. While it may be possible to run on other + operating systems, we have not tested them and cannot guarantee the same environment settings and running conditions. ## Installation @@ -73,8 +71,7 @@ initiad version ``` - If `initiad` is not found, check your `$PATH` environment variable to ensure - it includes `$GOBIN` or `$GOPATH/bin`. + If `initiad` is not found, check your `$PATH` environment variable to ensure it includes `$GOBIN` or `$GOPATH/bin`. @@ -118,9 +115,8 @@ Note that: Your private key is generated during initialization and stored in `${HOME} - /.initia/config/priv_validator_key.json`. **IMPORTANT**: Always back up your - private key, especially for validator nodes. Loss of the private key may - result in permanent node inaccessibility. + /.initia/config/priv_validator_key.json`. **IMPORTANT**: Always back up your private key, especially for validator + nodes. Loss of the private key may result in permanent node inaccessibility. ### Network Configuration @@ -136,9 +132,7 @@ An Initia node provides multiple endpoints that you can enable or disable. | RPC | Tendermint/CometBFT API | `~/.initia/config/config.toml` | | P2P | Gossip P2P Network | `~/.initia/config/config.toml` | - - Validator nodes are not recommended to expose these endpoints publicly. - +Validator nodes are not recommended to expose these endpoints publicly. #### Configuration Examples @@ -192,8 +186,7 @@ To fully connect to the network, you first need to download the genesis file, configure your peers, and sync the node. - You can find information on the genesis file, peers, and state sync for the - network you want to join on the [networks + You can find information on the genesis file, peers, and state sync for the network you want to join on the [networks page](/resources/developer/initia-l1) diff --git a/nodes-and-rollups/running-nodes/running-l1-nodes/l1-nodes-weave.mdx b/nodes-and-rollups/running-nodes/running-l1-nodes/l1-nodes-weave.mdx index 503dfd00..b46e1564 100644 --- a/nodes-and-rollups/running-nodes/running-l1-nodes/l1-nodes-weave.mdx +++ b/nodes-and-rollups/running-nodes/running-l1-nodes/l1-nodes-weave.mdx @@ -14,10 +14,8 @@ Before proceeding, ensure your system meets the following requirements: | High | 8 cores | 32GB RAM | 2 TB NVMe/SSD with write throughput > 1000 MiBps | 100 Mbps bandwidth | - We strongly recommend running Initia nodes on a Linux-based operating system. - While it may be possible to run on other operating systems, we have not tested - them and cannot guarantee the same environment settings and running - conditions. + We strongly recommend running Initia nodes on a Linux-based operating system. While it may be possible to run on other + operating systems, we have not tested them and cannot guarantee the same environment settings and running conditions. diff --git a/package-lock.json b/package-lock.json index 62533d0e..bc975543 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,9 +5,356 @@ "packages": { "": { "devDependencies": { + "husky": "^9.1.7", + "lint-staged": "^16.2.7", "prettier": "3.7.4" } }, + "node_modules/ansi-escapes": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.3.0.tgz", + "integrity": "sha512-BvU8nYgGQBxcmMuEeUEmNTvrMVjJNSH7RgW24vXexN4Ven6qCvy4TntnvlnwnMLTVlcRQQdbRY8NKnaIoeWDNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "environment": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-cursor": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", + "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", + "dev": true, + "license": "MIT", + "dependencies": { + "restore-cursor": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-5.1.1.tgz", + "integrity": "sha512-SroPvNHxUnk+vIW/dOSfNqdy1sPEFkrTk6TUtqLCnBlo3N7TNYYkzzN7uSD6+jVjrdO4+p8nH7JzH6cIvUem6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "slice-ansi": "^7.1.0", + "string-width": "^8.0.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/commander": { + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.3.tgz", + "integrity": "sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20" + } + }, + "node_modules/emoji-regex": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", + "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", + "dev": true, + "license": "MIT" + }, + "node_modules/environment": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz", + "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eventemitter3": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.4.tgz", + "integrity": "sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/get-east-asian-width": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.4.0.tgz", + "integrity": "sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/husky": { + "version": "9.1.7", + "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.7.tgz", + "integrity": "sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==", + "dev": true, + "license": "MIT", + "bin": { + "husky": "bin.js" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/typicode" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.1.0.tgz", + "integrity": "sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-east-asian-width": "^1.3.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/lint-staged": { + "version": "16.2.7", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-16.2.7.tgz", + "integrity": "sha512-lDIj4RnYmK7/kXMya+qJsmkRFkGolciXjrsZ6PC25GdTfWOAWetR0ZbsNXRAj1EHHImRSalc+whZFg56F5DVow==", + "dev": true, + "license": "MIT", + "dependencies": { + "commander": "^14.0.2", + "listr2": "^9.0.5", + "micromatch": "^4.0.8", + "nano-spawn": "^2.0.0", + "pidtree": "^0.6.0", + "string-argv": "^0.3.2", + "yaml": "^2.8.1" + }, + "bin": { + "lint-staged": "bin/lint-staged.js" + }, + "engines": { + "node": ">=20.17" + }, + "funding": { + "url": "https://opencollective.com/lint-staged" + } + }, + "node_modules/listr2": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-9.0.5.tgz", + "integrity": "sha512-ME4Fb83LgEgwNw96RKNvKV4VTLuXfoKudAmm2lP8Kk87KaMK0/Xrx/aAkMWmT8mDb+3MlFDspfbCs7adjRxA2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "cli-truncate": "^5.0.0", + "colorette": "^2.0.20", + "eventemitter3": "^5.0.1", + "log-update": "^6.1.0", + "rfdc": "^1.4.1", + "wrap-ansi": "^9.0.0" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/log-update": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.1.0.tgz", + "integrity": "sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^7.0.0", + "cli-cursor": "^5.0.0", + "slice-ansi": "^7.1.0", + "strip-ansi": "^7.1.0", + "wrap-ansi": "^9.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mimic-function": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", + "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nano-spawn": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/nano-spawn/-/nano-spawn-2.0.0.tgz", + "integrity": "sha512-tacvGzUY5o2D8CBh2rrwxyNojUsZNU2zjNTzKQrkgGJQTbGAfArVWXSKMBokBeeg6C7OLRGUEyoFlYbfeWQIqw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/nano-spawn?sponsor=1" + } + }, + "node_modules/onetime": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-function": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pidtree": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz", + "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", + "dev": true, + "license": "MIT", + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } + }, "node_modules/prettier": { "version": "3.7.4", "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.7.4.tgz", @@ -23,6 +370,168 @@ "funding": { "url": "https://github.com/prettier/prettier?sponsor=1" } + }, + "node_modules/restore-cursor": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", + "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "onetime": "^7.0.0", + "signal-exit": "^4.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/rfdc": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", + "dev": true, + "license": "MIT" + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/slice-ansi": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.2.tgz", + "integrity": "sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.1", + "is-fullwidth-code-point": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/string-argv": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz", + "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.6.19" + } + }, + "node_modules/string-width": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.1.1.tgz", + "integrity": "sha512-KpqHIdDL9KwYk22wEOg/VIqYbrnLeSApsKT/bSj6Ez7pn3CftUiLAv2Lccpq1ALcpLV9UX1Ppn92npZWu2w/aw==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-east-asian-width": "^1.3.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-ansi": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/wrap-ansi": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz", + "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yaml": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz", + "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", + "dev": true, + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" + } } } } diff --git a/package.json b/package.json index af7dd390..1e856335 100644 --- a/package.json +++ b/package.json @@ -1,9 +1,15 @@ { "devDependencies": { + "husky": "^9.1.7", + "lint-staged": "^16.2.7", "prettier": "3.7.4" }, + "lint-staged": { + "*": "prettier --ignore-unknown --write" + }, "scripts": { "format": "prettier --write .", - "format:check": "prettier --check ." + "format:check": "prettier --check .", + "prepare": "husky" } } diff --git a/resources/developer/deployed-contracts/initia.mdx b/resources/developer/deployed-contracts/initia.mdx index 2e86a1f4..1d89f397 100644 --- a/resources/developer/deployed-contracts/initia.mdx +++ b/resources/developer/deployed-contracts/initia.mdx @@ -6,15 +6,13 @@ title: Deployed Contracts (Initia) - | Contract Name | Address | | ------------- | - ------------------------------------------ | | + | Contract Name | Address | | ------------- | ------------------------------------------ | | [VIP](/home/core-concepts/vip/introduction) | [`0x3a886b32a802582f2e446e74d4a24d1d7ed01adf46d2a8f65c5723887e708789`](https://scan.initia.xyz/interwoven-1/modules/0x3a886b32a802582f2e446e74d4a24d1d7ed01adf46d2a8f65c5723887e708789/vip) | - | Contract Name | Address | | ------------- | - ------------------------------------------ | | + | Contract Name | Address | | ------------- | ------------------------------------------ | | [VIP](/home/core-concepts/vip/introduction) | [`0x81c3ea419d2fd3a27971021d9dd3cc708def05e5d6a09d39b2f1f9ba18312264`](https://scan.testnet.initia.xyz/initiation-2/modules/0x81c3ea419d2fd3a27971021d9dd3cc708def05e5d6a09d39b2f1f9ba18312264/vip) | diff --git a/resources/developer/deployed-contracts/minievm.mdx b/resources/developer/deployed-contracts/minievm.mdx index 6172b597..0364b12a 100644 --- a/resources/developer/deployed-contracts/minievm.mdx +++ b/resources/developer/deployed-contracts/minievm.mdx @@ -4,15 +4,12 @@ title: Deployed Contracts (MiniEVM) - | Contract Name | Address | ABI | | ------------- | - ------------------------------------------ | --- | | - [Cosmos](/resources/developer/contract-references/evm/cosmos) | `0xf1` | TBA - | | - [ERC20Registry](/resources/developer/contract-references/evm/erc20-registry) - | `0xf2` | TBA | + | Contract Name | Address | ABI | | ------------- | ------------------------------------------ | --- | | + [Cosmos](/resources/developer/contract-references/evm/cosmos) | `0xf1` | TBA | | + [ERC20Registry](/resources/developer/contract-references/evm/erc20-registry) | `0xf2` | TBA | [ERC20Factory](/resources/developer/contract-references/evm/erc20-factory) | `0xd53506E20eA25122aC6adc6462D9D1cf810Ef5a4` | TBA | | - [ConnectOracle](/resources/developer/contract-references/evm/connect) | - `0x031ECb63480983FD216D17BB6e1d393f3816b72F` | TBA | + [ConnectOracle](/resources/developer/contract-references/evm/connect) | `0x031ECb63480983FD216D17BB6e1d393f3816b72F` + | TBA | diff --git a/resources/developer/initia-l1.mdx b/resources/developer/initia-l1.mdx index dfb2dd4a..3078c89b 100644 --- a/resources/developer/initia-l1.mdx +++ b/resources/developer/initia-l1.mdx @@ -37,14 +37,12 @@ icon: globe - | Item | Value | |----------------------------|---------------| | Minimum - Gas Prices | 0.015uinit | | Block Gas Limit | 200,000,000 | | Staking - Unbonding Period | 21 days | | Governance Voting Period | 7 days | + | Item | Value | |----------------------------|---------------| | Minimum Gas Prices | 0.015uinit | | Block Gas + Limit | 200,000,000 | | Staking Unbonding Period | 21 days | | Governance Voting Period | 7 days | - | Item | Value | |----------------------------|---------------| | Minimum - Gas Prices | 0.015uinit | | Block Gas Limit | 200,000,000 | | Staking - Unbonding Period | 7 days | | Governance Voting Period | 2 days | + | Item | Value | |----------------------------|---------------| | Minimum Gas Prices | 0.015uinit | | Block Gas + Limit | 200,000,000 | | Staking Unbonding Period | 7 days | | Governance Voting Period | 2 days | @@ -75,67 +73,47 @@ You can find a number of RPCs, APIs, and gRPCs for the network in the - | Category | Parameter | Mainnet | Explanation | - |----------|-----------|---------|-------------| | VIP | `stage_interval` | - 2 weeks | Length of one stage (frequency of esINIT distribution) | | VIP | - `vesting_period` | 26 stages | Total vesting period for esINIT | | VIP | - `minimum_lock_staking_period` | 26 weeks | Minimum lock period for an esINIT - lock-staking position (“zapping”) | | VIP | `challenge_period` | 3 days | - Window during which a score-snapshot challenge may be submitted | | VIP | - `min_score_ratio` | 0.5 | Multiplier applied to the previous stage’s score - to determine the minimum score required to fully vest esINIT in the next - stage | | VIP | `pool_split_ratio` | 0.2 | Portion of total rewards directed - to the balance pool | | VIP | `minimum_eligible_tvl` | 0 | Minimum INIT TVL - required for whitelisting and eligibility for stage rewards | | VIP | - `maximum_weight_ratio` | 0.4 | Maximum share of gauge votes from a single - L2, relative to total votes, counted for esINIT distribution | | VIP - (Operator) | `max_commission_rate` | 0.25 | Maximum esINIT commission rate a - rollup can set | | VIP (TVL manager) | `snapshot_interval` | 1 hour | - Frequency of TVL snapshots for all L2s | | VIP (Lock Staking) | - `min_lock_period` | 30 days | Minimum lock period for any lock-staking - position | | VIP (Lock Staking) | `max_lock_period` | 2 years | Maximum lock - period for all lock-staking positions (including esINIT positions) | | VIP - (Lock Staking) | `max_delegation_slot` | 60 | Maximum number of unique - lock-staking positions per user | | VIP (gauge vote) | `cycle_start_time` | - Same as stage start time | Start time of the first gauge-vote cycle | | VIP - (gauge vote) | `cycle_interval` | 2 weeks | Length of a gauge-vote cycle | | - VIP (gauge vote) | `voting_period` | 13 days | Duration of the voting window - within a cycle | | VIP (gauge vote) | `max_lock_period_multiplier` | 4 | - Voting-power multiplier for the maximum lock duration | | VIP (gauge vote) | - `min_lock_period_multiplier` | 1 | Voting-power multiplier for the minimum - lock duration | | VIP (gauge vote) | `pair_multipliers` | 1 for all pools | + | Category | Parameter | Mainnet | Explanation | |----------|-----------|---------|-------------| | VIP | + `stage_interval` | 2 weeks | Length of one stage (frequency of esINIT distribution) | | VIP | `vesting_period` | 26 + stages | Total vesting period for esINIT | | VIP | `minimum_lock_staking_period` | 26 weeks | Minimum lock period + for an esINIT lock-staking position (“zapping”) | | VIP | `challenge_period` | 3 days | Window during which a + score-snapshot challenge may be submitted | | VIP | `min_score_ratio` | 0.5 | Multiplier applied to the previous + stage’s score to determine the minimum score required to fully vest esINIT in the next stage | | VIP | + `pool_split_ratio` | 0.2 | Portion of total rewards directed to the balance pool | | VIP | `minimum_eligible_tvl` | + 0 | Minimum INIT TVL required for whitelisting and eligibility for stage rewards | | VIP | `maximum_weight_ratio` | + 0.4 | Maximum share of gauge votes from a single L2, relative to total votes, counted for esINIT distribution | | + VIP (Operator) | `max_commission_rate` | 0.25 | Maximum esINIT commission rate a rollup can set | | VIP (TVL + manager) | `snapshot_interval` | 1 hour | Frequency of TVL snapshots for all L2s | | VIP (Lock Staking) | + `min_lock_period` | 30 days | Minimum lock period for any lock-staking position | | VIP (Lock Staking) | + `max_lock_period` | 2 years | Maximum lock period for all lock-staking positions (including esINIT positions) | | + VIP (Lock Staking) | `max_delegation_slot` | 60 | Maximum number of unique lock-staking positions per user | | VIP + (gauge vote) | `cycle_start_time` | Same as stage start time | Start time of the first gauge-vote cycle | | VIP + (gauge vote) | `cycle_interval` | 2 weeks | Length of a gauge-vote cycle | | VIP (gauge vote) | `voting_period` | 13 + days | Duration of the voting window within a cycle | | VIP (gauge vote) | `max_lock_period_multiplier` | 4 | + Voting-power multiplier for the maximum lock duration | | VIP (gauge vote) | `min_lock_period_multiplier` | 1 | + Voting-power multiplier for the minimum lock duration | | VIP (gauge vote) | `pair_multipliers` | 1 for all pools | Voting-power multiplier applied to each enshrined liquidity pair | - | Category | Parameter | Testnet | Explanation | - |----------|-----------|---------|-------------| | VIP | `stage_interval` | - 1 day | Length of one stage (frequency of esINIT distribution) | | VIP | - `vesting_period` | 26 stages | Total vesting period for esINIT | | VIP | - `minimum_lock_staking_period` | 1 day | Minimum lock period for an esINIT - lock-staking position (“zapping”) | | VIP | `challenge_period` | none | - Window during which a score-snapshot challenge may be submitted | | VIP | - `min_score_ratio` | 0.5 | Multiplier applied to the previous stage’s score - to determine the minimum score required to fully vest esINIT in the next - stage | | VIP | `pool_split_ratio` | 0.5 | Portion of total rewards directed - to the balance pool | | VIP | `minimum_eligible_tvl` | 0 | Minimum INIT TVL - required for whitelisting and eligibility for stage rewards | | VIP | - `maximum_weight_ratio` | 1 | Maximum share of gauge votes from a single L2, - relative to total votes, counted for esINIT distribution | | VIP (Operator) - | `max_commission_rate` | none | Maximum esINIT commission rate a rollup can - set | | VIP (TVL manager) | `snapshot_interval` | 4 hours | Frequency of TVL - snapshots for all L2s | | VIP (Lock Staking) | `min_lock_period` | 12 hours - | Minimum lock period for any lock-staking position | | VIP (Lock Staking) | - `max_lock_period` | 6 days | Maximum lock period for all lock-staking - positions (including esINIT positions) | | VIP (Lock Staking) | - `max_delegation_slot` | 50 | Maximum number of unique lock-staking positions - per user | | VIP (gauge vote) | `cycle_start_time` | Same as stage start - time | Start time of the first gauge-vote cycle | | VIP (gauge vote) | - `cycle_interval` | 1 day | Length of a gauge-vote cycle | | VIP (gauge vote) - | `voting_period` | 23 hours | Duration of the voting window within a cycle - | | VIP (gauge vote) | `max_lock_period_multiplier` | 4 | Voting-power - multiplier for the maximum lock duration | | VIP (gauge vote) | - `min_lock_period_multiplier` | 1 | Voting-power multiplier for the minimum - lock duration | | VIP (gauge vote) | `pair_multipliers` | 1 for all pairs | - Voting-power multiplier applied to each enshrined liquidity pair | + | Category | Parameter | Testnet | Explanation | |----------|-----------|---------|-------------| | VIP | + `stage_interval` | 1 day | Length of one stage (frequency of esINIT distribution) | | VIP | `vesting_period` | 26 + stages | Total vesting period for esINIT | | VIP | `minimum_lock_staking_period` | 1 day | Minimum lock period for + an esINIT lock-staking position (“zapping”) | | VIP | `challenge_period` | none | Window during which a + score-snapshot challenge may be submitted | | VIP | `min_score_ratio` | 0.5 | Multiplier applied to the previous + stage’s score to determine the minimum score required to fully vest esINIT in the next stage | | VIP | + `pool_split_ratio` | 0.5 | Portion of total rewards directed to the balance pool | | VIP | `minimum_eligible_tvl` | + 0 | Minimum INIT TVL required for whitelisting and eligibility for stage rewards | | VIP | `maximum_weight_ratio` | + 1 | Maximum share of gauge votes from a single L2, relative to total votes, counted for esINIT distribution | | VIP + (Operator) | `max_commission_rate` | none | Maximum esINIT commission rate a rollup can set | | VIP (TVL manager) | + `snapshot_interval` | 4 hours | Frequency of TVL snapshots for all L2s | | VIP (Lock Staking) | `min_lock_period` | + 12 hours | Minimum lock period for any lock-staking position | | VIP (Lock Staking) | `max_lock_period` | 6 days | + Maximum lock period for all lock-staking positions (including esINIT positions) | | VIP (Lock Staking) | + `max_delegation_slot` | 50 | Maximum number of unique lock-staking positions per user | | VIP (gauge vote) | + `cycle_start_time` | Same as stage start time | Start time of the first gauge-vote cycle | | VIP (gauge vote) | + `cycle_interval` | 1 day | Length of a gauge-vote cycle | | VIP (gauge vote) | `voting_period` | 23 hours | Duration + of the voting window within a cycle | | VIP (gauge vote) | `max_lock_period_multiplier` | 4 | Voting-power + multiplier for the maximum lock duration | | VIP (gauge vote) | `min_lock_period_multiplier` | 1 | Voting-power + multiplier for the minimum lock duration | | VIP (gauge vote) | `pair_multipliers` | 1 for all pairs | Voting-power + multiplier applied to each enshrined liquidity pair | diff --git a/snippets/networks.mdx b/snippets/networks.mdx index 56443b39..bac06dd9 100644 --- a/snippets/networks.mdx +++ b/snippets/networks.mdx @@ -5,11 +5,8 @@ snippet: true export const NetworksRegistry = ({}) => ( For Initia L1 and Initia-hosted rollups, you can find these values in the{' '} - networks section of the - documentation. For MiniMove rollups, you can find these values in the{' '} - - Initia Registry - {' '} + networks section of the documentation. For MiniMove rollups, you can + find these values in the Initia Registry{' '} repository. ) diff --git a/snippets/terminology.mdx b/snippets/terminology.mdx index dbc4bb5d..99b10734 100644 --- a/snippets/terminology.mdx +++ b/snippets/terminology.mdx @@ -8,8 +8,7 @@ snippet: true export const INIT = 'The vanilla Initia INIT tokens on the Initia L1' export const m = 'The destination rollup that the user wants to bridge to' -export const OpINIT = - 'The variation of the INIT tokens bridged directly from the Initia L1 to the destination rollup m' +export const OpINIT = 'The variation of the INIT tokens bridged directly from the Initia L1 to the destination rollup m' export const IbcOpINIT = 'The variation of the INIT token that was bridged from Initia L1 to the rollup m through OP Bridge, then subsequently back to the L1 through IBC' @@ -24,8 +23,7 @@ export const LiquidityProvider = 'A user that provides INIT token liquidity to the Minitswap DEX. Unlike conventional DEXes, Minitswap only allows for single-sided INIT token deposits.' export const PegKeeper = 'A virtual market participant implemented into the DEX that automatically swaps INIT tokens for IbcOpINIT tokens directly before or after all user swaps. The aim of the peg keeper is to maintain a swap price close to 1 before fees.' -export const User = - 'The end user using the Minitswap DEX who seeks to swap IbcOpINIT tokens into INIT.' +export const User = 'The end user using the Minitswap DEX who seeks to swap IbcOpINIT tokens into INIT.' export const VirtualPoolSize = 'Virtual Pool size: An on-chain governance-set parameter that defines the size of the virtual liquidity pool. A larger value increases the total available swap liquidity for Minitswap and helps facilitate a larger swap volume, all else being equal.' @@ -35,7 +33,6 @@ export const VirtualPoolImbalance = 'This is defined to be the ratio of the Virtual Pool size V and the Peg Keeper balance B. The ratio measures how far the virtual pool currently deviates from the initial state. When there is a large volume of swaps in only one direction, the ratio increases.' export const FullyRecoveredRatio = 'Defines the ideal proportion of IbcOpInit vs. INIT in the virtual pool. For example, a ratio of 0.6 implies that the ratio of IbcOpInit to INIT is 6:4. When a user performs a swap, the pool ratio is compared to the Fully Recovered Ratio. If the current pool is greater, the Peg Keeper will swap the IbcOpInit tokens for INIT tokens.' -export const MaxRatio = - 'A governance-controlled value that dictates the largest Fully Recovered Ratio value allowed.' +export const MaxRatio = 'A governance-controlled value that dictates the largest Fully Recovered Ratio value allowed.' export const Flexibility = "A governance-controlled variable that modifies the Peg Keeper's tolerance towards imbalance. A higher flexibility means that a low target ratio can be maintained even with a high imbalance. When the flexibility is low, the Peg Keeper will interfere less frequently compared to high flexibility, ceteris paribus." diff --git a/user-guides/wallet/auto-signing/introduction.mdx b/user-guides/wallet/auto-signing/introduction.mdx index e2f8c4cf..072d10a9 100644 --- a/user-guides/wallet/auto-signing/introduction.mdx +++ b/user-guides/wallet/auto-signing/introduction.mdx @@ -14,6 +14,6 @@ keys, and assets while enjoying faster, smoother on-chain interactions across all Initia appchains and supported apps. - For guides on how to integrate with Ghost Wallets, please refer to the - [InterwovenKit section](/interwovenkit) of the documentation. + For guides on how to integrate with Ghost Wallets, please refer to the [InterwovenKit section](/interwovenkit) of the + documentation. From bf3c7f52a6ca8f36b8b257d073df4ef553ad8aca Mon Sep 17 00:00:00 2001 From: tansawit Date: Wed, 18 Feb 2026 13:42:45 +0700 Subject: [PATCH 2/2] chore: keep existing prettier policy for mdx --- .prettierrc | 12 +- .../registry/introduction.mdx | 4 +- .../integrating-initia-apps/usernames.mdx | 16 +- .../vip/update-vip-scoring-criteria.mdx | 35 ++-- .../vip/whitelist-rollup-for-vip.mdx | 10 +- .../tools/clis/initiad-cli/accounts.mdx | 15 +- .../tools/clis/initiad-cli/introduction.mdx | 28 ++-- .../tools/clis/minitiad-cli/introduction.mdx | 37 +++-- .../tools/clis/weave-cli/gas-station.mdx | 16 +- .../tools/clis/weave-cli/installation.mdx | 3 +- .../tools/clis/weave-cli/rollup/launch.mdx | 24 +-- .../clis/weave-cli/rollup/next-steps.mdx | 9 +- .../clis/weave-cli/rollup/opinit-bots.mdx | 5 +- .../tools/clis/weave-cli/rollup/relayer.mdx | 13 +- .../tools/indexers/nft-collection-details.mdx | 3 +- .../indexers/nft-collections-by-account.mdx | 3 +- .../tools/indexers/nft-tokens-by-account.mdx | 3 +- .../indexers/nft-tokens-by-collection.mdx | 3 +- .../indexers/transactions-by-account.mdx | 3 +- .../tools/indexers/transactions-by-hash.mdx | 3 +- .../tools/indexers/transactions-by-height.mdx | 3 +- .../getting-single-asset-price.mdx | 3 +- .../fetching-prices-from-contracts.mdx | 12 +- .../tools/sdks/initia-js/accounts.mdx | 5 +- .../tools/sdks/initia-js/querying-data.mdx | 25 ++- .../transactions/sending-transactions.mdx | 36 ++++- .../transactions/signing-transactions.mdx | 36 ++++- .../evm/address-conversion.mdx | 4 +- .../api-endpoints/nft-collection-details.mdx | 3 +- .../nft-collections-by-account.mdx | 3 +- .../api-endpoints/nft-tokens-by-account.mdx | 3 +- .../nft-tokens-by-collection.mdx | 3 +- .../evm/connect-oracles.mdx | 6 +- .../evm/cosmos-coin-to-erc20.mdx | 16 +- .../creating-custom-erc20s.mdx | 8 +- .../creating-standard-erc20s.mdx | 32 +++- .../evm/creating-erc20s/introduction.mdx | 3 +- .../vm-specific-tutorials/evm/ibc-hooks.mdx | 13 +- .../evm/update-fee-token.mdx | 13 +- .../movevm/ibc-hooks.mdx | 22 ++- .../vm-specific-tutorials/movevm/multisig.mdx | 31 ++-- .../wasmvm/ibc-hooks.mdx | 20 ++- developers/running-nodes/introduction.mdx | 5 +- .../manual-setup/node-configuration.mdx | 5 +- .../running-nodes/manual-setup/node-setup.mdx | 4 +- .../manual-setup/starting-the-node.mdx | 17 +- .../becoming-a-validator.mdx | 11 +- docs.json | 20 ++- home/core-concepts/minitswap/architecture.mdx | 17 +- home/core-concepts/minitswap/introduction.mdx | 8 +- home/core-concepts/vip/architecture.mdx | 23 ++- home/core-concepts/vip/eligibility.mdx | 7 +- home/general/welcome.mdx | 18 ++- home/tools/wallet.mdx | 9 +- .../features/autosign/api-reference.mdx | 15 +- .../features/autosign/configuration.mdx | 28 ++-- .../features/autosign/introduction.mdx | 8 +- interwovenkit/features/autosign/usage.mdx | 12 +- .../features/transfers/deposit-withdraw.mdx | 16 +- interwovenkit/getting-started.mdx | 24 ++- interwovenkit/integrations/evm.mdx | 29 +++- interwovenkit/integrations/native.mdx | 30 ++-- interwovenkit/integrations/rainbowkit.mdx | 5 +- interwovenkit/migration.mdx | 39 +++-- .../components/interwovenkit-provider.mdx | 22 ++- .../references/constants/privy-app-id.mdx | 6 +- .../references/hooks/use-address.mdx | 4 +- .../references/hooks/use-hex-address.mdx | 4 +- .../references/hooks/use-initia-address.mdx | 4 +- .../references/hooks/use-interwovenkit.mdx | 149 ++++++++++++------ .../references/hooks/use-portfolio.mdx | 4 +- .../references/hooks/use-username-query.mdx | 4 +- interwovenkit/references/setup/providers.mdx | 19 ++- .../references/utilities/inject-styles.mdx | 4 +- .../deploying-rollups/deploy.mdx | 13 +- .../deploying-rollups/initia-registry.mdx | 45 ++++-- nodes-and-rollups/indexing/introduction.mdx | 3 +- .../indexing/kv-indexer/legacy-overview.mdx | 3 +- .../indexing/rollytics/api-reference.mdx | 6 +- nodes-and-rollups/indexing/rollytics/faq.mdx | 3 +- .../rollytics/setup-and-migration.mdx | 3 +- .../running-nodes/introduction.mdx | 5 +- .../running-nodes/manual-setup/cosmovisor.mdx | 3 +- .../manual-setup/node-configuration.mdx | 5 +- .../running-nodes/manual-setup/node-setup.mdx | 4 +- .../manual-setup/starting-the-node.mdx | 17 +- .../becoming-a-validator.mdx | 5 +- .../running-l1-nodes/l1-nodes-initiad.mdx | 21 ++- .../running-l1-nodes/l1-nodes-weave.mdx | 6 +- .../developer/deployed-contracts/initia.mdx | 6 +- .../developer/deployed-contracts/minievm.mdx | 13 +- resources/developer/initia-l1.mdx | 108 ++++++++----- snippets/networks.mdx | 7 +- snippets/terminology.mdx | 9 +- .../wallet/auto-signing/introduction.mdx | 4 +- 95 files changed, 959 insertions(+), 445 deletions(-) diff --git a/.prettierrc b/.prettierrc index b16066db..54ae4563 100644 --- a/.prettierrc +++ b/.prettierrc @@ -2,14 +2,6 @@ "singleQuote": true, "semi": false, "trailingComma": "all", - "printWidth": 100, - "overrides": [ - { - "files": ["*.md", "*.mdx"], - "options": { - "proseWrap": "preserve", - "printWidth": 120 - } - } - ] + "printWidth": 80, + "proseWrap": "always" } diff --git a/developers/developer-guides/integrating-initia-apps/registry/introduction.mdx b/developers/developer-guides/integrating-initia-apps/registry/introduction.mdx index 2b95d7ee..1ba4c540 100644 --- a/developers/developer-guides/integrating-initia-apps/registry/introduction.mdx +++ b/developers/developer-guides/integrating-initia-apps/registry/introduction.mdx @@ -38,8 +38,8 @@ created in the previous step. You then need to create two files in the folder: and decimal precision. - You can create a PR to add both a profile and rollup at the same time, but the profile file is required for the rollup - to be fully supported. + You can create a PR to add both a profile and rollup at the same time, but the + profile file is required for the rollup to be fully supported. ## Adding Assets diff --git a/developers/developer-guides/integrating-initia-apps/usernames.mdx b/developers/developer-guides/integrating-initia-apps/usernames.mdx index e107cdd4..886942c9 100644 --- a/developers/developer-guides/integrating-initia-apps/usernames.mdx +++ b/developers/developer-guides/integrating-initia-apps/usernames.mdx @@ -31,7 +31,13 @@ const restClient = new RESTClient('https://rest.testnet.initia.xyz', { }) restClient.move - .view(moduleAddress, 'usernames', 'get_address_from_name', [], [bcs.string().serialize(name).toBase64()]) + .view( + moduleAddress, + 'usernames', + 'get_address_from_name', + [], + [bcs.string().serialize(name).toBase64()], + ) .then(console.log) // Response: @@ -63,7 +69,13 @@ const restClient = new RESTClient('https://rest.testnet.initia.xyz', { }) restClient.move - .view(moduleAddress, 'usernames', 'get_name_from_address', [], [bcs.address().serialize(address).toBase64()]) + .view( + moduleAddress, + 'usernames', + 'get_name_from_address', + [], + [bcs.address().serialize(address).toBase64()], + ) .then(console.log) // Response: diff --git a/developers/developer-guides/integrating-initia-apps/vip/update-vip-scoring-criteria.mdx b/developers/developer-guides/integrating-initia-apps/vip/update-vip-scoring-criteria.mdx index d085edc7..78ace310 100644 --- a/developers/developer-guides/integrating-initia-apps/vip/update-vip-scoring-criteria.mdx +++ b/developers/developer-guides/integrating-initia-apps/vip/update-vip-scoring-criteria.mdx @@ -6,29 +6,34 @@ This guide explains how to update the VIP scoring criteria for a rollup. - Use the provided [proposal template](https://forum.initia.xyz/t/epoch-x-rollup-vip-update/263) to submit forum - proposal on the [Initia Forum](https://forum.initia.xyz) outlining the new scoring criteria and the changes. This - proposal should be submitted at least one week before the VIP scoring criteria update date to allow the community to - review and discuss it. + Use the provided [proposal + template](https://forum.initia.xyz/t/epoch-x-rollup-vip-update/263) to + submit forum proposal on the [Initia Forum](https://forum.initia.xyz) + outlining the new scoring criteria and the changes. This proposal should be + submitted at least one week before the VIP scoring criteria update date to + allow the community to review and discuss it. - In your original VIP whitelist proposal forum post, add a comment that links to the new draft so community members - can follow the discussion. + In your original VIP whitelist proposal forum post, add a comment that links + to the new draft so community members can follow the discussion. - Inform the Initia team about your new criteria and share the link to the corresponding forum post so the VIP - Committee can review it. + Inform the Initia team about your new criteria and share the link to the + corresponding forum post so the VIP Committee can review it. The VIP committee will verify that your new criteria follow the [scoring - policy](/home/core-concepts/vip/scoring#scoring-criteria) and is logically sound. If the new scoring criteria meet - the requirements, the VIP committee will approve them and notify you. + policy](/home/core-concepts/vip/scoring#scoring-criteria) and is logically + sound. If the new scoring criteria meet the requirements, the VIP committee + will approve them and notify you. - After the VIP committee approves the new scoring criteria, announce the changes at least one week before it is - implemented to your community. Examples include posting on Discord, X (Twitter), and your other communication - channels. The announcement must clearly explain every change, giving the exact date and time when the new criteria - take effect. It should also link to the forum post and list any actions users must take so they have enough time to - prepare. + After the VIP committee approves the new scoring criteria, announce the + changes at least one week before it is implemented to your community. + Examples include posting on Discord, X (Twitter), and your other + communication channels. The announcement must clearly explain every change, + giving the exact date and time when the new criteria take effect. It should + also link to the forum post and list any actions users must take so they + have enough time to prepare. diff --git a/developers/developer-guides/integrating-initia-apps/vip/whitelist-rollup-for-vip.mdx b/developers/developer-guides/integrating-initia-apps/vip/whitelist-rollup-for-vip.mdx index fb1ec1fb..43f8c29d 100644 --- a/developers/developer-guides/integrating-initia-apps/vip/whitelist-rollup-for-vip.mdx +++ b/developers/developer-guides/integrating-initia-apps/vip/whitelist-rollup-for-vip.mdx @@ -6,10 +6,12 @@ A rollup must be whitelisted before it can participate in the Vested Interest Program (VIP). - The following steps are for whitelisting a rollup for VIP on Mainnet. For testnet rollups, please contact the Initia - team. This section also assumes you have already added your rollup to the [Initia - Registry](/developers/developer-guides/integrating-initia-apps/registry/introduction). If not, please follow the guide - in the [previous section](/developers/developer-guides/integrating-initia-apps/vip/integrate-vip). + The following steps are for whitelisting a rollup for VIP on Mainnet. For + testnet rollups, please contact the Initia team. This section also assumes you + have already added your rollup to the [Initia + Registry](/developers/developer-guides/integrating-initia-apps/registry/introduction). + If not, please follow the guide in the [previous + section](/developers/developer-guides/integrating-initia-apps/vip/integrate-vip). diff --git a/developers/developer-guides/tools/clis/initiad-cli/accounts.mdx b/developers/developer-guides/tools/clis/initiad-cli/accounts.mdx index f1c5cc47..69c0f0ec 100644 --- a/developers/developer-guides/tools/clis/initiad-cli/accounts.mdx +++ b/developers/developer-guides/tools/clis/initiad-cli/accounts.mdx @@ -21,7 +21,10 @@ initiad keys add $ACCOUNT_NAME # glass easy miracle sign tent anchor position cluster shift calm march elite menu must nose inform antique reason meadow relief layer term crush gesture ``` -The mnemonic key is the only way to recover your account if you forget your password. + + The mnemonic key is the only way to recover your account if you forget your + password. + If you want to create an EVM account, you can use the following command: @@ -33,8 +36,9 @@ initiad keys add $ACCOUNT_NAME --key-type $ETH_KEY_TYPE --coin-type $ETH_COIN_TY ``` - Even with the same mnemonic phrase, the derived addresses differ because the method of generating the public key - varies, leading to each account being treated separately. + Even with the same mnemonic phrase, the derived addresses differ because the + method of generating the public key varies, leading to each account being + treated separately. ## Importing an Account @@ -72,8 +76,9 @@ initiad keys export $ACCOUNT_NAME > key.json ``` - The exported private key is encrypted with a passphrase. So, you can only import it using `initiad` CLI. It is not - possible to import it directly on Wallet Apps. + The exported private key is encrypted with a passphrase. So, you can only + import it using `initiad` CLI. It is not possible to import it directly on + Wallet Apps. To import the account using the exported private key, run: diff --git a/developers/developer-guides/tools/clis/initiad-cli/introduction.mdx b/developers/developer-guides/tools/clis/initiad-cli/introduction.mdx index adef4573..abb0f070 100644 --- a/developers/developer-guides/tools/clis/initiad-cli/introduction.mdx +++ b/developers/developer-guides/tools/clis/initiad-cli/introduction.mdx @@ -1,6 +1,7 @@ --- title: Introduction -description: Learn how to install and get started with the initiad command-line interface +description: + Learn how to install and get started with the initiad command-line interface for interacting with Initia L1 --- @@ -24,7 +25,8 @@ With initiad, you can: local) - initiad is built using the Cosmos SDK and provides a familiar interface for users of other Cosmos-based chains. + initiad is built using the Cosmos SDK and provides a familiar interface for + users of other Cosmos-based chains. ## Prerequisites @@ -35,7 +37,9 @@ Before installing initiad, ensure you have the following requirements: - **Git**: For cloning the repository - **Make**: For building the binary -You can verify your Go installation by running `go version` in your terminal. + + You can verify your Go installation by running `go version` in your terminal. + ## Installation @@ -64,9 +68,10 @@ git checkout $VERSION - ```bash # Get the current testnet version and checkout export VERSION=$(curl -s - https://rest.testnet.initia.xyz/cosmos/base/tendermint/v1beta1/node_info | jq -r '.application_version.version' | grep - -oE 'v[0-9]+\.[0-9]+\.[0-9]+') echo "Checking out version: $VERSION" git checkout $VERSION ``` + ```bash # Get the current testnet version and checkout export VERSION=$(curl + -s https://rest.testnet.initia.xyz/cosmos/base/tendermint/v1beta1/node_info | + jq -r '.application_version.version' | grep -oE 'v[0-9]+\.[0-9]+\.[0-9]+') + echo "Checking out version: $VERSION" git checkout $VERSION ``` @@ -80,7 +85,8 @@ git checkout $VERSION - Always use a specific version tag rather than the main branch for production environments to ensure stability. + Always use a specific version tag rather than the main branch for production + environments to ensure stability. @@ -138,7 +144,8 @@ initiad config node https://rpc.initia.xyz:443
- ```bash initiad config chain-id initiation-1 initiad config node https://rpc.testnet.initia.xyz:443 ``` + ```bash initiad config chain-id initiation-1 initiad config node + https://rpc.testnet.initia.xyz:443 ``` @@ -158,7 +165,10 @@ Now that you have initiad installed and configured, you can: Set up accounts for sending transactions and managing assets - + Learn how to query balances, transactions, and network information diff --git a/developers/developer-guides/tools/clis/minitiad-cli/introduction.mdx b/developers/developer-guides/tools/clis/minitiad-cli/introduction.mdx index 804d9561..d6a02649 100644 --- a/developers/developer-guides/tools/clis/minitiad-cli/introduction.mdx +++ b/developers/developer-guides/tools/clis/minitiad-cli/introduction.mdx @@ -1,6 +1,7 @@ --- title: Introduction -description: Learn how to install and get started with the minitiad command-line interface +description: + Learn how to install and get started with the minitiad command-line interface for interacting with Initia rollups --- @@ -26,8 +27,8 @@ With minitiad, you can: rollup chains - minitiad is built using the Cosmos SDK and provides a familiar interface for users of other Cosmos-based chains, - specifically optimized for Initia rollups. + minitiad is built using the Cosmos SDK and provides a familiar interface for + users of other Cosmos-based chains, specifically optimized for Initia rollups. ## VM Types and Repositories @@ -42,7 +43,10 @@ requires a specific minitiad implementation: - **EVM**: [minievm](https://github.com/initia-labs/minievm) - For rollups running Ethereum Virtual Machine smart contracts -Check your rollup chain's documentation to determine which VM type it uses before installation. + + Check your rollup chain's documentation to determine which VM type it uses + before installation. + ## Prerequisites @@ -52,7 +56,9 @@ Before installing minitiad, ensure you have the following requirements: - **Git**: For cloning the repository - **Make**: For building the binary -You can verify your Go installation by running `go version` in your terminal. + + You can verify your Go installation by running `go version` in your terminal. + ## Installation @@ -68,7 +74,9 @@ cd minimove ``` -```bash git clone https://github.com/initia-labs/miniwasm.git cd miniwasm ``` + + ```bash git clone https://github.com/initia-labs/miniwasm.git cd miniwasm ``` + ```bash @@ -112,7 +120,8 @@ git checkout $VERSION - Always use a specific version tag rather than the main branch for production environments to ensure stability. + Always use a specific version tag rather than the main branch for production + environments to ensure stability. @@ -136,7 +145,10 @@ This will build the binary and install it to your `$GOPATH/bin` directory. After installation, verify that minitiad is correctly installed and accessible: -The CLI binary is always named `minitiad` regardless of which VM-specific repository you cloned. + + The CLI binary is always named `minitiad` regardless of which VM-specific + repository you cloned. + ### Check CLI Version @@ -177,8 +189,8 @@ minitiad config node $CHAIN_RPC_ENDPOINT ``` - Make sure to use the correct endpoints for your specific rollup chain. Each Initia rollup has its own unique endpoints - and chain ID. + Make sure to use the correct endpoints for your specific rollup chain. Each + Initia rollup has its own unique endpoints and chain ID. ## Next Steps @@ -187,4 +199,7 @@ Now that you have minitiad installed and configured, you can start building and deploying applications on Initia rollup chains. The specific workflow will depend on your rollup's VM type (Move, Wasm, or EVM). -Additional minitiad CLI documentation pages are currently being developed and will be available soon. + + Additional minitiad CLI documentation pages are currently being developed and + will be available soon. + diff --git a/developers/developer-guides/tools/clis/weave-cli/gas-station.mdx b/developers/developer-guides/tools/clis/weave-cli/gas-station.mdx index fa293c24..338d90d6 100644 --- a/developers/developer-guides/tools/clis/weave-cli/gas-station.mdx +++ b/developers/developer-guides/tools/clis/weave-cli/gas-station.mdx @@ -15,9 +15,10 @@ This is essential for seamless operation with Weave as it eliminates the need for manual fund distribution. - While Weave requires your consent for all fund transfers, using a separate account prevents any potential misuse of an - existing account. We strongly recommend creating a new dedicated account for Gas Station use rather than using an - existing account + While Weave requires your consent for all fund transfers, using a separate + account prevents any potential misuse of an existing account. We strongly + recommend creating a new dedicated account for Gas Station use rather than + using an existing account ## Setting up the Gas Station @@ -31,8 +32,8 @@ Once setup is complete, you'll see two addresses in `init` and `celestia` format. - While the Gas Station addresses for Celestia and the Initia ecosystem will be different, both are derived from the - same mnemonic that you entered. + While the Gas Station addresses for Celestia and the Initia ecosystem will be + different, both are derived from the same mnemonic that you entered. Then fund the account with at least 10 INIT tokens to support the necessary @@ -40,8 +41,9 @@ components. If you're planning to use Celestia as your Data Availability Layer, you'll also need to fund the account with `TIA` tokens. - For testnet operations: - Get testnet `INIT` tokens from the [Initia faucet](https://faucet.testnet.initia.xyz/) - Get - testnet `TIA` tokens from the [Celestia + For testnet operations: - Get testnet `INIT` tokens from the [Initia + faucet](https://faucet.testnet.initia.xyz/) - Get testnet `TIA` tokens from + the [Celestia faucet](https://docs.celestia.org/how-to-guides/mocha-testnet#mocha-testnet-faucet) diff --git a/developers/developer-guides/tools/clis/weave-cli/installation.mdx b/developers/developer-guides/tools/clis/weave-cli/installation.mdx index 3a9d41b1..546cd53c 100644 --- a/developers/developer-guides/tools/clis/weave-cli/installation.mdx +++ b/developers/developer-guides/tools/clis/weave-cli/installation.mdx @@ -101,7 +101,8 @@ weave analytics disable icon="arrow-right-arrow-left" href="/developers/developer-guides/tools/clis/weave-cli/rollup/relayer" > - Setup and run the IBC relayer. This is necessary for built-in oracle to work. + Setup and run the IBC relayer. This is necessary for built-in oracle to + work. - Weave will send some funds from Gas Station to the OPinit Bot accounts during this process. Please make sure that your - Gas Station account has enough funds to cover the total amount of funds to be sent (this amount will be shown to you - before sending the funds). + Weave will send some funds from Gas Station to the OPinit Bot accounts during + this process. Please make sure that your Gas Station account has enough funds + to cover the total amount of funds to be sent (this amount will be shown to + you before sending the funds). Haven't set up the Gas Station yet? Please [Check out this @@ -48,16 +49,16 @@ weave rollup launch --with-config --vm The directory to store the rollup node data and configuration files. - Path to the rollup config file. Use this flag to launch from a config file without going through the interactive setup - process. + Path to the rollup config file. Use this flag to launch from a config file + without going through the interactive setup process. - The VM to use for the rollup node. The available options are `move`, `wasm`, and `evm`. **This is required when - `--with-config` flag is provided.** + The VM to use for the rollup node. The available options are `move`, `wasm`, + and `evm`. **This is required when `--with-config` flag is provided.** - Force the launch of the rollup node even if the config file already exists. **This only works when `--with-config` - flag is provided.** + Force the launch of the rollup node even if the config file already exists. + **This only works when `--with-config` flag is provided.** ## Running your Rollup node @@ -66,8 +67,9 @@ weave rollup launch --with-config --vm ```bash weave rollup start ``` - Note that `launch` command already starts the rollup node for you. This command is only needed if you have stopped - the node and want to start it again. + Note that `launch` command already starts the rollup node for you. This + command is only needed if you have stopped the node and want to start it + again. **Available Flags** diff --git a/developers/developer-guides/tools/clis/weave-cli/rollup/next-steps.mdx b/developers/developer-guides/tools/clis/weave-cli/rollup/next-steps.mdx index ab94893d..0f7889ac 100644 --- a/developers/developer-guides/tools/clis/weave-cli/rollup/next-steps.mdx +++ b/developers/developer-guides/tools/clis/weave-cli/rollup/next-steps.mdx @@ -24,10 +24,11 @@ will help you get started: ## Going Live - If you are launching a rollup for testing purposes, you can skip this section. When your rollup is ready for - production and you want it to be publicly visible in the Initia ecosystem, contact the Initia team first via - [Discord](https://discord.gg/initia) by raising a ticket. We will walk you through the registry and bridge integration - steps described below. + If you are launching a rollup for testing purposes, you can skip this section. + When your rollup is ready for production and you want it to be publicly + visible in the Initia ecosystem, contact the Initia team first via + [Discord](https://discord.gg/initia) by raising a ticket. We will walk you + through the registry and bridge integration steps described below. To make your rollup node visible to the Initia ecosystem, register it in the diff --git a/developers/developer-guides/tools/clis/weave-cli/rollup/opinit-bots.mdx b/developers/developer-guides/tools/clis/weave-cli/rollup/opinit-bots.mdx index 04f4a16f..c9dc3ee4 100644 --- a/developers/developer-guides/tools/clis/weave-cli/rollup/opinit-bots.mdx +++ b/developers/developer-guides/tools/clis/weave-cli/rollup/opinit-bots.mdx @@ -110,8 +110,9 @@ weave opinit setup-keys The directory to store OPinit bots data and configuration files - Path to the rollup directory that contains the rollup's artifacts. This is useful when you are setting up OPinit bots - for a rollup that you have just launched, as it can use the artifacts from the rollup to setup the bots. + Path to the rollup directory that contains the rollup's artifacts. This is + useful when you are setting up OPinit bots for a rollup that you have just + launched, as it can use the artifacts from the rollup to setup the bots. diff --git a/developers/developer-guides/tools/clis/weave-cli/rollup/relayer.mdx b/developers/developer-guides/tools/clis/weave-cli/rollup/relayer.mdx index b3b0413a..8cf52b06 100644 --- a/developers/developer-guides/tools/clis/weave-cli/rollup/relayer.mdx +++ b/developers/developer-guides/tools/clis/weave-cli/rollup/relayer.mdx @@ -13,8 +13,9 @@ information about Rapid relayer, see the [Rapid relayer documentation](https://github.com/initia-labs/rapid-relayer). - Weave only supports IBC relayer setup between Initia L1 and Interwoven Rollups. Setting up relayers between other - arbitrary networks is not supported. + Weave only supports IBC relayer setup between Initia L1 and Interwoven + Rollups. Setting up relayers between other arbitrary networks is not + supported. ## Setting up @@ -46,8 +47,9 @@ on the rollup and able to stop other relayers from relaying when it detects a malicious message. - Relayer requires funds to relay messages between Initia L1 and your rollup (if it's not in the fee whitelist). If - Weave detects that your account does not have enough funds, Weave will ask you to fund via Gas Station. + Relayer requires funds to relay messages between Initia L1 and your rollup (if + it's not in the fee whitelist). If Weave detects that your account does not + have enough funds, Weave will ask you to fund via Gas Station. ## Running Relayer @@ -57,7 +59,8 @@ relayer directly. You'll need to manually set up and run the Rapid relayer using the generated configuration. - Make sure you have Node.js and npm installed on your system if you wish to run the relayer in the same machine. + Make sure you have Node.js and npm installed on your system if you wish to run + the relayer in the same machine. diff --git a/developers/developer-guides/tools/indexers/nft-collection-details.mdx b/developers/developer-guides/tools/indexers/nft-collection-details.mdx index 69c00cdf..d8842c74 100644 --- a/developers/developer-guides/tools/indexers/nft-collection-details.mdx +++ b/developers/developer-guides/tools/indexers/nft-collection-details.mdx @@ -1,6 +1,7 @@ --- title: NFT Collection Details -api: GET +api: + GET https://rollytics-api-evm-1.anvil.asia-southeast.initia.xyz/indexer/nft/v1/collections/{collection_addr} --- diff --git a/developers/developer-guides/tools/indexers/nft-collections-by-account.mdx b/developers/developer-guides/tools/indexers/nft-collections-by-account.mdx index dc36ec9b..b63671b8 100644 --- a/developers/developer-guides/tools/indexers/nft-collections-by-account.mdx +++ b/developers/developer-guides/tools/indexers/nft-collections-by-account.mdx @@ -1,6 +1,7 @@ --- title: NFT Collections by Account -api: GET +api: + GET https://rollytics-api-evm-1.anvil.asia-southeast.initia.xyz/indexer/nft/v1/collections/by_account/{account} --- diff --git a/developers/developer-guides/tools/indexers/nft-tokens-by-account.mdx b/developers/developer-guides/tools/indexers/nft-tokens-by-account.mdx index 90f42b8a..f9ca553c 100644 --- a/developers/developer-guides/tools/indexers/nft-tokens-by-account.mdx +++ b/developers/developer-guides/tools/indexers/nft-tokens-by-account.mdx @@ -1,6 +1,7 @@ --- title: NFT Tokens by Account -api: GET +api: + GET https://rollytics-api-evm-1.anvil.asia-southeast.initia.xyz/indexer/nft/v1/tokens/by_account/{account} --- diff --git a/developers/developer-guides/tools/indexers/nft-tokens-by-collection.mdx b/developers/developer-guides/tools/indexers/nft-tokens-by-collection.mdx index a10f6fe7..6825b4ee 100644 --- a/developers/developer-guides/tools/indexers/nft-tokens-by-collection.mdx +++ b/developers/developer-guides/tools/indexers/nft-tokens-by-collection.mdx @@ -1,6 +1,7 @@ --- title: NFT Tokens by Collection -api: GET +api: + GET https://rollytics-api-evm-1.anvil.asia-southeast.initia.xyz/indexer/nft/v1/tokens/by_collection/{collection_addr} --- diff --git a/developers/developer-guides/tools/indexers/transactions-by-account.mdx b/developers/developer-guides/tools/indexers/transactions-by-account.mdx index 01123a38..ac229e98 100644 --- a/developers/developer-guides/tools/indexers/transactions-by-account.mdx +++ b/developers/developer-guides/tools/indexers/transactions-by-account.mdx @@ -1,6 +1,7 @@ --- title: Transactions by Account -api: GET +api: + GET https://rollytics-api-evm-1.anvil.asia-southeast.initia.xyz/indexer/tx/v1/txs/by_account/{account} --- diff --git a/developers/developer-guides/tools/indexers/transactions-by-hash.mdx b/developers/developer-guides/tools/indexers/transactions-by-hash.mdx index 96244ac1..cf065cc0 100644 --- a/developers/developer-guides/tools/indexers/transactions-by-hash.mdx +++ b/developers/developer-guides/tools/indexers/transactions-by-hash.mdx @@ -1,6 +1,7 @@ --- title: Transaction by Hash -api: GET +api: + GET https://rollytics-api-move-1.anvil.asia-southeast.initia.xyz/indexer/tx/v1/txs/{tx_hash} --- diff --git a/developers/developer-guides/tools/indexers/transactions-by-height.mdx b/developers/developer-guides/tools/indexers/transactions-by-height.mdx index 10b9aafa..d1b666f8 100644 --- a/developers/developer-guides/tools/indexers/transactions-by-height.mdx +++ b/developers/developer-guides/tools/indexers/transactions-by-height.mdx @@ -1,6 +1,7 @@ --- title: Transactions by Height -api: GET +api: + GET https://rollytics-api-evm-1.anvil.asia-southeast.initia.xyz/indexer/tx/v1/txs/by_height/{height} --- diff --git a/developers/developer-guides/tools/oracles/connect/fetching-prices-from-api/getting-single-asset-price.mdx b/developers/developer-guides/tools/oracles/connect/fetching-prices-from-api/getting-single-asset-price.mdx index 4b3313ac..2866d663 100644 --- a/developers/developer-guides/tools/oracles/connect/fetching-prices-from-api/getting-single-asset-price.mdx +++ b/developers/developer-guides/tools/oracles/connect/fetching-prices-from-api/getting-single-asset-price.mdx @@ -1,6 +1,7 @@ --- title: Single Asset Price -api: GET /connect/oracle/v2/get_price?currency_pair={baseCurrency}/{quoteCurrency} +api: + GET /connect/oracle/v2/get_price?currency_pair={baseCurrency}/{quoteCurrency} --- diff --git a/developers/developer-guides/tools/oracles/connect/fetching-prices-from-contracts.mdx b/developers/developer-guides/tools/oracles/connect/fetching-prices-from-contracts.mdx index 83100d77..c75bf85c 100644 --- a/developers/developer-guides/tools/oracles/connect/fetching-prices-from-contracts.mdx +++ b/developers/developer-guides/tools/oracles/connect/fetching-prices-from-contracts.mdx @@ -7,7 +7,11 @@ utilized directly by smart contracts. On Initia, the way that this is done varies depending on the smart contract framework that is used - + Fetch prices from Solidity and other EVM-based smart contracts Fetch prices from Move modules - + Fetch prices from CosmWasm contracts diff --git a/developers/developer-guides/tools/sdks/initia-js/accounts.mdx b/developers/developer-guides/tools/sdks/initia-js/accounts.mdx index e66a2416..2b4f43d7 100644 --- a/developers/developer-guides/tools/sdks/initia-js/accounts.mdx +++ b/developers/developer-guides/tools/sdks/initia-js/accounts.mdx @@ -12,7 +12,10 @@ import { MnemonicKey } from '@initia/initia.js' const key = new MnemonicKey() ``` -The mnemonic key is the only way to recover your account if you forget your password. + + The mnemonic key is the only way to recover your account if you forget your + password. + ## Importing an Account diff --git a/developers/developer-guides/tools/sdks/initia-js/querying-data.mdx b/developers/developer-guides/tools/sdks/initia-js/querying-data.mdx index 4a35f9fe..6874aae2 100644 --- a/developers/developer-guides/tools/sdks/initia-js/querying-data.mdx +++ b/developers/developer-guides/tools/sdks/initia-js/querying-data.mdx @@ -34,8 +34,9 @@ const restClient = new RESTClient('https://rest.testnet.initia.xyz', { {' '} - Adjust gasPrices and gasAdjustment according to current [network](/resources/developer/initia-l1) conditions for - optimal transaction processing.{' '} + Adjust gasPrices and gasAdjustment according to current + [network](/resources/developer/initia-l1) conditions for optimal transaction + processing.{' '} Next, we will create a function to query the balance of an account. This @@ -117,7 +118,9 @@ VM-agnostic queries are queries that can be used across all VMs. - `balance()` : query the balance of an account ```typescript -const balances = await restClient.bank.balance('init14l3c2vxrdvu6y0sqykppey930s4kufsvt97aeu') +const balances = await restClient.bank.balance( + 'init14l3c2vxrdvu6y0sqykppey930s4kufsvt97aeu', +) ``` - `blockInfo()`: query the block information @@ -129,7 +132,9 @@ const blockInfo = await restClient.tendermint.blockInfo(10000) // If no height i - `txInfo()`: query the transaction information ```typescript -const txInfo = await restClient.tx.txInfo('6DFEE8E4BFC38341E8AADBD74A23588D8DE94FA38052CB5721DDA780A24F8B1D') +const txInfo = await restClient.tx.txInfo( + '6DFEE8E4BFC38341E8AADBD74A23588D8DE94FA38052CB5721DDA780A24F8B1D', +) ``` - `price()`: query the oracle price @@ -160,7 +165,14 @@ const res = await restClient.move.viewFunction( 'object', // name of the module 'owner', // function name ['0x1::object::ObjectCore'], // type arguments - [bcs.object().serialize('0xc4f0b3c2300c99b0d7717ce43cd76821407a34c79587542919876a8c241a2f94').toBase64()], // arguments + [ + bcs + .object() + .serialize( + '0xc4f0b3c2300c99b0d7717ce43cd76821407a34c79587542919876a8c241a2f94', + ) + .toBase64(), + ], // arguments ) ``` @@ -193,7 +205,8 @@ const module = await restClient.move.module('0x1', 'object') - `tableInfo()`: query the move contract table info ```typescript -const tableHandle = '0xc8c40eef193fc150fcb54264419bd3e39339c2ee8ba5834aed7826a9841cfb53' +const tableHandle = + '0xc8c40eef193fc150fcb54264419bd3e39339c2ee8ba5834aed7826a9841cfb53' const entryKeyBytes = 'A0vD7ATVOvfCWo1T7H8Pz2MOt5k6rvsScYEGgXe0QDw=' const tableInfo = await restClient.move.tableInfo(tableHandle) diff --git a/developers/developer-guides/tools/sdks/initia-js/transactions/sending-transactions.mdx b/developers/developer-guides/tools/sdks/initia-js/transactions/sending-transactions.mdx index 601a2ff1..756bfe5f 100644 --- a/developers/developer-guides/tools/sdks/initia-js/transactions/sending-transactions.mdx +++ b/developers/developer-guides/tools/sdks/initia-js/transactions/sending-transactions.mdx @@ -6,7 +6,14 @@ Sending transactions using InitiaJS is straightforward. First, we need to import the necessary classes and functions. ```ts -import { Wallet, RESTClient, MnemonicKey, MsgSend, Tx, WaitTxBroadcastResult } from '@initia/initia.js' +import { + Wallet, + RESTClient, + MnemonicKey, + MsgSend, + Tx, + WaitTxBroadcastResult, +} from '@initia/initia.js' ``` Next, we need to set up our environment variables. We will need the following: @@ -28,8 +35,10 @@ const mnemonic = process.env.MNEMONIC const restUrl = process.env.REST_URL || 'https://rest.testnet.initia.xyz' const gasPrices = process.env.GAS_PRICES || '0.015uinit' // Will be INIT for mainnet -const senderAddress = process.env.SENDER_ADDRESS || 'init1w4cqq6udjqtvl5xx0x6gjeyzgwtze8c05kysnu' -const recipientAddress = process.env.RECIPIENT_ADDRESS || 'init1w4cqq6udjqtvl5xx0x6gjeyzgwtze8c05kysnu' +const senderAddress = + process.env.SENDER_ADDRESS || 'init1w4cqq6udjqtvl5xx0x6gjeyzgwtze8c05kysnu' +const recipientAddress = + process.env.RECIPIENT_ADDRESS || 'init1w4cqq6udjqtvl5xx0x6gjeyzgwtze8c05kysnu' const amount = process.env.AMOUNT || '1000uinit' ``` @@ -63,7 +72,8 @@ async function sendTransaction(): Promise { memo: 'memo', }) - const result: WaitTxBroadcastResult = await restClient.tx.broadcast(signedTx) + const result: WaitTxBroadcastResult = + await restClient.tx.broadcast(signedTx) console.log('Transaction successful') console.log('Transaction hash:', result.txhash) return result @@ -97,14 +107,23 @@ Transaction hash: 4F0B810D15FA7D6A2B9EC2B98B263B0A20E791A8DABCB549620445941B25C6 ### Full Example ```ts src/sending-transactions.ts -import { Wallet, RESTClient, MnemonicKey, MsgSend, Tx, WaitTxBroadcastResult } from '@initia/initia.js' +import { + Wallet, + RESTClient, + MnemonicKey, + MsgSend, + Tx, + WaitTxBroadcastResult, +} from '@initia/initia.js' const mnemonic = process.env.MNEMONIC const restUrl = process.env.REST_URL || 'https://rest.testnet.initia.xyz' const gasPrices = process.env.GAS_PRICES || '0.015uinit' // Will be INIT for mainnet -const senderAddress = process.env.SENDER_ADDRESS || 'init1w4cqq6udjqtvl5xx0x6gjeyzgwtze8c05kysnu' -const recipientAddress = process.env.RECIPIENT_ADDRESS || 'init1w4cqq6udjqtvl5xx0x6gjeyzgwtze8c05kysnu' +const senderAddress = + process.env.SENDER_ADDRESS || 'init1w4cqq6udjqtvl5xx0x6gjeyzgwtze8c05kysnu' +const recipientAddress = + process.env.RECIPIENT_ADDRESS || 'init1w4cqq6udjqtvl5xx0x6gjeyzgwtze8c05kysnu' const amount = process.env.AMOUNT || '1000uinit' const key: MnemonicKey = new MnemonicKey({ mnemonic }) @@ -120,7 +139,8 @@ async function sendTransaction(): Promise { memo: 'memo', }) - const result: WaitTxBroadcastResult = await restClient.tx.broadcast(signedTx) + const result: WaitTxBroadcastResult = + await restClient.tx.broadcast(signedTx) console.log('Transaction successful') console.log('Transaction hash:', result.txhash) return result diff --git a/developers/developer-guides/tools/sdks/initia-js/transactions/signing-transactions.mdx b/developers/developer-guides/tools/sdks/initia-js/transactions/signing-transactions.mdx index 0d32d278..36c44b5c 100644 --- a/developers/developer-guides/tools/sdks/initia-js/transactions/signing-transactions.mdx +++ b/developers/developer-guides/tools/sdks/initia-js/transactions/signing-transactions.mdx @@ -19,7 +19,14 @@ First, we need to import the necessary classes and functions. - `Wallet`: A class that represents a wallet. ```ts -import { Coins, Fee, RESTClient, MnemonicKey, MsgSend, Wallet } from '@initia/initia.js' +import { + Coins, + Fee, + RESTClient, + MnemonicKey, + MsgSend, + Wallet, +} from '@initia/initia.js' import crypto from 'crypto' ``` @@ -42,7 +49,10 @@ data into a transaction hash hex string. ```ts export function getTxHash(tx: Uint8Array): string { - const s256Buffer = crypto.createHash(`sha256`).update(Buffer.from(tx)).digest() + const s256Buffer = crypto + .createHash(`sha256`) + .update(Buffer.from(tx)) + .digest() const txbytes = new Uint8Array(s256Buffer) return Buffer.from(txbytes.slice(0, 32)).toString(`hex`).toUpperCase() } @@ -87,7 +97,9 @@ const msg = new MsgSend(key.accAddress, key.accAddress, '100uinit') // use fixed fee to not estimate gas const gasLimit = 500000 -const feeAmount = new Coins(offlineRestClient.config.gasPrices).toArray()[0].mul(gasLimit) +const feeAmount = new Coins(offlineRestClient.config.gasPrices) + .toArray()[0] + .mul(gasLimit) const fee = new Fee(gasLimit, new Coins([feeAmount])) ``` @@ -132,7 +144,14 @@ console.log(txHash === broadcastRes.txhash) ### Full Example ```ts src/signing-transaction.ts -import { Coins, Fee, RESTClient, MnemonicKey, MsgSend, Wallet } from '@initia/initia.js' +import { + Coins, + Fee, + RESTClient, + MnemonicKey, + MsgSend, + Wallet, +} from '@initia/initia.js' import crypto from 'crypto' const mnemonic = process.env.MNEMONIC @@ -141,7 +160,10 @@ const restUrl = process.env.REST_URL || 'https://rest.testnet.initia.xyz' const gasPrices = process.env.GAS_PRICES || '0.015uinit' // Will be INIT for mainnet export function getTxHash(tx: Uint8Array): string { - const s256Buffer = crypto.createHash(`sha256`).update(Buffer.from(tx)).digest() + const s256Buffer = crypto + .createHash(`sha256`) + .update(Buffer.from(tx)) + .digest() const txbytes = new Uint8Array(s256Buffer) return Buffer.from(txbytes.slice(0, 32)).toString(`hex`).toUpperCase() } @@ -171,7 +193,9 @@ async function offlineSingingTest() { // use fixed fee to not estimate gas const gasLimit = 500000 - const feeAmount = new Coins(offlineRestClient.config.gasPrices).toArray()[0].mul(gasLimit) + const feeAmount = new Coins(offlineRestClient.config.gasPrices) + .toArray()[0] + .mul(gasLimit) const fee = new Fee(gasLimit, new Coins([feeAmount])) diff --git a/developers/developer-guides/vm-specific-tutorials/evm/address-conversion.mdx b/developers/developer-guides/vm-specific-tutorials/evm/address-conversion.mdx index 126eb303..730bc5f4 100644 --- a/developers/developer-guides/vm-specific-tutorials/evm/address-conversion.mdx +++ b/developers/developer-guides/vm-specific-tutorials/evm/address-conversion.mdx @@ -32,8 +32,8 @@ We then create a new file called `index.js` in the `src` directory where we will write our code. - You can use any package that allows you to encode and decode bech32-prefixed addresses. However, the specific steps - for using those packages may vary. + You can use any package that allows you to encode and decode bech32-prefixed + addresses. However, the specific steps for using those packages may vary. ## Development diff --git a/developers/developer-guides/vm-specific-tutorials/evm/api-endpoints/nft-collection-details.mdx b/developers/developer-guides/vm-specific-tutorials/evm/api-endpoints/nft-collection-details.mdx index d0bb6fb1..8027a85d 100644 --- a/developers/developer-guides/vm-specific-tutorials/evm/api-endpoints/nft-collection-details.mdx +++ b/developers/developer-guides/vm-specific-tutorials/evm/api-endpoints/nft-collection-details.mdx @@ -1,6 +1,7 @@ --- title: NFT Collection Details -api: GET +api: + GET https://rest-evm-1.anvil.asia-southeast.initia.xyz/indexer/nft/v1/collections/{collection_addr} --- diff --git a/developers/developer-guides/vm-specific-tutorials/evm/api-endpoints/nft-collections-by-account.mdx b/developers/developer-guides/vm-specific-tutorials/evm/api-endpoints/nft-collections-by-account.mdx index 183e2420..feea61f1 100644 --- a/developers/developer-guides/vm-specific-tutorials/evm/api-endpoints/nft-collections-by-account.mdx +++ b/developers/developer-guides/vm-specific-tutorials/evm/api-endpoints/nft-collections-by-account.mdx @@ -1,6 +1,7 @@ --- title: NFT Collections by Account -api: GET +api: + GET https://rest-evm-1.anvil.asia-southeast.initia.xyz/indexer/nft/v1/collections/by_account/{account} --- diff --git a/developers/developer-guides/vm-specific-tutorials/evm/api-endpoints/nft-tokens-by-account.mdx b/developers/developer-guides/vm-specific-tutorials/evm/api-endpoints/nft-tokens-by-account.mdx index c35bfcfe..8a859915 100644 --- a/developers/developer-guides/vm-specific-tutorials/evm/api-endpoints/nft-tokens-by-account.mdx +++ b/developers/developer-guides/vm-specific-tutorials/evm/api-endpoints/nft-tokens-by-account.mdx @@ -1,6 +1,7 @@ --- title: NFT Tokens by Account -api: GET +api: + GET https://rest-evm-1.anvil.asia-southeast.initia.xyz/indexer/nft/v1/tokens/by_account/{account} --- diff --git a/developers/developer-guides/vm-specific-tutorials/evm/api-endpoints/nft-tokens-by-collection.mdx b/developers/developer-guides/vm-specific-tutorials/evm/api-endpoints/nft-tokens-by-collection.mdx index 5412939c..92b397a3 100644 --- a/developers/developer-guides/vm-specific-tutorials/evm/api-endpoints/nft-tokens-by-collection.mdx +++ b/developers/developer-guides/vm-specific-tutorials/evm/api-endpoints/nft-tokens-by-collection.mdx @@ -1,6 +1,7 @@ --- title: NFT Tokens by Collection -api: GET +api: + GET https://rest-evm-1.anvil.asia-southeast.initia.xyz/indexer/nft/v1/tokens/by_collection/{collection_addr} --- diff --git a/developers/developer-guides/vm-specific-tutorials/evm/connect-oracles.mdx b/developers/developer-guides/vm-specific-tutorials/evm/connect-oracles.mdx index 335bf25b..544a465a 100644 --- a/developers/developer-guides/vm-specific-tutorials/evm/connect-oracles.mdx +++ b/developers/developer-guides/vm-specific-tutorials/evm/connect-oracles.mdx @@ -7,8 +7,10 @@ title: Using Connect Oracle Compiling contracts that use [ConnectOracle.sol](https://github.com/initia-labs/minievm/blob/main/x/evm/contracts/connect_oracle/ConnectOracle.sol) - requires the [viaIR](https://soliditylang.org/blog/2024/07/12/a-closer-look-at-via-ir) feature. For Foundry/Forge, - this can be done by using the `--via-ir` flag. The relevant methods for other tools may vary. + requires the + [viaIR](https://soliditylang.org/blog/2024/07/12/a-closer-look-at-via-ir) + feature. For Foundry/Forge, this can be done by using the `--via-ir` flag. The + relevant methods for other tools may vary. ### Foundry diff --git a/developers/developer-guides/vm-specific-tutorials/evm/cosmos-coin-to-erc20.mdx b/developers/developer-guides/vm-specific-tutorials/evm/cosmos-coin-to-erc20.mdx index f5237dea..69e787fd 100644 --- a/developers/developer-guides/vm-specific-tutorials/evm/cosmos-coin-to-erc20.mdx +++ b/developers/developer-guides/vm-specific-tutorials/evm/cosmos-coin-to-erc20.mdx @@ -50,7 +50,9 @@ To actually do the conversion, we will be using the REST's ```js src/index.js // previous code async function erc20ToCoinDenom(contractAddress) { - const response = await fetch(`${restUrl}/minievm/evm/v1/denoms/${contractAddress}`) + const response = await fetch( + `${restUrl}/minievm/evm/v1/denoms/${contractAddress}`, + ) const data = await response.json() return data } @@ -71,7 +73,9 @@ the REST's `/minievm/evm/v1/contracts/by_denom?denom={denom}` endpoint. ```js src/index.js // previous code async function coinDenomToErc20(denom) { - const response = await fetch(`${restUrl}/minievm/evm/v1/contracts/by_denom?denom=${denom}`) + const response = await fetch( + `${restUrl}/minievm/evm/v1/contracts/by_denom?denom=${denom}`, + ) const data = await response.json() return data } @@ -92,12 +96,16 @@ const restUrl = `https://rest-evm-1.anvil.asia-southeast.initia.xyz` const erc20Address = '0x5E5f1a92eECA58053E8364630b66763aa6265Ab0' async function erc20ToCoinDenom(contractAddress) { - const response = await fetch(`${restUrl}/minievm/evm/v1/denoms/${contractAddress}`) + const response = await fetch( + `${restUrl}/minievm/evm/v1/denoms/${contractAddress}`, + ) const data = await response.json() return data } async function coinDenomToErc20(denom) { - const response = await fetch(`${restUrl}/minievm/evm/v1/contracts/by_denom?denom=${denom}`) + const response = await fetch( + `${restUrl}/minievm/evm/v1/contracts/by_denom?denom=${denom}`, + ) const data = await response.json() return data } diff --git a/developers/developer-guides/vm-specific-tutorials/evm/creating-erc20s/creating-custom-erc20s.mdx b/developers/developer-guides/vm-specific-tutorials/evm/creating-erc20s/creating-custom-erc20s.mdx index d1621aa1..9a8ac99f 100644 --- a/developers/developer-guides/vm-specific-tutorials/evm/creating-erc20s/creating-custom-erc20s.mdx +++ b/developers/developer-guides/vm-specific-tutorials/evm/creating-erc20s/creating-custom-erc20s.mdx @@ -159,9 +159,11 @@ Now that our contract is compiled and ready, we can deploy it to the MiniEVM. To accomplish this, we will use Foundry's `forge create` command - **Security Note:** In this tutorial we export a private key directly in the terminal for simplicity. This is fine for - *testnet* or *throwaway* accounts. Do **not** use this method for accounts holding real funds. For production usage, - place sensitive keys in a `.env` file (ignored by git) or use a secure key manager. + **Security Note:** In this tutorial we export a private key directly in the + terminal for simplicity. This is fine for *testnet* or *throwaway* accounts. + Do **not** use this method for accounts holding real funds. For production + usage, place sensitive keys in a `.env` file (ignored by git) or use a secure + key manager. ```sh diff --git a/developers/developer-guides/vm-specific-tutorials/evm/creating-erc20s/creating-standard-erc20s.mdx b/developers/developer-guides/vm-specific-tutorials/evm/creating-erc20s/creating-standard-erc20s.mdx index 9672295f..aa73ec6b 100644 --- a/developers/developer-guides/vm-specific-tutorials/evm/creating-erc20s/creating-standard-erc20s.mdx +++ b/developers/developer-guides/vm-specific-tutorials/evm/creating-erc20s/creating-standard-erc20s.mdx @@ -95,8 +95,9 @@ ERC20_FACTORY_ADDRESS={{FACTORY_CONTRACT_ADDRESS}} ``` - Never share your `.env` file or private key. Anyone with this key can control your account. Keep it local and **add - `.env` to your `.gitignore`** so it is never committed to Git. + Never share your `.env` file or private key. Anyone with this key can control + your account. Keep it local and **add `.env` to your `.gitignore`** so it is + never committed to Git. ## Development @@ -147,7 +148,13 @@ touch src/index.js Start with the imports: ```js -const { createPublicClient, createWalletClient, decodeEventLog, getContract, http } = require('viem') +const { + createPublicClient, + createWalletClient, + decodeEventLog, + getContract, + http, +} = require('viem') const { privateKeyToAccount } = require('viem/accounts') const erc20Abi = require('../abis/erc20Abi.json') const erc20FactoryAbi = require('../abis/erc20FactoryAbi.json') @@ -157,7 +164,8 @@ const miniEVM = require('./chain') Load the environment variables: - You can also find factory addresses on the [Networks](/resources/developer/initia-l1) page or by calling the + You can also find factory addresses on the + [Networks](/resources/developer/initia-l1) page or by calling the `/minievm/evm/v1/contracts/erc20_factory` endpoint on any MiniEVM rollup. @@ -168,7 +176,9 @@ const rawPrivateKey = process.env.PRIVATE_KEY if (!rawPrivateKey) { throw new Error('PRIVATE_KEY environment variable is not set.') } -const privateKey = rawPrivateKey.startsWith('0x') ? rawPrivateKey : `0x${rawPrivateKey}` +const privateKey = rawPrivateKey.startsWith('0x') + ? rawPrivateKey + : `0x${rawPrivateKey}` const erc20FactoryAddress = process.env.ERC20_FACTORY_ADDRESS if (!erc20FactoryAddress) { @@ -266,7 +276,13 @@ createERC20() Here is the entire script for reference: ```js -const { createPublicClient, createWalletClient, decodeEventLog, getContract, http } = require('viem') +const { + createPublicClient, + createWalletClient, + decodeEventLog, + getContract, + http, +} = require('viem') const { privateKeyToAccount } = require('viem/accounts') const erc20Abi = require('../abis/erc20Abi.json') const erc20FactoryAbi = require('../abis/erc20FactoryAbi.json') @@ -278,7 +294,9 @@ const rawPrivateKey = process.env.PRIVATE_KEY if (!rawPrivateKey) { throw new Error('PRIVATE_KEY environment variable is not set.') } -const privateKey = rawPrivateKey.startsWith('0x') ? rawPrivateKey : `0x${rawPrivateKey}` +const privateKey = rawPrivateKey.startsWith('0x') + ? rawPrivateKey + : `0x${rawPrivateKey}` const erc20FactoryAddress = process.env.ERC20_FACTORY_ADDRESS if (!erc20FactoryAddress) { diff --git a/developers/developer-guides/vm-specific-tutorials/evm/creating-erc20s/introduction.mdx b/developers/developer-guides/vm-specific-tutorials/evm/creating-erc20s/introduction.mdx index 37f6036b..c7d8d177 100644 --- a/developers/developer-guides/vm-specific-tutorials/evm/creating-erc20s/introduction.mdx +++ b/developers/developer-guides/vm-specific-tutorials/evm/creating-erc20s/introduction.mdx @@ -16,5 +16,6 @@ Developers looking to create and deploy ERC20s on EVM rollups have two options: contract. - While Initia's `CustomERC20.sol` contains additional logic, it is still fully compatible with the ERC20 standard. + While Initia's `CustomERC20.sol` contains additional logic, it is still fully + compatible with the ERC20 standard. diff --git a/developers/developer-guides/vm-specific-tutorials/evm/ibc-hooks.mdx b/developers/developer-guides/vm-specific-tutorials/evm/ibc-hooks.mdx index ee9afc2e..397e0330 100644 --- a/developers/developer-guides/vm-specific-tutorials/evm/ibc-hooks.mdx +++ b/developers/developer-guides/vm-specific-tutorials/evm/ibc-hooks.mdx @@ -279,7 +279,14 @@ After the contract is deployed and the ACL is set, we can execute the IBC hooks message to call the contract. ```typescript -import { Coin, Height, RESTClient, MnemonicKey, MsgTransfer, Wallet } from '@initia/initia.js' +import { + Coin, + Height, + RESTClient, + MnemonicKey, + MsgTransfer, + Wallet, +} from '@initia/initia.js' import { ethers } from 'ethers' import * as fs from 'fs' @@ -303,7 +310,9 @@ async function main() { const amount = '1000' - const contractInfo = JSON.parse(fs.readFileSync('./bin/Counter.json').toString()) + const contractInfo = JSON.parse( + fs.readFileSync('./bin/Counter.json').toString(), + ) const abi = contractInfo.abi const contractAddress = '0x4cb5cE12e3bB85348791A3cDd4dc3A5b7836270e' diff --git a/developers/developer-guides/vm-specific-tutorials/evm/update-fee-token.mdx b/developers/developer-guides/vm-specific-tutorials/evm/update-fee-token.mdx index 514c8c46..a17fdc93 100644 --- a/developers/developer-guides/vm-specific-tutorials/evm/update-fee-token.mdx +++ b/developers/developer-guides/vm-specific-tutorials/evm/update-fee-token.mdx @@ -16,10 +16,19 @@ Fee Token as an ERC20 token. Use validator (admin) account to update the chain parameter. -The deployed ERC20 token must inherit the `InitiaERC20` contract. + + The deployed ERC20 token must inherit the `InitiaERC20` contract. + ```ts -import { EvmParams, RESTClient, MnemonicKey, MsgUpdateEvmParams, Wallet, MsgExecuteMessages } from '@initia/initia.js' +import { + EvmParams, + RESTClient, + MnemonicKey, + MsgUpdateEvmParams, + Wallet, + MsgExecuteMessages, +} from '@initia/initia.js' /** * main() demonstrates how to update EVM-related chain parameters (such as fee denom, allowed publishers, etc.). diff --git a/developers/developer-guides/vm-specific-tutorials/movevm/ibc-hooks.mdx b/developers/developer-guides/vm-specific-tutorials/movevm/ibc-hooks.mdx index 933368eb..33d7f43c 100644 --- a/developers/developer-guides/vm-specific-tutorials/movevm/ibc-hooks.mdx +++ b/developers/developer-guides/vm-specific-tutorials/movevm/ibc-hooks.mdx @@ -310,7 +310,15 @@ After the contract is deployed and the ACL is set, we can execute the IBC hooks message to call the contract. ```typescript -import { bcs, Coin, Height, RESTClient, MnemonicKey, MsgTransfer, Wallet } from '@initia/initia.js' +import { + bcs, + Coin, + Height, + RESTClient, + MnemonicKey, + MsgTransfer, + Wallet, +} from '@initia/initia.js' function createHook(params: object) { const hook = { move: { message: params } } @@ -323,10 +331,14 @@ async function main() { gasPrices: '0.015uinit', }) - const l2RestClient = new RESTClient('https://rest-move-1.anvil.asia-southeast.initia.xyz', { - gasAdjustment: '1.75', - gasPrices: '0.15l2/07b129ceb9c4b0bdef7db171ce1e22f90d34bc930058b23e21adf8cc938d8145', // set l2 gas price - }) + const l2RestClient = new RESTClient( + 'https://rest-move-1.anvil.asia-southeast.initia.xyz', + { + gasAdjustment: '1.75', + gasPrices: + '0.15l2/07b129ceb9c4b0bdef7db171ce1e22f90d34bc930058b23e21adf8cc938d8145', // set l2 gas price + }, + ) const sender = new Wallet( l2RestClient, diff --git a/developers/developer-guides/vm-specific-tutorials/movevm/multisig.mdx b/developers/developer-guides/vm-specific-tutorials/movevm/multisig.mdx index 2b077cb8..e3f6d031 100644 --- a/developers/developer-guides/vm-specific-tutorials/movevm/multisig.mdx +++ b/developers/developer-guides/vm-specific-tutorials/movevm/multisig.mdx @@ -48,7 +48,11 @@ const msgCreateNonWeightedMultisigAccount = new MsgExecute( bcs.string().serialize(multisigName), // name bcs .vector(bcs.address()) - .serialize([multisigCreator.key.accAddress, multisigMember1.key.accAddress, multisigMember2.key.accAddress]), // members + .serialize([ + multisigCreator.key.accAddress, + multisigMember1.key.accAddress, + multisigMember2.key.accAddress, + ]), // members bcs.u64().serialize(2), // threshold ].map((v) => v.toBase64()), ) @@ -101,7 +105,11 @@ const msgMiultiSigProposal1 = new MsgSend( // Proposal 2. send token with `0x1::coin::transfer` function const msgMiultiSigProposal2Args = [ bcs.address().serialize(recipient), // recipient - bcs.object().serialize('0x8e4733bdabcf7d4afc3d14f0dd46c9bf52fb0fce9e4b996c939e195b8bc891d9'), // coin metadata + bcs + .object() + .serialize( + '0x8e4733bdabcf7d4afc3d14f0dd46c9bf52fb0fce9e4b996c939e195b8bc891d9', + ), // coin metadata bcs.u64().serialize(1_000_000), // amount ] @@ -122,7 +130,9 @@ const msgCreateProposal = new MsgExecute( [ ...bcs .vector(bcs.u8()) - .serialize(Buffer.from(JSON.stringify(msgMiultiSigProposal1.toData()))) + .serialize( + Buffer.from(JSON.stringify(msgMiultiSigProposal1.toData())), + ) .toBytes(), ], ], @@ -157,9 +167,11 @@ const msgVoteProposal1 = new MsgExecute( 'multisig_v2', 'vote_proposal', [], - [bcs.address().serialize(multisigAddress), bcs.u64().serialize(1), bcs.bool().serialize(true)].map((v) => - v.toBase64(), - ), + [ + bcs.address().serialize(multisigAddress), + bcs.u64().serialize(1), + bcs.bool().serialize(true), + ].map((v) => v.toBase64()), ) ``` @@ -186,9 +198,10 @@ const msgExecuteProposal = new MsgExecute( 'multisig_v2', 'execute_proposal', [], - [bcs.address().serialize(AccAddress.toHex(multisigAddress)), bcs.u64().serialize(proposalId)].map((v) => - v.toBase64(), - ), + [ + bcs.address().serialize(AccAddress.toHex(multisigAddress)), + bcs.u64().serialize(proposalId), + ].map((v) => v.toBase64()), ) ``` diff --git a/developers/developer-guides/vm-specific-tutorials/wasmvm/ibc-hooks.mdx b/developers/developer-guides/vm-specific-tutorials/wasmvm/ibc-hooks.mdx index 53f427f9..6bb96be9 100644 --- a/developers/developer-guides/vm-specific-tutorials/wasmvm/ibc-hooks.mdx +++ b/developers/developer-guides/vm-specific-tutorials/wasmvm/ibc-hooks.mdx @@ -63,9 +63,10 @@ So we detail where we want to get each of these fields from: representation. - Due to a [bug](https://x.com/SCVSecurity/status/1682329758020022272) in the packet forward middleware, we cannot trust - the sender from chains that use PFM. Until that is fixed, we recommend chains to not trust the sender on contracts - executed via IBC hooks. + Due to a [bug](https://x.com/SCVSecurity/status/1682329758020022272) in the + packet forward middleware, we cannot trust the sender from chains that use + PFM. Until that is fixed, we recommend chains to not trust the sender on + contracts executed via IBC hooks. ```go @@ -299,7 +300,15 @@ After the contract is deployed and the ACL is set, we can execute the IBC hooks message to call the contract. ```typescript -import { Coin, Height, RESTClient, MnemonicKey, MsgTransfer, sha256, Wallet } from '@initia/initia.js' +import { + Coin, + Height, + RESTClient, + MnemonicKey, + MsgTransfer, + sha256, + Wallet, +} from '@initia/initia.js' function createHook(params: object) { const hook = { wasm: { message: params } } @@ -341,7 +350,8 @@ async function main() { new Height(0, 0), ((new Date().valueOf() + 100000) * 1000000).toString(), createHook({ - contract: 'init1436kxs0w2es6xlqpp9rd35e3d0cjnw4sv8j3a7483sgks29jqwgs9nxzw8', + contract: + 'init1436kxs0w2es6xlqpp9rd35e3d0cjnw4sv8j3a7483sgks29jqwgs9nxzw8', msg: { simple_transfer: { amount: Number(amount), diff --git a/developers/running-nodes/introduction.mdx b/developers/running-nodes/introduction.mdx index f47e7377..81c3f960 100644 --- a/developers/running-nodes/introduction.mdx +++ b/developers/running-nodes/introduction.mdx @@ -7,8 +7,9 @@ The following guide will walk you through the steps of how to run an Initia node and optionally to join the Initia network as a validator. - This guide has been tested against Linux distributions only. While it might be possible to run an Initia node on other - operating systems, the process is not as straightforward and may require additional configuration. + This guide has been tested against Linux distributions only. While it might be + possible to run an Initia node on other operating systems, the process is not + as straightforward and may require additional configuration. ## Hardware Requirements diff --git a/developers/running-nodes/manual-setup/node-configuration.mdx b/developers/running-nodes/manual-setup/node-configuration.mdx index 0f94e11b..b400a41d 100644 --- a/developers/running-nodes/manual-setup/node-configuration.mdx +++ b/developers/running-nodes/manual-setup/node-configuration.mdx @@ -25,8 +25,9 @@ where: the [Networks](/resources/developer/initia-l1) section of the docs - Note that the `moniker` field here is the name of the node itself and does not apply to the validator name/moniker. - The validator name/moniker is set when you create your validator and is used to identify your validator on the + Note that the `moniker` field here is the name of the node itself and does not + apply to the validator name/moniker. The validator name/moniker is set when + you create your validator and is used to identify your validator on the network. diff --git a/developers/running-nodes/manual-setup/node-setup.mdx b/developers/running-nodes/manual-setup/node-setup.mdx index 15efdc73..dcf1e723 100644 --- a/developers/running-nodes/manual-setup/node-setup.mdx +++ b/developers/running-nodes/manual-setup/node-setup.mdx @@ -65,7 +65,9 @@ opened by a process to 1024. It is recomemneded that you increase this amount. To do so, modify `/etc/security/limits.conf` to increase the amount. The `nofile` is the number of files a process may open at a time. -If you are using a non-root user, replace `*` with the username of the user. + + If you are using a non-root user, replace `*` with the username of the user. + ```sh limits.conf * soft nofile 65535 diff --git a/developers/running-nodes/manual-setup/starting-the-node.mdx b/developers/running-nodes/manual-setup/starting-the-node.mdx index 8e6104fb..1c9fa6a9 100644 --- a/developers/running-nodes/manual-setup/starting-the-node.mdx +++ b/developers/running-nodes/manual-setup/starting-the-node.mdx @@ -25,15 +25,18 @@ snapshot syncing and StateSync - A chain snapshot sync works by downloading the entire state of the chain at a certain height and then running the - node off of that states. Nodes that uses snapshots usually have more historical transaction and block data compared - to nodes that use StateSync. However, in exchange, snapshot syncing is typically much slower due to more information - required to be downloaded. + A chain snapshot sync works by downloading the entire state of the chain at + a certain height and then running the node off of that states. Nodes that + uses snapshots usually have more historical transaction and block data + compared to nodes that use StateSync. However, in exchange, snapshot syncing + is typically much slower due to more information required to be downloaded. - A StateSync works by directly downloading the application state from other nodes in the network. Unlike syncing from - a snapshot, StateSync focuses on the downloading the processing the current state of the chain, ignoring historical - transactions and block. However, in exchange for this, state-syncing is typically much faster + A StateSync works by directly downloading the application state from other + nodes in the network. Unlike syncing from a snapshot, StateSync focuses on + the downloading the processing the current state of the chain, ignoring + historical transactions and block. However, in exchange for this, + state-syncing is typically much faster diff --git a/developers/running-nodes/running-a-validator/becoming-a-validator.mdx b/developers/running-nodes/running-a-validator/becoming-a-validator.mdx index 4e2b1b74..fa05951e 100644 --- a/developers/running-nodes/running-a-validator/becoming-a-validator.mdx +++ b/developers/running-nodes/running-a-validator/becoming-a-validator.mdx @@ -3,8 +3,9 @@ title: Becoming a Validator --- - Before proceeding to create the a validator, first make sure that your Initia node is fully synced to the latest - height. This can be done by running comparing the latest block height of your node with those of the network. + Before proceeding to create the a validator, first make sure that your Initia + node is fully synced to the latest height. This can be done by running + comparing the latest block height of your node with those of the network. ## Create the Validator Account @@ -64,8 +65,10 @@ If the command returns something, your validator is in the active and is actively proposing and signing blocks. - Only the top 130 validators in voting power are included in the active validator set. This means that even if you - `CreateValidator` transaction passes, your validator might not be active until it has sufficient token delegations. + Only the top 130 validators in voting power are included in the active + validator set. This means that even if you `CreateValidator` transaction + passes, your validator might not be active until it has sufficient token + delegations. ## Secure Your Validator Keys diff --git a/docs.json b/docs.json index d9311dd3..df76bee4 100644 --- a/docs.json +++ b/docs.json @@ -171,7 +171,9 @@ }, { "group": "KV Indexer (Legacy)", - "pages": ["nodes-and-rollups/indexing/kv-indexer/legacy-overview"] + "pages": [ + "nodes-and-rollups/indexing/kv-indexer/legacy-overview" + ] } ] } @@ -268,7 +270,9 @@ { "group": "DEX", "icon": "swap", - "pages": ["developers/developer-guides/integrating-initia-apps/initiadex"] + "pages": [ + "developers/developer-guides/integrating-initia-apps/initiadex" + ] }, { "group": "VIP", @@ -283,7 +287,9 @@ { "group": "Usernames", "icon": "user", - "pages": ["developers/developer-guides/integrating-initia-apps/usernames"] + "pages": [ + "developers/developer-guides/integrating-initia-apps/usernames" + ] } ] }, @@ -348,7 +354,9 @@ }, { "group": "Rollup CLI", - "pages": ["developers/developer-guides/tools/clis/minitiad-cli/introduction"] + "pages": [ + "developers/developer-guides/tools/clis/minitiad-cli/introduction" + ] } ] }, @@ -444,7 +452,9 @@ }, { "group": "Components", - "pages": ["interwovenkit/references/components/interwovenkit-provider"] + "pages": [ + "interwovenkit/references/components/interwovenkit-provider" + ] }, { "group": "Hooks", diff --git a/home/core-concepts/minitswap/architecture.mdx b/home/core-concepts/minitswap/architecture.mdx index 9bf5a340..c194f068 100644 --- a/home/core-concepts/minitswap/architecture.mdx +++ b/home/core-concepts/minitswap/architecture.mdx @@ -2,7 +2,13 @@ title: Minitswap Architecture --- -import { INIT, IbcOpINIT, FullyRecoveredRatio, MaxRatio, Flexibility } from '/snippets/terminology.mdx' +import { + INIT, + IbcOpINIT, + FullyRecoveredRatio, + MaxRatio, + Flexibility, +} from '/snippets/terminology.mdx' ## Goals @@ -20,8 +26,9 @@ import { INIT, IbcOpINIT, FullyRecoveredRatio, MaxRatio, Flexibility } from '/sn Minitswap itself is designed as a virtual pool DEX between INIT and the various -IbcOpINIT tokens for each of the rollups. The exchange rates on each swap are -determined by the [StableSwap](https://docs.curve.finance/stableswap-exchange/overview/) formula. +IbcOpINIT tokens for each of the rollups. The +exchange rates on each swap are determined by the +[StableSwap](https://docs.curve.finance/stableswap-exchange/overview/) formula. To achieve the above goals, two main improvements are made to the base StableSwap pool design: @@ -156,7 +163,9 @@ $$ #### Peg Keeper Swaps -![Peg Keeper Swaps](/images/minitswap/minitswap_peg_keeper_swaps.png) + + ![Peg Keeper Swaps](/images/minitswap/minitswap_peg_keeper_swaps.png) + The Peg Keeper Swap is a mechanism designed to keep the exchange rate between $INIT$ and $IbcOpINIT$ close to 1:1. This ensures that users always receive the diff --git a/home/core-concepts/minitswap/introduction.mdx b/home/core-concepts/minitswap/introduction.mdx index 0346f1a7..d8d8085b 100644 --- a/home/core-concepts/minitswap/introduction.mdx +++ b/home/core-concepts/minitswap/introduction.mdx @@ -2,7 +2,13 @@ title: Minitswap Introduction --- -import { INIT, m, OpINIT, IbcOpINIT, OPinitBridge } from '/snippets/terminology.mdx' +import { + INIT, + m, + OpINIT, + IbcOpINIT, + OPinitBridge, +} from '/snippets/terminology.mdx' Minitswap is Initia's proprietary solution to address the user experience challenges posed by the lengthy withdrawal diff --git a/home/core-concepts/vip/architecture.mdx b/home/core-concepts/vip/architecture.mdx index cc38368f..7a572bc4 100644 --- a/home/core-concepts/vip/architecture.mdx +++ b/home/core-concepts/vip/architecture.mdx @@ -11,14 +11,16 @@ The total rewards are first distributed to each rollup, then subsequently to the rollup's users and operators. - Before a rollup can qualify for VIP rewards, it must first achieve a minimum INIT TVL and then be whitelisted by the - Initia L1 governance through an on-chain proposal. See the [VIP Eligibility](/home/core-concepts/vip/eligibility) page - for more details. + Before a rollup can qualify for VIP rewards, it must first achieve a minimum + INIT TVL and then be whitelisted by the Initia L1 governance through an + on-chain proposal. See the [VIP + Eligibility](/home/core-concepts/vip/eligibility) page for more details. - For details on the specific VIP parameters such as stage and cycle duration, see the [VIP - Parameters](/resources/developer/initia-l1#vip-parameters) section. + For details on the specific VIP parameters such as stage and cycle duration, + see the [VIP Parameters](/resources/developer/initia-l1#vip-parameters) + section. ## Rewards Distribution @@ -38,7 +40,9 @@ At each stage $t$, the total VIP rewards for that stage $R_t$ are distributed amongst each rollup ecosystem. The total rewards are then split into two pools: the **Balance Pool $R_B$** and the **Weight Pool $R_W$**. -![VIP Rewards Distribution](/images/vip/vip_rewards_distribution.png) + + ![VIP Rewards Distribution](/images/vip/vip_rewards_distribution.png) + These two pools aim to incentivize and reward different aspects of rollup operations. The ratio between $R_B$ and $R_W$, called `poolSplitRatio`, is set @@ -134,7 +138,8 @@ active and useful, they can set an `operatorCommissionRate`, $c$. This rate allows them to take a portion of the rewards for their rollup. - ![VIP Operator Rewards Distribution](/images/vip/vip_distribution_operators.png) + ![VIP Operator Rewards + Distribution](/images/vip/vip_distribution_operators.png) The rewards for an operator $o$ of rollup $m$ during a stage are: @@ -168,7 +173,9 @@ These tokens are initially non-transferable and can be vested in two ways: 2. **Convert into LP Lock-Staked Position:** Convert the escrowed tokens into a whitelisted INIT:TOKEN staking position. -![VIP User Vesting](/images/vip/vip_rewards_vesting_users.png) + + ![VIP User Vesting](/images/vip/vip_rewards_vesting_users.png) + #### Maintaining a VIP Score diff --git a/home/core-concepts/vip/eligibility.mdx b/home/core-concepts/vip/eligibility.mdx index a9413764..2479b9f6 100644 --- a/home/core-concepts/vip/eligibility.mdx +++ b/home/core-concepts/vip/eligibility.mdx @@ -28,7 +28,8 @@ proposals, the whitelisting proposal will be voted on by INIT and Enshrined Liquidity stakers. - - Rollups that add little value to the ecosystem (e.g., rollups that only accumulate TVL with no productive use case) - - Rollups that exist solely to allow the corresponding app to qualify for VIP rewards (e.g., rollups where the app is - otherwise completely off-chain) + - Rollups that add little value to the ecosystem (e.g., rollups that only + accumulate TVL with no productive use case) - Rollups that exist solely to + allow the corresponding app to qualify for VIP rewards (e.g., rollups where + the app is otherwise completely off-chain) diff --git a/home/general/welcome.mdx b/home/general/welcome.mdx index 69c2fbb6..69bcdf32 100644 --- a/home/general/welcome.mdx +++ b/home/general/welcome.mdx @@ -14,14 +14,24 @@ accessibility to the application ecosystem. ## Learn More About Initia - + Discover the framework that powers all of Initia's rollups. - - Initia's solution to bootstrapping cross-chain liquidity while maintaining network security. + + Initia's solution to bootstrapping cross-chain liquidity while maintaining + network security. - Initia's incentive program that aims to foster long-term ecosystem-wide alignment. + Initia's incentive program that aims to foster long-term ecosystem-wide + alignment. diff --git a/home/tools/wallet.mdx b/home/tools/wallet.mdx index 9a88969b..b3cfacd2 100644 --- a/home/tools/wallet.mdx +++ b/home/tools/wallet.mdx @@ -3,6 +3,11 @@ title: Wallet icon: wallet --- -One barrier for users onboarding into a new ecosystem has always been the need to download, install, and use a new wallet. With the Initia Wallet, users can sign in to an application using their existing EVM-compatible wallet, regardless of the VM or smart contract language the application uses.. +One barrier for users onboarding into a new ecosystem has always been the need +to download, install, and use a new wallet. With the Initia Wallet, users can +sign in to an application using their existing EVM-compatible wallet, regardless +of the VM or smart contract language the application uses.. -For those without an existing wallet, the Initia Wallet also allows users to create a new wallet using their email address or Google or Twitter account, protected by [Privy](https://privy.io/). +For those without an existing wallet, the Initia Wallet also allows users to +create a new wallet using their email address or Google or Twitter account, +protected by [Privy](https://privy.io/). diff --git a/interwovenkit/features/autosign/api-reference.mdx b/interwovenkit/features/autosign/api-reference.mdx index eb145034..c8993015 100644 --- a/interwovenkit/features/autosign/api-reference.mdx +++ b/interwovenkit/features/autosign/api-reference.mdx @@ -42,8 +42,8 @@ interface AutoSign { Indicates whether autosign status is currently being checked. - Returns `true` when autosign status is being initialized or checked, `false` otherwise. Use this to show loading - indicators in your UI. + Returns `true` when autosign status is being initialized or checked, `false` + otherwise. Use this to show loading indicators in your UI. **Example:** @@ -65,8 +65,9 @@ function AutosignButton() { Expiration date for autosign on the default chain. - Returns a `Date` object representing when autosign expires on the default chain, or `null` if autosign is not enabled. - Use this to display expiration information and check if autosign is currently active. + Returns a `Date` object representing when autosign expires on the default + chain, or `null` if autosign is not enabled. Use this to display expiration + information and check if autosign is currently active. **Example:** @@ -88,8 +89,10 @@ function ExpirationDisplay() { Map of chain IDs to expiration timestamps for all configured chains. - Returns an object mapping chain IDs to expiration timestamps (in milliseconds since epoch). Use this for multi-chain - applications to check autosign status across multiple chains. Returns `null` for chains where autosign is not enabled. + Returns an object mapping chain IDs to expiration timestamps (in milliseconds + since epoch). Use this for multi-chain applications to check autosign status + across multiple chains. Returns `null` for chains where autosign is not + enabled. **Example:** diff --git a/interwovenkit/features/autosign/configuration.mdx b/interwovenkit/features/autosign/configuration.mdx index d0f8a1cf..f7646f31 100644 --- a/interwovenkit/features/autosign/configuration.mdx +++ b/interwovenkit/features/autosign/configuration.mdx @@ -73,8 +73,8 @@ dashboard to ensure security and proper functionality: - Any staging domains you use - Privy services will only work on domains you've explicitly allowed. Add all domains where your application will run, - including localhost for development. + Privy services will only work on domains you've explicitly allowed. Add all + domains where your application will run, including localhost for development. @@ -100,8 +100,17 @@ wallets and autosign: prevent autosign from working. ```tsx providers.tsx -import { PrivyProvider, useCreateWallet, useLoginWithSiwe, usePrivy, useWallets } from '@privy-io/react-auth' -import { InterwovenKitProvider, PRIVY_APP_ID } from '@initia/interwovenkit-react' +import { + PrivyProvider, + useCreateWallet, + useLoginWithSiwe, + usePrivy, + useWallets, +} from '@privy-io/react-auth' +import { + InterwovenKitProvider, + PRIVY_APP_ID, +} from '@initia/interwovenkit-react' function InterwovenKitWrapper({ children }) { const privy = usePrivy() @@ -185,9 +194,10 @@ intentionally restrictive. ``` - If you later need to support token transfers, staking, or multiple chains, you must switch from the boolean - configuration to the per-chain configuration in the [Advanced - Configuration](#advanced-configuration-explicit-permissions) section. + If you later need to support token transfers, staking, or multiple chains, you + must switch from the boolean configuration to the per-chain configuration in + the [Advanced Configuration](#advanced-configuration-explicit-permissions) + section. When using boolean configuration, InterwovenKit automatically: @@ -236,6 +246,6 @@ The `enableAutoSign` prop accepts an object where: - **Staking**: `/cosmos.staking.v1beta1.MsgDelegate` - Only grant permissions for message types that your application actually needs. Granting overly broad permissions - increases security risk. + Only grant permissions for message types that your application actually needs. + Granting overly broad permissions increases security risk. diff --git a/interwovenkit/features/autosign/introduction.mdx b/interwovenkit/features/autosign/introduction.mdx index 18f6c252..6ad9457a 100644 --- a/interwovenkit/features/autosign/introduction.mdx +++ b/interwovenkit/features/autosign/introduction.mdx @@ -1,6 +1,7 @@ --- title: Introduction -description: Learn about autosign and ghost wallets for seamless transaction signing. +description: + Learn about autosign and ghost wallets for seamless transaction signing. icon: robot --- @@ -13,8 +14,9 @@ users, providing a seamless user experience while maintaining security through granular permission controls. - Autosign is built on the Cosmos SDK's `authz` and `feegrant` modules, allowing fine-grained control over which - transaction types can be automatically signed and when permissions expire. + Autosign is built on the Cosmos SDK's `authz` and `feegrant` modules, allowing + fine-grained control over which transaction types can be automatically signed + and when permissions expire. ## What Are Ghost Wallets? diff --git a/interwovenkit/features/autosign/usage.mdx b/interwovenkit/features/autosign/usage.mdx index ff81855e..c6f5b532 100644 --- a/interwovenkit/features/autosign/usage.mdx +++ b/interwovenkit/features/autosign/usage.mdx @@ -1,6 +1,7 @@ --- title: Usage -description: Learn how to enable, disable, and manage autosign in your application +description: + Learn how to enable, disable, and manage autosign in your application icon: play --- @@ -82,15 +83,18 @@ When `autoSign.enable()` is called: - The user can select an expiration duration from available defaults or use a custom duration. + The user can select an expiration duration from available defaults or use a + custom duration. - Privy creates an embedded wallet if one does not exist. This happens automatically in the background. + Privy creates an embedded wallet if one does not exist. This happens + automatically in the background. - The user signs a single transaction to grant `authz` and `feegrant` permissions to the ghost wallet. + The user signs a single transaction to grant `authz` and `feegrant` + permissions to the ghost wallet. diff --git a/interwovenkit/features/transfers/deposit-withdraw.mdx b/interwovenkit/features/transfers/deposit-withdraw.mdx index 1d192898..3bc5e8ed 100644 --- a/interwovenkit/features/transfers/deposit-withdraw.mdx +++ b/interwovenkit/features/transfers/deposit-withdraw.mdx @@ -20,8 +20,20 @@ function TransferButtons() { return ( <> - - + + ) } diff --git a/interwovenkit/getting-started.mdx b/interwovenkit/getting-started.mdx index 06f9b180..a0974cc4 100644 --- a/interwovenkit/getting-started.mdx +++ b/interwovenkit/getting-started.mdx @@ -1,6 +1,7 @@ --- title: Getting Started -description: Integrate Initia Wallet into your React application with InterwovenKit +description: + Integrate Initia Wallet into your React application with InterwovenKit icon: play --- @@ -51,13 +52,26 @@ reference implementation. ## Existing Projects - - Set up InterwovenKit as the default wallet connection option for your application + + Set up InterwovenKit as the default wallet connection option for your + application - + Integrate InterwovenKit with an existing EVM application - + Integrate InterwovenKit with an existing RainbowKit application diff --git a/interwovenkit/integrations/evm.mdx b/interwovenkit/integrations/evm.mdx index 549e5900..a2136a00 100644 --- a/interwovenkit/integrations/evm.mdx +++ b/interwovenkit/integrations/evm.mdx @@ -14,8 +14,9 @@ approach allows you to: - Maintain seamless connectivity between different blockchain environments - **Non-EVM chains**: If your chain is not EVM-based, you can leave the default chain set to mainnet. Initia Wallet - won't actually connect to Ethereum—it only uses an arbitrary signer to sign amino messages. + **Non-EVM chains**: If your chain is not EVM-based, you can leave the default + chain set to mainnet. Initia Wallet won't actually connect to Ethereum—it only + uses an arbitrary signer to sign amino messages. ## Setup Guide @@ -34,7 +35,12 @@ provider. import { PropsWithChildren, useEffect } from 'react' import { createConfig, http, WagmiProvider } from 'wagmi' import { QueryClient, QueryClientProvider } from '@tanstack/react-query' -import { initiaPrivyWalletConnector, injectStyles, InterwovenKitProvider, TESTNET } from '@initia/interwovenkit-react' +import { + initiaPrivyWalletConnector, + injectStyles, + InterwovenKitProvider, + TESTNET, +} from '@initia/interwovenkit-react' import interwovenKitStyles from '@initia/interwovenkit-react/styles.js' const minievm = { @@ -86,10 +92,12 @@ export default function Providers({ children }: PropsWithChildren) { for Minievm testnet) - **Chain ID Configuration**: The `defaultChainId` parameter sets the primary blockchain for Initia Wallet operations. - For EVM rollups, use your rollup's chain ID (like `"minievm-2"`), not the EVM chain ID. This ensures proper balance - display and bridging functionality. See [InterwovenKitProvider - reference](/interwovenkit/references/components/interwovenkit-provider) for more details. + **Chain ID Configuration**: The `defaultChainId` parameter sets the primary + blockchain for Initia Wallet operations. For EVM rollups, use your rollup's + chain ID (like `"minievm-2"`), not the EVM chain ID. This ensures proper + balance display and bridging functionality. See [InterwovenKitProvider + reference](/interwovenkit/references/components/interwovenkit-provider) for + more details. @@ -120,7 +128,12 @@ to: 'use client' import { parseEther } from 'viem' -import { useAccount, useChainId, useSendTransaction, useSwitchChain } from 'wagmi' +import { + useAccount, + useChainId, + useSendTransaction, + useSwitchChain, +} from 'wagmi' import { truncate } from '@initia/utils' import { useInterwovenKit } from '@initia/interwovenkit-react' diff --git a/interwovenkit/integrations/native.mdx b/interwovenkit/integrations/native.mdx index ae223e79..a297b153 100644 --- a/interwovenkit/integrations/native.mdx +++ b/interwovenkit/integrations/native.mdx @@ -63,7 +63,11 @@ import { PropsWithChildren, useEffect } from 'react' import { createConfig, http, WagmiProvider } from 'wagmi' import { mainnet } from 'wagmi/chains' import { QueryClient, QueryClientProvider } from '@tanstack/react-query' -import { initiaPrivyWalletConnector, injectStyles, InterwovenKitProvider } from '@initia/interwovenkit-react' +import { + initiaPrivyWalletConnector, + injectStyles, + InterwovenKitProvider, +} from '@initia/interwovenkit-react' import interwovenKitStyles from '@initia/interwovenkit-react/styles.js' const wagmiConfig = createConfig({ @@ -82,7 +86,9 @@ export default function Providers({ children }: PropsWithChildren) { return ( - {children} + + {children} + ) @@ -90,11 +96,14 @@ export default function Providers({ children }: PropsWithChildren) { ``` - **Chain Configuration**: Replace `YOUR_CHAIN_ID` with your target blockchain network: - `"interwoven-1"` for Initia - mainnet (default) - `"initiation-2"` for Initia testnet - Or any valid chain ID from the - [initia-registry](https://registry.initia.xyz) This sets the primary network for transactions, balance queries, and - serves as the default for all operations. See the [InterwovenKitProvider - reference](/interwovenkit/references/components/interwovenkit-provider) for details. + **Chain Configuration**: Replace `YOUR_CHAIN_ID` with your target blockchain + network: - `"interwoven-1"` for Initia mainnet (default) - `"initiation-2"` + for Initia testnet - Or any valid chain ID from the + [initia-registry](https://registry.initia.xyz) This sets the primary network + for transactions, balance queries, and serves as the default for all + operations. See the [InterwovenKitProvider + reference](/interwovenkit/references/components/interwovenkit-provider) for + details. @@ -135,7 +144,8 @@ import { truncate } from '@initia/utils' import { useInterwovenKit } from '@initia/interwovenkit-react' export default function WalletConnection() { - const { address, username, isConnected, openConnect, openWallet } = useInterwovenKit() + const { address, username, isConnected, openConnect, openWallet } = + useInterwovenKit() if (!isConnected) { return ( @@ -228,8 +238,8 @@ You can provide fees in two ways: - `Estimated`: Use estimateGas to simulate the required fee. - Since this skips the standard fee selection UI, ensure the fee is displayed somewhere else in your app to maintain - transparency for users. + Since this skips the standard fee selection UI, ensure the fee is displayed + somewhere else in your app to maintain transparency for users. ```tsx components/TransactionExampleWithFee.tsx diff --git a/interwovenkit/integrations/rainbowkit.mdx b/interwovenkit/integrations/rainbowkit.mdx index be9131e4..88052313 100644 --- a/interwovenkit/integrations/rainbowkit.mdx +++ b/interwovenkit/integrations/rainbowkit.mdx @@ -10,8 +10,9 @@ only changes the wallet connection interface—all other features remain identical. - This integration is perfect if you're already using RainbowKit in your application or prefer its UI components over - the default InterwovenKit interface. + This integration is perfect if you're already using RainbowKit in your + application or prefer its UI components over the default InterwovenKit + interface. ## Overview diff --git a/interwovenkit/migration.mdx b/interwovenkit/migration.mdx index ed7fcfea..dc22bfc8 100644 --- a/interwovenkit/migration.mdx +++ b/interwovenkit/migration.mdx @@ -1,6 +1,7 @@ --- title: Migrating from Wallet Widget -description: Complete guide for upgrading from the legacy Wallet Widget to InterwovenKit v2 +description: + Complete guide for upgrading from the legacy Wallet Widget to InterwovenKit v2 icon: up --- @@ -10,8 +11,9 @@ This comprehensive guide will help you migrate from the legacy improved TypeScript support, and a more intuitive API. - **Migration Benefits** - No more SSR configuration required - Better TypeScript support - Improved performance and - bundle size - Simplified API with consistent naming - Enhanced error handling + **Migration Benefits** - No more SSR configuration required - Better + TypeScript support - Improved performance and bundle size - Simplified API + with consistent naming - Enhanced error handling ## Step-by-Step Migration @@ -231,8 +233,8 @@ export default function Home() { - Bridge configuration has moved from the provider level to individual method calls, providing more flexibility and - better user experience. + Bridge configuration has moved from the provider level to individual method + calls, providing more flexibility and better user experience. #### Removed Provider Props @@ -245,7 +247,8 @@ The following props are no longer supported: ``` - To customize wallet options, use [wagmi connectors](https://wagmi.sh/react/api/connectors) in your wagmi configuration + To customize wallet options, use [wagmi + connectors](https://wagmi.sh/react/api/connectors) in your wagmi configuration instead. @@ -339,9 +342,11 @@ export default function TransactionComponent() { - For more granular control over transaction states, use `requestTxSync()` to get the transaction hash immediately, then - `waitForTxConfirmation()` to wait for blockchain confirmation. See the [useInterwovenKit - reference](./references/hooks/use-interwovenkit#transaction-methods) for details. + For more granular control over transaction states, use `requestTxSync()` to + get the transaction hash immediately, then `waitForTxConfirmation()` to wait + for blockchain confirmation. See the [useInterwovenKit + reference](./references/hooks/use-interwovenkit#transaction-methods) for + details. ## Advanced Integration @@ -410,14 +415,15 @@ export default function SendTransaction() { - - [ ] Removed SSR-related imports - [ ] Removed build configuration changes - [ ] Removed CDN scripts - [ ] Updated - provider configuration + - [ ] Removed SSR-related imports - [ ] Removed build configuration changes - + [ ] Removed CDN scripts - [ ] Updated provider configuration - - [ ] Replaced `WalletWidgetProvider` with `InterwovenKitProvider` - [ ] Updated `useWallet` to `useInterwovenKit` - [ - ] Migrated method calls (`onboard` → `openConnect`, etc.) - [ ] Updated transaction handling (`requestTx` → - `requestTxBlock`) + - [ ] Replaced `WalletWidgetProvider` with `InterwovenKitProvider` - [ ] + Updated `useWallet` to `useInterwovenKit` - [ ] Migrated method calls + (`onboard` → `openConnect`, etc.) - [ ] Updated transaction handling + (`requestTx` → `requestTxBlock`) @@ -429,6 +435,7 @@ export default function SendTransaction() { - Need help with migration? Check out the [Getting Started guide](./getting-started) for complete implementation - examples, or refer to the [API Reference](./references/index) for detailed method documentation. + Need help with migration? Check out the [Getting Started + guide](./getting-started) for complete implementation examples, or refer to + the [API Reference](./references/index) for detailed method documentation. diff --git a/interwovenkit/references/components/interwovenkit-provider.mdx b/interwovenkit/references/components/interwovenkit-provider.mdx index b5f38c7a..61f3333c 100644 --- a/interwovenkit/references/components/interwovenkit-provider.mdx +++ b/interwovenkit/references/components/interwovenkit-provider.mdx @@ -32,7 +32,12 @@ import { useEffect } from 'react' import { QueryClient, QueryClientProvider } from '@tanstack/react-query' import { createConfig, http, WagmiProvider } from 'wagmi' import { mainnet } from 'wagmi/chains' -import { initiaPrivyWalletConnector, injectStyles, InterwovenKitProvider, MAINNET } from '@initia/interwovenkit-react' +import { + initiaPrivyWalletConnector, + injectStyles, + InterwovenKitProvider, + MAINNET, +} from '@initia/interwovenkit-react' import interwovenKitStyles from '@initia/interwovenkit-react/styles.js' const queryClient = new QueryClient() @@ -58,8 +63,8 @@ export function AppProviders({ children }: { children: React.ReactNode }) { ``` - This example shows the provider structure. For complete setup configurations, see [Provider - Setup](../setup/providers). + This example shows the provider structure. For complete setup configurations, + see [Provider Setup](../setup/providers). ## Props @@ -115,7 +120,11 @@ const MY_ROLLUP: Chain = { export function Providers({ children }: { children: React.ReactNode }) { return ( - + {children} ) @@ -123,8 +132,9 @@ export function Providers({ children }: { children: React.ReactNode }) { ``` - This example shows only the `InterwovenKitProvider` configuration. For complete provider setup including - `QueryClientProvider`, `WagmiProvider`, and `injectStyles`, see [Provider Setup](../setup/providers). + This example shows only the `InterwovenKitProvider` configuration. For + complete provider setup including `QueryClientProvider`, `WagmiProvider`, and + `injectStyles`, see [Provider Setup](../setup/providers). ## Notes diff --git a/interwovenkit/references/constants/privy-app-id.mdx b/interwovenkit/references/constants/privy-app-id.mdx index ac9dc81b..2128f22c 100644 --- a/interwovenkit/references/constants/privy-app-id.mdx +++ b/interwovenkit/references/constants/privy-app-id.mdx @@ -38,8 +38,10 @@ export function Providers({ children }: { children: React.ReactNode }) { ``` - This example shows only `PrivyProvider` configuration. For complete provider setup including `InterwovenKitProvider`, - `WagmiProvider`, `QueryClientProvider`, and `injectStyles`, see [Provider Setup](../setup/providers). + This example shows only `PrivyProvider` configuration. For complete provider + setup including `InterwovenKitProvider`, `WagmiProvider`, + `QueryClientProvider`, and `injectStyles`, see [Provider + Setup](../setup/providers). ## Value diff --git a/interwovenkit/references/hooks/use-address.mdx b/interwovenkit/references/hooks/use-address.mdx index dcc96126..6ad99a3d 100644 --- a/interwovenkit/references/hooks/use-address.mdx +++ b/interwovenkit/references/hooks/use-address.mdx @@ -30,8 +30,8 @@ function Address() { ``` - This example assumes providers are already set up. For complete setup configurations, see [Provider - Setup](../setup/providers). + This example assumes providers are already set up. For complete setup + configurations, see [Provider Setup](../setup/providers). ## Return value diff --git a/interwovenkit/references/hooks/use-hex-address.mdx b/interwovenkit/references/hooks/use-hex-address.mdx index c2816fe4..c83eb9d4 100644 --- a/interwovenkit/references/hooks/use-hex-address.mdx +++ b/interwovenkit/references/hooks/use-hex-address.mdx @@ -31,8 +31,8 @@ function Address() { ``` - This example assumes providers are already set up. For complete setup configurations, see [Provider - Setup](../setup/providers). + This example assumes providers are already set up. For complete setup + configurations, see [Provider Setup](../setup/providers). ## Return value diff --git a/interwovenkit/references/hooks/use-initia-address.mdx b/interwovenkit/references/hooks/use-initia-address.mdx index 693bdd44..7e9fb421 100644 --- a/interwovenkit/references/hooks/use-initia-address.mdx +++ b/interwovenkit/references/hooks/use-initia-address.mdx @@ -31,8 +31,8 @@ function Address() { ``` - This example assumes providers are already set up. For complete setup configurations, see [Provider - Setup](../setup/providers). + This example assumes providers are already set up. For complete setup + configurations, see [Provider Setup](../setup/providers). ## Return value diff --git a/interwovenkit/references/hooks/use-interwovenkit.mdx b/interwovenkit/references/hooks/use-interwovenkit.mdx index 347eb217..d5bd6e4b 100644 --- a/interwovenkit/references/hooks/use-interwovenkit.mdx +++ b/interwovenkit/references/hooks/use-interwovenkit.mdx @@ -9,8 +9,9 @@ information, UI controls, transaction utilities, and AutoSign functionality for interacting with the Initia blockchain. - This hook must be used within a component wrapped by `InterwovenKitProvider` to access wallet functionality. For - simple reads, prefer smaller hooks (`useAddress`, `useUsernameQuery`) to avoid overhead. + This hook must be used within a component wrapped by `InterwovenKitProvider` + to access wallet functionality. For simple reads, prefer smaller hooks + (`useAddress`, `useUsernameQuery`) to avoid overhead. ## Prerequisites @@ -30,13 +31,17 @@ import { useInterwovenKit } from '@initia/interwovenkit-react' function ConnectButton() { const { isConnected, openConnect, openWallet } = useInterwovenKit() - return + return ( + + ) } ``` - This example assumes providers are already set up. For complete setup configurations, see [Provider - Setup](../setup/providers). + This example assumes providers are already set up. For complete setup + configurations, see [Provider Setup](../setup/providers). ## Account Information @@ -45,21 +50,24 @@ The hook provides multiple address formats and account details for the currently connected wallet: - Current address in either Bech32 or hex format, depending on the configured chain type (hex for `minievm`, bech32 for - others). Returns an empty string when not connected. + Current address in either Bech32 or hex format, depending on the configured + chain type (hex for `minievm`, bech32 for others). Returns an empty string + when not connected. - Bech32-formatted Initia wallet address of the connected account. Returns an empty string when not connected. + Bech32-formatted Initia wallet address of the connected account. Returns an + empty string when not connected. - Hex-encoded Ethereum-compatible address of the connected account. Returns an empty string when not connected. + Hex-encoded Ethereum-compatible address of the connected account. Returns an + empty string when not connected. - Optional username linked to the account. Returns `null` if no username is associated, or `undefined` before the query - has produced a value. + Optional username linked to the account. Returns `null` if no username is + associated, or `undefined` before the query has produced a value. @@ -76,7 +84,8 @@ connected wallet: ```tsx function AccountInfo() { - const { address, initiaAddress, hexAddress, username, isConnected } = useInterwovenKit() + const { address, initiaAddress, hexAddress, username, isConnected } = + useInterwovenKit() if (!isConnected) return
Not connected
@@ -103,7 +112,10 @@ The hook provides methods for controlling wallet-related UI components: Opens the main wallet drawer showing balances for the connected account.
- + Opens the bridge drawer to onboard assets with optional pre-populated values. @@ -167,7 +179,8 @@ form: - All bridge form values are optional. You can pre-populate any subset of fields to improve the user experience. + All bridge form values are optional. You can pre-populate any subset of fields + to improve the user experience. ```tsx @@ -246,42 +259,54 @@ transactions on the blockchain: path="simulateTx" type="(tx: Pick<TxRequest, 'messages' | 'memo' | 'chainId'>) => Promise<unknown>" > - Simulates a transaction without broadcasting, returning the transaction result. + Simulates a transaction without broadcasting, returning the transaction + result.
- - Signs and broadcasts a transaction, returning the transaction hash immediately without waiting for block inclusion. - Shows transaction approval UI before signing. + + Signs and broadcasts a transaction, returning the transaction hash immediately + without waiting for block inclusion. Shows transaction approval UI before + signing. - Signs, broadcasts, and waits for block inclusion, returning the complete transaction response. Shows transaction - approval UI before signing. Defaults to `timeoutMs: 30000` (30 seconds) and `intervalMs: 500` (0.5 seconds). + Signs, broadcasts, and waits for block inclusion, returning the complete + transaction response. Shows transaction approval UI before signing. Defaults + to `timeoutMs: 30000` (30 seconds) and `intervalMs: 500` (0.5 seconds). - Signs and broadcasts a transaction with pre-calculated fee, returning the transaction hash immediately without waiting - for block inclusion. Does not show UI. + Signs and broadcasts a transaction with pre-calculated fee, returning the + transaction hash immediately without waiting for block inclusion. Does not + show UI. - Signs, broadcasts, and waits for block inclusion with pre-calculated fee, returning the complete transaction response. - Does not show UI. Defaults to `timeoutMs: 30000` (30 seconds) and `intervalMs: 500` (0.5 seconds). + Signs, broadcasts, and waits for block inclusion with pre-calculated fee, + returning the complete transaction response. Does not show UI. Defaults to + `timeoutMs: 30000` (30 seconds) and `intervalMs: 500` (0.5 seconds). - + Polls for transaction confirmation on-chain using a transaction hash. - Use `requestTxSync` for better UX when you want to show immediate feedback, then use `waitForTxConfirmation` to track - the final transaction status. Use `requestTxBlock` when you need the complete transaction result immediately. + Use `requestTxSync` for better UX when you want to show immediate feedback, + then use `waitForTxConfirmation` to track the final transaction status. Use + `requestTxBlock` when you need the complete transaction result immediately. ### Transaction Request Interface @@ -298,7 +323,8 @@ include gas estimation: - Target chain ID for the transaction. Defaults to the provider's `defaultChainId`. + Target chain ID for the transaction. Defaults to the provider's + `defaultChainId`. @@ -331,7 +357,8 @@ fees: - Target chain ID for the transaction. Defaults to the provider's `defaultChainId`. + Target chain ID for the transaction. Defaults to the provider's + `defaultChainId`. @@ -352,11 +379,13 @@ confirmation: - Maximum time in milliseconds to wait for transaction confirmation before failing. Defaults to 30000 (30 seconds). + Maximum time in milliseconds to wait for transaction confirmation before + failing. Defaults to 30000 (30 seconds). - Polling interval in milliseconds for checking transaction status. Defaults to 500 (0.5 seconds). + Polling interval in milliseconds for checking transaction status. Defaults to + 500 (0.5 seconds). ### Transaction Examples @@ -366,7 +395,8 @@ import { useInterwovenKit } from '@initia/interwovenkit-react' import type { EncodeObject, StdFee } from '@cosmjs/stargate' function SendTransaction() { - const { requestTxBlock, submitTxSync, waitForTxConfirmation } = useInterwovenKit() + const { requestTxBlock, submitTxSync, waitForTxConfirmation } = + useInterwovenKit() // Example: Request transaction with UI approval const handleRequestTx = async (messages: EncodeObject[]) => { @@ -427,7 +457,10 @@ function SendTransaction() { The hook provides AutoSign state and control methods for automatic transaction signing: - + Expiration dates for AutoSign permissions by chain ID. @@ -440,18 +473,19 @@ signing: - Opens UI to enable AutoSign for a chain. Optionally specify a chain ID, or defaults to the provider's `defaultChainId` - if omitted. + Opens UI to enable AutoSign for a chain. Optionally specify a chain ID, or + defaults to the provider's `defaultChainId` if omitted. - Disables AutoSign for a chain. Optionally specify a chain ID, or defaults to the provider's `defaultChainId` if - omitted. + Disables AutoSign for a chain. Optionally specify a chain ID, or defaults to + the provider's `defaultChainId` if omitted. - AutoSign requires Privy integration. See [AutoSign setup](../setup/providers#autosign-setup-requires-privy) for - complete AutoSign configuration. + AutoSign requires Privy integration. See [AutoSign + setup](../setup/providers#autosign-setup-requires-privy) for complete AutoSign + configuration. ```tsx @@ -465,12 +499,21 @@ function AutoSignControls() {
Loading AutoSign status...
) : ( <> -
AutoSign enabled: {autoSign.isEnabledByChain[chainId] ? 'Yes' : 'No'}
+
+ AutoSign enabled:{' '} + {autoSign.isEnabledByChain[chainId] ? 'Yes' : 'No'} +
{autoSign.expiredAtByChain[chainId] && ( -
Expires: {autoSign.expiredAtByChain[chainId]?.toLocaleString()}
+
+ Expires: {autoSign.expiredAtByChain[chainId]?.toLocaleString()} +
)} - - + + )} @@ -504,12 +547,24 @@ type InterwovenKitResult = { openBridge: (defaultValues?: Partial) => void disconnect: () => void autoSign: AutoSignState - estimateGas: (tx: Pick) => Promise - simulateTx: (tx: Pick) => Promise + estimateGas: ( + tx: Pick, + ) => Promise + simulateTx: ( + tx: Pick, + ) => Promise requestTxSync: (tx: TxRequest) => Promise - requestTxBlock: (tx: TxRequest, timeoutMs?: number, intervalMs?: number) => Promise + requestTxBlock: ( + tx: TxRequest, + timeoutMs?: number, + intervalMs?: number, + ) => Promise submitTxSync: (tx: TxParams) => Promise - submitTxBlock: (tx: TxParams, timeoutMs?: number, intervalMs?: number) => Promise + submitTxBlock: ( + tx: TxParams, + timeoutMs?: number, + intervalMs?: number, + ) => Promise waitForTxConfirmation: (options: WaitForTxOptions) => Promise } diff --git a/interwovenkit/references/hooks/use-portfolio.mdx b/interwovenkit/references/hooks/use-portfolio.mdx index 19c32713..83039ad8 100644 --- a/interwovenkit/references/hooks/use-portfolio.mdx +++ b/interwovenkit/references/hooks/use-portfolio.mdx @@ -33,8 +33,8 @@ function PortfolioValue() { ``` - This example assumes providers are already set up. For complete setup configurations, see [Provider - Setup](../setup/providers). + This example assumes providers are already set up. For complete setup + configurations, see [Provider Setup](../setup/providers). ## Return value diff --git a/interwovenkit/references/hooks/use-username-query.mdx b/interwovenkit/references/hooks/use-username-query.mdx index 36a1cbc6..f5c3a947 100644 --- a/interwovenkit/references/hooks/use-username-query.mdx +++ b/interwovenkit/references/hooks/use-username-query.mdx @@ -32,8 +32,8 @@ function Username() { ``` - This example assumes providers are already set up. For complete setup configurations, see [Provider - Setup](../setup/providers). + This example assumes providers are already set up. For complete setup + configurations, see [Provider Setup](../setup/providers). ## Return value diff --git a/interwovenkit/references/setup/providers.mdx b/interwovenkit/references/setup/providers.mdx index cf40ff1a..23c42f7f 100644 --- a/interwovenkit/references/setup/providers.mdx +++ b/interwovenkit/references/setup/providers.mdx @@ -14,8 +14,8 @@ title: Provider Setup For apps that don't need AutoSign or embedded wallets. - This setup uses `initiaPrivyWalletConnector` as a wagmi connector option, but does not require `PrivyProvider` at - runtime. + This setup uses `initiaPrivyWalletConnector` as a wagmi connector option, but + does not require `PrivyProvider` at runtime. ```tsx @@ -25,7 +25,12 @@ import { PropsWithChildren, useEffect } from 'react' import { createConfig, http, WagmiProvider } from 'wagmi' import { mainnet } from 'wagmi/chains' import { QueryClient, QueryClientProvider } from '@tanstack/react-query' -import { initiaPrivyWalletConnector, injectStyles, InterwovenKitProvider, MAINNET } from '@initia/interwovenkit-react' +import { + initiaPrivyWalletConnector, + injectStyles, + InterwovenKitProvider, + MAINNET, +} from '@initia/interwovenkit-react' import interwovenKitStyles from '@initia/interwovenkit-react/styles.js' const wagmiConfig = createConfig({ @@ -70,7 +75,13 @@ import { PRIVY_APP_ID, } from '@initia/interwovenkit-react' import interwovenKitStyles from '@initia/interwovenkit-react/styles.js' -import { PrivyProvider, useCreateWallet, useLoginWithSiwe, usePrivy, useWallets } from '@privy-io/react-auth' +import { + PrivyProvider, + useCreateWallet, + useLoginWithSiwe, + usePrivy, + useWallets, +} from '@privy-io/react-auth' const wagmiConfig = createConfig({ connectors: [initiaPrivyWalletConnector], diff --git a/interwovenkit/references/utilities/inject-styles.mdx b/interwovenkit/references/utilities/inject-styles.mdx index 5c7c3d65..5b117d1d 100644 --- a/interwovenkit/references/utilities/inject-styles.mdx +++ b/interwovenkit/references/utilities/inject-styles.mdx @@ -54,8 +54,8 @@ export default function Providers({ children }: PropsWithChildren) { ``` - This example shows the typical usage pattern. For complete setup configurations, see [Provider - Setup](../setup/providers). + This example shows the typical usage pattern. For complete setup + configurations, see [Provider Setup](../setup/providers). ## API diff --git a/nodes-and-rollups/deploying-rollups/deploy.mdx b/nodes-and-rollups/deploying-rollups/deploy.mdx index c36552a8..b0252837 100644 --- a/nodes-and-rollups/deploying-rollups/deploy.mdx +++ b/nodes-and-rollups/deploying-rollups/deploy.mdx @@ -73,8 +73,9 @@ If you want more information about a specific option, access the tooltip by pressing `ctrl+T`. If you want to go back to the previous step, press `ctrl+Z`. - To ensure that you have tokens available to send transactions on your rollup, you should add at least 1 address you - control to the list of genesis accounts when prompted. + To ensure that you have tokens available to send transactions on your rollup, + you should add at least 1 address you control to the list of genesis accounts + when prompted. Once you have selected all the options, Weave will automatically start the @@ -103,8 +104,9 @@ deploy contracts on the rollup. However, for full functionality, you will also need to run the OPinit Executor and Challenger bots as well as the IBC Relayer. - At this stage, you can interact with your rollup and deploy contracts, as well as send transactions. However, to - enable bridging INIT and other tokens from L1, setting up DA, and more, you will also need to run the OPinit Executor, + At this stage, you can interact with your rollup and deploy contracts, as well + as send transactions. However, to enable bridging INIT and other tokens from + L1, setting up DA, and more, you will also need to run the OPinit Executor, Challenger bots, and the IBC Relayer. To do this, follow the steps below. @@ -176,7 +178,8 @@ Streaming logs from launchd com.opinitd.executor.daemon - For production use, we recommend setting up the Challenger bot on a separate machine from the Executor bot. + For production use, we recommend setting up the Challenger bot on a separate + machine from the Executor bot. The OPinit Challenger bot is responsible for monitoring the Executor bot's diff --git a/nodes-and-rollups/deploying-rollups/initia-registry.mdx b/nodes-and-rollups/deploying-rollups/initia-registry.mdx index 15ef21b7..1e192617 100644 --- a/nodes-and-rollups/deploying-rollups/initia-registry.mdx +++ b/nodes-and-rollups/deploying-rollups/initia-registry.mdx @@ -367,9 +367,16 @@ import { RESTClient } from '@initia/initia.js' * @param {string} l1_denom - The L1 denomination (e.g., "uinit"). * @returns {Promise} - The corresponding L2 denomination (e.g., "l2/..."). */ -export async function opDenomByL1Denom(uri: string, bridge_id: number, l1_denom: string): Promise { +export async function opDenomByL1Denom( + uri: string, + bridge_id: number, + l1_denom: string, +): Promise { const restClient = new RESTClient(uri) - const tokenPair = await restClient.ophost.tokenPairByL1Denom(bridge_id, l1_denom) + const tokenPair = await restClient.ophost.tokenPairByL1Denom( + bridge_id, + l1_denom, + ) return tokenPair.l2_denom } @@ -383,9 +390,16 @@ export async function opDenomByL1Denom(uri: string, bridge_id: number, l1_denom: * @param {string} l2_denom - The L2 denomination (e.g., "l2/xyz..."). * @returns {Promise} - The corresponding L1 denomination (e.g., "uinit"). */ -export async function opDenomByL2Denom(uri: string, bridge_id: number, l2_denom: string): Promise { +export async function opDenomByL2Denom( + uri: string, + bridge_id: number, + l2_denom: string, +): Promise { const restClient = new RESTClient(uri) - const tokenPair = await restClient.ophost.tokenPairByL2Denom(bridge_id, l2_denom) + const tokenPair = await restClient.ophost.tokenPairByL2Denom( + bridge_id, + l2_denom, + ) return tokenPair.l1_denom } @@ -395,7 +409,8 @@ async function main() { const bridge_id = 1 const l1_denom = 'uinit' - const l2_denom = 'l2/07b129ceb9c4b0bdef7db171ce1e22f90d34bc930058b23e21adf8cc938d8145' + const l2_denom = + 'l2/07b129ceb9c4b0bdef7db171ce1e22f90d34bc930058b23e21adf8cc938d8145' const l2_denom_for_l1_denom = await opDenomByL1Denom(uri, bridge_id, l1_denom) console.log(`L2 denom for L1 denom "${l1_denom}":`, l2_denom_for_l1_denom) @@ -445,12 +460,17 @@ function makeIBCHash(fullTrace: string): string { * @param {string} denom - The IBC denom (must start with "ibc/"). * @returns {Promise} - The combined path and base denom (e.g., "transfer/channel-0/uinit"). */ -async function getFullTrace(restClient: RESTClient, denom: string): Promise { +async function getFullTrace( + restClient: RESTClient, + denom: string, +): Promise { if (!denom.startsWith('ibc/')) { throw Error('Not an IBC denom') } - const trace = await restClient.apiRequester.get(`/ibc/apps/transfer/v1/denom_traces/${denom}`) + const trace = await restClient.apiRequester.get( + `/ibc/apps/transfer/v1/denom_traces/${denom}`, + ) return `${trace.denom_trace.path}/${trace.denom_trace.base_denom}` } @@ -503,7 +523,9 @@ export async function ibcDenom( } // If it starts with "transfer/", convert to an IBC hash; otherwise, return as is - const denomInChainB = fullTraceOnChainB.startsWith('transfer/') ? makeIBCHash(fullTraceOnChainB) : fullTraceOnChainB + const denomInChainB = fullTraceOnChainB.startsWith('transfer/') + ? makeIBCHash(fullTraceOnChainB) + : fullTraceOnChainB return denomInChainB } @@ -515,7 +537,12 @@ async function main() { const channelA = 'channel-132' // Example channel ID for chain A const channelB = 'channel-0' // Example channel ID for chain B - const ibcDenomStr = await ibcDenom(restClientChainA, denom, channelA, channelB) + const ibcDenomStr = await ibcDenom( + restClientChainA, + denom, + channelA, + channelB, + ) console.log('Calculated IBC Denom:', ibcDenomStr) } diff --git a/nodes-and-rollups/indexing/introduction.mdx b/nodes-and-rollups/indexing/introduction.mdx index 6937b785..e0a688cd 100644 --- a/nodes-and-rollups/indexing/introduction.mdx +++ b/nodes-and-rollups/indexing/introduction.mdx @@ -1,6 +1,7 @@ --- title: 'Indexing on Initia' -description: 'Overview of indexing on Initia rollups and the recommended approach using +description: + 'Overview of indexing on Initia rollups and the recommended approach using Rollytics.' --- diff --git a/nodes-and-rollups/indexing/kv-indexer/legacy-overview.mdx b/nodes-and-rollups/indexing/kv-indexer/legacy-overview.mdx index 424443dc..34cd4fca 100644 --- a/nodes-and-rollups/indexing/kv-indexer/legacy-overview.mdx +++ b/nodes-and-rollups/indexing/kv-indexer/legacy-overview.mdx @@ -1,6 +1,7 @@ --- title: 'KV Indexer (Legacy)' -description: 'Overview of the legacy KV Indexer, its limitations, and why Rollytics is the +description: + 'Overview of the legacy KV Indexer, its limitations, and why Rollytics is the recommended replacement.' --- diff --git a/nodes-and-rollups/indexing/rollytics/api-reference.mdx b/nodes-and-rollups/indexing/rollytics/api-reference.mdx index ed838010..03d7a16e 100644 --- a/nodes-and-rollups/indexing/rollytics/api-reference.mdx +++ b/nodes-and-rollups/indexing/rollytics/api-reference.mdx @@ -1,6 +1,7 @@ --- title: 'API Reference' -description: 'Rollytics KV Indexer endpoint-compatible API reference, with endpoints for +description: + 'Rollytics KV Indexer endpoint-compatible API reference, with endpoints for status, blocks, transactions, NFTs, and rich lists.' --- @@ -470,7 +471,8 @@ Schema: see OpenAPI (`/swagger/doc.json`) # Rich List - Rich list indexing is currently available only for EVM rollups. Move and Wasm rollups are not yet supported. + Rich list indexing is currently available only for EVM rollups. Move and Wasm + rollups are not yet supported. ## GET `/indexer/richlist/v1/{denom}` diff --git a/nodes-and-rollups/indexing/rollytics/faq.mdx b/nodes-and-rollups/indexing/rollytics/faq.mdx index 17c7c35a..abb76e4d 100644 --- a/nodes-and-rollups/indexing/rollytics/faq.mdx +++ b/nodes-and-rollups/indexing/rollytics/faq.mdx @@ -1,6 +1,7 @@ --- title: 'FAQ' -description: 'Frequently asked questions about Rollytics and migrating from the legacy KV +description: + 'Frequently asked questions about Rollytics and migrating from the legacy KV Indexer.' --- diff --git a/nodes-and-rollups/indexing/rollytics/setup-and-migration.mdx b/nodes-and-rollups/indexing/rollytics/setup-and-migration.mdx index 72949742..4cb261f0 100644 --- a/nodes-and-rollups/indexing/rollytics/setup-and-migration.mdx +++ b/nodes-and-rollups/indexing/rollytics/setup-and-migration.mdx @@ -1,6 +1,7 @@ --- title: 'Setup and Migration Guide' -description: 'Step-by-step guide to deploying Rollytics and migrating from the legacy KV +description: + 'Step-by-step guide to deploying Rollytics and migrating from the legacy KV Indexer.' --- diff --git a/nodes-and-rollups/running-nodes/introduction.mdx b/nodes-and-rollups/running-nodes/introduction.mdx index 5c9f2337..92d72a41 100644 --- a/nodes-and-rollups/running-nodes/introduction.mdx +++ b/nodes-and-rollups/running-nodes/introduction.mdx @@ -7,8 +7,9 @@ The following guide will walk you through the steps of how to run an Initia node and optionally to join the Initia network as a validator. - This guide has been tested against Linux distributions only. While it might be possible to run an Initia node on other - operating systems, the process is not as straightforward and may require additional configuration. + This guide has been tested against Linux distributions only. While it might be + possible to run an Initia node on other operating systems, the process is not + as straightforward and may require additional configuration. ## Hardware Requirements diff --git a/nodes-and-rollups/running-nodes/manual-setup/cosmovisor.mdx b/nodes-and-rollups/running-nodes/manual-setup/cosmovisor.mdx index d1adbec4..8d588f87 100644 --- a/nodes-and-rollups/running-nodes/manual-setup/cosmovisor.mdx +++ b/nodes-and-rollups/running-nodes/manual-setup/cosmovisor.mdx @@ -8,7 +8,8 @@ upgrades. **Prerequisite:** complete the [Running L1 Nodes with - Initiad](/nodes-and-rollups/running-nodes/running-l1-nodes/l1-nodes-initiad) guide first, then follow the steps below. + Initiad](/nodes-and-rollups/running-nodes/running-l1-nodes/l1-nodes-initiad) + guide first, then follow the steps below. ## Install Cosmovisor diff --git a/nodes-and-rollups/running-nodes/manual-setup/node-configuration.mdx b/nodes-and-rollups/running-nodes/manual-setup/node-configuration.mdx index 5178b136..1b01609d 100644 --- a/nodes-and-rollups/running-nodes/manual-setup/node-configuration.mdx +++ b/nodes-and-rollups/running-nodes/manual-setup/node-configuration.mdx @@ -25,8 +25,9 @@ where: the [Networks](/resources/developer/initia-l1) section of the docs - Note that the `moniker` field here is the name of the node itself and does not apply to the validator name/moniker. - The validator name/moniker is set when you create your validator and is used to identify your validator on the + Note that the `moniker` field here is the name of the node itself and does not + apply to the validator name/moniker. The validator name/moniker is set when + you create your validator and is used to identify your validator on the network. diff --git a/nodes-and-rollups/running-nodes/manual-setup/node-setup.mdx b/nodes-and-rollups/running-nodes/manual-setup/node-setup.mdx index 15efdc73..dcf1e723 100644 --- a/nodes-and-rollups/running-nodes/manual-setup/node-setup.mdx +++ b/nodes-and-rollups/running-nodes/manual-setup/node-setup.mdx @@ -65,7 +65,9 @@ opened by a process to 1024. It is recomemneded that you increase this amount. To do so, modify `/etc/security/limits.conf` to increase the amount. The `nofile` is the number of files a process may open at a time. -If you are using a non-root user, replace `*` with the username of the user. + + If you are using a non-root user, replace `*` with the username of the user. + ```sh limits.conf * soft nofile 65535 diff --git a/nodes-and-rollups/running-nodes/manual-setup/starting-the-node.mdx b/nodes-and-rollups/running-nodes/manual-setup/starting-the-node.mdx index 1c3f3feb..9f7dd8a6 100644 --- a/nodes-and-rollups/running-nodes/manual-setup/starting-the-node.mdx +++ b/nodes-and-rollups/running-nodes/manual-setup/starting-the-node.mdx @@ -25,15 +25,18 @@ snapshot syncing and StateSync - A chain snapshot sync works by downloading the entire state of the chain at a certain height and then running the - node off of that states. Nodes that uses snapshos usually have more historical transaction and block data compared - to nodes that use StateSync. However, in exchange, snapshot syncing is typically much slower due to more information - required to be downloaded. + A chain snapshot sync works by downloading the entire state of the chain at + a certain height and then running the node off of that states. Nodes that + uses snapshos usually have more historical transaction and block data + compared to nodes that use StateSync. However, in exchange, snapshot syncing + is typically much slower due to more information required to be downloaded. - A StateSync works by directly downloading the application state from other nodes in the network. Unlike syncing from - a snapshot, StateSync focuses on the downloading the processing the current state of the chain, ignoring historical - transactions and block. However, in exchange for this, state-syncing is typically much faster + A StateSync works by directly downloading the application state from other + nodes in the network. Unlike syncing from a snapshot, StateSync focuses on + the downloading the processing the current state of the chain, ignoring + historical transactions and block. However, in exchange for this, + state-syncing is typically much faster diff --git a/nodes-and-rollups/running-nodes/running-a-validator/becoming-a-validator.mdx b/nodes-and-rollups/running-nodes/running-a-validator/becoming-a-validator.mdx index 46d8fae5..e649eb5e 100644 --- a/nodes-and-rollups/running-nodes/running-a-validator/becoming-a-validator.mdx +++ b/nodes-and-rollups/running-nodes/running-a-validator/becoming-a-validator.mdx @@ -4,8 +4,9 @@ icon: check-to-slot --- - Before proceeding to create a validator, first make sure that your Initia node is fully synced to the latest height. - You can verify this by comparing your node's latest block height with the network's. + Before proceeding to create a validator, first make sure that your Initia node + is fully synced to the latest height. You can verify this by comparing your + node's latest block height with the network's. diff --git a/nodes-and-rollups/running-nodes/running-l1-nodes/l1-nodes-initiad.mdx b/nodes-and-rollups/running-nodes/running-l1-nodes/l1-nodes-initiad.mdx index ba8d43f4..2fe8e494 100644 --- a/nodes-and-rollups/running-nodes/running-l1-nodes/l1-nodes-initiad.mdx +++ b/nodes-and-rollups/running-nodes/running-l1-nodes/l1-nodes-initiad.mdx @@ -20,8 +20,10 @@ Before proceeding, ensure your system meets the following requirements: | High | 8 cores | 32GB RAM | 2 TB NVMe/SSD with write throughput > 1000 MiBps | 100 Mbps bandwidth | - We strongly recommend running Initia nodes on a Linux-based operating system. While it may be possible to run on other - operating systems, we have not tested them and cannot guarantee the same environment settings and running conditions. + We strongly recommend running Initia nodes on a Linux-based operating system. + While it may be possible to run on other operating systems, we have not tested + them and cannot guarantee the same environment settings and running + conditions. ## Installation @@ -71,7 +73,8 @@ initiad version ``` - If `initiad` is not found, check your `$PATH` environment variable to ensure it includes `$GOBIN` or `$GOPATH/bin`. + If `initiad` is not found, check your `$PATH` environment variable to ensure + it includes `$GOBIN` or `$GOPATH/bin`. @@ -115,8 +118,9 @@ Note that: Your private key is generated during initialization and stored in `${HOME} - /.initia/config/priv_validator_key.json`. **IMPORTANT**: Always back up your private key, especially for validator - nodes. Loss of the private key may result in permanent node inaccessibility. + /.initia/config/priv_validator_key.json`. **IMPORTANT**: Always back up your + private key, especially for validator nodes. Loss of the private key may + result in permanent node inaccessibility. ### Network Configuration @@ -132,7 +136,9 @@ An Initia node provides multiple endpoints that you can enable or disable. | RPC | Tendermint/CometBFT API | `~/.initia/config/config.toml` | | P2P | Gossip P2P Network | `~/.initia/config/config.toml` | -Validator nodes are not recommended to expose these endpoints publicly. + + Validator nodes are not recommended to expose these endpoints publicly. + #### Configuration Examples @@ -186,7 +192,8 @@ To fully connect to the network, you first need to download the genesis file, configure your peers, and sync the node. - You can find information on the genesis file, peers, and state sync for the network you want to join on the [networks + You can find information on the genesis file, peers, and state sync for the + network you want to join on the [networks page](/resources/developer/initia-l1) diff --git a/nodes-and-rollups/running-nodes/running-l1-nodes/l1-nodes-weave.mdx b/nodes-and-rollups/running-nodes/running-l1-nodes/l1-nodes-weave.mdx index b46e1564..503dfd00 100644 --- a/nodes-and-rollups/running-nodes/running-l1-nodes/l1-nodes-weave.mdx +++ b/nodes-and-rollups/running-nodes/running-l1-nodes/l1-nodes-weave.mdx @@ -14,8 +14,10 @@ Before proceeding, ensure your system meets the following requirements: | High | 8 cores | 32GB RAM | 2 TB NVMe/SSD with write throughput > 1000 MiBps | 100 Mbps bandwidth | - We strongly recommend running Initia nodes on a Linux-based operating system. While it may be possible to run on other - operating systems, we have not tested them and cannot guarantee the same environment settings and running conditions. + We strongly recommend running Initia nodes on a Linux-based operating system. + While it may be possible to run on other operating systems, we have not tested + them and cannot guarantee the same environment settings and running + conditions. diff --git a/resources/developer/deployed-contracts/initia.mdx b/resources/developer/deployed-contracts/initia.mdx index 1d89f397..2e86a1f4 100644 --- a/resources/developer/deployed-contracts/initia.mdx +++ b/resources/developer/deployed-contracts/initia.mdx @@ -6,13 +6,15 @@ title: Deployed Contracts (Initia) - | Contract Name | Address | | ------------- | ------------------------------------------ | | + | Contract Name | Address | | ------------- | + ------------------------------------------ | | [VIP](/home/core-concepts/vip/introduction) | [`0x3a886b32a802582f2e446e74d4a24d1d7ed01adf46d2a8f65c5723887e708789`](https://scan.initia.xyz/interwoven-1/modules/0x3a886b32a802582f2e446e74d4a24d1d7ed01adf46d2a8f65c5723887e708789/vip) | - | Contract Name | Address | | ------------- | ------------------------------------------ | | + | Contract Name | Address | | ------------- | + ------------------------------------------ | | [VIP](/home/core-concepts/vip/introduction) | [`0x81c3ea419d2fd3a27971021d9dd3cc708def05e5d6a09d39b2f1f9ba18312264`](https://scan.testnet.initia.xyz/initiation-2/modules/0x81c3ea419d2fd3a27971021d9dd3cc708def05e5d6a09d39b2f1f9ba18312264/vip) | diff --git a/resources/developer/deployed-contracts/minievm.mdx b/resources/developer/deployed-contracts/minievm.mdx index 0364b12a..6172b597 100644 --- a/resources/developer/deployed-contracts/minievm.mdx +++ b/resources/developer/deployed-contracts/minievm.mdx @@ -4,12 +4,15 @@ title: Deployed Contracts (MiniEVM) - | Contract Name | Address | ABI | | ------------- | ------------------------------------------ | --- | | - [Cosmos](/resources/developer/contract-references/evm/cosmos) | `0xf1` | TBA | | - [ERC20Registry](/resources/developer/contract-references/evm/erc20-registry) | `0xf2` | TBA | + | Contract Name | Address | ABI | | ------------- | + ------------------------------------------ | --- | | + [Cosmos](/resources/developer/contract-references/evm/cosmos) | `0xf1` | TBA + | | + [ERC20Registry](/resources/developer/contract-references/evm/erc20-registry) + | `0xf2` | TBA | [ERC20Factory](/resources/developer/contract-references/evm/erc20-factory) | `0xd53506E20eA25122aC6adc6462D9D1cf810Ef5a4` | TBA | | - [ConnectOracle](/resources/developer/contract-references/evm/connect) | `0x031ECb63480983FD216D17BB6e1d393f3816b72F` - | TBA | + [ConnectOracle](/resources/developer/contract-references/evm/connect) | + `0x031ECb63480983FD216D17BB6e1d393f3816b72F` | TBA | diff --git a/resources/developer/initia-l1.mdx b/resources/developer/initia-l1.mdx index 3078c89b..dfb2dd4a 100644 --- a/resources/developer/initia-l1.mdx +++ b/resources/developer/initia-l1.mdx @@ -37,12 +37,14 @@ icon: globe - | Item | Value | |----------------------------|---------------| | Minimum Gas Prices | 0.015uinit | | Block Gas - Limit | 200,000,000 | | Staking Unbonding Period | 21 days | | Governance Voting Period | 7 days | + | Item | Value | |----------------------------|---------------| | Minimum + Gas Prices | 0.015uinit | | Block Gas Limit | 200,000,000 | | Staking + Unbonding Period | 21 days | | Governance Voting Period | 7 days | - | Item | Value | |----------------------------|---------------| | Minimum Gas Prices | 0.015uinit | | Block Gas - Limit | 200,000,000 | | Staking Unbonding Period | 7 days | | Governance Voting Period | 2 days | + | Item | Value | |----------------------------|---------------| | Minimum + Gas Prices | 0.015uinit | | Block Gas Limit | 200,000,000 | | Staking + Unbonding Period | 7 days | | Governance Voting Period | 2 days | @@ -73,47 +75,67 @@ You can find a number of RPCs, APIs, and gRPCs for the network in the - | Category | Parameter | Mainnet | Explanation | |----------|-----------|---------|-------------| | VIP | - `stage_interval` | 2 weeks | Length of one stage (frequency of esINIT distribution) | | VIP | `vesting_period` | 26 - stages | Total vesting period for esINIT | | VIP | `minimum_lock_staking_period` | 26 weeks | Minimum lock period - for an esINIT lock-staking position (“zapping”) | | VIP | `challenge_period` | 3 days | Window during which a - score-snapshot challenge may be submitted | | VIP | `min_score_ratio` | 0.5 | Multiplier applied to the previous - stage’s score to determine the minimum score required to fully vest esINIT in the next stage | | VIP | - `pool_split_ratio` | 0.2 | Portion of total rewards directed to the balance pool | | VIP | `minimum_eligible_tvl` | - 0 | Minimum INIT TVL required for whitelisting and eligibility for stage rewards | | VIP | `maximum_weight_ratio` | - 0.4 | Maximum share of gauge votes from a single L2, relative to total votes, counted for esINIT distribution | | - VIP (Operator) | `max_commission_rate` | 0.25 | Maximum esINIT commission rate a rollup can set | | VIP (TVL - manager) | `snapshot_interval` | 1 hour | Frequency of TVL snapshots for all L2s | | VIP (Lock Staking) | - `min_lock_period` | 30 days | Minimum lock period for any lock-staking position | | VIP (Lock Staking) | - `max_lock_period` | 2 years | Maximum lock period for all lock-staking positions (including esINIT positions) | | - VIP (Lock Staking) | `max_delegation_slot` | 60 | Maximum number of unique lock-staking positions per user | | VIP - (gauge vote) | `cycle_start_time` | Same as stage start time | Start time of the first gauge-vote cycle | | VIP - (gauge vote) | `cycle_interval` | 2 weeks | Length of a gauge-vote cycle | | VIP (gauge vote) | `voting_period` | 13 - days | Duration of the voting window within a cycle | | VIP (gauge vote) | `max_lock_period_multiplier` | 4 | - Voting-power multiplier for the maximum lock duration | | VIP (gauge vote) | `min_lock_period_multiplier` | 1 | - Voting-power multiplier for the minimum lock duration | | VIP (gauge vote) | `pair_multipliers` | 1 for all pools | + | Category | Parameter | Mainnet | Explanation | + |----------|-----------|---------|-------------| | VIP | `stage_interval` | + 2 weeks | Length of one stage (frequency of esINIT distribution) | | VIP | + `vesting_period` | 26 stages | Total vesting period for esINIT | | VIP | + `minimum_lock_staking_period` | 26 weeks | Minimum lock period for an esINIT + lock-staking position (“zapping”) | | VIP | `challenge_period` | 3 days | + Window during which a score-snapshot challenge may be submitted | | VIP | + `min_score_ratio` | 0.5 | Multiplier applied to the previous stage’s score + to determine the minimum score required to fully vest esINIT in the next + stage | | VIP | `pool_split_ratio` | 0.2 | Portion of total rewards directed + to the balance pool | | VIP | `minimum_eligible_tvl` | 0 | Minimum INIT TVL + required for whitelisting and eligibility for stage rewards | | VIP | + `maximum_weight_ratio` | 0.4 | Maximum share of gauge votes from a single + L2, relative to total votes, counted for esINIT distribution | | VIP + (Operator) | `max_commission_rate` | 0.25 | Maximum esINIT commission rate a + rollup can set | | VIP (TVL manager) | `snapshot_interval` | 1 hour | + Frequency of TVL snapshots for all L2s | | VIP (Lock Staking) | + `min_lock_period` | 30 days | Minimum lock period for any lock-staking + position | | VIP (Lock Staking) | `max_lock_period` | 2 years | Maximum lock + period for all lock-staking positions (including esINIT positions) | | VIP + (Lock Staking) | `max_delegation_slot` | 60 | Maximum number of unique + lock-staking positions per user | | VIP (gauge vote) | `cycle_start_time` | + Same as stage start time | Start time of the first gauge-vote cycle | | VIP + (gauge vote) | `cycle_interval` | 2 weeks | Length of a gauge-vote cycle | | + VIP (gauge vote) | `voting_period` | 13 days | Duration of the voting window + within a cycle | | VIP (gauge vote) | `max_lock_period_multiplier` | 4 | + Voting-power multiplier for the maximum lock duration | | VIP (gauge vote) | + `min_lock_period_multiplier` | 1 | Voting-power multiplier for the minimum + lock duration | | VIP (gauge vote) | `pair_multipliers` | 1 for all pools | Voting-power multiplier applied to each enshrined liquidity pair | - | Category | Parameter | Testnet | Explanation | |----------|-----------|---------|-------------| | VIP | - `stage_interval` | 1 day | Length of one stage (frequency of esINIT distribution) | | VIP | `vesting_period` | 26 - stages | Total vesting period for esINIT | | VIP | `minimum_lock_staking_period` | 1 day | Minimum lock period for - an esINIT lock-staking position (“zapping”) | | VIP | `challenge_period` | none | Window during which a - score-snapshot challenge may be submitted | | VIP | `min_score_ratio` | 0.5 | Multiplier applied to the previous - stage’s score to determine the minimum score required to fully vest esINIT in the next stage | | VIP | - `pool_split_ratio` | 0.5 | Portion of total rewards directed to the balance pool | | VIP | `minimum_eligible_tvl` | - 0 | Minimum INIT TVL required for whitelisting and eligibility for stage rewards | | VIP | `maximum_weight_ratio` | - 1 | Maximum share of gauge votes from a single L2, relative to total votes, counted for esINIT distribution | | VIP - (Operator) | `max_commission_rate` | none | Maximum esINIT commission rate a rollup can set | | VIP (TVL manager) | - `snapshot_interval` | 4 hours | Frequency of TVL snapshots for all L2s | | VIP (Lock Staking) | `min_lock_period` | - 12 hours | Minimum lock period for any lock-staking position | | VIP (Lock Staking) | `max_lock_period` | 6 days | - Maximum lock period for all lock-staking positions (including esINIT positions) | | VIP (Lock Staking) | - `max_delegation_slot` | 50 | Maximum number of unique lock-staking positions per user | | VIP (gauge vote) | - `cycle_start_time` | Same as stage start time | Start time of the first gauge-vote cycle | | VIP (gauge vote) | - `cycle_interval` | 1 day | Length of a gauge-vote cycle | | VIP (gauge vote) | `voting_period` | 23 hours | Duration - of the voting window within a cycle | | VIP (gauge vote) | `max_lock_period_multiplier` | 4 | Voting-power - multiplier for the maximum lock duration | | VIP (gauge vote) | `min_lock_period_multiplier` | 1 | Voting-power - multiplier for the minimum lock duration | | VIP (gauge vote) | `pair_multipliers` | 1 for all pairs | Voting-power - multiplier applied to each enshrined liquidity pair | + | Category | Parameter | Testnet | Explanation | + |----------|-----------|---------|-------------| | VIP | `stage_interval` | + 1 day | Length of one stage (frequency of esINIT distribution) | | VIP | + `vesting_period` | 26 stages | Total vesting period for esINIT | | VIP | + `minimum_lock_staking_period` | 1 day | Minimum lock period for an esINIT + lock-staking position (“zapping”) | | VIP | `challenge_period` | none | + Window during which a score-snapshot challenge may be submitted | | VIP | + `min_score_ratio` | 0.5 | Multiplier applied to the previous stage’s score + to determine the minimum score required to fully vest esINIT in the next + stage | | VIP | `pool_split_ratio` | 0.5 | Portion of total rewards directed + to the balance pool | | VIP | `minimum_eligible_tvl` | 0 | Minimum INIT TVL + required for whitelisting and eligibility for stage rewards | | VIP | + `maximum_weight_ratio` | 1 | Maximum share of gauge votes from a single L2, + relative to total votes, counted for esINIT distribution | | VIP (Operator) + | `max_commission_rate` | none | Maximum esINIT commission rate a rollup can + set | | VIP (TVL manager) | `snapshot_interval` | 4 hours | Frequency of TVL + snapshots for all L2s | | VIP (Lock Staking) | `min_lock_period` | 12 hours + | Minimum lock period for any lock-staking position | | VIP (Lock Staking) | + `max_lock_period` | 6 days | Maximum lock period for all lock-staking + positions (including esINIT positions) | | VIP (Lock Staking) | + `max_delegation_slot` | 50 | Maximum number of unique lock-staking positions + per user | | VIP (gauge vote) | `cycle_start_time` | Same as stage start + time | Start time of the first gauge-vote cycle | | VIP (gauge vote) | + `cycle_interval` | 1 day | Length of a gauge-vote cycle | | VIP (gauge vote) + | `voting_period` | 23 hours | Duration of the voting window within a cycle + | | VIP (gauge vote) | `max_lock_period_multiplier` | 4 | Voting-power + multiplier for the maximum lock duration | | VIP (gauge vote) | + `min_lock_period_multiplier` | 1 | Voting-power multiplier for the minimum + lock duration | | VIP (gauge vote) | `pair_multipliers` | 1 for all pairs | + Voting-power multiplier applied to each enshrined liquidity pair | diff --git a/snippets/networks.mdx b/snippets/networks.mdx index bac06dd9..56443b39 100644 --- a/snippets/networks.mdx +++ b/snippets/networks.mdx @@ -5,8 +5,11 @@ snippet: true export const NetworksRegistry = ({}) => ( For Initia L1 and Initia-hosted rollups, you can find these values in the{' '} - networks section of the documentation. For MiniMove rollups, you can - find these values in the Initia Registry{' '} + networks section of the + documentation. For MiniMove rollups, you can find these values in the{' '} + + Initia Registry + {' '} repository. ) diff --git a/snippets/terminology.mdx b/snippets/terminology.mdx index 99b10734..dbc4bb5d 100644 --- a/snippets/terminology.mdx +++ b/snippets/terminology.mdx @@ -8,7 +8,8 @@ snippet: true export const INIT = 'The vanilla Initia INIT tokens on the Initia L1' export const m = 'The destination rollup that the user wants to bridge to' -export const OpINIT = 'The variation of the INIT tokens bridged directly from the Initia L1 to the destination rollup m' +export const OpINIT = + 'The variation of the INIT tokens bridged directly from the Initia L1 to the destination rollup m' export const IbcOpINIT = 'The variation of the INIT token that was bridged from Initia L1 to the rollup m through OP Bridge, then subsequently back to the L1 through IBC' @@ -23,7 +24,8 @@ export const LiquidityProvider = 'A user that provides INIT token liquidity to the Minitswap DEX. Unlike conventional DEXes, Minitswap only allows for single-sided INIT token deposits.' export const PegKeeper = 'A virtual market participant implemented into the DEX that automatically swaps INIT tokens for IbcOpINIT tokens directly before or after all user swaps. The aim of the peg keeper is to maintain a swap price close to 1 before fees.' -export const User = 'The end user using the Minitswap DEX who seeks to swap IbcOpINIT tokens into INIT.' +export const User = + 'The end user using the Minitswap DEX who seeks to swap IbcOpINIT tokens into INIT.' export const VirtualPoolSize = 'Virtual Pool size: An on-chain governance-set parameter that defines the size of the virtual liquidity pool. A larger value increases the total available swap liquidity for Minitswap and helps facilitate a larger swap volume, all else being equal.' @@ -33,6 +35,7 @@ export const VirtualPoolImbalance = 'This is defined to be the ratio of the Virtual Pool size V and the Peg Keeper balance B. The ratio measures how far the virtual pool currently deviates from the initial state. When there is a large volume of swaps in only one direction, the ratio increases.' export const FullyRecoveredRatio = 'Defines the ideal proportion of IbcOpInit vs. INIT in the virtual pool. For example, a ratio of 0.6 implies that the ratio of IbcOpInit to INIT is 6:4. When a user performs a swap, the pool ratio is compared to the Fully Recovered Ratio. If the current pool is greater, the Peg Keeper will swap the IbcOpInit tokens for INIT tokens.' -export const MaxRatio = 'A governance-controlled value that dictates the largest Fully Recovered Ratio value allowed.' +export const MaxRatio = + 'A governance-controlled value that dictates the largest Fully Recovered Ratio value allowed.' export const Flexibility = "A governance-controlled variable that modifies the Peg Keeper's tolerance towards imbalance. A higher flexibility means that a low target ratio can be maintained even with a high imbalance. When the flexibility is low, the Peg Keeper will interfere less frequently compared to high flexibility, ceteris paribus." diff --git a/user-guides/wallet/auto-signing/introduction.mdx b/user-guides/wallet/auto-signing/introduction.mdx index 072d10a9..e2f8c4cf 100644 --- a/user-guides/wallet/auto-signing/introduction.mdx +++ b/user-guides/wallet/auto-signing/introduction.mdx @@ -14,6 +14,6 @@ keys, and assets while enjoying faster, smoother on-chain interactions across all Initia appchains and supported apps. - For guides on how to integrate with Ghost Wallets, please refer to the [InterwovenKit section](/interwovenkit) of the - documentation. + For guides on how to integrate with Ghost Wallets, please refer to the + [InterwovenKit section](/interwovenkit) of the documentation.