The home for Hyperlane core contracts, sdk packages, and other infrastructure
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Trevor Porter 54a41d5a4b
More testnet2 tweaks (#571)
3 years ago
.github [Chore] Setup eslint for typescript assets (#505) 3 years ago
.husky [Chore] Fix VSCode formatting and prettier precommit (#501) 3 years ago
.yarn Add yarn version plugin (#524) 3 years ago
rust More testnet2 tweaks (#571) 3 years ago
solidity Standardize event naming across all contracts (#566) 3 years ago
typescript More testnet2 tweaks (#571) 3 years ago
vectors Only cache Outbox checkpoints for fraud proofs (#475) 3 years ago
.eslintignore [Chore] Setup eslint for typescript assets (#505) 3 years ago
.eslintrc [Chore] Setup eslint for typescript assets (#505) 3 years ago
.gitignore Rust dependency cleanup + Lastest stable (#381) 3 years ago
.lintstagedrc Fix prettier + githook (#503) 3 years ago
.prettierignore Fix prettier + githook (#503) 3 years ago
.prettierrc Use global prettier config and sort imports (#372) 3 years ago
.yarnrc.yml Add yarn version plugin (#524) 3 years ago
CODE_OF_CONDUCT.md Add Code of Conduct (#451) 3 years ago
CONTRIBUTING.md Add contributing guidelines (#458) 3 years ago
LICENSE.md chore: add APACHE2.0 license 4 years ago
README.md Remove redundant information from the readme (#468) 3 years ago
mono.code-workspace [Chore] Fix VSCode formatting and prettier precommit (#501) 3 years ago
package.json Update yarn workspaces commands with verbose logging (#522) 3 years ago
rust-toolchain Rust dependency cleanup + Lastest stable (#381) 3 years ago
tsconfig.json [Chore] Setup eslint for typescript assets (#505) 3 years ago
yarn.lock Add yarn version plugin (#524) 3 years ago

README.md

Abacus

Overview

Abacus is an interchain messaging protocol that allows applications to communicate between blockchains.

Developers can use Abacus to share state between blockchains, allowing them to build interchain applications that live natively across multiple chains.

To read more about interchain applications, how the protocol works, and how to integrate with Abacus, please see the documentation.

Working on Abacus

Workspaces

This monorepo uses Yarn Workspaces. Installing dependencies, building, testing, and running prettier for all packages can be done from the root directory of the repository.

  • Installing dependencies

    yarn install
    
  • Building

    yarn build
    
  • Running prettier

    yarn prettier
    

If you are using VSCode, you can launch the multi-root workspace with code mono.code-workspace, install the recommended workspace extensions, and use the editor settings.

Rust

  • install rustup
  • see rust/README.md

Running Agents Locally

See this guide for how to run the agents locally and perform a full end-to-end test.

Building Agent Images

There exists a docker build for the agent binaries. These docker images are used for deploying the agents in a production environment.

cd rust
./build.sh <image_tag>
./release.sh <image_tag>

Deploy Procedure

The contract addresses of each deploy can be found in rust/config. The latest deploy will be at rust/config/[latest timestamp] with bridge contracts within that same folder under /bridge/[latest timestamp].

The agents are set up to point at one environment at a time.

When agents are deployed to point at a new environment, they cease to point at the old ones. We do not continue to operate off-chain agents on old contract deploys. Contracts not supported by the agents will cease to function (i.e. messages will not be relayed between chains).

Off-chain agents are not automatically re-deployed when new contract deploys are merged. Auto-redeploys will be implemented at some future date.