Skip to content

Commit 3379fab

Browse files
authored
feat: refactor docs navigation (#1327)
1 parent 89574d5 commit 3379fab

File tree

23 files changed

+555
-333
lines changed

23 files changed

+555
-333
lines changed

CONTRIBUTING.md

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,14 @@ We appreciate your interest in contributing to Axelar! This document `CONTRIBUTI
44

55
## Table of contents
66

7-
- [Getting Started](#getting-started)
8-
- [How to contribute](#how-to-contribute)
9-
- [Code of Conduct](#code-of-conduct)
10-
- [Standards](#our-standards)
11-
- [Responsibilities](#our-responsibilities)
12-
- [Project structure](#project-structure)
7+
- [Contributing to Axelar](#contributing-to-axelar)
8+
- [Table of contents](#table-of-contents)
9+
- [Getting started](#getting-started)
10+
- [How to contribute](#how-to-contribute)
11+
- [Code of conduct](#code-of-conduct)
12+
- [Standards](#standards)
13+
- [Responsibilities](#responsibilities)
14+
- [Project structure](#project-structure)
1315

1416
## Getting started
1517

@@ -22,16 +24,16 @@ If you are new to contributing to open-source projects, we encourage you to read
2224
## How to contribute
2325

2426
1. Before you submit your Pull Request (PR), search the project for an open or closed PR related to your submission. You don't want to duplicate effort.
25-
2. Fork the repository within your user and clone it to your local machine.
26-
3. Install the dependencies for the project as indicated in the README.
27-
4. Create a new branch for your contribution with the following command:
27+
1. Fork the repository within your user and clone it to your local machine.
28+
1. Install the dependencies for the project as indicated in the README.
29+
1. Create a new branch for your contribution with the following command:
2830

2931
```shell
3032
git checkout -b my-fix-branch
3133
```
3234

33-
5. Make your changes in the new git branch.
34-
6. Commit your changes. Your commit message should follow the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) specification.
35+
1. Make your changes in the new git branch.
36+
1. Commit your changes. Your commit message should follow the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) specification.
3537

3638
```shell
3739
git commit -a

src/content/docs/dev/amplifier/chain-integration/introduction.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import { Callout } from "/src/components/callout";
1010

1111
## Integration Architecture
1212

13-
To connect your chain to the Axelar network via the Interchain Amplifier, you'll need to build or instantiate 4 smart contracts and 1 relayer service.
13+
To connect your chain to the Axelar network via the Interchain Amplifier, you'll need to build or instantiate 5 smart contracts and 1 relayer service.
1414

1515
- **Source Chain Gateway Contract**
1616
- Built using the tech stack of your chain, you'll need to deploy a smart contract implementing the [Cross-Chain Gateway Protocol](https://github.com/axelarnetwork/cgp-spec).
Lines changed: 69 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Introduction to the Interchain Amplifier
1+
# Getting Started with Chain Integration
22

33
import { Callout } from "/src/components/callout";
44

@@ -8,6 +8,8 @@ import { Callout } from "/src/components/callout";
88
frequently for updates.
99
</Callout>
1010

11+
## What is the Interchain Amplifier?
12+
1113
The Interchain Amplifier enables dynamic application-level connections of new blockchains and services to the Axelar network. dApp developers gain access to more new blockchains faster. Integrators can use Amplifier to connect their own chains to the Axelar Network. This enables generalized connections between blockchains using different technology stacks (Solidity, Rust, etc), consensus mechanisms (Proof of Stake, L2s), and blockchains from many different communities.
1214

1315
The Interchain Amplifier is a set of on-chain contracts and related services that enable integrators to easily connect chains and off-chain capabilities to the Axelar network. It is part of Axelar's [Mobius Development Stack (MDS)](https://docs.axelar.dev/dev/what-is-mobius-development-stack/). Developers can then seamlessly build applications that take advantage of these chains and capabilities.
@@ -20,11 +22,34 @@ The Amplifier consists of the following, all on the Axelar network:
2022
- Gateways
2123
- CosmWasm methods for receiving and sending messages
2224

23-
To connect to the Amplifier, integrators should:
25+
## Integration Architecture
26+
27+
To connect your chain to the Axelar network via the Interchain Amplifier, you'll need to build or instantiate 4 smart contracts and 1 relayer service:
28+
29+
- **Source Chain Gateway Contract**
30+
- Built using the tech stack of your chain, you'll need to deploy a smart contract implementing the [Cross-Chain Gateway Protocol](https://github.com/axelarnetwork/cgp-spec).
31+
- For EVM chains, you can re-use the existing [EVM Gateway](https://github.com/axelarnetwork/axelar-cgp-solidity).
32+
- This contract serves as the primary API for developers sending messages from your chain.
33+
- **Verifier Contract**
34+
- A smart contract on the Axelar network that verifies the validity of transactions on your chain.
35+
- Most integrators will begin by using or customizing a [Voting Verifier](https://github.com/axelarnetwork/axelar-amplifier/tree/main/contracts/voting-verifier) or can be customized to your needs for cases such as verification via ZK Proof.
36+
- If you deploy a Voting Verifier, verifiers will need to support your chain and vote on the truth of source chain transactions.
37+
- **Gateway Contract**
38+
- A gateway contract that exists on the Axelar network that will know how to use your verifier contract to check the validity of a transaction and then knows how to forward transactions onto the Amplifier router.
39+
- Most integrators will begin by using or customizing this [Gateway Contract](https://github.com/axelarnetwork/axelar-amplifier/tree/main/contracts/gateway).
40+
- **Prover Contract**
41+
- A smart contract on the Axelar network that knows how to prove the validity of a transaction on your chain.
42+
- Most integrators will begin by using or customizing the [multisig prover](https://github.com/axelarnetwork/axelar-amplifier/tree/main/contracts/multisig-prover)
43+
- **Message Relayer**
44+
- A service built with any tech stack that listens for events on your chain and relays them to the Axelar network.
45+
- Get started with our [Message Relayer Example](https://github.com/axelarnetwork/axelar-examples/tree/main/examples/amplifier)
46+
- Setup your relayer to send data to the Axelarscan API (TBD) related to transactions with your network
47+
- **Governance Contract**
48+
- A source chain contract that can receive messages from the Axelar Network representing governance decisions, such as updating your gateway.
49+
- **Gas Table Updater**
50+
- A service that updates the gas table, so that gas price estimations involving your chain are accurate.
2451

25-
- Implement and deploy a Gateway to the Axelar Network
26-
- Work with verifiers to vote, prove, and attest to message validity
27-
- Provide relaying infrastructure to identify incoming messages and act on outgoing messages
52+
The [chain integration guide](/dev/amplifier/chain-integration/integrate-a-chain) will walk you through this process within the current Amplifier DevNet. Contract deployment on Testnet or Mainnet will require governance proposal.
2853

2954
## General Message Passing with Amplifier
3055

@@ -33,21 +58,57 @@ The following diagram shows how the Amplifier handles General Message Passing:
3358
<object
3459
type="image/svg+xml"
3560
data="/images/assets/axelar_amplifier-introduction-diagram_dark.svg"
36-
3761
class="hidden dark:block w-full max-w-[60rem] mx-auto py-6"
3862
>
3963
Your browser does not support SVG
4064
</object>
4165
<object
4266
type="image/svg+xml"
4367
data="/images/assets/axelar_amplifier-introduction-diagram_light.svg"
44-
4568
class=" dark:hidden w-full max-w-[60rem] mx-auto py-6"
4669
>
4770
Your browser does not support SVG
4871
</object>
4972

50-
5173
See the [GMP with Amplifier example](/dev/amplifier/gmp-example) for additional details.
5274

5375
Developers who are looking to send messages between chains connected via Amplifier don't need to worry about working directly with the Amplifier themselves. They can use standard [General Message Passing (GMP)](/dev/general-message-passing/overview) to send messages between chains via a gateway available on the source chain. Amplifier will handle the verification, routing, and proving of messages between chains.
76+
77+
## Integration Process
78+
79+
Most integrators will follow the following process:
80+
81+
1. Learn & Understand Amplifier
82+
- Follow the [chain integration guide](/dev/amplifier/chain-integration/integrate-a-chain) to deploy standardize contracts to the DevNet to understand the tools and basics of the process.
83+
1. Customize and Deploy to DevNet
84+
- Build (or instantiate or customize) each of the [required contracts and the relayer](#integration-architecture).
85+
- You may choose to change the logic of your verifier contract (for ZK use cases for example) or prover contract.
86+
1. Whitelist contracts
87+
- For the DevNet [use the form](https://docs.google.com/forms/d/e/1FAIpQLSchD7P1WfdSCQfaZAoqX7DyqJOqYKxXle47yrueTbOgkKQDiQ/viewform) to ask to be whitelisted
88+
1. Become a [verifier](/validator/amplifier/verifier-onboarding) for your chain.
89+
- To test your chain, you will need active verifiers to vote on messages from your chain
90+
1. Test your integration
91+
- Make sure you can send and receive messages on your chain.
92+
1. Begin audit process
93+
- You should audit your on-chain contracts.
94+
1. Propose to Testnet
95+
- [Make on-chain proposals](/dev/amplifier/chain-integration/governance-proposals/) on the testnet to create your CosmWasm smart contracts.
96+
1. Proposal to store your CosmWasm code.
97+
1. Proposal to instantiate your contracts.
98+
- Make an on-chain proposal to add your chain to the Amplifier router.
99+
1. Test in Testnet
100+
- Ensure your contracts are working as expected.
101+
- Verify with developers that they can send messages to and from your chain.
102+
1. Productionize your relayer
103+
- Ensure your relayer is robust, fault-tolerant, and can handle the load of your chain.
104+
1. Propose to Mainnet
105+
- [Make on-chain proposals](/dev/amplifier/chain-integration/governance-proposals/) on Mainnet to create your CosmWasm smart contracts.
106+
1. Proposal to store your CosmWasm code.
107+
1. Proposal to instantiate your contracts.
108+
- Make an on-chain proposal to add your chain to the Amplifier router.
109+
1. Fund rewards pools
110+
- [Fund the rewards pool](/dev/amplifier/add-rewards/) for your `VotingVerifier` and `MultisigProver`.
111+
112+
## Next Steps
113+
114+
Once you understand the architecture and integration process, you're ready to start implementing. Head to the [Integrate a Chain](/dev/amplifier/chain-integration/integrate-a-chain) guide for step-by-step technical instructions.

src/content/docs/dev/amplifier/its-hub/routing-mechanics.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ ITS Hub routing works in the following way:
1414
Each token transfer or deployment involves two General Message Passing (GMP) calls:
1515

1616
1. **From Source Chain to ITS Hub**: The ITS Edge Contract on the source chain sends a GMP call to the ITS Hub, wrapping the original payload.
17-
2. **From ITS Hub to Destination Chain**: The ITS Hub processes the payload, applies security measures, and forwards it to the ITS Edge Contract on the destination chain.
17+
1. **From ITS Hub to Destination Chain**: The ITS Hub processes the payload, applies security measures, and forwards it to the ITS Edge Contract on the destination chain.
1818

1919
### Payload Wrapping
2020

src/content/docs/dev/axelar-sandbox/how-to-use.mdx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,19 +20,19 @@ Let's begin by executing our examples. So, here's how the website looks like:
2020

2121
![Guide-2](/images/sandbox-guide-2.png)
2222

23-
2. `hello-world` is the default example. It shows how to update destination contract states from the source chain contract. The example can be run against testnet or simulated environment.
23+
1. `hello-world` is the default example. It shows how to update destination contract states from the source chain contract. The example can be run against testnet or simulated environment.
2424

2525
![Guide-3](/images/sandbox-guide-3.png)
2626

27-
3. Clicks at the **Execute** button in the upper right corner to run an example.
27+
1. Clicks at the **Execute** button in the upper right corner to run an example.
2828

2929
![Guide-4](/images/sandbox-guide-4.png)
3030

31-
4. Next, the solidity contracts will be compiled; if successful, the javascript file will be executed; otherwise, the error message will be displayed. The "Output" panel displays all Javascript log messages that have already been executed.
31+
1. Next, the solidity contracts will be compiled; if successful, the javascript file will be executed; otherwise, the error message will be displayed. The "Output" panel displays all Javascript log messages that have already been executed.
3232

3333
![Guide-5](/images/sandbox-guide-5.png)
3434

35-
5. The "**Transactions**" panel displays all transaction info sent from the "**sender**" and the "**relayer**" wallet. The relayer wallet is the wallet that interacts with your destination contract while the sender does that with the source contract. The transaction information includes:
35+
1. The "**Transactions**" panel displays all transaction info sent from the "**sender**" and the "**relayer**" wallet. The relayer wallet is the wallet that interacts with your destination contract while the sender does that with the source contract. The transaction information includes:
3636

3737
- `Transaction hash`
3838
- `Transaction status`

src/content/docs/dev/axelarjs-sdk/token-transfer-dep-addr.mdx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ A deposit address is a temporary special address created and monitored by **Axel
77
### Deposit address workflow
88

99
1. The user generates a deposit address on a specific source chain.
10-
2. The user sends tokens to the deposit address on the source chain.
10+
1. The user sends tokens to the deposit address on the source chain.
1111

1212
- Examples:
1313

@@ -25,8 +25,8 @@ A deposit address is a temporary special address created and monitored by **Axel
2525
[AxelarQueryAPI](/dev/axelarjs-sdk/axelar-query-api/#gettransferfee).
2626
</Callout>
2727

28-
3. Axelar relayers observe the deposit transaction on the source chain and complete it on the destination chain, assuming the amount exceeds the requisite fee.
29-
4. Watch your tokens arrive on the destination chain.
28+
1. Axelar relayers observe the deposit transaction on the source chain and complete it on the destination chain, assuming the amount exceeds the requisite fee.
29+
1. Watch your tokens arrive on the destination chain.
3030

3131
### 1. Prerequisite
3232

src/content/docs/dev/axelarjs-sdk/tx-status-query-recovery.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ See the status of a transaction by passing its `txHash` into [`queryTransactionS
4444

4545
It takes two parameters
4646
1. `txHash`: The transaction hash you are querying
47-
2. `eventIndex`: This is an optional parameter, useful for separating multiple [internal transactions](https://docs.alchemy.com/docs/what-are-internal-transactions) from one another that may have the same transaction hash.
47+
1. `eventIndex`: This is an optional parameter, useful for separating multiple [internal transactions](https://docs.alchemy.com/docs/what-are-internal-transactions) from one another that may have the same transaction hash.
4848

4949
```ts
5050
const txHash: string =

src/content/docs/dev/cosmos-gmp/cosmos-2way-manual-relay.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ Axelar’s off-chain relayer service currently does not support the automatic pr
99
To manually process a two-way transaction to Cosmos through the Axelar network, perform the following steps:
1010

1111
1. Confirm the gateway transaction on Axelar after the source chain transaction reaches finality.
12-
2. Monitor the Axelar network for the `MessageReceived` event.
13-
3. Manually route the message using the `RouteMessage` transaction on Axelar.
12+
1. Monitor the Axelar network for the `MessageReceived` event.
13+
1. Manually route the message using the `RouteMessage` transaction on Axelar.
1414

1515
## Step-by-Step Guide
1616

src/content/docs/dev/gas-service/pricing.mdx

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
Transactions using Axelar often have costs associated on their source chain, the Axelar network, and their destination chain. Whether for token transfers or General Message Passing, every cross-chain transaction is made up of 4 types of costs:
44

55
1. Initiating the transaction on the source chain,
6-
2. Processing the transaction through the Axelar blockchain
7-
3. Relaying to the gateway contract on the destination chain
8-
4. Executing the destination smart contract with the payload
6+
1. Processing the transaction through the Axelar blockchain
7+
1. Relaying to the gateway contract on the destination chain
8+
1. Executing the destination smart contract with the payload
99

1010
To simplify paying for transaction pricing through the pipeline, Axelar has two general solutions to this problem.
1111

@@ -30,7 +30,7 @@ For general message passing, Axelar's gas service allows the user/dApp to pay al
3030
- Validator confirmation voting on the Axelar Network
3131
- Relaying of approval on the destination chain
3232
- Costs related to delivering any possible refund on the destination chain
33-
2. **Execution Fee (i.e. the gas to execute the `_execute` method on the destination chain)** - The execution fee is variable depending on the chains involved, and the complexity of your `_execute` method.
33+
1. **Execution Fee (i.e. the gas to execute the `_execute` method on the destination chain)** - The execution fee is variable depending on the chains involved, and the complexity of your `_execute` method.
3434

3535
The `estimateGasFee` method in the [AxelarJS SDK](/dev/axelarjs-sdk/axelar-query-api/#estimategasfee) calculates this total cost for you.
3636

@@ -46,8 +46,8 @@ Certain EVM chains have really volatile gas prices. To account for this, it is r
4646

4747
The `estimateGasFee` method exposes two additional optional parameters to enhance execution certainty:
4848

49-
1. a `minGasPrice` to be used on the destination chain, and
50-
2. a `gasMultipler` to be used to multiply the calculated figure by a specified buffer for execution certainty.
49+
1. A `minGasPrice` to be used on the destination chain, and
50+
1. A `gasMultipler` to be used to multiply the calculated figure by a specified buffer for execution certainty.
5151

5252
#### REFUNDS
5353

@@ -64,9 +64,15 @@ The `estimateGasFee` method can be used (yet again) to determine the amount of g
6464

6565
#### HANDLING ERRORS
6666

67-
Transactions may intermittently stall on their way from a source chain to a destination chain. Common root causes for stalled transactions included: 1 - failure to send a valid transaction from the source chain into the Axelar network for processing; 2 - insufficient gas payments paid by the user; 3 - transaction revert on the destination chain.
67+
Transactions may intermittently stall on their way from a source chain to a destination chain. Common root causes for stalled transactions included:
68+
1. Failure to send a valid transaction from the source chain into the Axelar network for processing.
69+
1. Insufficient gas payments paid by the user.
70+
1. Transaction revert on the destination chain.
6871

69-
Every transaction can be seen on Axelarscan with a detailed view of where transactions get "stuck", so one can start there to debug such circumstances. Axelarscan and the AxelarJS SDK expose two approaches to recover stalled transactions: 1. manual execution of the transaction on the destination chain, or 2. add gas for transactions. More details can be found [here](/dev/general-message-passing/debug/error-debugging/) for debugging and [here](/dev/general-message-passing/debug/transaction-recovery/) and recovery.
72+
Every transaction can be seen on Axelarscan with a detailed view of where transactions get "stuck", so one can start there to debug such circumstances. Axelarscan and the AxelarJS SDK expose two approaches to recover stalled transactions:
73+
74+
1. Manual execution of the transaction on the destination chain, or
75+
1. Add gas for transactions. More details can be found [here](/dev/general-message-passing/debug/error-debugging/) for debugging and [here](/dev/general-message-passing/debug/transaction-recovery/) and recovery.
7076

7177
## callContractWithToken (General Message Passing)
7278

@@ -76,8 +82,8 @@ Fees for `callContractWithToken` are almost identical to those of `callContract`
7682

7783
Fees for GMP express include all of the same fees as `callContractWithToken`, plus:
7884

79-
- an `Express Fee` that covers relayer/reorg risk
80-
- gas used to execute the express method
85+
- An `Express Fee` that covers relayer/reorg risk
86+
- Gas used to execute the express method
8187

8288
For GMP Express transactions, the total refund will then be:
8389

0 commit comments

Comments
 (0)