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(contracts): ValueRouter #4809

Closed
wants to merge 62 commits into from
Closed

Conversation

aroralanuk
Copy link
Contributor

Description

Drive-by changes

Related issues

Backward compatibility

Testing

ltyu and others added 30 commits October 22, 2024 21:41
### Description
Reverts #4720

Reasons:
- Many of the public RPCs don't allow concurrency reads. The ones that
do don't tell us how much they allow so no point in defaulting to some
assumed number (20)
- retryAsync doesn't do anything here as the SmartProvider knows what to
do if a provider fails (retries with cooldown). SmartProvider has it's
own retryAsync
- Concurrency is configurable in the metadata. so configure for each
provider, as intended.
<img width="1233" alt="Screenshot 2024-10-22 at 4 11 02 PM"
src="https://github.com/user-attachments/assets/853cb224-c8c1-4a80-bf7e-8469ab3cc045">
### Description

<!--
What's included in this PR?
-->
Allows setting an arbitrary string in `reorgPeriod`, which is used as a
block tag to get the finalized block. Currently, only the Ethereum
connector supports this feature with the following tags:
- finalized
- safe
- pending
- latest
- earliest

This is currently useful for EVM-compatible chains that don't have a
fixed reorganization period, but instead rely on the block tag
`Finalized` to indicate finality. For such chains, you should set
`reorgPeriod` to `finalized` instead of a number of blocks.


### 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
-->
Yes
### Testing

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

None/Manual/Unit Tests
-->

---------

Co-authored-by: Daniel Savu <[email protected]>
### Description

chore: split cli e2e into separate job

before:

