Hyperlane packages and typescript rebrand (#1077)

- Rename Typescript packages hyperlane-xyz org
- Rename Abacus references in SDK export names
- Bump packages versions to 0.5.0-beta0

Breaking change due to SDK export name changes
pull/1098/head v0.5.0-beta0
J M Rossy 2 years ago committed by GitHub
parent 509fa7ea8a
commit 0d7639895c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      .dockerignore
  2. 2
      .github/workflows/monorepo-docker.yml
  3. 10
      .github/workflows/node.yml
  4. 2
      .gitignore
  5. 2
      .prettierrc
  6. 10
      CODE_OF_CONDUCT.md
  7. 21
      CONTRIBUTING.md
  8. 2
      DISCLAIMER.md
  9. 2
      Dockerfile
  10. 10
      README.md
  11. 4
      package.json
  12. 8
      rust/README.md
  13. 10
      rust/helm/abacus-agent/README.md
  14. 6
      solidity/app/contracts/AbacusConnectionClient.sol
  15. 8
      solidity/app/contracts/Router.sol
  16. 2
      solidity/app/contracts/test/TestAbacusConnectionClient.sol
  17. 16
      solidity/app/package.json
  18. 2
      solidity/app/test/abacusConnectionClient.test.ts
  19. 4
      solidity/app/test/router.test.ts
  20. 4
      solidity/core/README.md
  21. 14
      solidity/core/package.json
  22. 2
      solidity/core/test/inbox.test.ts
  23. 2
      solidity/core/test/lib/mailboxes.ts
  24. 2
      solidity/core/test/message.test.ts
  25. 2
      solidity/core/test/mockMailbox.test.ts
  26. 2
      solidity/core/test/outbox.test.ts
  27. 2
      solidity/core/test/testSendReceiver.test.ts
  28. 2
      solidity/core/test/validator-manager/inboxValidatorManager.test.ts
  29. 2
      solidity/core/test/validator-manager/multisigValidatorManager.test.ts
  30. 2
      solidity/core/test/validator-manager/outboxValidatorManager.test.ts
  31. 2
      solidity/core/test/validator-manager/utils.ts
  32. 6
      typescript/helloworld/README.md
  33. 2
      typescript/helloworld/contracts/HelloWorld.sol
  34. 16
      typescript/helloworld/package.json
  35. 2
      typescript/helloworld/scripts/sync-with-template-repo.ts
  36. 14
      typescript/helloworld/src/app/app.ts
  37. 2
      typescript/helloworld/src/app/contracts.ts
  38. 4
      typescript/helloworld/src/deploy/check.ts
  39. 2
      typescript/helloworld/src/deploy/config.ts
  40. 12
      typescript/helloworld/src/deploy/deploy.ts
  41. 6
      typescript/helloworld/src/scripts/check.ts
  42. 6
      typescript/helloworld/src/scripts/deploy.ts
  43. 2
      typescript/helloworld/src/test/deploy.test.ts
  44. 4
      typescript/helloworld/src/test/helloworld.test.ts
  45. 7
      typescript/ica/README.md
  46. 4
      typescript/ica/contracts/InterchainAccountRouter.sol
  47. 19
      typescript/ica/package.json
  48. 2
      typescript/ica/src/contracts.ts
  49. 12
      typescript/ica/src/deploy.ts
  50. 2
      typescript/ica/test/accounts.test.ts
  51. 2
      typescript/infra/config/contexts.ts
  52. 2
      typescript/infra/config/environments/mainnet/chains.ts
  53. 2
      typescript/infra/config/environments/mainnet/core.ts
  54. 14
      typescript/infra/config/environments/mainnet/core/verification/verification.json
  55. 2
      typescript/infra/config/environments/mainnet/funding.ts
  56. 4
      typescript/infra/config/environments/mainnet/helloworld.ts
  57. 2
      typescript/infra/config/environments/mainnet/validators.ts
  58. 2
      typescript/infra/config/environments/test/chains.ts
  59. 2
      typescript/infra/config/environments/test/core.ts
  60. 2
      typescript/infra/config/environments/test/index.ts
  61. 2
      typescript/infra/config/environments/test/validators.ts
  62. 2
      typescript/infra/config/environments/testnet2/chains.ts
  63. 2
      typescript/infra/config/environments/testnet2/core.ts
  64. 14
      typescript/infra/config/environments/testnet2/core/verification/verification.json
  65. 2
      typescript/infra/config/environments/testnet2/validators.ts
  66. 2
      typescript/infra/config/utils.ts
  67. 12
      typescript/infra/hardhat.config.ts
  68. 2
      typescript/infra/helm/helloworld-kathy/values.yaml
  69. 2
      typescript/infra/helm/key-funder/values.yaml
  70. 22
      typescript/infra/package.json
  71. 6
      typescript/infra/scripts/check-deploy.ts
  72. 6
      typescript/infra/scripts/core.ts
  73. 12
      typescript/infra/scripts/debug-message.ts
  74. 4
      typescript/infra/scripts/funding/fund-keys-from-deployer.ts
  75. 4
      typescript/infra/scripts/funding/reclaim-from-igp.ts
  76. 14
      typescript/infra/scripts/govern.ts
  77. 4
      typescript/infra/scripts/helloworld/check.ts
  78. 10
      typescript/infra/scripts/helloworld/deploy.ts
  79. 11
      typescript/infra/scripts/helloworld/kathy.ts
  80. 14
      typescript/infra/scripts/helloworld/utils.ts
  81. 2
      typescript/infra/scripts/safe-delegate.ts
  82. 2
      typescript/infra/scripts/utils.ts
  83. 2
      typescript/infra/scripts/verify-core.ts
  84. 4
      typescript/infra/scripts/verify-validator.ts
  85. 2
      typescript/infra/src/agents/agent.ts
  86. 2
      typescript/infra/src/agents/aws/key.ts
  87. 2
      typescript/infra/src/agents/aws/s3.ts
  88. 2
      typescript/infra/src/agents/aws/user.ts
  89. 2
      typescript/infra/src/agents/aws/validator-user.ts
  90. 2
      typescript/infra/src/agents/aws/validator.ts
  91. 2
      typescript/infra/src/agents/gcp.ts
  92. 4
      typescript/infra/src/agents/index.ts
  93. 2
      typescript/infra/src/agents/key-utils.ts
  94. 6
      typescript/infra/src/agents/keys.ts
  95. 4
      typescript/infra/src/config/agent.ts
  96. 4
      typescript/infra/src/config/chain.ts
  97. 2
      typescript/infra/src/config/environment.ts
  98. 2
      typescript/infra/src/config/helloworld.ts
  99. 8
      typescript/infra/src/core/deploy.ts
  100. 42
      typescript/infra/src/core/govern.ts
  101. Some files were not shown because too many files have changed in this diff Show More

@ -1,7 +1,7 @@
node_modules node_modules
test_deploy.env test_deploy.env
typescript/abacus-deploy/.env typescript/hyperlane-deploy/.env
**/.env **/.env
**/tsconfig.tsbuildinfo **/tsconfig.tsbuildinfo
**/tmp.* **/tmp.*

@ -43,7 +43,7 @@ jobs:
with: with:
# list of Docker images to use as base name for tags # list of Docker images to use as base name for tags
images: | images: |
gcr.io/abacus-labs-dev/abacus-monorepo gcr.io/abacus-labs-dev/hyperlane-monorepo
# generate Docker tags based on the following events/attributes # generate Docker tags based on the following events/attributes
tags: | tags: |
type=ref,event=branch type=ref,event=branch

@ -87,11 +87,11 @@ jobs:
key: ${{ github.sha }} key: ${{ github.sha }}
- name: sdk - name: sdk
run: yarn workspace @abacus-network/sdk run test run: yarn workspace @hyperlane-xyz/sdk run test
- name: infra - name: infra
run: yarn workspace @abacus-network/infra run test run: yarn workspace @hyperlane-xyz/infra run test
- name: helloworld - name: helloworld
run: yarn workspace @abacus-network/helloworld run test run: yarn workspace @hyperlane-xyz/helloworld run test
test-sol: test-sol:
env: env:
@ -108,6 +108,6 @@ jobs:
key: ${{ github.sha }} key: ${{ github.sha }}
- name: core - name: core
run: yarn workspace @abacus-network/core run test run: yarn workspace @hyperlane-xyz/core run test
- name: app - name: app
run: yarn workspace @abacus-network/app run test run: yarn workspace @hyperlane-xyz/app run test

2
.gitignore vendored

@ -1,7 +1,7 @@
node_modules node_modules
test_deploy.env test_deploy.env
typescript/abacus-deploy/.env typescript/hyperlane-deploy/.env
**/.env **/.env
**/tsconfig.tsbuildinfo **/tsconfig.tsbuildinfo
**/tmp.* **/tmp.*

@ -15,7 +15,7 @@
} }
} }
], ],
"importOrder": ["^@abacus-network/(.*)$", "^../(.*)$", "^./(.*)$"], "importOrder": ["^@hyperlane-xyz/(.*)$", "^../(.*)$", "^./(.*)$"],
"importOrderSeparation": true, "importOrderSeparation": true,
"importOrderSortSpecifiers": true "importOrderSortSpecifiers": true
} }

@ -1,19 +1,19 @@
Abacus is a decentralized project to enable developers to create shared state blockchain applications. Hyperlane is a decentralized project to enable developers to create shared state blockchain applications.
Our goal is to create an environment where a diverse array of participants come to work together bringing forth their unique experience. In that process it is inevitable that contributors and supporters alike will experience differences in location, language, nationality, professional and overall life experience. Our goal is to create an environment where a diverse array of participants come to work together bringing forth their unique experience. In that process it is inevitable that contributors and supporters alike will experience differences in location, language, nationality, professional and overall life experience.
It is only natural that in such an environment of open and diverse participation disagreements and misunderstandings will happen. More often than not these can be easily resolved informally, however there will be edge cases where behavior can cross the line. It is only natural that in such an environment of open and diverse participation disagreements and misunderstandings will happen. More often than not these can be easily resolved informally, however there will be edge cases where behavior can cross the line.
Our goal is to create an environment that is welcoming to all contributors, and fosters a robust community built on collaboration and experimentation. Our goal is to create an environment that is welcoming to all contributors, and fosters a robust community built on collaboration and experimentation.
Thus we believe it is necessary to ensure those rare cases that devolve into harassing, intimidating, or otherwise disruptive behavior are mitigated and understood to be unacceptable by the community. Thus we believe it is necessary to ensure those rare cases that devolve into harassing, intimidating, or otherwise disruptive behavior are mitigated and understood to be unacceptable by the community.
This CoC applies to all members of the Hyperlane Network's community including, but not limited to - developers, participants in meetings both electronically and in person, conferences, or any other project functions. It is important to note that this code is a complement, not a replacement, to legal rights and obligations pertaining to any particular situation.
This CoC applies to all members of the Abacus Network's community including, but not limited to - developers, participants in meetings both electronically and in person, conferences, or any other project functions. It is important to note that this code is a complement, not a replacement, to legal rights and obligations pertaining to any particular situation.
**Code** **Code**
1. Never harass or bully anyone. Not verbally, not physically, not sexually. Harassment will not be tolerated. 1. Never harass or bully anyone. Not verbally, not physically, not sexually. Harassment will not be tolerated.
2. Never discrimnate on the basis of personal characteristics or group membership. 2. Never discrimnate on the basis of personal characteristics or group membership.
3. Treat your fellow contributors with respect, fairness, and professionalism, especially in situations of high pressure. 3. Treat your fellow contributors with respect, fairness, and professionalism, especially in situations of high pressure.
4. Seek, offer, and accept objective critism of yours and others work, strive to acknowledge the contributions of others. 4. Seek, offer, and accept objective critism of yours and others work, strive to acknowledge the contributions of others.
5. Be transparent and honest about your qualifications and any potential conflicts of interest. Transparency is a key tenant of the Abacus project and we expect it from all contributors. 5. Be transparent and honest about your qualifications and any potential conflicts of interest. Transparency is a key tenant of the Hyperlane project and we expect it from all contributors.
6. Bring an open and curious mind, the Abacus project is designed to enable developers to express their curiousity, experiment, and build things we couldn't have imagined ourselves. 6. Bring an open and curious mind, the Hyperlane project is designed to enable developers to express their curiousity, experiment, and build things we couldn't have imagined ourselves.
7. Stay on track - Do your best to avoid off-topic discussion and make sure you are posting to the correct channel and repositories. Distractions are costly and it is far too easy for work to go off track. 7. Stay on track - Do your best to avoid off-topic discussion and make sure you are posting to the correct channel and repositories. Distractions are costly and it is far too easy for work to go off track.
8. Step down properly - Think of your fellow contributors when you step down from the project. Contributors of open-source projects come and go. It is crucial that when you leave the project or reduce your contribution significantly you do so in a way that minimizes disruption and keeps continuity in mind. Concretely this means telling your fellow contributors you are leaving and taking the proper steps to enable a smooth transition for other contributors to pick up where you left off. 8. Step down properly - Think of your fellow contributors when you step down from the project. Contributors of open-source projects come and go. It is crucial that when you leave the project or reduce your contribution significantly you do so in a way that minimizes disruption and keeps continuity in mind. Concretely this means telling your fellow contributors you are leaving and taking the proper steps to enable a smooth transition for other contributors to pick up where you left off.
9. Respect the privacy of others, and take extreme care to protect confidential data when you are exposed to it. 9. Respect the privacy of others, and take extreme care to protect confidential data when you are exposed to it.

