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.
 
 
 
 
 
 
Mattie Conover e4220f8412
Better node env testing (#2677)
1 year ago
.github Better node env testing (#2677) 1 year ago
.husky fix: only run cargo fmt hook when rs files changed (#2620) 1 year ago
.yarn Add yarn version plugin (#524) 3 years ago
rust Agent Config Base Parsing (#2665) 1 year ago
solidity Add pausable ism (#2675) 1 year ago
tools/grafana chore: Use templating for datasource in grafana dashboard file (#2542) 1 year ago
typescript Agent Config Base Parsing (#2665) 1 year ago
vectors Regenerate test fixtures and unskip hardhat tests (#2035) 2 years ago
.dockerignore Hyperlane packages and typescript rebrand (#1077) 2 years ago
.eslintignore [Chore] Setup eslint for typescript assets (#505) 3 years ago
.eslintrc Minimal multi-protocol SDK support (#2529) 1 year ago
.gitignore Sealevel (#2404) 1 year ago
.gitmodules Merge CI configs 1 year ago
.lintstagedrc Fix prettier + githook (#503) 3 years ago
.prettierignore Sealevel (#2404) 1 year ago
.prettierrc Hyperlane packages and typescript rebrand (#1077) 2 years ago
.yarnrc.yml Add yarn version plugin (#524) 3 years ago
CODE_OF_CONDUCT.md Hyperlane packages and typescript rebrand (#1077) 2 years ago
CONTRIBUTING.md Hyperlane packages and typescript rebrand (#1077) 2 years ago
DISCLAIMER.md Hyperlane packages and typescript rebrand (#1077) 2 years ago
Dockerfile Fix docker build for hyperlane-token (#1459) 2 years ago
LICENSE.md chore: add APACHE2.0 license 4 years ago
README.md Add badges to README (#2519) 1 year ago
mono.code-workspace [Chore] Fix VSCode formatting and prettier precommit (#501) 3 years ago
package.json Minimal multi-protocol SDK support (#2529) 1 year ago
rust-toolchain Rust updates (#2619) 1 year ago
tsconfig.json Minimal multi-protocol SDK support (#2529) 1 year ago
yarn.lock Migrate from default ISM config object to cached addresses map (#2576) 1 year ago

README.md

Hyperlane

GitHub Actions codecov Foundry License: MIT

Versioning

Note this is the branch for Hyperlane v2.

V1 has since been deprecated in favor of V2, but if you are looking for code relating to the existing V1 deployments of the testnet2 or mainnet environments, refer to the v1 branch.

Overview

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

Developers can use Hyperlane 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 Hyperlane, please see the documentation.

Working on Hyperlane

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
    

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

See rust/README.md

Publishing JS/TS Packages

Packages can be versioned and published all at once with commands from the root.

First, increment the version to the desired value:

# An example of a prerelease version
yarn version:prepare 1.1.0-beta0
# Or a release version
yarn version:prepare 1.1.0

Commit this preparation so that it is clear which commit the release is from.

Next, ensure packages are cleaned and rebuilt:

yarn clean && yarn build

Finally, publish the packages to NPM

# Note: If you have not yet logged in, first run yarn npm login
yarn publish:all --otp YOUR_OTP_HERE
# Or for a pre-release, include the tag
yarn publish:all --otp YOUR_OTP_HERE --tag beta

Tag the commit with the appropriate version, and then create a github release with a changelog against the previous version https://github.com/hyperlane-xyz/hyperlane-monorepo/releases/new

Release Agents

  • Tag the commit with the current date in the format agents-yyyy-mm-dd; e.g. agents-2023-03-28.
  • Create a Github Release with a changelog against the previous version titled Agents MMMM DD, YYYY, e.g. Agents March 28, 2023.
  • Include the agent docker image tag in the description of the release
  • Create a summary of change highlights
  • Create a "breaking changes" section with any changes required
  • Deploy agents with the new image tag (if it makes sense to)