![image](https://github.com/user-attachments/assets/bb19243f-fc38-478e-b94c-f39020756964)

after:

![image](https://github.com/user-attachments/assets/6ebcb783-1d07-4350-8823-5cc5df7c5c65)

### Drive-by changes

na

### Related issues

`yarn-test` step sometimes taking even 15 mins nowadays, half of which
is e2e tests

### Backward compatibility

yes

### Testing

ci
### Description

Fix for leftover
[comment](#4629 (comment))
from #4629

### 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
-->
### 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
-->
### Description

- feat: add `EthJsonRpcBlockParameterTag` enum for validating
reorgPeriod
- cli will check that reorgPeriod is either a number or one of the
appropriate tags, but the underlying schema is still left loose to be
forwards-compatible
- exporting the enum will also let us use this in unit tests on the
registry side

### Drive-by changes

na

### Related issues

na

### Backward compatibility

ye

### Testing

ci

---------

Signed-off-by: pbio <[email protected]>
### Description

- feat: add stride to relayer
- feat: add stride to scraper

### Drive-by changes

- fix filtering non-evm addresses in appFromAddressesMapHelper
- fallback to manual `yarn install` in `yarn-build-with-cache` action
- fix bug in app governor to make inevm env-test pass

### Related issues

na

### Backward compatibility

yes

### Testing

manual

---------

Signed-off-by: pbio <[email protected]>
### Description

To match the new TS schema

### 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
-->
This PR was opened by the [Changesets
release](https://github.com/changesets/action) GitHub action. When
you're ready to do a release, you can merge this and the packages will
be published to npm automatically. If you're not ready to do a release
yet, that's fine, whenever you add more changesets to main, this PR will
be updated.


# Releases
## @hyperlane-xyz/[email protected]

### Minor Changes

- 72c23c0: Added PRECISION and rateUpdateNonce to ensure compatibility
of HypERC4626

### Patch Changes

- c9085af: Patched OPL2ToL1Ism to check for correct messageId for
external call in verify
-   ec6b874: Added nonce to HypERC4626
-   Updated dependencies [f1712de]
-   Updated dependencies [2934195]
    -   @hyperlane-xyz/[email protected]

## @hyperlane-xyz/[email protected]

### Minor Changes

- 41035aa: Add strategyUrl detect and validation in the beginning of
`warp apply`
    Remove yaml transactions print from `warp apply`
- 2934195: Adds new `core check` command to compare local
configuration and on chain deployments. Adds memoization to the
EvmHookReader to avoid repeating configuration derivation
- 32d0a67: Adds the warp check command to compare warp routes config
files with on chain warp route deployments
- 3662297: Add prompt in `warp init` command to choose if a trusted
relayer should be used instead of making the choice by default for the
user and enable the `--yes` flag to default to a trusted ISM
-   b1ff48b: Add rebasing yield route support into CLI/SDK
- d41aa69: Add `EthJsonRpcBlockParameterTag` enum for validating
reorgPeriod
- c3e9268: Add support for an arbitrary string in `reorgPeriod`, which
is used as a block tag to get the finalized block.
- a4d5d69: Update `warp apply` such that it updates in place AND
extends in a single call
- 01e7070: updates the multi chain selection prompt by adding search
functionality and an optional confirmation prompt for the current
selection

### Patch Changes

-   e89f9e3: Update registry to v4.7.0
-   Updated dependencies [f1712de]
-   Updated dependencies [46044a2]
-   Updated dependencies [02a5b92]
-   Updated dependencies [2934195]
-   Updated dependencies [8001bbb]
-   Updated dependencies [32d0a67]
-   Updated dependencies [b1ff48b]
-   Updated dependencies [d41aa69]
-   Updated dependencies [c3e9268]
-   Updated dependencies [7d7bcc1]
-   Updated dependencies [7f3e066]
-   Updated dependencies [2317eca]
    -   @hyperlane-xyz/[email protected]
    -   @hyperlane-xyz/[email protected]

## @hyperlane-xyz/[email protected]

### Minor Changes

-   46044a2: Deploy to odysseytestnet
- 02a5b92: Enroll new validators. Add tx overrides when deploying ICA
accounts. Core checker now surfaces owner violations for defaultHook and
requiredHook. App checker temporarily ignores bytecode mismatch
violations.
- 2934195: Adds new `core check` command to compare local
configuration and on chain deployments. Adds memoization to the
EvmHookReader to avoid repeating configuration derivation
-   8001bbb: Add override to some transactions to fix warp apply
- 32d0a67: Adds the warp check command to compare warp routes config
files with on chain warp route deployments
-   b1ff48b: Add rebasing yield route support into CLI/SDK
- d41aa69: Add `EthJsonRpcBlockParameterTag` enum for validating
reorgPeriod
- c3e9268: Add support for an arbitrary string in `reorgPeriod`, which
is used as a block tag to get the finalized block.
-   7d7bcc1: Add deployments for mainnets: flow, metall2, polynomial

### Patch Changes

- 7f3e066: Fix filtering non-evm addresses in
appFromAddressesMapHelper
- 2317eca: Set transaction overrides and add 10% gas limit buffer when
sending message through HyperlaneCore.
-   Updated dependencies [f1712de]
-   Updated dependencies [2934195]
-   Updated dependencies [c9085af]
-   Updated dependencies [ec6b874]
-   Updated dependencies [72c23c0]
    -   @hyperlane-xyz/[email protected]
    -   @hyperlane-xyz/[email protected]

## @hyperlane-xyz/[email protected]

### Minor Changes

- 2934195: Adds new `core check` command to compare local
configuration and on chain deployments. Adds memoization to the
EvmHookReader to avoid repeating configuration derivation

### Patch Changes

-   f1712de: Fix objMerge implementation

## @hyperlane-xyz/[email protected]

### Patch Changes

-   e89f9e3: Update registry to v4.7.0
-   Updated dependencies [46044a2]
-   Updated dependencies [02a5b92]
-   Updated dependencies [2934195]
-   Updated dependencies [8001bbb]
-   Updated dependencies [32d0a67]
-   Updated dependencies [c9085af]
-   Updated dependencies [b1ff48b]
-   Updated dependencies [d41aa69]
-   Updated dependencies [ec6b874]
-   Updated dependencies [c3e9268]
-   Updated dependencies [72c23c0]
-   Updated dependencies [7d7bcc1]
-   Updated dependencies [7f3e066]
-   Updated dependencies [2317eca]
    -   @hyperlane-xyz/[email protected]
    -   @hyperlane-xyz/[email protected]

## @hyperlane-xyz/[email protected]

### Patch Changes

-   e89f9e3: Update registry to v4.7.0
-   Updated dependencies [f1712de]
-   Updated dependencies [46044a2]
-   Updated dependencies [02a5b92]
-   Updated dependencies [2934195]
-   Updated dependencies [8001bbb]
-   Updated dependencies [32d0a67]
-   Updated dependencies [b1ff48b]
-   Updated dependencies [d41aa69]
-   Updated dependencies [c3e9268]
-   Updated dependencies [7d7bcc1]
-   Updated dependencies [7f3e066]
-   Updated dependencies [2317eca]
    -   @hyperlane-xyz/[email protected]
    -   @hyperlane-xyz/[email protected]

## @hyperlane-xyz/[email protected]

### Minor Changes

- b3495b2: Updates the warpIds for Renzo's latest deployment to Sei
and Taiko to be used by the Checker
- c3e9268: Add support for an arbitrary string in `reorgPeriod`, which
is used as a block tag to get the finalized block.

### Patch Changes

-   Updated dependencies [f1712de]
-   Updated dependencies [46044a2]
-   Updated dependencies [02a5b92]
-   Updated dependencies [2934195]
-   Updated dependencies [8001bbb]
-   Updated dependencies [32d0a67]
-   Updated dependencies [b1ff48b]
-   Updated dependencies [e89f9e3]
-   Updated dependencies [d41aa69]
-   Updated dependencies [c3e9268]
-   Updated dependencies [7d7bcc1]
-   Updated dependencies [7f3e066]
-   Updated dependencies [2317eca]
    -   @hyperlane-xyz/[email protected]
    -   @hyperlane-xyz/[email protected]
    -   @hyperlane-xyz/[email protected]

## @hyperlane-xyz/[email protected]



## @hyperlane-xyz/[email protected]

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
### Description

### Drive-by changes

None

### Related issues

- closes chainlight-io/2024-08-hyperlane#7

### Backward compatibility

Yes

### Testing

Unit
### Description

Minor token related changes like adding custom hook to 4626 collateral,
checking for ERC20 as valid contract in HypERC20Collateral, etc.

### Drive-by changes

check for overflow in bytes32ToAddress

### Related issues

- partly fixes
chainlight-io/2024-08-hyperlane#14

### Backward compatibility

Yes

### Testing

Unit tests
### Description

- chore: set finalized reorgPeriod
- update reorg period

### Drive-by changes

na

### Related issues

na

### Backward compatibility

agents are already updated

### Testing

manual

Signed-off-by: pbio <[email protected]>
### Description

fix: revert chiliz reorg period back to 9

### Drive-by changes

na

### Related issues

na

### Backward compatibility

ye

### Testing

relayer sad times -
[context](https://discord.com/channels/935678348330434570/1298963431743029359/1298965217757102100)
…4727)

### Description

Make HyperlaneProvider to request block by height, not by hash.

Since it is hard to find a block by hash for Solana, we switch to use
block height. We have to do it for all type of chains since we need to
change signature of chain-agnostic method

### Drive-by changes

* Small method rename

### Related issues

- Contributes into
#4272

### Backward compatibility

Yes

### Testing

Manual run of Scraper for Ethereum and Neutron chains.

---------

Co-authored-by: Danil Nemirovsky <[email protected]>
### Description

fix: update cli dependencies

### Drive-by changes

na

### Related issues


https://discord.com/channels/935678348330434570/961710804011458621/1299011251858440324

### Backward compatibility

y

### Testing

`npm pack`
`npm install -g hyperlane-cli-local.tgz`

---------

Signed-off-by: pbio <[email protected]>
This PR was opened by the [Changesets
release](https://github.com/changesets/action) GitHub action. When
you're ready to do a release, you can merge this and the packages will
be published to npm automatically. If you're not ready to do a release
yet, that's fine, whenever you add more changesets to main, this PR will
be updated.


# Releases
## @hyperlane-xyz/[email protected]

### Minor Changes

- c55257c: Minor token related changes like adding custom hook to 4626
collateral, checking for ERC20 as valid contract in HypERC20Collateral,
etc.
-   8cc0d9a: Added WHypERC4626 as a wrapper for rebasing HypERC4626

### Patch Changes

-   8cc0d9a: Add wrapped HypERC4626 for easy defi use
    -   @hyperlane-xyz/[email protected]

## @hyperlane-xyz/[email protected]

### Patch Changes

- 3474a84: Explicitly define inquirer/core and inquirier/figures
dependencies
    -   @hyperlane-xyz/[email protected]
    -   @hyperlane-xyz/[email protected]

## @hyperlane-xyz/[email protected]

### Patch Changes

-   Updated dependencies [8cc0d9a]
-   Updated dependencies [c55257c]
-   Updated dependencies [8cc0d9a]
    -   @hyperlane-xyz/[email protected]
    -   @hyperlane-xyz/[email protected]

## @hyperlane-xyz/[email protected]

### Patch Changes

-   Updated dependencies [8cc0d9a]
-   Updated dependencies [c55257c]
-   Updated dependencies [8cc0d9a]
    -   @hyperlane-xyz/[email protected]
    -   @hyperlane-xyz/[email protected]

## @hyperlane-xyz/[email protected]

### Patch Changes

-   @hyperlane-xyz/[email protected]
-   @hyperlane-xyz/[email protected]

## @hyperlane-xyz/[email protected]



## @hyperlane-xyz/[email protected]

### Patch Changes

-   @hyperlane-xyz/[email protected]
-   @hyperlane-xyz/[email protected]
-   @hyperlane-xyz/[email protected]

## @hyperlane-xyz/[email protected]



## @hyperlane-xyz/[email protected]

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
…#4747)

### Description

- deletes all the mainnet2 artifacts that we don't need
- moves the sealevel helper scripts into more explicit directories, and
ensures thresholds are appropriate
- updates the eclipse ISM

### 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
-->
…deployment (#4748)

### Description

- We have an IGP on Stride now. We expect not to fully index this till
at least Friday - so for now we just whitelist the messages we care
about.

### 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: Daniel Savu <[email protected]>
### Description

- Added overrides for transferFrom, totalSupply to reflect the internal
share based accounting for the 4626 mirror asset

### Drive-by changes

- Overridden `_transfer` to update the Transfer event to display the
asset being transfers as amount not the internal shares.

### Related issues

- fixes chainlight-io/2024-08-hyperlane#6

### Backward compatibility

Yes

### Testing

Fuzz testing
### Description

chore: update agent image

### 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

infra
…4759)

### Description

Use H512 as transaction hash in HyperlaneProvider and Scraper.

### Related issues

- Contributes
#4272

### Backward compatibility

Yes

### Testing

Manual run of Scraper for Ethereum and Neutron

---------

Co-authored-by: Danil Nemirovsky <[email protected]>
### 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
-->
### Description
- Support continuous value monitoring by allowing promethues to scrape
value metrics for native and collateral tokens
- Uses the `CoinGeckoTokenPriceGetter`
- Added `getTokenPriceByIds` helper method to the
`CoinGeckoTokenPriceGetter`, to support fetching prices using the coin
gecko id only
- Add a warp_route_id label to metrics

### Testing

Manual
### Description
When `isObject` pass with param `null/undefined` it returns
`null/undefined`

We should strict return boolean value
<!--
What's included in this PR?
-->

### Drive-by changes
```diff
export function isObject(item: any): boolean {
- return item && typeof item === 'object' && !Array.isArray(item);
+ return !!item && typeof item === 'object' && !Array.isArray(item);
}
```
<!--
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
Has updated with test `object.test.ts`
<!--
What kind of testing have these changes undergone?

None/Manual/Unit Tests
-->
### Description

Ran into an issue trying to send from Sealevel -> Cosmos where the
recipient was 20 bytes. This hasn't been an issue so far because:
- no previous Sealevel -> Cosmos transfers have been done in the UI
- Sealevel -> EVM transfers are successful bc `addressToBytes` actually
pads the 20 byte EVM addresses to 32 bytes
- Sealevel -> Sealevel transfers are fine because Sealevel addys are
always 32 bytes

### 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
-->
This PR was opened by the [Changesets
release](https://github.com/changesets/action) GitHub action. When
you're ready to do a release, you can merge this and the packages will
be published to npm automatically. If you're not ready to do a release
yet, that's fine, whenever you add more changesets to main, this PR will
be updated.


# Releases
## @hyperlane-xyz/[email protected]

### Patch Changes

- a42616f: Added overrides for transferFrom, totalSupply to reflect
the internal share based accounting for the 4626 mirror asset
-   Updated dependencies [5fd4267]
-   Updated dependencies [a36fc5f]
    -   @hyperlane-xyz/[email protected]

## @hyperlane-xyz/[email protected]

### Patch Changes

-   Updated dependencies [5fd4267]
-   Updated dependencies [a36fc5f]
    -   @hyperlane-xyz/[email protected]
    -   @hyperlane-xyz/[email protected]

## @hyperlane-xyz/[email protected]

### Patch Changes

-   Updated dependencies [5fd4267]
-   Updated dependencies [a42616f]
    -   @hyperlane-xyz/[email protected]
    -   @hyperlane-xyz/[email protected]

## @hyperlane-xyz/[email protected]

### Patch Changes

- 5fd4267: Supported non-32 byte non-EVM recipients when sending warps
from Sealevel
-   Updated dependencies [5fd4267]
-   Updated dependencies [a36fc5f]
-   Updated dependencies [a42616f]
    -   @hyperlane-xyz/[email protected]
    -   @hyperlane-xyz/[email protected]

## @hyperlane-xyz/[email protected]

### Patch Changes

- 5fd4267: Supported non-32 byte non-EVM recipients when sending warps
from Sealevel
-   a36fc5f: fix: isObject utils fn should return only boolean value

## @hyperlane-xyz/[email protected]

### Patch Changes

-   Updated dependencies [5fd4267]
-   Updated dependencies [a36fc5f]
    -   @hyperlane-xyz/[email protected]
    -   @hyperlane-xyz/[email protected]

## @hyperlane-xyz/[email protected]

### Patch Changes

-   Updated dependencies [5fd4267]
-   Updated dependencies [a36fc5f]
    -   @hyperlane-xyz/[email protected]
    -   @hyperlane-xyz/[email protected]
    -   @hyperlane-xyz/[email protected]

## @hyperlane-xyz/[email protected]



## @hyperlane-xyz/[email protected]

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@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
-->
…tion (#4753)

### Description
This pull request introduces the following changes to the math utility
functions:
#### Fix Median Calculation:
Corrected the median function to handle even-length arrays properly by
averaging the two middle numbers.

#### Add Unit Tests:
Implemented unit tests for the math utility functions using Chai to
ensure their correctness and reliability.
The functions tested include:
- `median`: Tests for both odd and even-length arrays.
- `sum`: Verifies the sum of an array of numbers.
- `mean`: Checks the calculation of the mean.
- `stdDev`: Validates the standard deviation calculation, including
cases with negative numbers.
- `randomInt`: Ensures the generated random integer falls within the
specified range.
<!--
What's included in this PR?
-->

### Drive-by changes
- Code: Updated the median function in math.ts to correctly calculate
the median for even-length arrays.
- Tests: Added a new test file math.test.ts with comprehensive test
cases for each function.
<!--
Are there any minor or drive-by changes also included?
-->

### Related issues

<!--
- Fixes [#[issue number
here]](#4754)
-->
Fixes
[#[4754]](#4754)

### Backward compatibility
Yes
<!--
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

- All tests have been executed and passed successfully, confirming the
correctness of the functions.
- Special attention was given to edge cases, such as arrays with
negative numbers and random integer generation.
<!--
What kind of testing have these changes undergone?

None/Manual/Unit Tests
-->
### Description

Adds TIA and stTIA ATA payer observability

### 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
-->
### Description

CLI commands using HyperlaneRelayer (`--relay`) were very slow due to
exhaustive routing ISM/hook derivation. This short-circuits the
derivation when there is a known "message context" to evaluate the
routing hook and ISMs for.

### Related issues

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

### Backward compatibility

Yes

### Testing

Manual
yorhodes and others added 22 commits October 28, 2024 21:07
…4772)

### Description

ICA ISM does not implement `module(uint32)` but rather `route(message)`.
This modifies ISM derivation with message context to use this function.

### Related issues

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

### Backward compatibility

Yes

### Testing

Manual
### Description

chore: disable arcadiatestnet until redeployment
- testnet had to be reset

### 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
-->

---------

Signed-off-by: pbio <[email protected]>
### Description

- disabled the ICARouter's ability to change hook given that the user
doesn't expect the hook to change after they deploy their ICA account.
Hook is not part of the derivation like ism on the destination chain and
hence, cannot be configured custom by the user.

### Drive-by changes

- MailboxClient events for hook and ism setting
- ProtocolFee events for setting beneficiary and owner

### Related issues

- partly fixes
chainlight-io/2024-08-hyperlane#14

### Backward compatibility

No

### Testing

Unit tests
### Description

- feat: oct 25 deployment batch
- apechain, arbitrumnova, b3, fantom, gravity, harmony, kaia, morph,
orderly, snaxchain
	- deployed as normal
- zeronetwork, zksync
- deployed from special zksync branch containing txfusion's changes +
latest `main` pulled in
	- #4761

### Drive-by changes

- igp updates

### Related issues

n/a

### Backward compatibility

yes

### Testing

manual using local CLI from this branch, no tx fusion changes required
for hyperlane send or self-relay to work
### Description

Added fallback functionality to the Cosmos RPC client

### Drive-by changes

N/A

### Related issues

- Fixes #3425

### Backward compatibility

Yes

### Testing

Unit tests already in place, no additional added, as the generic
CosmosFallbackProvider which is used is already tested
### Description

Update widgets with new components from the hyperlane explorer and warp
UI. These will be used to replace the current components from both
mentioned repo

### Drive-by changes

None

### Backward compatibility

Not exactly, Spinner and WideChevron were renamed to SpinnerIcon and
WideChevronIcon, these must be updated accordingly

### Testing

Manual and Visual Testing with storybook
### Description
Append more test for `multisigIsm.ts`
<!--
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
Add 2 test cases:
- has a valid number of validators for each threshold
- has valid EVM addresses for each validator
<!--
What kind of testing have these changes undergone?

None/Manual/Unit Tests
-->
### Description

See
https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/

- In GKE, for the larger relayer node pool, added a taint: `NoSchedule`,
label `component=relayer`
- In our relayer workloads, they now have a toleration that matches that
taint
- As part of rollout, first did a NoExecute (evicting everything on the
big nodes), then moved to NoSchedule (so that some other pods like
daemonsets would still get onto these bigger nodes). I made sure the
hyperlane and neutron context relayers have these tolerations

### Drive-by changes

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

### Related issues

- Fixes hyperlane-xyz/issues#1309

### 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
-->
…otocolFee` fuzz test (#4781)

### 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
-->
### Description

Refactor of the Relayer Retry Server to utilize matching lists.
This allows for a single POST request to be able to retry a wide range
of messages.

Since a matching list is used it is now possible to retry messages
depending on:
- Message Id
- Origin Domain
- Destination Domain
- Recipient Address
- Sender Address

## Example

Instead of the old request format
```
GET http://127.0.0.1:60843/message_retry?destination_domain=42
GET http://127.0.0.1:60843/message_retry?message_id=0x46910b1329ee53c86a023b322e9ca1c17e5f9f0bee789c77b0abced0a173d714
```
The new one should be used
```
POST http://127.0.0.1:60843/message_retry
```
With a JSON body like so:
```
[{"messageid": "*", "origindomain": "*", "senderaddress": "*", "destinationdomain": "*", "recipientaddress": "*"}]
```
Retry params can be both specific values and wildcards.

### Drive-by changes

- Moved `MockPendingOperation` to `hyperlane-test`
- Moved certain test utils for the relayer server to `hyperlane-test`
- Added functions to retrieve recipient and sender address from the
`PendingOperation`
- Added a `message_id` to the `MatchingList` struct to allow retries by
message id
- Removed `MessageRetryRequest` enum since it was no longer in use

### Related issues

Fixes #3571 #4079

### Backward compatibility

Yes

### Testing

Unit tests
Applies the same fix from
#4655 to a flake
that showed up in this PRs CI:
#4693 (comment)
### Description

- Sometimes Jake requests an update on these for his own models, this
makes it easier for us to get it for him

### 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
-->
### Description
Updates destination gas on all chain by getting the value from
warpConfig.gas. It then synchronizes all destination gas amounts across
all chains.


### Related issues
- Fixes #4529 


### Backward compatibility

Yes

### Testing

Manual/e2e
### Description

Scraper is able to index dispatch messages:
1. Blocks are stored into database
2. Transactions are stored into database (need population of all fields)
3. Dispatched messages are stored into database

### Drive-by changes

Initial indexing of delivered messages (so that Scraper does not crush)

### Related issues

- Contributes into
#4272

### Backward compatibility

Yes (Solana-like chains should not be enabled for Scraper)

### Testing

Manual run of Scraper
E2E Tests

---------

Co-authored-by: Danil Nemirovsky <[email protected]>
### Description

This was missed in the recent chain addition.

We should consolidate this with what exists in the registry - the
duplication in infra is too much atm now that we're kicking into high
gear with warp routes.

Deployed the relayer with this change

### 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
-->
### Description

- check for sufficient fees in `AbstractMessageIdAuthHook` and refund
surplus
- add a child hook to OPL2ToL1Hook and ArbL2ToL1Hook to use the igp to
pay for the destination gas fees


~~Note: LayerzeroL2Hook currently also refunds from msg.value, will make
it into issue to be fixed later as we're using the layerzero hooks right
now.~~

### Drive-by changes

- None

### Related issues

- fixes chainlight-io/2024-08-hyperlane#10

### Backward compatibility

No

### Testing

Fuzz
### Description

- Added to the msg.value to verifyMessageId to test if the msgValue
passed in is the same as the msgValue used postDispatch

### Drive-by changes

- None

### Related issues

- fixes chainlight-io/2024-08-hyperlane#3

### Backward compatibility

Yes

### Testing

Unit tests
### Description

This PR fixes the problem of this issue:
[https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/4449](url)
The change was only in the gcs_storage.rs file. Slightly tweaked methods
so that you can write files to a specified folder in the terminal.

When trying to run a validator specifying checkpointSyncer settings for
GCS:
`--checkpointSyncer.type gcs --checkpointSyncer.bucket
an-s3-signatures-repository --checkpointSyncer.folder atletaolympia`

```
Building provider without signer
thread 'main' panicked at 'Failed to report agent metadata: error validating bucket name an-s3-signatures-repository/atletaolympia

Caused by:
    Character '/' @ 27 is not allowed

Location:
    hyperlane-base/src/types/gcs_storage.rs:181:9', agents/validator/src/validator.rs:178:14
```

To solve this problem I added the `folder: Option<String>` field to the
GcsStorageClient structure, I also added bucket and folder processing to
the impl CheckpointSyncer, GcsStorageClientBuilder methods
### Description

Scraper stores input data from Ethereum transactions

### Related issues

- Fixes #4778

### Backward compatibility

Yes

### Testing

Manual run of Scraper against 
1. local database
2. database restored from backup of production database

Co-authored-by: Danil Nemirovsky <[email protected]>
…actions (#4796)

### Description

Upgrade Scraper so that it stores input data for Ethereum transactions

### Related issues

- Fixes #4778

### Backward compatibility

Yes

### Testing

Manual run of Scraper with local database
Manual run of Scraper with db restored from production backup

Co-authored-by: Danil Nemirovsky <[email protected]>
Copy link

changeset-bot bot commented Nov 4, 2024

🦋 Changeset detected

Latest commit: 862d597

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 9 packages
Name Type
@hyperlane-xyz/core Minor
@hyperlane-xyz/helloworld Patch
@hyperlane-xyz/sdk Patch
@hyperlane-xyz/infra Patch
@hyperlane-xyz/cli Patch
@hyperlane-xyz/widgets Patch
@hyperlane-xyz/ccip-server Patch
@hyperlane-xyz/github-proxy Patch
@hyperlane-xyz/utils Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@aroralanuk aroralanuk changed the base branch from main to audit-q3-2024 November 5, 2024 13:23
@aroralanuk aroralanuk closed this Nov 5, 2024
@aroralanuk aroralanuk deleted the kunal/value-router branch November 5, 2024 13:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.