@ -1,15 +1,15 @@
# Contributing to Abacus # Contributing to Hyperlane
We'd love for you to contribue to Abacus! Here are the guidelines to follow when contributing: We'd love for you to contribue to Hyperlane! Here are the guidelines to follow when contributing:
* [Code of Conduct](#coc) - [Code of Conduct](#coc)
* [Questions and Problems](#question) - [Questions and Problems](#question)
* [Issue Submission Guidelines](#submit) - [Issue Submission Guidelines](#submit)
* [Pull Request Submission Guidelines](#submit-pr) - [Pull Request Submission Guidelines](#submit-pr)
## <a name="coc"></a> Code of Conduct ## <a name="coc"></a> Code of Conduct
Help us keep Abacus open and inclusive. Please read and follow our [Code of Conduct][coc]. Help us keep Hyperlane open and inclusive. Please read and follow our [Code of Conduct][coc].
## <a name="question"></a> Got a Question or Problem? ## <a name="question"></a> Got a Question or Problem?
@ -24,16 +24,17 @@ Please submit a [new issue][github-new-issue] if you have a bug report or featur
Help us to maximize the effort we can spend fixing issues and adding new features by not reporting duplicate issues. Help us to maximize the effort we can spend fixing issues and adding new features by not reporting duplicate issues.
## <a name="submit-pr"></a> Pull Request Submission Guidelines ## <a name="submit-pr"></a> Pull Request Submission Guidelines
Thank you for considering to help out with the source code! We welcome contributions Thank you for considering to help out with the source code! We welcome contributions
from anyone on the internet, and are grateful for even the smallest of fixes! from anyone on the internet, and are grateful for even the smallest of fixes!
If you'd like to contribute to Abacus, please fork, fix, commit and send a pull request If you'd like to contribute to Hyperlane, please fork, fix, commit and send a pull request
for the maintainers to review and merge into the main code base. If you wish to submit for the maintainers to review and merge into the main code base. If you wish to submit
more complex changes, please check up with the core devs first on [our Discord Server][discord] more complex changes, please check up with the core devs first on [our Discord Server][discord]
to ensure those changes are in line with the general philosophy of the project and/or get to ensure those changes are in line with the general philosophy of the project and/or get
some early feedback which can make both your efforts much lighter as well as our review some early feedback which can make both your efforts much lighter as well as our review
and merge procedures quick and simple. and merge procedures quick and simple.
[coc]: https://github.com/abacus-network/abacus-monorepo/blob/main/CODE_OF_CONDUCT.md [coc]: https://github.com/hyperlane-xyz/hyperlane-monorepo/blob/main/CODE_OF_CONDUCT.md
[github-new-issue]: https://github.com/abacus-network/abacus-monorepo/issues/new [github-new-issue]: https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/new
[discord]: https://discord.com/invite/KBD3aD78Bb [discord]: https://discord.com/invite/KBD3aD78Bb

@ -1,4 +1,4 @@
The Abacus Protocol is an open generalized interchain messaging protocol that is designed to enable developers to send arbitrary data from one blockchain to another (“Protocol”). Your use of the Protocol is entirely at your own risk. The Hyperlane Protocol is an open generalized interchain messaging protocol that is designed to enable developers to send arbitrary data from one blockchain to another (“Protocol”). Your use of the Protocol is entirely at your own risk.
The Protocol is available on an “as is” basis without warranties of any kind, either express or implied, including, but not limited to, warranties of merchantability, title, fitness for a particular purpose and non-infringement. The Protocol is available on an “as is” basis without warranties of any kind, either express or implied, including, but not limited to, warranties of merchantability, title, fitness for a particular purpose and non-infringement.
You assume all risks associated with using the Protocol, and digital assets and decentralized systems generally, including but not limited to, that: You assume all risks associated with using the Protocol, and digital assets and decentralized systems generally, including but not limited to, that:
(a) digital assets are highly volatile; (b) using digital assets is inherently risky due to both features of such assets and the potential unauthorized acts of third parties; (c) you may not have ready access to assets; (a) digital assets are highly volatile; (b) using digital assets is inherently risky due to both features of such assets and the potential unauthorized acts of third parties; (c) you may not have ready access to assets;

@ -1,6 +1,6 @@
FROM node:16-alpine FROM node:16-alpine
WORKDIR /abacus-monorepo WORKDIR /hyperlane-monorepo
RUN apk add --update --no-cache git g++ make py3-pip RUN apk add --update --no-cache git g++ make py3-pip

@ -1,14 +1,14 @@
# Abacus # Hyperlane
## Overview ## Overview
Abacus is an interchain messaging protocol that allows applications to communicate between blockchains. Hyperlane 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. 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 Abacus, please see the [documentation](https://docs.useabacus.network/). To read more about interchain applications, how the protocol works, and how to integrate with Hyperlane, please see the [documentation](https://docs.hyperlane.xyz/).
## Working on Abacus ## Working on Hyperlane
### Workspaces ### Workspaces

@ -1,6 +1,6 @@
{ {
"name": "@abacus-network/monorepo", "name": "@hyperlane-xyz/monorepo",
"description": "A yarn workspace of many core Abacus packages", "description": "A yarn workspace of core Hyperlane packages",
"version": "0.0.0", "version": "0.0.0",
"devDependencies": { "devDependencies": {
"@trivago/prettier-plugin-sort-imports": "^3.2.0", "@trivago/prettier-plugin-sort-imports": "^3.2.0",

@ -1,4 +1,4 @@
## Abacus Rust implementations ## Hyperlane Rust implementations
### Setup ### Setup
@ -43,11 +43,11 @@ info: The currently active `rustc` version is `rustc 1.63.0 (4b91a6ea7 2022-08-0
### Architecture ### Architecture
The on-chain portions of Abacus are written in Solidity. The rust portions are The on-chain portions of Hyperlane are written in Solidity. The rust portions are
exclusively off-chain. Later, there may be on-chain rust for Near/Solana/ exclusively off-chain. Later, there may be on-chain rust for Near/Solana/
Polkadot. Polkadot.
Abacus will be managed by a number of small off-chain programs ("agents"). Each Hyperlane will be managed by a number of small off-chain programs ("agents"). Each
of these will have a specific role. We want these roles to be simple, and of these will have a specific role. We want these roles to be simple, and
easily described. Each of these agents will connect to a home chain and any easily described. Each of these agents will connect to a home chain and any
number of replicas. They need to be configured with chain connection details number of replicas. They need to be configured with chain connection details
@ -84,7 +84,7 @@ We use the tokio async runtime environment. Please see the docs
### Running Locally ### Running Locally
From within the `abacus-monorepo/rust` directory, run From within the `hyperlane-monorepo/rust` directory, run
```bash ```bash
cargo run -r -p run-locally cargo run -r -p run-locally

@ -1,24 +1,24 @@
# Abacus-Agent Helm Chart # Hyperlane-Agent Helm Chart
![Version: 0.1.0](https://img.shields.io/badge/Version-0.1.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.1.0](https://img.shields.io/badge/AppVersion-0.1.0-informational?style=flat-square) ![Version: 0.1.0](https://img.shields.io/badge/Version-0.1.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.1.0](https://img.shields.io/badge/AppVersion-0.1.0-informational?style=flat-square)
A Helm Chart that encapsulates the deployment of the Abacus Rust Agent(s). It is currently designed to be deployed against a Google Kubernetes Engine cluster, but specification of another PVC Storage Class should be sufficient to make it compatible with other cloud providers. A Helm Chart that encapsulates the deployment of the Hyperlane Rust Agent(s). It is currently designed to be deployed against a Google Kubernetes Engine cluster, but specification of another PVC Storage Class should be sufficient to make it compatible with other cloud providers.
Additional documentation is present in comments in `yalues.yaml`. Additional documentation is present in comments in `yalues.yaml`.
## Values ## Values
| Key | Type | Default | Description | | Key | Type | Default | Description |
| ----------------------------------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ----------------------------------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| affinity | object | `{}` | | | affinity | object | `{}` | |
| fullnameOverride | string | `""` | | | fullnameOverride | string | `""` | |
| image.pullPolicy | string | `"Always"` | | | image.pullPolicy | string | `"Always"` | |
| image.repository | string | `"gcr.io/clabs-optics/optics-agent"` | Main repository for Abacus Agent binaries, provided by cLabs | | image.repository | string | `"gcr.io/clabs-optics/optics-agent"` | Main repository for Hyperlane Agent binaries, provided by cLabs |
| image.tag | string | `"latest"` | Overrides the image tag whose default is the chart appVersion. | | image.tag | string | `"latest"` | Overrides the image tag whose default is the chart appVersion. |
| imagePullSecrets | list | `[]` | | | imagePullSecrets | list | `[]` | |
| nameOverride | string | `""` | | | nameOverride | string | `""` | |
| nodeSelector | object | `{}` | | | nodeSelector | object | `{}` | |
| abacus | object | `{"baseConfig":"base.json","outboxChain":{"address":null,"connectionType":null,"connectionUrl":null,"domain":null,"name":"goerli","rpcStyle":null},enabled":false,"messageInterval":null,"signers":[{"key":"","name":"goerli"},{"key":"","name":"alfajores"}]},"processor":{"enabled":false,"pollingInterval":null,"signers":[{"key":"","name":"goerli"},{"key":"","name":"alfajores"}]},"relayer":{"enabled":false,"pollingInterval":null,"signers":[{"key":"","name":"goerli"},{"key":"","name":"alfajores"}]},"inboxChains":[{"address":null,"connectionType":null,"connectionUrl":null,"domain":null,"name":"alfajores","rpcStyle":null}],"runEnv":"default","validator":{"signer":"","enabled":false,"pollingInterval":null,"signers":[{"key":"","name":"goerli"},{"key":"","name":"alfajores"}],"updatePause":null}}` | Abacus Overrides By Default, Abacus Agents load the config baked into the Docker Image Pass values here in order to override the values in the config Note: For successful operation, one _must_ pass signer keys as they are not baked into the image for security reasons. | | abacus | object | `{"baseConfig":"base.json","outboxChain":{"address":null,"connectionType":null,"connectionUrl":null,"domain":null,"name":"goerli","rpcStyle":null},enabled":false,"messageInterval":null,"signers":[{"key":"","name":"goerli"},{"key":"","name":"alfajores"}]},"processor":{"enabled":false,"pollingInterval":null,"signers":[{"key":"","name":"goerli"},{"key":"","name":"alfajores"}]},"relayer":{"enabled":false,"pollingInterval":null,"signers":[{"key":"","name":"goerli"},{"key":"","name":"alfajores"}]},"inboxChains":[{"address":null,"connectionType":null,"connectionUrl":null,"domain":null,"name":"alfajores","rpcStyle":null}],"runEnv":"default","validator":{"signer":"","enabled":false,"pollingInterval":null,"signers":[{"key":"","name":"goerli"},{"key":"","name":"alfajores"}],"updatePause":null}}` | Hyperlane Overrides By Default, Hyperlane Agents load the config baked into the Docker Image Pass values here in order to override the values in the config Note: For successful operation, one _must_ pass signer keys as they are not baked into the image for security reasons. |
| abacus.outboxChain.address | string | `nil` | The contract address for the home contract | | abacus.outboxChain.address | string | `nil` | The contract address for the home contract |
| abacus.outboxChain.connectionUrl | string | `nil` | Connection string pointing to an RPC endpoint for the home chain | | abacus.outboxChain.connectionUrl | string | `nil` | Connection string pointing to an RPC endpoint for the home chain |
| abacus.outboxChain.domain | string | `nil` | The hard-coded domain corresponding to this blockchain | | abacus.outboxChain.domain | string | `nil` | The hard-coded domain corresponding to this blockchain |

@ -2,9 +2,9 @@
pragma solidity >=0.6.11; pragma solidity >=0.6.11;
// ============ Internal Imports ============ // ============ Internal Imports ============
import {IInterchainGasPaymaster} from "@abacus-network/core/interfaces/IInterchainGasPaymaster.sol"; import {IInterchainGasPaymaster} from "@hyperlane-xyz/core/interfaces/IInterchainGasPaymaster.sol";
import {IOutbox} from "@abacus-network/core/interfaces/IOutbox.sol"; import {IOutbox} from "@hyperlane-xyz/core/interfaces/IOutbox.sol";
import {IAbacusConnectionManager} from "@abacus-network/core/interfaces/IAbacusConnectionManager.sol"; import {IAbacusConnectionManager} from "@hyperlane-xyz/core/interfaces/IAbacusConnectionManager.sol";
// ============ External Imports ============ // ============ External Imports ============
import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";

@ -3,10 +3,10 @@ pragma solidity >=0.6.11;
// ============ Internal Imports ============ // ============ Internal Imports ============
import {AbacusConnectionClient} from "./AbacusConnectionClient.sol"; import {AbacusConnectionClient} from "./AbacusConnectionClient.sol";
import {IAbacusConnectionManager} from "@abacus-network/core/interfaces/IAbacusConnectionManager.sol"; import {IAbacusConnectionManager} from "@hyperlane-xyz/core/interfaces/IAbacusConnectionManager.sol";
import {IInterchainGasPaymaster} from "@abacus-network/core/interfaces/IInterchainGasPaymaster.sol"; import {IInterchainGasPaymaster} from "@hyperlane-xyz/core/interfaces/IInterchainGasPaymaster.sol";
import {IMessageRecipient} from "@abacus-network/core/interfaces/IMessageRecipient.sol"; import {IMessageRecipient} from "@hyperlane-xyz/core/interfaces/IMessageRecipient.sol";
import {IOutbox} from "@abacus-network/core/interfaces/IOutbox.sol"; import {IOutbox} from "@hyperlane-xyz/core/interfaces/IOutbox.sol";
abstract contract Router is AbacusConnectionClient, IMessageRecipient { abstract contract Router is AbacusConnectionClient, IMessageRecipient {
// ============ Mutable Storage ============ // ============ Mutable Storage ============

@ -1,6 +1,6 @@
// SPDX-License-Identifier: MIT OR Apache-2.0 // SPDX-License-Identifier: MIT OR Apache-2.0
pragma solidity >=0.6.11; pragma solidity >=0.6.11;
import {IOutbox} from "@abacus-network/core/interfaces/IOutbox.sol"; import {IOutbox} from "@hyperlane-xyz/core/interfaces/IOutbox.sol";
import "../AbacusConnectionClient.sol"; import "../AbacusConnectionClient.sol";

@ -1,10 +1,10 @@
{ {
"name": "@abacus-network/app", "name": "@hyperlane-xyz/app",
"description": "Solidity contracts for Abacus apps", "description": "Solidity contracts for Hyperlane apps",
"version": "0.4.1", "version": "0.5.0-beta0",
"dependencies": { "dependencies": {
"@abacus-network/core": "0.4.1", "@hyperlane-xyz/core": "0.5.0-beta0",
"@abacus-network/utils": "0.4.1", "@hyperlane-xyz/utils": "0.5.0-beta0",
"@openzeppelin/contracts-upgradeable": "^4.5.0" "@openzeppelin/contracts-upgradeable": "^4.5.0"
}, },
"devDependencies": { "devDependencies": {
@ -35,14 +35,14 @@
"/contracts", "/contracts",
"/interfaces" "/interfaces"
], ],
"homepage": "https://www.useabacus.network", "homepage": "https://www.hyperlane.xyz",
"keywords": [ "keywords": [
"Abacus", "Hyperlane",
"Solidity" "Solidity"
], ],
"license": "Apache-2.0", "license": "Apache-2.0",
"main": "dist/index.js", "main": "dist/index.js",
"repository": "https://github.com/abacus-network/abacus-monorepo", "repository": "https://github.com/hyperlane-xyz/hyperlane-monorepo",
"scripts": { "scripts": {
"build": "hardhat compile && tsc", "build": "hardhat compile && tsc",
"clean": "hardhat clean && rm -rf ./dist ./cache", "clean": "hardhat clean && rm -rf ./dist ./cache",

@ -10,7 +10,7 @@ import {
Outbox__factory, Outbox__factory,
TestInbox__factory, TestInbox__factory,
TestMultisigValidatorManager__factory, TestMultisigValidatorManager__factory,
} from '@abacus-network/core'; } from '@hyperlane-xyz/core';
import { import {
TestAbacusConnectionClient, TestAbacusConnectionClient,

@ -14,8 +14,8 @@ import {
TestInbox, TestInbox,
TestInbox__factory, TestInbox__factory,
TestMultisigValidatorManager__factory, TestMultisigValidatorManager__factory,
} from '@abacus-network/core'; } from '@hyperlane-xyz/core';
import { utils } from '@abacus-network/utils'; import { utils } from '@hyperlane-xyz/utils';
import { TestRouter, TestRouter__factory } from '../types'; import { TestRouter, TestRouter__factory } from '../types';

@ -1,6 +1,6 @@
## Abacus Solidity ## Hyperlane Solidity
On-chain implementations of Abacus in Solidity. On-chain implementations of Hyperlane in Solidity.
### Setup ### Setup

@ -1,9 +1,9 @@
{ {
"name": "@abacus-network/core", "name": "@hyperlane-xyz/core",
"description": "Core solidity contracts for Abacus", "description": "Core solidity contracts for Hyperlane",
"version": "0.4.1", "version": "0.5.0-beta0",
"dependencies": { "dependencies": {
"@abacus-network/utils": "0.4.1", "@hyperlane-xyz/utils": "0.5.0-beta0",
"@openzeppelin/contracts": "^4.6.0", "@openzeppelin/contracts": "^4.6.0",
"@openzeppelin/contracts-upgradeable": "^4.6.0", "@openzeppelin/contracts-upgradeable": "^4.6.0",
"@summa-tx/memview-sol": "^2.0.0" "@summa-tx/memview-sol": "^2.0.0"
@ -35,14 +35,14 @@
"/contracts", "/contracts",
"/interfaces" "/interfaces"
], ],
"homepage": "https://www.useabacus.network", "homepage": "https://www.hyperlane.xyz",
"keywords": [ "keywords": [
"Abacus", "Hyperlane",
"Solidity" "Solidity"
], ],
"license": "Apache-2.0", "license": "Apache-2.0",
"main": "dist/index.js", "main": "dist/index.js",
"repository": "https://github.com/abacus-network/abacus-monorepo", "repository": "https://github.com/hyperlane-xyz/hyperlane-monorepo",
"scripts": { "scripts": {
"build": "hardhat compile && tsc", "build": "hardhat compile && tsc",
"clean": "hardhat clean && rm -rf ./dist ./cache", "clean": "hardhat clean && rm -rf ./dist ./cache",

@ -3,7 +3,7 @@ import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers';
import { expect } from 'chai'; import { expect } from 'chai';
import { ethers } from 'hardhat'; import { ethers } from 'hardhat';
import { types, utils } from '@abacus-network/utils'; import { types, utils } from '@hyperlane-xyz/utils';
import { import {
BadRecipient1__factory, BadRecipient1__factory,

@ -1,7 +1,7 @@
import { expect } from 'chai'; import { expect } from 'chai';
import { ethers } from 'ethers'; import { ethers } from 'ethers';
import { utils } from '@abacus-network/utils'; import { utils } from '@hyperlane-xyz/utils';
import { TestOutbox } from '../../types'; import { TestOutbox } from '../../types';
import { DispatchEvent } from '../../types/contracts/Outbox'; import { DispatchEvent } from '../../types/contracts/Outbox';

@ -1,7 +1,7 @@
import { expect } from 'chai'; import { expect } from 'chai';
import { ethers } from 'hardhat'; import { ethers } from 'hardhat';
import { utils } from '@abacus-network/utils'; import { utils } from '@hyperlane-xyz/utils';
import { TestMessage, TestMessage__factory } from '../types'; import { TestMessage, TestMessage__factory } from '../types';

@ -1,7 +1,7 @@
import { expect } from 'chai'; import { expect } from 'chai';
import { ethers } from 'hardhat'; import { ethers } from 'hardhat';
import { utils } from '@abacus-network/utils'; import { utils } from '@hyperlane-xyz/utils';
import { TestRecipient__factory } from '../dist'; import { TestRecipient__factory } from '../dist';
import { MockInbox__factory, MockOutbox__factory } from '../types'; import { MockInbox__factory, MockOutbox__factory } from '../types';

@ -2,7 +2,7 @@ import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers';
import { expect } from 'chai'; import { expect } from 'chai';
import { ethers } from 'hardhat'; import { ethers } from 'hardhat';
import { types, utils } from '@abacus-network/utils'; import { types, utils } from '@hyperlane-xyz/utils';
import { TestOutbox, TestOutbox__factory } from '../types'; import { TestOutbox, TestOutbox__factory } from '../types';

@ -1,7 +1,7 @@
import { expect } from 'chai'; import { expect } from 'chai';
import { ethers } from 'hardhat'; import { ethers } from 'hardhat';
import { utils } from '@abacus-network/utils'; import { utils } from '@hyperlane-xyz/utils';
import { TestSendReceiver__factory } from '../types'; import { TestSendReceiver__factory } from '../types';

@ -2,7 +2,7 @@ import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers';
import { expect } from 'chai'; import { expect } from 'chai';
import { ethers } from 'hardhat'; import { ethers } from 'hardhat';
import { Validator, types, utils } from '@abacus-network/utils'; import { Validator, types, utils } from '@hyperlane-xyz/utils';
import { import {
Inbox, Inbox,

@ -3,7 +3,7 @@ import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers';
import { expect } from 'chai'; import { expect } from 'chai';
import { ethers } from 'hardhat'; import { ethers } from 'hardhat';
import { Validator } from '@abacus-network/utils'; import { Validator } from '@hyperlane-xyz/utils';
import { import {
TestMultisigValidatorManager, TestMultisigValidatorManager,

@ -2,7 +2,7 @@ import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers';
import { expect } from 'chai'; import { expect } from 'chai';
import { ethers } from 'hardhat'; import { ethers } from 'hardhat';
import { Validator, types, utils } from '@abacus-network/utils'; import { Validator, types, utils } from '@hyperlane-xyz/utils';
import { import {
OutboxValidatorManager, OutboxValidatorManager,

@ -1,4 +1,4 @@
import { Validator, types } from '@abacus-network/utils'; import { Validator, types } from '@hyperlane-xyz/utils';
// Signs a checkpoint with the provided validators and returns // Signs a checkpoint with the provided validators and returns
// the signatures sorted by validator addresses in ascending order // the signatures sorted by validator addresses in ascending order

@ -1,6 +1,6 @@
# Abacus 'Hello World' App Template # Hyperlane 'Hello World' App Template
A basic Abacus application with a router contract that can dispatch messages. A basic Hyperlane application with a router contract that can dispatch messages.
## Setup ## Setup
@ -24,4 +24,4 @@ yarn lint
## Learn more ## Learn more
For more information, see the [Abacus documentation](https://docs.useabacus.network/abacus-docs/developers/getting-started). For more information, see the [Hyperlane documentation](https://docs.hyperlane.xyz/hyperlane-docs/developers/getting-started).

@ -2,7 +2,7 @@
pragma solidity ^0.8.13; pragma solidity ^0.8.13;
// ============ External Imports ============ // ============ External Imports ============
import {Router} from "@abacus-network/app/contracts/Router.sol"; import {Router} from "@hyperlane-xyz/app/contracts/Router.sol";
/* /*
* @title The Hello World App * @title The Hello World App

@ -1,10 +1,10 @@
{ {
"name": "@abacus-network/helloworld", "name": "@hyperlane-xyz/helloworld",
"description": "A basic skeleton of an Abacus app", "description": "A basic skeleton of an Hyperlane app",
"version": "0.5.0", "version": "0.5.0-beta0",
"dependencies": { "dependencies": {
"@abacus-network/sdk": "^0.4.1", "@hyperlane-xyz/sdk": "^0.5.0-beta0",
"@abacus-network/utils": "^0.4.1", "@hyperlane-xyz/utils": "^0.5.0-beta0",
"@openzeppelin/contracts-upgradeable": "^4.6.0", "@openzeppelin/contracts-upgradeable": "^4.6.0",
"ethers": "^5.6.8" "ethers": "^5.6.8"
}, },
@ -36,9 +36,9 @@
"/dist", "/dist",
"/contracts" "/contracts"
], ],
"homepage": "https://www.useabacus.network", "homepage": "https://www.hyperlane.xyz",
"keywords": [ "keywords": [
"Abacus", "Hyperlane",
"HelloWorld", "HelloWorld",
"Solidity", "Solidity",
"Typescript" "Typescript"
@ -48,7 +48,7 @@
"packageManager": "yarn@3.2.0", "packageManager": "yarn@3.2.0",
"repository": { "repository": {
"type": "git", "type": "git",
"url": "https://github.com/abacus-network/abacus-app-template" "url": "https://github.com/hyperlane-xyz/hyperlane-app-template"
}, },
"scripts": { "scripts": {
"build": "hardhat compile && tsc", "build": "hardhat compile && tsc",

@ -17,7 +17,7 @@ import { existsSync } from 'fs';
const SKIP_GIT_FLAG = '--no-commit'; const SKIP_GIT_FLAG = '--no-commit';
const PATH_TO_TEMPLATE_REPO = '../../../abacus-app-template'; const PATH_TO_TEMPLATE_REPO = '../../../hyperlane-app-template';
const SYNC_WHITELIST = [ const SYNC_WHITELIST = [
'contracts', 'contracts',

@ -1,15 +1,15 @@
import { BigNumber, ethers } from 'ethers'; import { BigNumber, ethers } from 'ethers';
import { import {
AbacusApp,
AbacusCore,
ChainMap, ChainMap,
ChainName, ChainName,
ChainNameToDomainId, ChainNameToDomainId,
HyperlaneApp,
HyperlaneCore,
MultiProvider, MultiProvider,
Remotes, Remotes,
} from '@abacus-network/sdk'; } from '@hyperlane-xyz/sdk';
import { debug } from '@abacus-network/utils'; import { debug } from '@hyperlane-xyz/utils';
import { HelloWorldContracts } from './contracts'; import { HelloWorldContracts } from './contracts';
@ -20,9 +20,9 @@ type Counts = {
export class HelloWorldApp< export class HelloWorldApp<
Chain extends ChainName = ChainName, Chain extends ChainName = ChainName,
> extends AbacusApp<HelloWorldContracts, Chain> { > extends HyperlaneApp<HelloWorldContracts, Chain> {
constructor( constructor(
public readonly core: AbacusCore<Chain>, public readonly core: HyperlaneCore<Chain>,
contractsMap: ChainMap<Chain, HelloWorldContracts>, contractsMap: ChainMap<Chain, HelloWorldContracts>,
multiProvider: MultiProvider<Chain>, multiProvider: MultiProvider<Chain>,
) { ) {
@ -39,7 +39,7 @@ export class HelloWorldApp<
const toDomain = ChainNameToDomainId[to]; const toDomain = ChainNameToDomainId[to];
const chainConnection = this.multiProvider.getChainConnection(from); const chainConnection = this.multiProvider.getChainConnection(from);
// apply gas buffer due to https://github.com/abacus-network/abacus-monorepo/issues/634 // apply gas buffer due to https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/634
const estimated = await sender.estimateGas.sendHelloWorld( const estimated = await sender.estimateGas.sendHelloWorld(
toDomain, toDomain,
message, message,

@ -1,4 +1,4 @@
import { RouterContracts, RouterFactories } from '@abacus-network/sdk'; import { RouterContracts, RouterFactories } from '@hyperlane-xyz/sdk';
import { HelloWorld, HelloWorld__factory } from '../types'; import { HelloWorld, HelloWorld__factory } from '../types';

@ -1,4 +1,4 @@
import { AbacusRouterChecker, ChainName } from '@abacus-network/sdk'; import { ChainName, HyperlaneRouterChecker } from '@hyperlane-xyz/sdk';
import { HelloWorldApp } from '../app/app'; import { HelloWorldApp } from '../app/app';
import { HelloWorldContracts } from '../app/contracts'; import { HelloWorldContracts } from '../app/contracts';
@ -7,7 +7,7 @@ import { HelloWorldConfig } from './config';
export class HelloWorldChecker< export class HelloWorldChecker<
Chain extends ChainName, Chain extends ChainName,
> extends AbacusRouterChecker< > extends HyperlaneRouterChecker<
Chain, Chain,
HelloWorldApp<Chain>, HelloWorldApp<Chain>,
HelloWorldConfig, HelloWorldConfig,

@ -1,4 +1,4 @@
import { RouterConfig, chainConnectionConfigs } from '@abacus-network/sdk'; import { RouterConfig, chainConnectionConfigs } from '@hyperlane-xyz/sdk';
export type HelloWorldConfig = RouterConfig; export type HelloWorldConfig = RouterConfig;

@ -1,10 +1,10 @@
import { import {
AbacusCore,
AbacusRouterDeployer,
ChainMap, ChainMap,
ChainName, ChainName,
HyperlaneCore,
HyperlaneRouterDeployer,
MultiProvider, MultiProvider,
} from '@abacus-network/sdk'; } from '@hyperlane-xyz/sdk';
import { import {
HelloWorldContracts, HelloWorldContracts,
@ -16,7 +16,7 @@ import { HelloWorldConfig } from './config';
export class HelloWorldDeployer< export class HelloWorldDeployer<
Chain extends ChainName, Chain extends ChainName,
> extends AbacusRouterDeployer< > extends HyperlaneRouterDeployer<
Chain, Chain,
HelloWorldConfig, HelloWorldConfig,
HelloWorldContracts, HelloWorldContracts,
@ -25,7 +25,7 @@ export class HelloWorldDeployer<
constructor( constructor(
multiProvider: MultiProvider<Chain>, multiProvider: MultiProvider<Chain>,
configMap: ChainMap<Chain, HelloWorldConfig>, configMap: ChainMap<Chain, HelloWorldConfig>,
protected core: AbacusCore<Chain>, protected core: HyperlaneCore<Chain>,
) { ) {
super(multiProvider, configMap, helloWorldFactories, {}); super(multiProvider, configMap, helloWorldFactories, {});
} }
@ -34,7 +34,7 @@ export class HelloWorldDeployer<
// If no custom logic is needed, call deployContract for the router // If no custom logic is needed, call deployContract for the router
async deployContracts(chain: Chain, config: HelloWorldConfig) { async deployContracts(chain: Chain, config: HelloWorldConfig) {
const router = await this.deployContract(chain, 'router', [ const router = await this.deployContract(chain, 'router', [
config.abacusConnectionManager, config.connectionManager,
config.interchainGasPaymaster, config.interchainGasPaymaster,
]); ]);
return { return {

@ -1,12 +1,12 @@
import { import {
AbacusCore,
ChainMap, ChainMap,
ChainName, ChainName,
HyperlaneCore,
MultiProvider, MultiProvider,
buildContracts, buildContracts,
getChainToOwnerMap, getChainToOwnerMap,
objMap, objMap,
} from '@abacus-network/sdk'; } from '@hyperlane-xyz/sdk';
import { HelloWorldApp } from '../app/app'; import { HelloWorldApp } from '../app/app';
import { HelloWorldContracts, helloWorldFactories } from '../app/contracts'; import { HelloWorldContracts, helloWorldFactories } from '../app/contracts';
@ -33,7 +33,7 @@ async function check() {
helloWorldFactories, helloWorldFactories,
) as ChainMap<ChainName, HelloWorldContracts>; ) as ChainMap<ChainName, HelloWorldContracts>;
const core = AbacusCore.fromEnvironment('testnet2', multiProvider); const core = HyperlaneCore.fromEnvironment('testnet2', multiProvider);
const app = new HelloWorldApp(core, contractsMap, multiProvider); const app = new HelloWorldApp(core, contractsMap, multiProvider);
const config = core.extendWithConnectionClientConfig( const config = core.extendWithConnectionClientConfig(
getChainToOwnerMap(prodConfigs, ownerAddress), getChainToOwnerMap(prodConfigs, ownerAddress),

@ -1,12 +1,12 @@
import { Wallet } from 'ethers'; import { Wallet } from 'ethers';
import { import {
AbacusCore, HyperlaneCore,
MultiProvider, MultiProvider,
getChainToOwnerMap, getChainToOwnerMap,
objMap, objMap,
serializeContracts, serializeContracts,
} from '@abacus-network/sdk'; } from '@hyperlane-xyz/sdk';
import { prodConfigs } from '../deploy/config'; import { prodConfigs } from '../deploy/config';
import { HelloWorldDeployer } from '../deploy/deploy'; import { HelloWorldDeployer } from '../deploy/deploy';
@ -23,7 +23,7 @@ async function main() {
})); }));
const multiProvider = new MultiProvider(chainProviders); const multiProvider = new MultiProvider(chainProviders);
const core = AbacusCore.fromEnvironment('testnet2', multiProvider); const core = HyperlaneCore.fromEnvironment('testnet2', multiProvider);
const config = core.extendWithConnectionClientConfig( const config = core.extendWithConnectionClientConfig(
getChainToOwnerMap(prodConfigs, signer.address), getChainToOwnerMap(prodConfigs, signer.address),
); );

@ -10,7 +10,7 @@ import {
getChainToOwnerMap, getChainToOwnerMap,
getTestMultiProvider, getTestMultiProvider,
testChainConnectionConfigs, testChainConnectionConfigs,
} from '@abacus-network/sdk'; } from '@hyperlane-xyz/sdk';
import { HelloWorldApp } from '../app/app'; import { HelloWorldApp } from '../app/app';
import { HelloWorldContracts } from '../app/contracts'; import { HelloWorldContracts } from '../app/contracts';

@ -12,7 +12,7 @@ import {
getChainToOwnerMap, getChainToOwnerMap,
getTestMultiProvider, getTestMultiProvider,
testChainConnectionConfigs, testChainConnectionConfigs,
} from '@abacus-network/sdk'; } from '@hyperlane-xyz/sdk';
import { HelloWorldConfig } from '../deploy/config'; import { HelloWorldConfig } from '../deploy/config';
import { HelloWorldDeployer } from '../deploy/deploy'; import { HelloWorldDeployer } from '../deploy/deploy';
@ -72,7 +72,7 @@ describe('HelloWorld', async () => {
it('handles a message', async () => { it('handles a message', async () => {
await local.sendHelloWorld(remoteDomain, 'World'); await local.sendHelloWorld(remoteDomain, 'World');
// Mock processing of the message by Abacus // Mock processing of the message by Hyperlane
await coreApp.processOutboundMessages(localChain); await coreApp.processOutboundMessages(localChain);
// The initial message has been dispatched. // The initial message has been dispatched.
expect(await local.sent()).to.equal(1); expect(await local.sent()).to.equal(1);

@ -1,6 +1,9 @@
This package provides smart contracts with "sovereignty" on remote Abacus chains via operating interchain accounts. # Interchain Accounts
This package provides smart contracts with "sovereignty" on remote Hyperlane chains via operating interchain accounts.
An interchain account is a smart contract that is deployed on a remote chain and is controlled exclusively by the deploying local account. An interchain account is a smart contract that is deployed on a remote chain and is controlled exclusively by the deploying local account.
Interchain accounts provide developers with a [transparent multicall API](./contracts/OwnableMulticall.sol) to remote smart contracts. Interchain accounts provide developers with a [transparent multicall API](./contracts/OwnableMulticall.sol) to remote smart contracts.
This avoids the need to deploy application specific smart contracts on remote chains while simultaneously enabling crosschain composability. This avoids the need to deploy application specific smart contracts on remote chains while simultaneously enabling cross-chain composability.
See [IBC Interchain Accounts](https://github.com/cosmos/ibc/blob/main/spec/app/ics-027-interchain-accounts/README.md) for the Cosmos ecosystem equivalent. See [IBC Interchain Accounts](https://github.com/cosmos/ibc/blob/main/spec/app/ics-027-interchain-accounts/README.md) for the Cosmos ecosystem equivalent.

@ -4,8 +4,8 @@ pragma solidity ^0.8.13;
import {OwnableMulticall, Call} from "./OwnableMulticall.sol"; import {OwnableMulticall, Call} from "./OwnableMulticall.sol";
// ============ External Imports ============ // ============ External Imports ============
import {Router} from "@abacus-network/app/contracts/Router.sol"; import {Router} from "@hyperlane-xyz/app/contracts/Router.sol";
import {TypeCasts} from "@abacus-network/core/contracts/libs/TypeCasts.sol"; import {TypeCasts} from "@hyperlane-xyz/core/contracts/libs/TypeCasts.sol";
import {Create2} from "@openzeppelin/contracts/utils/Create2.sol"; import {Create2} from "@openzeppelin/contracts/utils/Create2.sol";
import {Address} from "@openzeppelin/contracts/utils/Address.sol"; import {Address} from "@openzeppelin/contracts/utils/Address.sol";

@ -1,11 +1,11 @@
{ {
"name": "@abacus-network/interchain-accounts", "name": "@hyperlane-xyz/interchain-accounts",
"description": "A router middleware for interchain accounts", "description": "A router middleware for interchain accounts",
"version": "0.1.0", "version": "0.5.0-beta0",
"dependencies": { "dependencies": {
"@abacus-network/app": "^0.4.1", "@hyperlane-xyz/app": "0.5.0-beta0",
"@abacus-network/sdk": "^0.4.1", "@hyperlane-xyz/sdk": "0.5.0-beta0",
"@abacus-network/utils": "^0.4.1", "@hyperlane-xyz/utils": "0.5.0-beta0",
"@openzeppelin/contracts-upgradeable": "^4.6.0", "@openzeppelin/contracts-upgradeable": "^4.6.0",
"ethers": "^5.6.8" "ethers": "^5.6.8"
}, },
@ -39,9 +39,9 @@
"/dist", "/dist",
"/contracts" "/contracts"
], ],
"homepage": "https://www.useabacus.network", "homepage": "https://www.hyperlane-xyz",
"keywords": [ "keywords": [
"Abacus", "Hyperlane",
"Interchain Accounts", "Interchain Accounts",
"Solidity", "Solidity",
"Typescript" "Typescript"
@ -51,7 +51,7 @@
"packageManager": "yarn@3.2.0", "packageManager": "yarn@3.2.0",
"repository": { "repository": {
"type": "git", "type": "git",
"url": "https://github.com/abacus-network/abacus-app-template" "url": "https://github.com/hyperlane-xyz/hyperlane-monorepo"
}, },
"scripts": { "scripts": {
"build": "hardhat compile && tsc", "build": "hardhat compile && tsc",
@ -59,8 +59,7 @@
"coverage": "hardhat coverage", "coverage": "hardhat coverage",
"lint": "eslint . --ext .ts", "lint": "eslint . --ext .ts",
"prettier": "prettier --write ./contracts ./src", "prettier": "prettier --write ./contracts ./src",
"test": "hardhat test ./test/*.test.ts", "test": "hardhat test ./test/*.test.ts"
"sync": "ts-node scripts/sync-with-template-repo.ts"
}, },
"types": "dist/src/index.d.ts" "types": "dist/src/index.d.ts"
} }

@ -1,4 +1,4 @@
import { RouterContracts, RouterFactories } from '@abacus-network/sdk'; import { RouterContracts, RouterFactories } from '@hyperlane-xyz/sdk';
import { import {
InterchainAccountRouter, InterchainAccountRouter,

@ -1,11 +1,11 @@
import { import {
AbacusCore,
AbacusRouterDeployer,
ChainMap, ChainMap,
ChainName, ChainName,
HyperlaneCore,
HyperlaneRouterDeployer,
MultiProvider, MultiProvider,
RouterConfig, RouterConfig,
} from '@abacus-network/sdk'; } from '@hyperlane-xyz/sdk';
import { import {
InterchainAccountContracts, InterchainAccountContracts,
@ -16,7 +16,7 @@ export type InterchainAccountConfig = RouterConfig;
export class InterchainAccountDeployer< export class InterchainAccountDeployer<
Chain extends ChainName, Chain extends ChainName,
> extends AbacusRouterDeployer< > extends HyperlaneRouterDeployer<
Chain, Chain,
InterchainAccountConfig, InterchainAccountConfig,
InterchainAccountContracts, InterchainAccountContracts,
@ -25,7 +25,7 @@ export class InterchainAccountDeployer<
constructor( constructor(
multiProvider: MultiProvider<Chain>, multiProvider: MultiProvider<Chain>,
configMap: ChainMap<Chain, InterchainAccountConfig>, configMap: ChainMap<Chain, InterchainAccountConfig>,
protected core: AbacusCore<Chain>, protected core: HyperlaneCore<Chain>,
) { ) {
super(multiProvider, configMap, InterchainAccountFactories, {}); super(multiProvider, configMap, InterchainAccountFactories, {});
} }
@ -34,7 +34,7 @@ export class InterchainAccountDeployer<
// If no custom logic is needed, call deployContract for the router // If no custom logic is needed, call deployContract for the router
async deployContracts(chain: Chain, config: InterchainAccountConfig) { async deployContracts(chain: Chain, config: InterchainAccountConfig) {
const router = await this.deployContract(chain, 'router', [ const router = await this.deployContract(chain, 'router', [
config.abacusConnectionManager, config.connectionManager,
config.interchainGasPaymaster, config.interchainGasPaymaster,
]); ]);
return { return {

@ -13,7 +13,7 @@ import {
getChainToOwnerMap, getChainToOwnerMap,
getTestMultiProvider, getTestMultiProvider,
testChainConnectionConfigs, testChainConnectionConfigs,
} from '@abacus-network/sdk'; } from '@hyperlane-xyz/sdk';
import { InterchainAccountDeployer } from '../src/deploy'; import { InterchainAccountDeployer } from '../src/deploy';
import { InterchainAccountRouter, TestRecipient__factory } from '../types'; import { InterchainAccountRouter, TestRecipient__factory } from '../types';

@ -1,6 +1,6 @@
// All valid deployment contexts. Environments may use just a subset of these contexts. // All valid deployment contexts. Environments may use just a subset of these contexts.
export enum Contexts { export enum Contexts {
Abacus = 'abacus', Abacus = 'abacus', // TODO rename when infra changes
Flowcarbon = 'flowcarbon', Flowcarbon = 'flowcarbon',
ReleaseCandidate = 'rc', ReleaseCandidate = 'rc',
} }

@ -2,7 +2,7 @@ import {
ChainMap, ChainMap,
IChainConnection, IChainConnection,
chainConnectionConfigs, chainConnectionConfigs,
} from '@abacus-network/sdk'; } from '@hyperlane-xyz/sdk';
export const mainnetConfigs: ChainMap<any, IChainConnection> = { export const mainnetConfigs: ChainMap<any, IChainConnection> = {
bsc: { bsc: {

@ -1,4 +1,4 @@
import { ChainMap, CoreConfig } from '@abacus-network/sdk'; import { ChainMap, CoreConfig } from '@hyperlane-xyz/sdk';
import { MainnetChains } from './chains'; import { MainnetChains } from './chains';

@ -23,7 +23,7 @@
"isProxy": true "isProxy": true
}, },
{ {
"name": "AbacusConnectionManager", "name": "connectionManager",
"address": "0x12582c7B0f43c6A667CBaA7fA8b112F7fb1E69F0", "address": "0x12582c7B0f43c6A667CBaA7fA8b112F7fb1E69F0",
"isProxy": false "isProxy": false
}, },
@ -178,7 +178,7 @@
"isProxy": true "isProxy": true
}, },
{ {
"name": "AbacusConnectionManager", "name": "connectionManager",
"address": "0xeA87ae93Fa0019a82A727bfd3eBd1cFCa8f64f1D", "address": "0xeA87ae93Fa0019a82A727bfd3eBd1cFCa8f64f1D",
"isProxy": false "isProxy": false
}, },
@ -333,7 +333,7 @@
"isProxy": true "isProxy": true
}, },
{ {
"name": "AbacusConnectionManager", "name": "connectionManager",
"address": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE", "address": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
"isProxy": false "isProxy": false
}, },
@ -488,7 +488,7 @@
"isProxy": true "isProxy": true
}, },
{ {
"name": "AbacusConnectionManager", "name": "connectionManager",
"address": "0x1Ab68dC4f7b6cfcd00218D4b761b7F3b5a724555", "address": "0x1Ab68dC4f7b6cfcd00218D4b761b7F3b5a724555",
"isProxy": false "isProxy": false
}, },
@ -643,7 +643,7 @@
"isProxy": true "isProxy": true
}, },
{ {
"name": "AbacusConnectionManager", "name": "connectionManager",
"address": "0x19dc38aeae620380430C200a6E990D5Af5480117", "address": "0x19dc38aeae620380430C200a6E990D5Af5480117",
"isProxy": false "isProxy": false
}, },
@ -798,7 +798,7 @@
"isProxy": true "isProxy": true
}, },
{ {
"name": "AbacusConnectionManager", "name": "connectionManager",
"address": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE", "address": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
"isProxy": false "isProxy": false
}, },
@ -953,7 +953,7 @@
"isProxy": true "isProxy": true
}, },
{ {
"name": "AbacusConnectionManager", "name": "connectionManager",
"address": "0xd83A4F747fE80Ed98839e05079B1B7Fe037b1638", "address": "0xd83A4F747fE80Ed98839e05079B1B7Fe037b1638",
"isProxy": false "isProxy": false
}, },

@ -6,7 +6,7 @@ import { environment } from './chains';
export const keyFunderConfig: KeyFunderConfig = { export const keyFunderConfig: KeyFunderConfig = {
docker: { docker: {
repo: 'gcr.io/abacus-labs-dev/abacus-monorepo', repo: 'gcr.io/abacus-labs-dev/hyperlane-monorepo',
tag: 'sha-f3509ac', tag: 'sha-f3509ac',
}, },
cronSchedule: '45 * * * *', // Every hour at the 45 minute mark cronSchedule: '45 * * * *', // Every hour at the 45 minute mark

@ -10,7 +10,7 @@ export const abacus: HelloWorldConfig<MainnetChains> = {
addresses: abacusAddresses, addresses: abacusAddresses,
kathy: { kathy: {
docker: { docker: {
repo: 'gcr.io/abacus-labs-dev/abacus-monorepo', repo: 'gcr.io/abacus-labs-dev/hyperlane-monorepo',
tag: 'sha-8b8fdde', tag: 'sha-8b8fdde',
}, },
chainsToSkip: [], chainsToSkip: [],
@ -29,7 +29,7 @@ export const releaseCandidate: HelloWorldConfig<MainnetChains> = {
addresses: rcAddresses, addresses: rcAddresses,
kathy: { kathy: {
docker: { docker: {
repo: 'gcr.io/abacus-labs-dev/abacus-monorepo', repo: 'gcr.io/abacus-labs-dev/hyperlane-monorepo',
tag: 'sha-8b8fdde', tag: 'sha-8b8fdde',
}, },
chainsToSkip: [], chainsToSkip: [],

@ -1,4 +1,4 @@
import { ChainName } from '@abacus-network/sdk'; import { ChainName } from '@hyperlane-xyz/sdk';
import { import {
ChainValidatorSets, ChainValidatorSets,

@ -1,4 +1,4 @@
import { chainConnectionConfigs } from '@abacus-network/sdk'; import { chainConnectionConfigs } from '@hyperlane-xyz/sdk';
export const testConfigs = { export const testConfigs = {
test1: chainConnectionConfigs.test1, test1: chainConnectionConfigs.test1,

@ -1,4 +1,4 @@
import { ChainMap, CoreConfig } from '@abacus-network/sdk'; import { ChainMap, CoreConfig } from '@hyperlane-xyz/sdk';
import { TestChains } from './chains'; import { TestChains } from './chains';

@ -1,6 +1,6 @@
import { JsonRpcProvider } from '@ethersproject/providers'; import { JsonRpcProvider } from '@ethersproject/providers';
import { getTestMultiProvider } from '@abacus-network/sdk'; import { getTestMultiProvider } from '@hyperlane-xyz/sdk';
import { CoreEnvironmentConfig } from '../../../src/config'; import { CoreEnvironmentConfig } from '../../../src/config';

@ -1,4 +1,4 @@
import { ChainName } from '@abacus-network/sdk'; import { ChainName } from '@hyperlane-xyz/sdk';
import { import {
ChainValidatorSets, ChainValidatorSets,

@ -1,4 +1,4 @@
import { chainConnectionConfigs } from '@abacus-network/sdk'; import { chainConnectionConfigs } from '@hyperlane-xyz/sdk';
export const testnetConfigs = { export const testnetConfigs = {
alfajores: chainConnectionConfigs.alfajores, alfajores: chainConnectionConfigs.alfajores,

@ -1,4 +1,4 @@
import { ChainMap, CoreConfig } from '@abacus-network/sdk'; import { ChainMap, CoreConfig } from '@hyperlane-xyz/sdk';
import { TestnetChains } from './chains'; import { TestnetChains } from './chains';

@ -7,7 +7,7 @@
"isProxy": false "isProxy": false
}, },
{ {
"name": "abacusConnectionManager", "name": "connectionManager",
"address": "0xc41169650335Ad274157Ea5116Cdf227430A68a3", "address": "0xc41169650335Ad274157Ea5116Cdf227430A68a3",
"constructorArguments": [], "constructorArguments": [],
"isProxy": false "isProxy": false
@ -179,7 +179,7 @@
"isProxy": false "isProxy": false
}, },
{ {
"name": "abacusConnectionManager", "name": "connectionManager",
"address": "0xfA1fBF362144ae1bEf2E33409948dA1FB812bb41", "address": "0xfA1fBF362144ae1bEf2E33409948dA1FB812bb41",
"constructorArguments": [], "constructorArguments": [],
"isProxy": false "isProxy": false
@ -351,7 +351,7 @@
"isProxy": false "isProxy": false
}, },
{ {
"name": "abacusConnectionManager", "name": "connectionManager",
"address": "0x33AbaF6708be03Bdf0595DA0745A7111b01dB8c7", "address": "0x33AbaF6708be03Bdf0595DA0745A7111b01dB8c7",
"constructorArguments": [], "constructorArguments": [],
"isProxy": false "isProxy": false
@ -523,7 +523,7 @@
"isProxy": false "isProxy": false
}, },
{ {
"name": "abacusConnectionManager", "name": "connectionManager",
"address": "0xb636B2c65A75d41F0dBe98fB33eb563d245a241a", "address": "0xb636B2c65A75d41F0dBe98fB33eb563d245a241a",
"constructorArguments": [], "constructorArguments": [],
"isProxy": false "isProxy": false
@ -695,7 +695,7 @@
"isProxy": false "isProxy": false
}, },
{ {
"name": "abacusConnectionManager", "name": "connectionManager",
"address": "0xe403E16db1f5997bC62Dc611A8d42836364A7f01", "address": "0xe403E16db1f5997bC62Dc611A8d42836364A7f01",
"constructorArguments": [], "constructorArguments": [],
"isProxy": false "isProxy": false
@ -867,7 +867,7 @@
"isProxy": false "isProxy": false
}, },
{ {
"name": "abacusConnectionManager", "name": "connectionManager",
"address": "0xFb55597F07417b08195Ba674f4dd58aeC9B89FBB", "address": "0xFb55597F07417b08195Ba674f4dd58aeC9B89FBB",
"constructorArguments": [], "constructorArguments": [],
"isProxy": false "isProxy": false
@ -1039,7 +1039,7 @@
"isProxy": false "isProxy": false
}, },
{ {
"name": "abacusConnectionManager", "name": "connectionManager",
"address": "0x740bEd6E4eEc7c57a2818177Fba3f9E896D5DE1c", "address": "0x740bEd6E4eEc7c57a2818177Fba3f9E896D5DE1c",
"constructorArguments": [], "constructorArguments": [],
"isProxy": false "isProxy": false

@ -1,4 +1,4 @@
import { ChainName } from '@abacus-network/sdk'; import { ChainName } from '@hyperlane-xyz/sdk';
import { import {
ChainValidatorSets, ChainValidatorSets,

@ -1,4 +1,4 @@
import { ChainMap, ChainName, chainMetadata } from '@abacus-network/sdk'; import { ChainMap, ChainName, chainMetadata } from '@hyperlane-xyz/sdk';
import { HelloWorldConfig } from '../src/config'; import { HelloWorldConfig } from '../src/config';
import { MatchingList } from '../src/config/agent'; import { MatchingList } from '../src/config/agent';

@ -3,19 +3,19 @@ import '@nomiclabs/hardhat-waffle';
import { task } from 'hardhat/config'; import { task } from 'hardhat/config';
import { HardhatRuntimeEnvironment } from 'hardhat/types'; import { HardhatRuntimeEnvironment } from 'hardhat/types';
import { TestSendReceiver__factory } from '@abacus-network/core'; import { TestSendReceiver__factory } from '@hyperlane-xyz/core';
import { import {
AbacusCore,
ChainName, ChainName,
ChainNameToDomainId, ChainNameToDomainId,
HyperlaneCore,
getTestMultiProvider, getTestMultiProvider,
} from '@abacus-network/sdk'; } from '@hyperlane-xyz/sdk';
import { getCoreEnvironmentConfig } from './scripts/utils'; import { getCoreEnvironmentConfig } from './scripts/utils';
import { sleep } from './src/utils/utils'; import { sleep } from './src/utils/utils';
const chainSummary = async <Chain extends ChainName>( const chainSummary = async <Chain extends ChainName>(
core: AbacusCore<Chain>, core: HyperlaneCore<Chain>,
chain: Chain, chain: Chain,
) => { ) => {
const coreContracts = core.getContracts(chain); const coreContracts = core.getContracts(chain);
@ -46,7 +46,7 @@ const chainSummary = async <Chain extends ChainName>(
return summary; return summary;
}; };
task('kathy', 'Dispatches random abacus messages') task('kathy', 'Dispatches random hyperlane messages')
.addParam( .addParam(
'rounds', 'rounds',
'Number of message sending rounds to perform; defaults to having no limit', 'Number of message sending rounds to perform; defaults to having no limit',
@ -67,7 +67,7 @@ task('kathy', 'Dispatches random abacus messages')
signer, signer,
config.transactionConfigs, config.transactionConfigs,
); );
const core = AbacusCore.fromEnvironment(environment, multiProvider); const core = HyperlaneCore.fromEnvironment(environment, multiProvider);
const randomElement = <T>(list: T[]) => const randomElement = <T>(list: T[]) =>
list[Math.floor(Math.random() * list.length)]; list[Math.floor(Math.random() * list.length)];

@ -1,5 +1,5 @@
image: image:
repository: gcr.io/abacus-labs-dev/abacus-monorepo repository: gcr.io/abacus-labs-dev/hyperlane-monorepo
tag: tag:
abacus: abacus:
runEnv: testnet2 runEnv: testnet2

@ -1,5 +1,5 @@
image: image:
repository: gcr.io/abacus-labs-dev/abacus-monorepo repository: gcr.io/abacus-labs-dev/hyperlane-monorepo
tag: tag:
abacus: abacus:
runEnv: testnet2 runEnv: testnet2

@ -1,12 +1,8 @@
{ {
"name": "@abacus-network/infra", "name": "@hyperlane-xyz/infra",
"description": "Infrastructure utilities for the Abacus Network", "description": "Infrastructure utilities for the Hyperlane Network",
"version": "0.4.1", "version": "0.5.0",
"dependencies": { "dependencies": {
"@abacus-network/celo-ethers-provider": "^0.1.0",
"@abacus-network/helloworld": "0.5.0",
"@abacus-network/sdk": "0.4.1",
"@abacus-network/utils": "0.4.1",
"@aws-sdk/client-iam": "^3.74.0", "@aws-sdk/client-iam": "^3.74.0",
"@aws-sdk/client-kms": "3.48.0", "@aws-sdk/client-kms": "3.48.0",
"@aws-sdk/client-s3": "^3.74.0", "@aws-sdk/client-s3": "^3.74.0",
@ -15,6 +11,10 @@
"@gnosis.pm/safe-core-sdk": "^2.3.2", "@gnosis.pm/safe-core-sdk": "^2.3.2",
"@gnosis.pm/safe-ethers-lib": "^1.4.0", "@gnosis.pm/safe-ethers-lib": "^1.4.0",
"@gnosis.pm/safe-service-client": "^1.2.0", "@gnosis.pm/safe-service-client": "^1.2.0",
"@hyperlane-xyz/celo-ethers-provider": "^0.1.1",
"@hyperlane-xyz/helloworld": "0.5.0-beta0",
"@hyperlane-xyz/sdk": "0.5.0-beta0",
"@hyperlane-xyz/utils": "0.5.0-beta0",
"@nomiclabs/hardhat-etherscan": "^3.0.3", "@nomiclabs/hardhat-etherscan": "^3.0.3",
"asn1.js": "5.4.1", "asn1.js": "5.4.1",
"aws-kms-ethers-signer": "^0.1.3", "aws-kms-ethers-signer": "^0.1.3",
@ -39,18 +39,20 @@
"ts-node": "^10.8.0", "ts-node": "^10.8.0",
"typescript": "^4.7.2" "typescript": "^4.7.2"
}, },
"homepage": "https://www.useabacus.network", "private": true,
"homepage": "https://www.hyperlane.xyz",
"keywords": [ "keywords": [
"Abacus", "Hyperlane",
"Typescript", "Typescript",
"Infrastructure" "Infrastructure"
], ],
"license": "Apache-2.0", "license": "Apache-2.0",
"main": "dist/index.js", "main": "dist/index.js",
"prepublish": "yarn build", "prepublish": "yarn build",
"repository": "https://github.com/abacus-network/abacus-monorepo", "repository": "https://github.com/hyperlane-xyz/hyperlane-monorepo",
"scripts": { "scripts": {
"abacus": "ts-node scripts/core.ts -e test", "abacus": "ts-node scripts/core.ts -e test",
"hyperlane": "ts-node scripts/core.ts -e test",
"build": "tsc", "build": "tsc",
"clean": "rm -rf ./dist ./cache", "clean": "rm -rf ./dist ./cache",
"check": "tsc --noEmit", "check": "tsc --noEmit",

@ -1,4 +1,4 @@
import { AbacusCore, AbacusCoreChecker } from '@abacus-network/sdk'; import { HyperlaneCore, HyperlaneCoreChecker } from '@hyperlane-xyz/sdk';
import { getCoreEnvironmentConfig, getEnvironment } from './utils'; import { getCoreEnvironmentConfig, getEnvironment } from './utils';
@ -8,8 +8,8 @@ async function check() {
const multiProvider = await config.getMultiProvider(); const multiProvider = await config.getMultiProvider();
// environments union doesn't work well with typescript // environments union doesn't work well with typescript
const core = AbacusCore.fromEnvironment(environment, multiProvider as any); const core = HyperlaneCore.fromEnvironment(environment, multiProvider as any);
const coreChecker = new AbacusCoreChecker<any>( const coreChecker = new HyperlaneCoreChecker<any>(
multiProvider, multiProvider,
core, core,
config.core, config.core,

@ -2,9 +2,9 @@ import {
buildContracts, buildContracts,
coreFactories, coreFactories,
serializeContracts, serializeContracts,
} from '@abacus-network/sdk'; } from '@hyperlane-xyz/sdk';
import { AbacusCoreInfraDeployer } from '../src/core/deploy'; import { HyperlaneCoreInfraDeployer } from '../src/core/deploy';
import { readJSON, writeJSON } from '../src/utils/utils'; import { readJSON, writeJSON } from '../src/utils/utils';
import { import {
@ -19,7 +19,7 @@ async function main() {
const environment = await getEnvironment(); const environment = await getEnvironment();
const config = getCoreEnvironmentConfig(environment) as any; const config = getCoreEnvironmentConfig(environment) as any;
const multiProvider = await config.getMultiProvider(); const multiProvider = await config.getMultiProvider();
const deployer = new AbacusCoreInfraDeployer(multiProvider, config.core); const deployer = new HyperlaneCoreInfraDeployer(multiProvider, config.core);
let previousContracts = {}; let previousContracts = {};
previousAddressParsing: try { previousAddressParsing: try {

@ -1,13 +1,13 @@
import { IMessageRecipient__factory } from '@abacus-network/helloworld/dist/src/types'; import { IMessageRecipient__factory } from '@hyperlane-xyz/helloworld/dist/src/types';
import { import {
AbacusCore,
ChainName, ChainName,
DispatchedMessage, DispatchedMessage,
DomainIdToChainName, DomainIdToChainName,
HyperlaneCore,
MultiProvider, MultiProvider,
chainConnectionConfigs, chainConnectionConfigs,
} from '@abacus-network/sdk'; } from '@hyperlane-xyz/sdk';
import { utils } from '@abacus-network/utils'; import { utils } from '@hyperlane-xyz/utils';
import { assertChain } from '../src/utils/utils'; import { assertChain } from '../src/utils/utils';
@ -42,7 +42,7 @@ async function main() {
// to run this script // to run this script
const multiProvider = new MultiProvider(chainConnectionConfigs); const multiProvider = new MultiProvider(chainConnectionConfigs);
const core = AbacusCore.fromEnvironment(environment, multiProvider); const core = HyperlaneCore.fromEnvironment(environment, multiProvider);
const originProvider = multiProvider.getChainProvider(argv.originChain); const originProvider = multiProvider.getChainProvider(argv.originChain);
const dispatchReceipt = await originProvider.getTransactionReceipt( const dispatchReceipt = await originProvider.getTransactionReceipt(
@ -62,7 +62,7 @@ async function main() {
} }
async function checkMessage( async function checkMessage(
core: AbacusCore<any>, core: HyperlaneCore<any>,
multiProvider: MultiProvider<any>, multiProvider: MultiProvider<any>,
message: DispatchedMessage, message: DispatchedMessage,
) { ) {

@ -8,8 +8,8 @@ import {
ChainName, ChainName,
CompleteChainMap, CompleteChainMap,
MultiProvider, MultiProvider,
} from '@abacus-network/sdk'; } from '@hyperlane-xyz/sdk';
import { error, log } from '@abacus-network/utils'; import { error, log } from '@hyperlane-xyz/utils';
import { Contexts } from '../../config/contexts'; import { Contexts } from '../../config/contexts';
import { parseKeyIdentifier } from '../../src/agents/agent'; import { parseKeyIdentifier } from '../../src/agents/agent';

@ -1,6 +1,6 @@
import { BigNumber } from 'ethers'; import { BigNumber } from 'ethers';
import { AbacusCore, objMap, promiseObjAll } from '@abacus-network/sdk'; import { HyperlaneCore, objMap, promiseObjAll } from '@hyperlane-xyz/sdk';
import { getEnvironment, getEnvironmentConfig } from '../utils'; import { getEnvironment, getEnvironmentConfig } from '../utils';
@ -11,7 +11,7 @@ async function main() {
const environment = await getEnvironment(); const environment = await getEnvironment();
const coreConfig = await getEnvironmentConfig(); const coreConfig = await getEnvironmentConfig();
const multiProvider = await coreConfig.getMultiProvider(); const multiProvider = await coreConfig.getMultiProvider();
const core: AbacusCore<any> = AbacusCore.fromEnvironment( const core: HyperlaneCore<any> = HyperlaneCore.fromEnvironment(
environment, environment,
multiProvider, multiProvider,
); );

@ -1,10 +1,10 @@
import { import {
AbacusCore,
AbacusCoreChecker,
CoreViolationType, CoreViolationType,
} from '@abacus-network/sdk'; HyperlaneCore,
HyperlaneCoreChecker,
} from '@hyperlane-xyz/sdk';
import { AbacusCoreGovernor } from '../src/core/govern'; import { HyperlaneCoreGovernor } from '../src/core/govern';
import { getCoreEnvironmentConfig, getEnvironment } from './utils'; import { getCoreEnvironmentConfig, getEnvironment } from './utils';
@ -15,9 +15,9 @@ async function check() {
const multiProvider = await config.getMultiProvider(); const multiProvider = await config.getMultiProvider();
// environments union doesn't work well with typescript // environments union doesn't work well with typescript
const core = AbacusCore.fromEnvironment(environment, multiProvider as any); const core = HyperlaneCore.fromEnvironment(environment, multiProvider as any);
const coreChecker = new AbacusCoreChecker<any>( const coreChecker = new HyperlaneCoreChecker<any>(
multiProvider, multiProvider,
core, core,
config.core, config.core,
@ -26,7 +26,7 @@ async function check() {
// One validator violation per chain (test add validator) // One validator violation per chain (test add validator)
coreChecker.expectViolations([CoreViolationType.ValidatorManager], [1 * 7]); coreChecker.expectViolations([CoreViolationType.ValidatorManager], [1 * 7]);
const governor = new AbacusCoreGovernor(coreChecker); const governor = new HyperlaneCoreGovernor(coreChecker);
await governor.govern(); await governor.govern();
} }

@ -1,4 +1,4 @@
import { HelloWorldChecker } from '@abacus-network/helloworld'; import { HelloWorldChecker } from '@hyperlane-xyz/helloworld';
import { Contexts } from '../../config/contexts'; import { Contexts } from '../../config/contexts';
import { KEY_ROLE_ENUM } from '../../src/agents/roles'; import { KEY_ROLE_ENUM } from '../../src/agents/roles';
@ -15,7 +15,7 @@ async function main() {
coreConfig, coreConfig,
context, context,
KEY_ROLE_ENUM.Deployer, KEY_ROLE_ENUM.Deployer,
Contexts.Abacus, // Owner should always be from the abacus context Contexts.Abacus, // Owner should always be from the hyperlane context
); );
const configMap = await getConfiguration(environment, multiProvider); const configMap = await getConfiguration(environment, multiProvider);
const checker = new HelloWorldChecker(multiProvider, app, configMap); const checker = new HelloWorldChecker(multiProvider, app, configMap);

@ -4,13 +4,13 @@ import {
HelloWorldContracts, HelloWorldContracts,
HelloWorldDeployer, HelloWorldDeployer,
helloWorldFactories, helloWorldFactories,
} from '@abacus-network/helloworld'; } from '@hyperlane-xyz/helloworld';
import { import {
AbacusCore,
ChainMap, ChainMap,
HyperlaneCore,
buildContracts, buildContracts,
serializeContracts, serializeContracts,
} from '@abacus-network/sdk'; } from '@hyperlane-xyz/sdk';
import { Contexts } from '../../config/contexts'; import { Contexts } from '../../config/contexts';
import { KEY_ROLE_ENUM } from '../../src/agents/roles'; import { KEY_ROLE_ENUM } from '../../src/agents/roles';
@ -28,13 +28,13 @@ async function main() {
const environment = await getEnvironment(); const environment = await getEnvironment();
const context = await getContext(); const context = await getContext();
const coreConfig = getCoreEnvironmentConfig(environment); const coreConfig = getCoreEnvironmentConfig(environment);
// Always deploy from the abacus deployer // Always deploy from the hyperlane deployer
const multiProvider = await coreConfig.getMultiProvider( const multiProvider = await coreConfig.getMultiProvider(
Contexts.Abacus, Contexts.Abacus,
KEY_ROLE_ENUM.Deployer, KEY_ROLE_ENUM.Deployer,
); );
const configMap = await getConfiguration(environment, multiProvider); const configMap = await getConfiguration(environment, multiProvider);
const core = AbacusCore.fromEnvironment(environment, multiProvider as any); const core = HyperlaneCore.fromEnvironment(environment, multiProvider as any);
const deployer = new HelloWorldDeployer(multiProvider, configMap, core); const deployer = new HelloWorldDeployer(multiProvider, configMap, core);
const dir = path.join( const dir = path.join(
getEnvironmentDirectory(environment), getEnvironmentDirectory(environment),

@ -2,14 +2,14 @@ import { BigNumber, ethers } from 'ethers';
import { Counter, Gauge, Registry } from 'prom-client'; import { Counter, Gauge, Registry } from 'prom-client';
import { format } from 'util'; import { format } from 'util';
import { HelloWorldApp } from '@abacus-network/helloworld'; import { HelloWorldApp } from '@hyperlane-xyz/helloworld';
import { import {
AbacusCore,
ChainName, ChainName,
DispatchedMessage, DispatchedMessage,
HyperlaneCore,
InterchainGasCalculator, InterchainGasCalculator,
} from '@abacus-network/sdk'; } from '@hyperlane-xyz/sdk';
import { debug, error, log, utils, warn } from '@abacus-network/utils'; import { debug, error, log, utils, warn } from '@hyperlane-xyz/utils';
import { KEY_ROLE_ENUM } from '../../src/agents/roles'; import { KEY_ROLE_ENUM } from '../../src/agents/roles';
import { startMetricsServer } from '../../src/utils/metrics'; import { startMetricsServer } from '../../src/utils/metrics';
@ -24,6 +24,7 @@ import { assertEnvironment, getArgs, getCoreEnvironmentConfig } from '../utils';
import { getApp } from './utils'; import { getApp } from './utils';
const metricsRegister = new Registry(); const metricsRegister = new Registry();
// TODO rename counter names
const messagesSendCount = new Counter({ const messagesSendCount = new Counter({
name: 'abacus_kathy_messages', name: 'abacus_kathy_messages',
help: 'Count of messages sent; records successes and failures by status label', help: 'Count of messages sent; records successes and failures by status label',
@ -390,7 +391,7 @@ async function sendMessage(
} }
async function messageIsProcessed( async function messageIsProcessed(
core: AbacusCore<any>, core: HyperlaneCore<any>,
origin: ChainName, origin: ChainName,
destination: ChainName, destination: ChainName,
message: DispatchedMessage, message: DispatchedMessage,

@ -2,17 +2,17 @@ import {
HelloWorldApp, HelloWorldApp,
HelloWorldContracts, HelloWorldContracts,
helloWorldFactories, helloWorldFactories,
} from '@abacus-network/helloworld'; } from '@hyperlane-xyz/helloworld';
import { import {
AbacusCore,
ChainMap, ChainMap,
ChainName, ChainName,
HyperlaneCore,
MultiProvider, MultiProvider,
RouterConfig, RouterConfig,
buildContracts, buildContracts,
objMap, objMap,
promiseObjAll, promiseObjAll,
} from '@abacus-network/sdk'; } from '@hyperlane-xyz/sdk';
import { Contexts } from '../../config/contexts'; import { Contexts } from '../../config/contexts';
import { KEY_ROLE_ENUM } from '../../src/agents/roles'; import { KEY_ROLE_ENUM } from '../../src/agents/roles';
@ -34,9 +34,9 @@ export async function getConfiguration<Chain extends ChainName>(
}), }),
); );
// Currently can't be typed as per https://github.com/abacus-network/abacus-monorepo/pull/594/files#diff-40a12589668de942078f498e0ab0fda512e1eb7397189d6d286b590ae87c45d1R31 // Currently can't be typed as per https://github.com/hyperlane-xyz/hyperlane-monorepo/pull/594/files#diff-40a12589668de942078f498e0ab0fda512e1eb7397189d6d286b590ae87c45d1R31
// @ts-ignore // @ts-ignore
const core: AbacusCore<Chain> = AbacusCore.fromEnvironment( const core: HyperlaneCore<Chain> = HyperlaneCore.fromEnvironment(
environment, environment,
multiProvider as any, multiProvider as any,
); );
@ -59,10 +59,10 @@ export async function getApp<Chain extends ChainName>(
keyContext, keyContext,
keyRole, keyRole,
); );
const core = AbacusCore.fromEnvironment( const core = HyperlaneCore.fromEnvironment(
coreConfig.environment, coreConfig.environment,
multiProvider as any, multiProvider as any,
) as AbacusCore<any>; ) as HyperlaneCore<any>;
return new HelloWorldApp(core, contracts, multiProvider); return new HelloWorldApp(core, contracts, multiProvider);
} }

@ -5,7 +5,7 @@ import '@ethersproject/hardware-wallets/thirdparty';
import { SafeDelegateConfig } from '@gnosis.pm/safe-service-client'; import { SafeDelegateConfig } from '@gnosis.pm/safe-service-client';
import yargs from 'yargs'; import yargs from 'yargs';
import { AllChains } from '@abacus-network/sdk'; import { AllChains } from '@hyperlane-xyz/sdk';
import { getSafeDelegates, getSafeService } from '../src/utils/safe'; import { getSafeDelegates, getSafeService } from '../src/utils/safe';

@ -9,7 +9,7 @@ import {
MultiProvider, MultiProvider,
objMap, objMap,
promiseObjAll, promiseObjAll,
} from '@abacus-network/sdk'; } from '@hyperlane-xyz/sdk';
import { Contexts } from '../config/contexts'; import { Contexts } from '../config/contexts';
import { environments } from '../config/environments'; import { environments } from '../config/environments';

@ -5,7 +5,7 @@ import {
CompilerOptions, CompilerOptions,
CompleteChainMap, CompleteChainMap,
ContractVerifier, ContractVerifier,
} from '@abacus-network/sdk'; } from '@hyperlane-xyz/sdk';
import { fetchGCPSecret } from '../src/utils/gcloud'; import { fetchGCPSecret } from '../src/utils/gcloud';
import { execCmd, readJSON } from '../src/utils/utils'; import { execCmd, readJSON } from '../src/utils/utils';

@ -1,9 +1,9 @@
import { ethers } from 'ethers'; import { ethers } from 'ethers';
import yargs from 'yargs'; import yargs from 'yargs';
import { AllChains, ChainNameToDomainId } from '@abacus-network/sdk'; import { AllChains, ChainNameToDomainId } from '@hyperlane-xyz/sdk';
// import { utils } from '@abacus-network/utils'; // import { utils } from '@hyperlane-xyz/utils';
import { S3Validator } from '../src/agents/aws/validator'; import { S3Validator } from '../src/agents/aws/validator';
function getArgs() { function getArgs() {

@ -1,4 +1,4 @@
import { ChainName } from '@abacus-network/sdk'; import { ChainName } from '@hyperlane-xyz/sdk';
import { Contexts } from '../../config/contexts'; import { Contexts } from '../../config/contexts';

@ -18,7 +18,7 @@ import {
import { KmsEthersSigner } from 'aws-kms-ethers-signer'; import { KmsEthersSigner } from 'aws-kms-ethers-signer';
import { ethers } from 'ethers'; import { ethers } from 'ethers';
import { ChainName } from '@abacus-network/sdk'; import { ChainName } from '@hyperlane-xyz/sdk';
import { AgentConfig, AwsKeyConfig, KeyType } from '../../config/agent'; import { AgentConfig, AwsKeyConfig, KeyType } from '../../config/agent';
import { getEthereumAddress, sleep } from '../../utils/utils'; import { getEthereumAddress, sleep } from '../../utils/utils';

@ -1,7 +1,7 @@
import { GetObjectCommand, S3Client } from '@aws-sdk/client-s3'; import { GetObjectCommand, S3Client } from '@aws-sdk/client-s3';
import { Readable } from 'stream'; import { Readable } from 'stream';
import { utils } from '@abacus-network/utils'; import { utils } from '@hyperlane-xyz/utils';
export const S3_BUCKET_REGEX = export const S3_BUCKET_REGEX =
/^(?:https?:\/\/)?(.*)\.s3\.(.*)\.amazonaws.com\/?$/; /^(?:https?:\/\/)?(.*)\.s3\.(.*)\.amazonaws.com\/?$/;

@ -7,7 +7,7 @@ import {
User, User,
} from '@aws-sdk/client-iam'; } from '@aws-sdk/client-iam';
import { ChainName } from '@abacus-network/sdk'; import { ChainName } from '@hyperlane-xyz/sdk';
import { Contexts } from '../../../config/contexts'; import { Contexts } from '../../../config/contexts';
import { AgentConfig } from '../../config'; import { AgentConfig } from '../../config';

@ -5,7 +5,7 @@ import {
S3Client, S3Client,
} from '@aws-sdk/client-s3'; } from '@aws-sdk/client-s3';
import { ChainName } from '@abacus-network/sdk'; import { ChainName } from '@hyperlane-xyz/sdk';
import { Contexts } from '../../../config/contexts'; import { Contexts } from '../../../config/contexts';
import { AgentConfig } from '../../config'; import { AgentConfig } from '../../config';

@ -1,4 +1,4 @@
import { BaseValidator, types, utils } from '@abacus-network/utils'; import { BaseValidator, types, utils } from '@hyperlane-xyz/utils';
import { S3Receipt, S3Wrapper } from './s3'; import { S3Receipt, S3Wrapper } from './s3';

@ -1,6 +1,6 @@
import { Wallet, ethers } from 'ethers'; import { Wallet, ethers } from 'ethers';
import { ChainName } from '@abacus-network/sdk'; import { ChainName } from '@hyperlane-xyz/sdk';
import { Contexts } from '../../config/contexts'; import { Contexts } from '../../config/contexts';
import { fetchGCPSecret, setGCPSecret } from '../utils/gcloud'; import { fetchGCPSecret, setGCPSecret } from '../utils/gcloud';

@ -1,5 +1,5 @@
import { ChainName } from '@abacus-network/sdk'; import { ChainName } from '@hyperlane-xyz/sdk';
import { utils } from '@abacus-network/utils'; import { utils } from '@hyperlane-xyz/utils';
import { Contexts } from '../../config/contexts'; import { Contexts } from '../../config/contexts';
import { AgentConfig, DeployEnvironment } from '../config'; import { AgentConfig, DeployEnvironment } from '../config';

@ -1,4 +1,4 @@
import { ChainName } from '@abacus-network/sdk'; import { ChainName } from '@hyperlane-xyz/sdk';
import { Contexts } from '../../config/contexts'; import { Contexts } from '../../config/contexts';
import { AgentConfig } from '../config'; import { AgentConfig } from '../config';

@ -1,6 +1,6 @@
import { ethers } from 'ethers'; import { ethers } from 'ethers';
import { ChainName } from '@abacus-network/sdk'; import { ChainName } from '@hyperlane-xyz/sdk';
import { Contexts } from '../../config/contexts'; import { Contexts } from '../../config/contexts';
import { assertChain, assertContext, assertRole } from '../utils/utils'; import { assertChain, assertContext, assertRole } from '../utils/utils';
@ -8,7 +8,7 @@ import { assertChain, assertContext, assertRole } from '../utils/utils';
import { parseKeyIdentifier } from './agent'; import { parseKeyIdentifier } from './agent';
import { KEY_ROLE_ENUM } from './roles'; import { KEY_ROLE_ENUM } from './roles';
// Base class to represent keys used to run Abacus agents. // Base class to represent keys used to run Hyperlane agents.
export abstract class BaseAgentKey { export abstract class BaseAgentKey {
constructor( constructor(
public readonly environment: string, public readonly environment: string,
@ -32,7 +32,7 @@ export class ReadOnlyAgentKey extends BaseAgentKey {
} }
} }
// Base class to represent cloud-hosted keys used to run Abacus agents. // Base class to represent cloud-hosted keys used to run Hyperlane agents.
export abstract class BaseCloudAgentKey extends BaseAgentKey { export abstract class BaseCloudAgentKey extends BaseAgentKey {
abstract get context(): Contexts; abstract get context(): Contexts;
abstract get identifier(): string; abstract get identifier(): string;

@ -1,5 +1,5 @@
import { ChainMap, ChainName, RemoteChainMap } from '@abacus-network/sdk'; import { ChainMap, ChainName, RemoteChainMap } from '@hyperlane-xyz/sdk';
import { types } from '@abacus-network/utils'; import { types } from '@hyperlane-xyz/utils';
import { Contexts } from '../../config/contexts'; import { Contexts } from '../../config/contexts';
import { import {

@ -1,7 +1,7 @@
import { ethers } from 'ethers'; import { ethers } from 'ethers';
import { StaticCeloJsonRpcProvider } from '@abacus-network/celo-ethers-provider'; import { StaticCeloJsonRpcProvider } from '@hyperlane-xyz/celo-ethers-provider';
import { ChainName, RetryJsonRpcProvider } from '@abacus-network/sdk'; import { ChainName, RetryJsonRpcProvider } from '@hyperlane-xyz/sdk';
import { getSecretRpcEndpoint } from '../agents'; import { getSecretRpcEndpoint } from '../agents';

@ -4,7 +4,7 @@ import {
CoreConfig, CoreConfig,
EnvironmentConfig, EnvironmentConfig,
MultiProvider, MultiProvider,
} from '@abacus-network/sdk'; } from '@hyperlane-xyz/sdk';
import { Contexts } from '../../config/contexts'; import { Contexts } from '../../config/contexts';
import { environments } from '../../config/environments'; import { environments } from '../../config/environments';

@ -1,4 +1,4 @@
import { ChainMap, ChainName } from '@abacus-network/sdk'; import { ChainMap, ChainName } from '@hyperlane-xyz/sdk';
import { DockerConfig } from './agent'; import { DockerConfig } from './agent';

@ -1,17 +1,17 @@
import { import {
AbacusCoreDeployer,
ChainName, ChainName,
HyperlaneCoreDeployer,
chainMetadata, chainMetadata,
objMap, objMap,
} from '@abacus-network/sdk'; } from '@hyperlane-xyz/sdk';
import { DeployEnvironment, RustConfig } from '../config'; import { DeployEnvironment, RustConfig } from '../config';
import { ConnectionType } from '../config/agent'; import { ConnectionType } from '../config/agent';
import { writeJSON } from '../utils/utils'; import { writeJSON } from '../utils/utils';
export class AbacusCoreInfraDeployer< export class HyperlaneCoreInfraDeployer<
Chain extends ChainName, Chain extends ChainName,
> extends AbacusCoreDeployer<Chain> { > extends HyperlaneCoreDeployer<Chain> {
writeRustConfigs(environment: DeployEnvironment, directory: string) { writeRustConfigs(environment: DeployEnvironment, directory: string) {
const configChains = Object.keys(this.configMap); const configChains = Object.keys(this.configMap);
objMap(this.configMap, (chain) => { objMap(this.configMap, (chain) => {

@ -1,22 +1,22 @@
import { prompts } from 'prompts'; import { prompts } from 'prompts';
import { import {
AbacusConnectionManagerViolation,
AbacusConnectionManagerViolationType,
AbacusCoreChecker,
ChainMap, ChainMap,
ChainName, ChainName,
ChainNameToDomainId, ChainNameToDomainId,
ConnectionManagerViolation,
ConnectionManagerViolationType,
CoreViolationType, CoreViolationType,
EnrolledInboxesViolation, EnrolledInboxesViolation,
EnrolledValidatorsViolation, EnrolledValidatorsViolation,
HyperlaneCoreChecker,
OwnerViolation, OwnerViolation,
ValidatorManagerViolation, ValidatorManagerViolation,
ValidatorManagerViolationType, ValidatorManagerViolationType,
ViolationType, ViolationType,
objMap, objMap,
} from '@abacus-network/sdk'; } from '@hyperlane-xyz/sdk';
import { types, utils } from '@abacus-network/utils'; import { types, utils } from '@hyperlane-xyz/utils';
import { canProposeSafeTransactions } from '../utils/safe'; import { canProposeSafeTransactions } from '../utils/safe';
@ -38,11 +38,11 @@ type AnnotatedCallData = types.CallData & {
description: string; description: string;
}; };
export class AbacusCoreGovernor<Chain extends ChainName> { export class HyperlaneCoreGovernor<Chain extends ChainName> {
readonly checker: AbacusCoreChecker<Chain>; readonly checker: HyperlaneCoreChecker<Chain>;
private calls: ChainMap<Chain, AnnotatedCallData[]>; private calls: ChainMap<Chain, AnnotatedCallData[]>;
constructor(checker: AbacusCoreChecker<Chain>) { constructor(checker: HyperlaneCoreChecker<Chain>) {
this.checker = checker; this.checker = checker;
this.calls = objMap(this.checker.app.contractsMap, () => []); this.calls = objMap(this.checker.app.contractsMap, () => []);
} }
@ -137,9 +137,9 @@ export class AbacusCoreGovernor<Chain extends ChainName> {
this.handleOwnerViolation(violation as OwnerViolation); this.handleOwnerViolation(violation as OwnerViolation);
break; break;
} }
case CoreViolationType.AbacusConnectionManager: { case CoreViolationType.ConnectionManager: {
this.handleAbacusConnectionManagerViolation( this.handleHyperlaneConnectionManagerViolation(
violation as AbacusConnectionManagerViolation, violation as ConnectionManagerViolation,
); );
break; break;
} }
@ -222,28 +222,28 @@ export class AbacusCoreGovernor<Chain extends ChainName> {
); );
} }
handleAbacusConnectionManagerViolation( handleHyperlaneConnectionManagerViolation(
violation: AbacusConnectionManagerViolation, violation: ConnectionManagerViolation,
) { ) {
const abacusConnectionManager = violation.contract; const connectionManager = violation.contract;
switch (violation.abacusConnectionManagerType) { switch (violation.connectionManagerType) {
case AbacusConnectionManagerViolationType.EnrolledInboxes: { case ConnectionManagerViolationType.EnrolledInboxes: {
const typedViolation = violation as EnrolledInboxesViolation; const typedViolation = violation as EnrolledInboxesViolation;
const remoteId = ChainNameToDomainId[typedViolation.remote]; const remoteId = ChainNameToDomainId[typedViolation.remote];
const baseDescription = `as ${typedViolation.remote} Inbox on ${typedViolation.chain}`; const baseDescription = `as ${typedViolation.remote} Inbox on ${typedViolation.chain}`;
this.pushSetReconcilationCalls({ this.pushSetReconcilationCalls({
...typedViolation, ...typedViolation,
add: (inbox) => ({ add: (inbox) => ({
to: abacusConnectionManager.address, to: connectionManager.address,
data: abacusConnectionManager.interface.encodeFunctionData( data: connectionManager.interface.encodeFunctionData(
'enrollInbox', 'enrollInbox',
[remoteId, inbox], [remoteId, inbox],
), ),
description: `Enroll ${inbox} ${baseDescription}`, description: `Enroll ${inbox} ${baseDescription}`,
}), }),
remove: (inbox) => ({ remove: (inbox) => ({
to: abacusConnectionManager.address, to: connectionManager.address,
data: abacusConnectionManager.interface.encodeFunctionData( data: connectionManager.interface.encodeFunctionData(
'unenrollInbox', 'unenrollInbox',
[inbox], [inbox],
), ),
@ -254,7 +254,7 @@ export class AbacusCoreGovernor<Chain extends ChainName> {
} }
default: default:
throw new Error( throw new Error(
`Unsupported abacus connection manager violation type ${violation.abacusConnectionManagerType}`, `Unsupported connection manager violation type ${violation.connectionManagerType}`,
); );
} }
} }

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save