Skip to content

chore: merge main#7

Merged
danwt merged 177 commits intomain-dymfrom
danwt/merge-main
Jun 4, 2025
Merged

chore: merge main#7
danwt merged 177 commits intomain-dymfrom
danwt/merge-main

Conversation

@danwt
Copy link
Copy Markdown

@danwt danwt commented Jun 4, 2025

Description

Drive-by changes

Related issues

Backward compatibility

Testing

ameten and others added 30 commits May 7, 2025 08:50
…ne-xyz#6148)

### Description

Build and submit transaction for EVM chains

- Serialise data required to build a ContractCall into byte vector in
EthereumMailbox
- Desialise data required to build a ContractCall into transaction
precursor
- Submit transaction to chain using ContractCall

### Drive-by changes

- Reformat of workspace Cargo.toml

### Backward compatibility

Yes

### Testing

None

---------

Co-authored-by: Danil Nemirovsky <4614623+ameten@users.noreply.github.com>
### Description
Fix validator announce by pointing to the new `ethers-rs` fork
<!--
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
-->
…old 1.14.20 version (hyperlane-xyz#6158)

### Description

Solana CLI releases were migrated from https://release.solana.com to
https://release.anza.xyz, but along the way some old versions weren't
ported over. This includes 1.14.20, which is the version we require to
build the programs.

A couple alternatives were considered (trying to use brew to find an
older version, more directly querying github, etc), but in the end I
think the best approach is to just try to emulate their old installation
script and make sure that it fetches from the right github release.

This PR adds the installation script adapted from
https://release.anza.xyz/v1.18.18/install with the following changes:
- The version is hardcoded to 1.14.20
- The URL is hardcoded to read from the old solana-labs repo
- All agave references are replaced with solana

It also moves away from using the old release.solana.com url to
release.anza.xyz when installing newer versions (like 1.18.18).

### 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
-->
…hyperlane-xyz#6143)

### Description

This PR updates the `EvmERC20WarpRouteReader` to correctly derive the
type of a fiat collateral warp route deployment that was incorrectly
inferred as collateral.

### Drive-by changes

- Refactors the `fetchTokenConfig` to delegate token config derivation
to a separate function instead of having the whole derivation logic in
one place with nested if statements

### Related issues

- Fixes
[ENG-1552](https://linear.app/hyperlane-xyz/issue/ENG-1552/add-derivation-support-for-fiat-collateral-in-the-sdk)

### Backward compatibility

- YES

### Testing

- Manual
- e2e
- unit
### Description

Implement `GasLimitEstimator` component, by refactoring logic out of
`rust/main/chains/hyperlane-ethereum/src/tx.rs`

### Drive-by changes

- The logic for the `TxStatusChecker` and `GasLimitEstimator` is moved
into their own modules. The motivation is to use dependency injection
for ease of testing in the future
- The logic for building a `ContractCall` from its subcomponent fields
is refactored and reused

### Related issues

- Fixes hyperlane-xyz#6134

### Backward compatibility

Yes

### Testing

Not yet

---------

Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
### Description

- deploy to nobletestnet, megaethtestnet, basecamptestnet, bepolia
- remove berabartio, camptestnet, treasuretopaz

### Drive-by changes

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

### Related issues

hyperlane-xyz/hyperlane-registry#831

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

manual
- base -> megaeth -> op -> basecamp -> monad -> bepolia -> base
### Description

Fix message status not being stored correctly.
Turns out, instead of storing the new message status, we store the old
message status,
but set it to the new message status in memory.

### Related issues

- fixes:
https://linear.app/hyperlane-xyz/issue/ENG-1024/bug-relayer-messages-are-loaded-with-the-wrong-operation-status-from

### Drive-bys

- move some dummy test code to be public so other tests can also use
them

### Backward compatibility

Yes

### Testing

- added a test with a temp dir rocksdb to make sure
`PendingMessage.set_status()` works as expected
… to fix issue with Neutron chain (hyperlane-xyz#6157)

### Description

Scraper is not indexing payments and delivered messages for Neutron
chain since it gets serde parsing error when it attempts to request a
block by height.

The issue was reproduced using unit tests with Neutron RPC and
particular block. The issue was fixed by downgrading `CompactMode` from
latest version (0.38 at the time of this commit) to version 0.37.

HttpClient fails to get block 22488720 from Neutron when
`CompactMode::latest()` is used. Latest compact mode at the moment is
`V0_38`. It succeeds with `CompactMode::V0.38`.

HttpClient succeeds to get block 15317185 from Osmosis when
`CompactMode::latest()` is used. Actually, any compact mode works for
Osmosis.

### Backward compatibility

Yes

### Testing

- Unit test of pure parsing of JSON
- Unit test of HttpClient to request a block from Neutron
- Unit test of CosmosFallbackProvider to request a block from Neutron.

---------

Co-authored-by: Danil Nemirovsky <4614623+ameten@users.noreply.github.com>
### Description

Upgraded `@hyperlane-xyz/registry` from v11.1.0 to v14.0.0 across
multiple packages and updated warp route config API usage to match the
new version requirements.

### Drive-by changes

None

### Related issues

hyperlane-xyz#5244

### Backward compatibility

Yes

### Testing

Manual
### Description

This PR refactors the warp route configuration functions to use object
parameters instead of positional parameters, improving API clarity and
flexibility. The main changes include:

- Modified `readWarpRouteDeployConfig` to accept an object parameter
with named properties
- Updated `readWarpCoreConfig` with similar parameter style changes
- Added utility functions for handling warp route configuration in
various scenarios
- Enhanced context types with warp configuration properties

### Drive-by changes

- Added new `getWarpRouteDeployConfig` utility function
- Added `useProvidedWarpRouteIdOrPrompt` helper function
- Improved error messaging and assertions

Diff with last PR:

hyperlane-xyz/hyperlane-monorepo@upgrade/registry-14.0.0...refactor/warp-config-loading

### Related issues

hyperlane-xyz#5244
hyperlane-xyz#5922

### Backward compatibility

Yes - Internal refactoring only, existing CLI commands work the same way

### Testing

Manual testing of CLI commands
### Description

Add rule for CryptoCrew

### Backward compatibility

Yes

### Testing

Manual, locally

---------

Co-authored-by: Danil Nemirovsky <4614623+ameten@users.noreply.github.com>
…lane-xyz#6170)

### Description

- Generate contract calls to check if a particular message was delivered
- Populate payload success criteria with serialized contract calls
- Check if success criteria is met at finality stage of Lander

### Backward compatibility

Yes

### Testing

None

---------

Co-authored-by: Danil Nemirovsky <4614623+ameten@users.noreply.github.com>
### Description

Two things:
1. Updates the commit for our fork of the spl lib that's used to include
hyperlane-xyz/solana-program-library#4 which
fixes compilation
2. Our tooling generally requires Solana 1.18.18 to be used when running
our SVM tooling to perform the program deploy. Eclipse used to allow you
to deploy programs just fine with this version but Christopher and I
experienced this regression recently where the command just hangs
indefinitely. The “workaround” seems to be to downgrade to 1.17.31, but
this comes at the cost of not being able to use a CLI flag to set the
compute unit price when deploying a program
As a temporary fix, bc the compute unit price is originally set to 0 on
Eclipse anyways, I'm changing the tooling to omit this compute unit
price flag if it’s set to 0. But it’s still possible for us to hit
issues here because we bid up compute unit prices if there are issues
deploying the program (not a rare occurrence). If you do a deploy to
Eclipse and hit issues, I’d recommend just commenting out the compute
unit price flag at least for the eclipse leg

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

- `cargo +1.76.0 install spl-token-cli --git
https://github.com/hyperlane-xyz/solana-program-library --branch
dan/create-token-for-mint --rev e101cca --force` works
- confirmed not providing the flag works
### Description

Instead of inserting all the messages we receive in a single db
transaction, we chunk it into smaller sizes.
This prevents us from running into `Too many arguments` errors from
Postgres for exceeding their `u16::MAX` parameter count.

### Related issues
- fixes
https://linear.app/hyperlane-xyz/issue/ENG-1390/scraper-cannot-insert-too-many-records

### Backward compatibility

Yes

### Testing

Manual. From Jeff:

Tried it locally with a postgres instance with 100k messages and it
failed without chunking
```
running 1 test
RES: Err(Query Error: encountered unexpected or invalid data: PgConnection::run(): too many arguments for query: 1000000 (sqlx_postgres::connection::executor:215)

Caused by:
   0: encountered unexpected or invalid data: PgConnection::run(): too many arguments for query: 1000000 (sqlx_postgres::connection::executor:215)
   1: encountered unexpected or invalid data: PgConnection::run(): too many arguments for query: 1000000 (sqlx_postgres::connection::executor:215)

Location:
    agents/scraper/src/db/message.rs:320:9)
test db::message::tests::test_store_dispatched_messages_real_postgres ... ok
```

Tried it again with chunking + transaction and it didn't have any errors
:+1:
So we can use the transaction if we want the action to be atomic, but
the important part is the chunking.
…#6177)

### Description

**When reviewing, make double sure the changes in `build_with_signer`
make sense, otherwise this can break prod**

Since the new submitter has its own logic for setting tx parameters, so
ethers middleware like the gas escalator, nonce manager, etc isn't
required. This PR makes the usage of middleware configurable, via an
associated const in `BuildableWithProvider` that defaults to `true`.
This const is only ever used if `NEEDS_SIGNER` is `true`

### Drive-by changes

Cleans up the provider-building logic in `build_with_signer`

### Related issues

- Fixes: hyperlane-xyz#6163

### Backward compatibility

**Yes - but make double sure the changes in `build_with_signer` make
sense, otherwise this can break prod**

### Testing

EVM E2E
### Description

Add naive nonce manager: get current nonce of the account and add the
current number of transactions in finality stage.

### Drive-by changes

Minor rename and imports improvements

### Backward compatibility

Yes

### Testing

None

---------

Co-authored-by: Danil Nemirovsky <4614623+ameten@users.noreply.github.com>
…z#6187)

### Description

<!--
What's included in this PR?
-->
Update registry version to 15.0.0
### 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

This PR refactors warp command options to improve flexibility and
configuration handling:
- Makes warp deployment config optional instead of requiring a default
path
- Introduces `getWarpConfigs` utility to centralize configuration
handling
- Adds support for more optional parameters (symbol, warpRouteId) in
warp commands
- Improves chain resolution logic for warp operations

### Drive-by changes

- Rename `readWarpRouteDeployConfig` to `getWarpRouteDeployConfig`
- Remove redundant chain resolution logic from MultiChainResolver
- Remove hardcoded default config paths

Diff with last PR:

hyperlane-xyz/hyperlane-monorepo@refactor/warp-config-loading...refactor/registry-based-warp-config

### Related issues

hyperlane-xyz#5244
hyperlane-xyz#5922

### Backward compatibility

Yes - This PR improves flexibility without breaking existing
functionality.

### Testing

Manual
### Description

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

### Drive-by changes

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

### Related issues

hyperlane-xyz/hyperlane-registry#839

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

Upgrade Relayer and Scraper to latest

### Drive-by changes

- Update leak configuration

### Backward compatibility

Yes

### Testing

None

---------

Co-authored-by: Danil Nemirovsky <4614623+ameten@users.noreply.github.com>
### Description

Upgrade Relayer RC and Neutron to latest

### Backward compatibility

Yes

### Testing

Sync with Hyperlane context

Co-authored-by: Danil Nemirovsky <4614623+ameten@users.noreply.github.com>
### Description

- chore: re-enable arcadiatestnet2 scraping
- chore: re-enable hyperliduidevmtestnet scraping + relaying

### 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?
-->
Re-add registry commit to `git fetch origin` in docker-entrypoint.sh
### 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
-->
…lane-xyz#6167)

### Description
This PR implements
https://linear.app/hyperlane-xyz/issue/ENG-1031/cli-warp-check-should-assert-that-contracts-are-verified
which allows `warp check` to determine if a contract has been verified.
The details are in the Linear issue. In summary, it does this by
expanding the onchain config with a VirtualConfig, which compares to a
hardcoded ExpectedVirtualConfig.

Example
```bash
hl warp check --registry  ~/Desktop/code/hyperlane/hyperlane-registry --warpRouteId LUMIA/arbitrum-avalanche-base-bsc-ethereum-lumiaprism-optimism-polygon
Hyperlane CLI
Hyperlane Warp Check
____________________
lumiaprism:
  contractVerificationStatus:
    TransparentUpgradeableProxy: true
    HypNative: true
  mailbox: "0x0df25a2d59f03f039b56e90edc5b89679ace28bc"
  owner: "0xa86c4af592ddaa676f53de278de9cfcd52ae6b39"
  
...
```


### Drive-by changes
- Add collateralUri and syntheticUrisyntheticUri to hypERC20contracts

### Related issues
Resolves
https://linear.app/hyperlane-xyz/issue/ENG-1031/cli-warp-check-should-assert-that-contracts-are-verified

### Backward compatibility
Yes

### Testing
Manual.

---------

Co-authored-by: Le <leyu@Les-MacBook-Pro.local>
Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
…olation [eng-1555] (hyperlane-xyz#6152)

### Description

This PR updates the `transformConfigToCheck` the newly implemented
`sortArraysInObject` function to reliably sort all the arrays in a given
object recursively.

Note that there is already an existing `sortArraysInConfig` function,
but it is tightly tied to ism structure,s and updating it might have
introduced unexpected bugs in the infra package

### Drive-by changes

- None

### Related issues

Fixes

-
[ENG-1555](https://linear.app/hyperlane-xyz/issue/ENG-1552/add-derivation-support-for-fiat-collateral-in-the-sdk)

### Backward compatibility

- YES

### Testing

- Manual
- e2e
- unit
…tifacts configs [eng-1088] (hyperlane-xyz#6155)

### Description

This PR adds the logic to properly compare the hook and ism
configuration depending on whether they are set as an address or a
partial config.

### Drive-by changes

- Exports the `DerivedWarpRouteDeployConfig` and
`DerivedTokenRouterConfig` types from the SDK package
- Exports the `derivedHookAddress` and `derivedIsmAddress` from the SDK
package
- Updates the `runWarpRouteCheck` function signature to have the
`onChainConfig` to be of type `DerivedWarpRouteDeployConfig`
- Updates the `transformConfigToCheck` function to remove the gas
property from the config to check because it is not derived from
on-chain config, and if specified in the deploy config, caused false
positives (it is ok because the destinationGas field covers this)
- Updates the EvmIsmReader to expand an ism config if it contains any
addresses instead of the full config

### Related issues

- Fixes
#[ENG-1553](https://linear.app/hyperlane-xyz/issue/ENG-1553/non-expanded-hook-and-ism-configs-make-cli-checker-fail)

### Backward compatibility

- YES

### Testing

- Manual
- e2e
- unit
### 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: Danil Nemirovsky <4614623+ameten@users.noreply.github.com>
…hecker [eng-1554] (hyperlane-xyz#6168)

### Description

Removes symbol and name token metadata checking in the CLI checker and
syncs config getters with the current deployed config on chain to avoid
failures due to the registry config being incorrect

Companion PR in the registry
hyperlane-xyz/hyperlane-registry#841

### Drive-by changes

- Implements the `isCosmosIbcDenomAddress` in the utils package

### Related issues

- Fixes
#[ENG-1554](https://linear.app/hyperlane-xyz/issue/ENG-1554/metadata-checks-might-cause-cli-checker-to-fail)

### Backward compatibility

- YES

### Testing

- Manual
- unit
- e2e
…-xyz#6183)

### Description

This PR implements the `keepOnlyDiffObjects` function to format
checker's violations to only output fields that have mismatches to avoid
cluttering the terminal output for big configs

```shell
ethereum:
  hook:
    hooks:
      - protocolFee:
          EXPECTED: "158365200000000"
          ACTUAL: "129871800000000"
        type: protocolFee
    type: aggregationHook
  type: xERC20Lockbox
swell:
  hook:
    hooks:
      - protocolFee:
          EXPECTED: "158365200000000"
          ACTUAL: "129871800000000"
        type: protocolFee
    type: aggregationHook
  type: xERC20
zircuit:
  hook:
    hooks:
      - protocolFee:
          EXPECTED: "158365200000000"
          ACTUAL: "129871800000000"
        type: protocolFee
    type: aggregationHook
  type: xERC20
```

### Drive-by changes

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

### Related issues


- Fixes
[ENG-1612](https://linear.app/hyperlane-xyz/issue/ENG-1612/reduce-verbosity-in-cli-checker-violations-output)


### Backward compatibility

 -YES

### Testing

- Manual
- unit
### Description

This PR implements and adds the cosmos native signer strategy to the cli
context so users can also sign and deploy to cosmos native chains.
Following PRs will use this to support the goal of having full cosmos
native support in the hyperlane CLI.

Note that this is the second PR of
hyperlane-xyz#6050 which is
being split up in order to make it easier to review

### Drive-by changes

-

### Related issues

-

### Backward compatibility

Yes

### Testing

Manual testing with local cosmos chain
paulbalaji and others added 28 commits May 30, 2025 16:36
### Description

This PR adds the new warp route for Bybit Staked SOL (bbSOL) from Solana
to SOON.

### Backward compatibility

Yes

### Testing

- Manual testing via Rust CLI
### Description

feat(infra): misc chain deploy fixes
- print per-chain deployment plan
- when doing the ism updates, we end up with files that are so big that
we error out just trying to write the file. to simplify things, and also
make per-chain changes easier to review, i've made the deployment plans
per-chain instead of per-deployment.
- max batch size of 100 for safe multisend txs
- tooling and API downstream starts breaking if there are too many
things bundled together in a single multisend tx. in most cases we will
be below 100, but recent changes like the TGE owner transfer and the
incoming ICA migration will require 400-500 individual actions all going
through the eth safe.
- remove `checkSafeProposalEligibility`
- this was originally a nice-to-have, but actually greatly contributes
to the API rate limiting that we encounter with the safe APIs.
functionally there is no real difference because
`checkTransactionSuccess` is the real meat of the check and that is
still there.

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

all these changes have been tested and used in several rounds of chain
deploys, but just not upstreamed
…6415)

### Description

fix(infra): filter out testnets for check-warp-deploy

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

This PR adds additional features to the CLIs `--key` flag by allowing
protocol specific key inputs. The --key flag will stay backwards
compatible and will only work for Ethereum chains. To input keys for
Cosmos or Starknet chains in the future users have to specify the
protocol they want to provide their key for, example: `core deploy
--key.cosmosnative=COSMOS_PK --key.ethereum=ETH_PK`. This allows the CLI
to handle multiple private keys for multiple VMs which was not possible
before and needed with the first non-EVM protocols joining the monorepo.

### Drive-by changes

For whatever reason during a core deploy **all** signers in the registry
where initiated. This is now limited that only the one chain where the
core gets deployed to gets initiated. See changes in
`MultiChainResolver.ts` `resolveCoreDeployChains`

### Related issues

hyperlane-xyz#6309

### Backward compatibility

Yes these changes are backwards compatbile, the --key flag can be used
as before

### Testing

e2e tests
### Description

This PR adds the `export-svm-config` script to write the registry config
based SVM deploy artifacts. Besides this, the `install-solana.sh` script
is made dynamically to use it for different versions.

### Drive-by changes

N/A

### Related issues

N/A

### Backward compatibility

Yes

### Testing

Reproduces the same config for already deployed warp routes.
### Description

chore(infra): misc fixes for safe operations
- used when doing
hyperlane-xyz#6358
- correctly add xerc20 lockboxes to the tx parser's xerc20 deployments
cache
- use entirely offline utilities for determining if an address is a safe
(quicker, cleaner code, not prone to hitting rate limits)

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

- adding bridges to new prod ousdt xerc20s
- parsing eth safe tx
```
yarn tsx scripts/safes/parse-txs.ts -e mainnet3 --governanceType abacusWorks -c ethereum
bigint: Failed to load bindings, pure JS will be used (try npm run rebuild?)
Fetching pending transactions for safe 0x3965AC3D295641E452E0ea896a086A9cD7C6C5b6 on ethereum
┌─────────┬────────────┬───────┬───────────────────┬──────────────────────────────────────────────────────────────────────┬───────┬───────────┬────────┬───────────────┐
│ (index) │ chain      │ nonce │ submissionDate    │ fullTxHash                                                           │ confs │ threshold │ status │ balance       │
├─────────┼────────────┼───────┼───────────────────┼──────────────────────────────────────────────────────────────────────┼───────┼───────────┼────────┼───────────────┤
│ 0       │ 'ethereum' │ 55    │ 'Fri May 30 2025' │ '0xe06c7fbd4ebc952984637825182f2e73dde1f5a5ded2b71a69de8219aa481090' │ 1     │ 4         │ '🔵'   │ '0.20000 ETH' │
└─────────┴────────────┴───────┴───────────────────┴──────────────────────────────────────────────────────────────────────┴───────┴───────────┴────────┴───────────────┘
Reading tx 0xe06c7fbd4ebc952984637825182f2e73dde1f5a5ded2b71a69de8219aa481090 on ethereum
Finished reading tx 0xe06c7fbd4ebc952984637825182f2e73dde1f5a5ded2b71a69de8219aa481090 on ethereum
✅✅✅✅✅ No fatal errors ✅✅✅✅✅
Results written to safe-tx-results-1748613693179.yaml
```
```
ethereum-55-0xe06c7fbd4ebc952984637825182f2e73dde1f5a5ded2b71a69de8219aa481090:
  chain: ethereum
  insight: Add new bridge 0xCe19f75BCE7Fb74c9e2328766Ebe50465df24CA3 with buffer
    cap 20000000000000 and rate limit 5000000000
  signature: addBridge((uint112,uint128,address))
  to: oUSDT (OpenUSDT, EvmHypVSXERC20, 0x1217BfE6c773EEC6cc4A38b5Dc45B92292B6E189)
```
### Description

chore: update to ethers v5.8.0
- https://github.com/ethers-io/ethers.js/releases/tag/v5.8.0

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

This PR transfers tUSD warp route to Nucleus owners

### Backward compatibility

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

<!--
What's included in this PR?
-->
Update SMOL route infra gettings to remove arbitrum
### 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
-->
Ran checkers for update configs and deploy config
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 publish to npm
yourself or [setup this action to publish
automatically](https://github.com/changesets/action#with-publishing). 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/core@7.1.10

### Patch Changes

-   72887f7: Update to ethers v5.8.0.
-   Updated dependencies [72887f7]
    -   @hyperlane-xyz/utils@13.2.1

## @hyperlane-xyz/cli@13.2.1

### Patch Changes

-   72887f7: Update to ethers v5.8.0.

## @hyperlane-xyz/cosmos-sdk@13.2.1

### Patch Changes

-   @hyperlane-xyz/cosmos-types@13.2.1

## @hyperlane-xyz/helloworld@13.2.1

### Patch Changes

-   72887f7: Update to ethers v5.8.0.
-   Updated dependencies [72887f7]
    -   @hyperlane-xyz/sdk@13.2.1
    -   @hyperlane-xyz/core@7.1.10

## @hyperlane-xyz/sdk@13.2.1

### Patch Changes

-   72887f7: Update to ethers v5.8.0.
-   Updated dependencies [72887f7]
    -   @hyperlane-xyz/utils@13.2.1
    -   @hyperlane-xyz/core@7.1.10
    -   @hyperlane-xyz/starknet-core@13.2.1
    -   @hyperlane-xyz/cosmos-sdk@13.2.1

## @hyperlane-xyz/utils@13.2.1

### Patch Changes

-   72887f7: Update to ethers v5.8.0.

## @hyperlane-xyz/widgets@13.2.1

### Patch Changes

-   Updated dependencies [72887f7]
    -   @hyperlane-xyz/utils@13.2.1
    -   @hyperlane-xyz/sdk@13.2.1
    -   @hyperlane-xyz/cosmos-sdk@13.2.1

## @hyperlane-xyz/starknet-core@13.2.1



## @hyperlane-xyz/cosmos-types@13.2.1



## @hyperlane-xyz/ccip-server@13.2.1

### Patch Changes

-   72887f7: Update to ethers v5.8.0.

## @hyperlane-xyz/infra@13.2.1

### Patch Changes

-   Updated dependencies [72887f7]
    -   @hyperlane-xyz/helloworld@13.2.1
    -   @hyperlane-xyz/utils@13.2.1
    -   @hyperlane-xyz/sdk@13.2.1

## @hyperlane-xyz/github-proxy@13.2.1



## @hyperlane-xyz/tsconfig@13.2.1

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
### Description
This PR updates Renzo EZETH prod and stage warp route id to match
registry


### Backward compatibility
Yes
### Description
Renzo has updated their fee hooks causing CLI checker violations. This
PR updates the Renzo Hook fees to match onchain.

Registry PR:
hyperlane-xyz/hyperlane-registry#924

### Backward compatibility
Yes

### Testing
Checker
### Description

Reduce chunk size to avoid RPC errors

### Backward compatibility

Yes

### Testing

Manual

Co-authored-by: Danil Nemirovsky <4614623+ameten@users.noreply.github.com>
### Description

Prompt user if a new agent key will be created

### Backward compatibility

Yes

### Testing

Manually

---------

Co-authored-by: Danil Nemirovsky <4614623+ameten@users.noreply.github.com>
### Description

- Updates ethers-rs to
https://github.com/hyperlane-xyz/ethers-rs/releases/tag/2025-05-30,
which includes setting a timeout on the AwsSigner
- 30s was chosen because we've seemingly only experienced this once, so
it's very infrequent, and high enough to not hit false positives on a
timeout

### 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
-->
…lane-xyz#6434)

### Description

Upgrade Relayer and Scraper in Testnet Hyperlane and RC

### Backward compatibility

Yes

### Testing

Manual

Co-authored-by: Danil Nemirovsky <4614623+ameten@users.noreply.github.com>
…yperlane-xyz#6378)

### Description

Improved NonceManager so that it is able to track the status of nonce
and assign proper nonces to transaction. This implementation in the
minimal version of NonceManager which allows E2E to pass with Lander.

- Add database to NonceManager
- Add signer address to NonceManager
- Re-enable Lander Prepare and Confirm tasks in SerialSubmitter
- Remove unnecessary tracking of unfinalised transactions in Finality
stage

More advanced NonceManager will be needed for production use.

### Backward compatibility

Yes

### Testing

E2E Ethereum tests, Unit tests

---------

Co-authored-by: Danil Nemirovsky <4614623+ameten@users.noreply.github.com>
### Description

Rome has restarted their testnet with a different chain id

### Backward compatibility

Yes

### Testing

None

---------

Co-authored-by: Danil Nemirovsky <4614623+ameten@users.noreply.github.com>
### Description

- Updates all testnet4 relayer / validator agents (except for testnet4
neutron relayer)
- Adds concurrency of 10 to external-secrets, so it can update 10
secrets concurrently instead of the default of 1
- Removes unnecessary chains from validator external-secrets templates,
cutting down on the work that external-secrets needs to do
- Makes it a bit safer to work with the external-secrets helm chart

### 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: Danil Nemirovsky <ameten@users.noreply.github.com>
Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
### Description

A little overdue, quite painful, but better to do it now than keep
waiting. Renames:
- PayloadDispatcher to Dispatcher (as well as its Entrypoint, module
name, etc)
- ChainTxAdapter to Adapter (as well as its Factory, module name, etc)
- the `submitter` crate to `lander`
- `SubmitterError` to `LanderError`
- we already had submodules called `dispatcher` and `adapter` inside the
`payload_dispatcher` and `chain_tx_adapter` respectively. Those are
renamed to `core`


### 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
-->
… cursor (hyperlane-xyz#6436)

### Description

It will allow us to set the lowest block height for sequence-aware
backward cursor and avoid errors when chain RPC does not provide
historical blocks.

### Related issues

- Fixes
https://linear.app/hyperlane-xyz/issue/ENG-1727/configurable-lower-block-height-limit-to-index-for-sequence-aware

### Backward compatibility

Yes

### Testing

Unit tests and manual

---------

Co-authored-by: Danil Nemirovsky <4614623+ameten@users.noreply.github.com>
…yz#6278)

### Description

 - prevent `from_settings` from crashing
 - set chain critical error when contract fails to sync

### Related issues

- fixes
https://linear.app/hyperlane-xyz/issue/ENG-1650/either-remove-or-catch-unwraps-when-initializing-agents

### Backward compatibility

Yes

---------

Co-authored-by: Trevor Porter <tkporter4@gmail.com>
### Description

feat(sdk): support MultiSend in Safe TX Submitter

we do this by default in infra all the time and was caught off guard
when I saw individual txs being proposed by the cli

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

- used this to propose ousdt txs
…perlane-xyz#6228)

### Description

Add two endpoints, one for manually inserting messages and one for
manually inserting merkle tree insertions
 - POST `/messages`

```rust
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct Message {
    pub version: u8,
    pub nonce: u32,
    pub origin: u32,
    pub sender: H256,
    pub destination: u32,
    pub recipient: H256,
    pub body: Vec<u8>,

    pub dispatched_block_number: u64,
}

/// Request Body
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct RequestBody {
    pub messages: Vec<Message>,
}
```

- GET `/messages`
```rust
#[derive(Clone, Debug, Deserialize)]
pub struct QueryParams {
    pub domain_id: u32,
    pub nonce_start: u32,
    pub nonce_end: u32,
}

#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)]
pub struct Message {
    pub version: u8,
    pub nonce: u32,
    pub origin: u32,
    pub sender: H256,
    pub destination: u32,
    pub recipient: H256,
    pub body: Vec<u8>,
}

#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct ResponseBody {
    pub messages: Vec<Message>,
}
```

 - POST `/merkle_tree_insertions`

```rust
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct TreeInsertion {
    pub chain: u32,
    pub insertion_block_number: u64,

    pub leaf_index: u32,
    pub message_id: H256,
}

#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct RequestBody {
    pub merkle_tree_insertions: Vec<TreeInsertion>,
}
```

 - GET `/merkle_tree_insertions`

```rust
#[derive(Clone, Debug, Deserialize)]
pub struct QueryParams {
    pub domain_id: u32,
    pub leaf_index_start: u32,
    pub leaf_index_end: u32,
}

#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)]
pub struct TreeInsertion {
    pub leaf_index: u32,
    pub message_id: String,
}

#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct ResponseBody {
    pub merkle_tree_insertions: Vec<TreeInsertion>,
}
```

### Related issues

- fixes
https://linear.app/hyperlane-xyz/issue/ENG-1643/relayer-create-endpoint-for-manually-inserting-messages-and-merkle

### Backward compatibility

Yes

### Testing

 - unittests to test API endpoints work as intended
 - e2e test

---------

Co-authored-by: Daniel Savu <23065004+daniel-savu@users.noreply.github.com>
@danwt danwt merged commit b7e25ba into main-dym Jun 4, 2025
8 of 46 checks passed
@danwt danwt deleted the danwt/merge-main branch June 4, 2025 17:54
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.