Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(cli): merge in cli-2.0 (v4.0.0) #3981

Merged
merged 72 commits into from
Jun 27, 2024
Merged

feat(cli): merge in cli-2.0 (v4.0.0) #3981

merged 72 commits into from
Jun 27, 2024

Conversation

cmcewen
Copy link
Contributor

@cmcewen cmcewen commented Jun 17, 2024

CLI v4.0.0

ltyu and others added 30 commits May 16, 2024 12:52
### Description
Adds an ICA Module with `create()` to be used in an upcoming CoreModule
PR. For now the `read()` and `update()` are not implemented because its
unclear if they will be used in CoreModule

### Backward compatibility

Yes

### Testing

Unit Tests
### Description

<!--
What's included in this PR?
-->

### Drive-by changes

<!--
Are there any minor or drive-by changes also included?
-->

### Related issues

<!--
- Fixes #[issue number here]
-->

### Backward compatibility

<!--
Are these changes backward compatible? Are there any infrastructure
implications, e.g. changes that would prohibit deploying older commits
using this infra tooling?

Yes/No
-->

### Testing

<!--
What kind of testing have these changes undergone?

None/Manual/Unit Tests
-->

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Kunal Arora <55632507+aroralanuk@users.noreply.github.com>
Co-authored-by: Connor McEwen <connor.mcewen@gmail.com>
…ctor ICA interface (#3817)

See comments and approvals here:
#3792
### Description
This Pull Request introduces the new EVM core module be implementing the
`create()` function. Currently, `create()` will call the existing
CoreDeployer

### Related issues

- Fixes #3575 

### Backward compatibility
Yes

### Testing
Unit Tests

---------

Signed-off-by: Paul Balaji <paul@hyperlane.xyz>
Co-authored-by: Paul Balaji <paul@hyperlane.xyz>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Kunal Arora <55632507+aroralanuk@users.noreply.github.com>
Co-authored-by: Connor McEwen <connor.mcewen@gmail.com>
Co-authored-by: Trevor Porter <tkporter4@gmail.com>
Co-authored-by: byeongsu-hong <hong@byeongsu.dev>
Co-authored-by: Avi Atkin <103125634+avious00@users.noreply.github.com>
Co-authored-by: Daniel Savu <23065004+daniel-savu@users.noreply.github.com>
Co-authored-by: J M Rossy <jm.rossy@gmail.com>
Co-authored-by: Ali Alaoui <aalaoui2001@gmail.com>
Co-authored-by: Nam Chu Hoai <nambrot@googlemail.com>
Co-authored-by: Paul Balaji <paul@hyperlane.xyz>
Co-authored-by: omahs <73983677+omahs@users.noreply.github.com>
### Description

- Fixes CLI e2e

### Drive-by changes

- Use `HyperlaneCore` helpers to simplify CLI

### Backward compatibility

Yes

### Testing

CLI E2E matrix (now required on `cli-2.0` branch)
### Description

* adds new `hyperlane core config` command
* this combines previous `hl config create ism` & `hl config create
hook` control flows
* adds default ISM behaviour to aggregate `IsmType.TRUSTED_RELAYER` and
the previous default fallback, `IsmType.MESSAGE_ID_MULTISIG`

### Related issues

- Fixes #3688

### Backward compatibility

* yes

### Testing

* [x] manual
* [ ] ci-test
### Description

* adds new `hyperlane warp config` command
* this replaces previous `hl config create warp` control flow

### Related issues

- fixes #3537

### Backward compatibility

* yes

### Testing

* [x] manual
* [ ] ci-test
### Description

* adds new `hyperlane core read` command
* this replaces previous `hl ism read` & `hl hook read` control flows

### Related issues

- fixes https://github.com/hyperlane-xyz/issues/issues/1185

### Backward compatibility

* yes

### Testing

* [x] manual
* [ ] ci-test
### Description

* adds new `hyperlane warp read` command

### Related issues

- fixes https://github.com/hyperlane-xyz/issues/issues/1189

### Backward compatibility

* yes

### Testing

* [x] manual
* [ ] ci-test
### Description
- Adds `hyperlane core deploy` to use EvmCoreModule
- Legacy `hyperlane deploy core` is retained to keep cli e2e test
working
- `hyperlane core deploy` expects to deploy to only a single chain

### Drive-by changes

<!--
Are there any minor or drive-by changes also included?
-->

### Related issues
- Fixes #3539

### Backward compatibility
yes, legacy `hyperlane deploy core` is retained

### Testing
- Cli integration 
- Manual
### Description
- Updates `hl core config` to output a single `CoreConfig` file
- Makes `CoreConfig` single chain ie. remove ChainMap
- Removes `nativeTokenAndDecimals()` for fee calculation
- Add description as a prameter for `outputFileCommandOption()`

### Related issues
- Fixes #3877

### Backward compatibility
No, Outputs CoreConfig as a single file and no longer expecting 2
individual files

### Testing
Manual
### Description
- Updates `hl core read` to output a single `CoreConfig` file

### Related issues
- Fixes #3880

### Backward compatibility
Yes

### Testing
Manual
### Description

* adds further zod support to SDK, namely for areas relating to
`transactions`

### Drive-by changes

* No

### Related issues

- Fixes #3740

### Backward compatibility

- Yes

### Testing

- None
### Description

- adds `hl warp send` command in favor of `hl send transfer`

### Drive-by changes

* none

### Related issues

- fixes #3691

### Backward compatibility

- yes

### Testing

- ci-test: includes call to `hl warp send`
- manual: `hl warp send`
### Description
- Renames `chain` to `registry
  - `hl registry *` 
- Renames `config` to `configure`
  - `hl core configure`
  - `hl warp configure`

### Drive-by
- Update `hl core configure` to prompt user for `owner`
- Update key detection for cli `--key`
- bug fix in core mailbox deploy
  
### Backward compatibility
No

### Testing
Manual
#### will run `npm publish --tag alpha` once approved and merged from
`cli-2.0` branch to `main`
…m hyperlane * configure list (#3897)

### Description

* removes domainRoutingHook & interchainGasPaymaster(Hook) from
hyperlane * configure list

### Drive-by changes

- none

### Related issues

- fixes #3896

### Backward compatibility

- yes

### Testing

- ci-test
### Description
- Adds WarpModule with create logic. 
- Updates logic to WarpModuleReader

### Drive by
- Adds CustomIsmConfig mentioned in
#3773

### Related issues
- Fixes #3839 

### Backward compatibility
Yes

### Testing
Unit Tests

---------

Signed-off-by: Paul Balaji <paul@hyperlane.xyz>
Co-authored-by: Paul Balaji <paul@hyperlane.xyz>
Co-authored-by: Yorke Rhodes <yorke@hyperlane.xyz>
Co-authored-by: J M Rossy <jm.rossy@gmail.com>
Co-authored-by: Noah Bayindirli 🥂 <noah@primeprotocol.xyz>
Co-authored-by: Noah Bayindirli 🥂 <noah@hyperlane.xyz>
### Description

- adds `source` field to detect and confirm prompt so users know where
defaults are coming from

### Drive-by changes

- none

### Related issues

- none

### Backward compatibility

- yes

### Testing

- manual
…re (#3908)

### Description

- removes `opStackIsm` & `pausableIsm` from `hyperlane core configure`

### Drive-by changes

- none

### Related issues

- fixes #3907

### Backward compatibility

- yes

### Testing

- ci-test
- manual
### Description
- Update `hyperlane warp deploy` command

### Drive-by changes
- Move Core deploy to core.ts
- Update Module return args to match TokenType

### Related issues
- Fixes
#[3541](#3541)


### Backward compatibility
yes, but old command no longer applies

### Testing
Manual

---------

Signed-off-by: Paul Balaji <paul@hyperlane.xyz>
Co-authored-by: Paul Balaji <paul@hyperlane.xyz>
Co-authored-by: Yorke Rhodes <yorke@hyperlane.xyz>
Co-authored-by: J M Rossy <jm.rossy@gmail.com>
Co-authored-by: Noah Bayindirli 🥂 <noah@primeprotocol.xyz>
Co-authored-by: Noah Bayindirli 🥂 <noah@hyperlane.xyz>
### Description

* removes prompt on default hooks in `hyperlane core configure`
* required hook now defaults to protocol and default hook defaults to
merkle

### Drive-by changes

- reshuffling `hyperlane warp configure` to accommodate the change as
well (and maintain symmetry)

### Related issues

- fixes #3895

### Backward compatibility

- yes
### Testing

- manual
- ci-test
nbayindirli and others added 6 commits June 25, 2024 15:02
…4050)

### Description

- Displays formatted deployment plan to confirm core deploy

### Drive-by changes

- none

### Related issues

- Fixes P1

### Backward compatibility

- yes
 
### Testing

- Output:
```
➜  cli git:(cli-2.0) ✗ hl core deploy --registry $HOME/workplace/Hyperlane/hyperlane-registry
Hyperlane CLI

Hyperlane permissionless deployment
------------------------------------------------
? Select chain to connect: alpha

Deployment plan
===============
Transaction signer and owner of new contracts: 0x16F4898F47c085C41d7Cc6b1dc72B91EA617dcBb
Deploying core contracts to network: alpha
┌────────────────────────┬──────────────────────────────────────────────┐
│ (index)                │ Values                                       │
├────────────────────────┼──────────────────────────────────────────────┤
│ Name                   │ 'alpha'                                      │
│ Display Name           │ 'Alpha'                                      │
│ Chain ID               │ 75904                                        │
│ Domain ID              │ 75904                                        │
│ Protocol               │ 'ethereum'                                   │
│ JSON RPC URL           │ 'https://alpha-tk.rpc.caldera.xyz/http' │
│ Native Token: Symbol   │ 'ETH'                                        │
│ Native Token: Name     │ 'Ether'                                      │
│ Native Token: Decimals │ 18                                           │
└────────────────────────┴──────────────────────────────────────────────┘
Note: There are several contracts required for each chain, but contracts in your provided registries will be skipped.
? Is this deployment plan correct? (Y/n)
```
### Description

Adds xerc20 mint and burn limit fetching to `warp read --symbol`

### Backward compatibility

Yes

### Testing

Manual
![Screenshot 2024-06-20 at 3 19
13 PM](https://github.com/hyperlane-xyz/hyperlane-monorepo/assets/3020995/9692e3fd-eecb-4758-af39-04639639b482)
### Description
This PR fixes RPC errors when trying to send a test message using the
CLI for older chains that don't have tokenType (e.g., `hyperlane send
message --relay --origin fuji --destination betaop`)

Additional details:
https://discord.com/channels/935678348330434570/1254873902480359435/1255215832959811687

### Backward compatibility
Yes

### Testing
- tested with `hyperlane warp deploy` and then `hyperlane warp send
--relay --warp
$HOME/.hyperlane/deployments/warp_routes/ETH/alfajores-betaop-config.yaml`
- tested `hyperlane send message --relay --origin fuji --destination
betaop`
- tested `hyperlane send message --relay --origin alfrajores
--destination betaop`
- tested `hyperlane send message --relay --origin holesky --destination
betaop`
- tested `hyperlane core read --mailbox
0xEf9F292fcEBC3848bF4bB92a96a04F9ECBb78E59 --chain alfajores `

---------

Co-authored-by: Noah Bayindirli 🥂 <noah@primeprotocol.xyz>
Forgot to add the new commands to the top-level cli.ts when I added back
the commands in
#3990

Noticed when trying to test
#4055

Tested with:
```sh
$ yarn workspace @hyperlane-xyz/cli run hyperlane ism read --chain inevm --address 0x79A7c7Fe443971CBc6baD623Fdf8019C379a7178
Hyperlane CLI
{"level":30,"time":1719408936852,"pid":74170,"msg":"Your CLI version: 3.15.0, latest version: 3.16.0"}
Hyperlane ISM Read
------------------
ISM Config at 0x79A7c7Fe443971CBc6baD623Fdf8019C379a7178 on inevm:
address: "0x79A7c7Fe443971CBc6baD623Fdf8019C379a7178"
type: staticAggregationIsm
modules:
  - address: "0x718901b7570c59241304758345aF297Ff47D83A1"
    type: messageIdMultisigIsm
    validators:
      - "0x5450447aeE7B544c462C9352bEF7cAD049B0C2Dc"
      - "0x570AF9B7B36568C8877eeBBA6c6727aA9DAB7268"
      - "0x8292B1A53907eCE0f76Af8A50724e9492bcDc8A3"
      - "0xEAF5cF9100f36A4BaEeA779F8745DDa86159103C"
    threshold: 2
  - address: "0x8dac7Df615Cb7599aCfD4EC2CBd9c67Cd5DF6BF6"
    type: merkleRootMultisigIsm
    validators:
      - "0x5450447aeE7B544c462C9352bEF7cAD049B0C2Dc"
      - "0x570AF9B7B36568C8877eeBBA6c6727aA9DAB7268"
      - "0x8292B1A53907eCE0f76Af8A50724e9492bcDc8A3"
      - "0xEAF5cF9100f36A4BaEeA779F8745DDa86159103C"
    threshold: 2
threshold: 1
```

```sh
$ yarn workspace @hyperlane-xyz/cli run hyperlane hook read --chain polygon --address 0x0071740Bf129b05C4684abfbBeD248D80971cce2
Hyperlane CLI
{"level":30,"time":1719409044431,"pid":75236,"msg":"Your CLI version: 3.15.0, latest version: 3.16.0"}
Hyperlane Hook Read
------------------
Hook Config at 0x0071740Bf129b05C4684abfbBeD248D80971cce2 on polygon:
owner: "0xa7ECcdb9Be08178f896c26b7BbD8C3D4E844d9Ba"
address: "0x0071740Bf129b05C4684abfbBeD248D80971cce2"
type: interchainGasPaymaster
beneficiary: "0xa7ECcdb9Be08178f896c26b7BbD8C3D4E844d9Ba"
oracleKey: "0xa7ECcdb9Be08178f896c26b7BbD8C3D4E844d9Ba"
overhead:
  ancient8: 159736
  blast: 159736
  ethereum: 166887
  bsc: 160545
  inevm: 159736
  gnosis: 160545
  injective: 600000
  celo: 160948
  avalanche: 159736
  fraxtal: 159337
  arbitrum: 166887
  base: 160948
  sei: 159337
  osmosis: 600000
  scroll: 160545
  mode: 159337
  mantapacific: 182044
  moonbeam: 160545
  linea: 159736
  neutron: 600000
  polygonzkevm: 159736
  redstone: 159337
  optimism: 160948
  zetachain: 159337
  viction: 159736
oracleConfig:
  ancient8:
    tokenExchangeRate: "89752048061167"
    gasPrice: "483551859"
  blast:
    tokenExchangeRate: "89752048061167"
    gasPrice: "500000000"
  ethereum:
    tokenExchangeRate: "89752048061167"
    gasPrice: "20000000000"
  bsc:
    tokenExchangeRate: "15385035499726"
    gasPrice: "5000000000"
  inevm:
    tokenExchangeRate: "572910977607"
    gasPrice: "30301230683"
  gnosis:
    tokenExchangeRate: "27292763517"
    gasPrice: "633618644641"
  injective:
    tokenExchangeRate: "572910977607"
    gasPrice: "9777321413"
  celo:
    tokenExchangeRate: "15645849262"
    gasPrice: "1103178625684"
  avalanche:
    tokenExchangeRate: "656744948115"
    gasPrice: "43212830197"
  fraxtal:
    tokenExchangeRate: "89790551611140"
    gasPrice: "484265767"
  arbitrum:
    tokenExchangeRate: "89752048061167"
    gasPrice: "500000000"
  base:
    tokenExchangeRate: "89752048061167"
    gasPrice: "480773616"
  sei:
    tokenExchangeRate: "9438558163"
    gasPrice: "1842759845538"
  osmosis:
    tokenExchangeRate: "1448574549300000000"
    gasPrice: "3866"
  scroll:
    tokenExchangeRate: "89752048061167"
    gasPrice: "1445081549"
  mode:
    tokenExchangeRate: "89752048061167"
    gasPrice: "484473517"
  mantapacific:
    tokenExchangeRate: "89752048061167"
    gasPrice: "437064663"
  moonbeam:
    tokenExchangeRate: "5307373020"
    gasPrice: "3258335859000"
  linea:
    tokenExchangeRate: "89752048061167"
    gasPrice: "483551859"
  neutron:
    tokenExchangeRate: "1169238121200000000"
    gasPrice: "11976"
  polygonzkevm:
    tokenExchangeRate: "89752048061167"
    gasPrice: "3950000000"
  redstone:
    tokenExchangeRate: "89752048061167"
    gasPrice: "193789404"
  optimism:
    tokenExchangeRate: "89752048061167"
    gasPrice: "480773616"
  zetachain:
    tokenExchangeRate: "22360158382"
    gasPrice: "777856564583"
  viction:
    tokenExchangeRate: "9926843254"
    gasPrice: "1748784306278"
```

Signed-off-by: Paul Balaji <10051819+paulbalaji@users.noreply.github.com>
### Description

<!--
What's included in this PR?
-->

### Drive-by changes

<!--
Are there any minor or drive-by changes also included?
-->

### Related issues

<!--
- Fixes #[issue number here]
-->

### Backward compatibility

<!--
Are these changes backward compatible? Are there any infrastructure
implications, e.g. changes that would prohibit deploying older commits
using this infra tooling?

Yes/No
-->

### Testing

<!--
What kind of testing have these changes undergone?

None/Manual/Unit Tests
-->
@paulbalaji paulbalaji changed the title [DRAFT] merge in cli-2.0 feat(cli): merge in cli-2.0 Jun 26, 2024
@nbayindirli nbayindirli changed the title feat(cli): merge in cli-2.0 feat(cli): merge in cli-2.0 (v4.0.0) Jun 26, 2024
Copy link
Contributor

@nbayindirli nbayindirli left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚀🚢🛳️🛸⛴️🚚📦

paulbalaji and others added 5 commits June 26, 2024 21:32
Signed-off-by: Paul Balaji <10051819+paulbalaji@users.noreply.github.com>
Signed-off-by: Paul Balaji <10051819+paulbalaji@users.noreply.github.com>
resolves hyperlane-xyz/issues#1291
- remove test4 from kathy test
- drive-by tidy-up of `test4` metadata
- resets e2e test timeout back to original figure
- reuse original e2e rust cache

gonna keep the original commits on here as a trail of thought

---------

Signed-off-by: Paul Balaji <10051819+paulbalaji@users.noreply.github.com>
@paulbalaji paulbalaji merged commit 892efd4 into main Jun 27, 2024
37 of 38 checks passed
@paulbalaji paulbalaji deleted the cli-2.0 branch June 27, 2024 13:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants