You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Added multi-VM support to `hyperlane warp send` command. The command now supports transfers across all WarpCore-supported VMs including EVM, Sealevel (Solana), Cosmos, CosmosNative, Starknet, and Radix. Non-EVM destinations use Explorer GraphQL polling for delivery verification with automatic fallback to on-chain polling. Self-relay is only supported for EVM destinations and will warn/skip otherwise.
Fixed Tron EthersV5 provider to use TronJsonRpcProvider (which appends `/jsonrpc` to the RPC URL) instead of HyperlaneSmartProvider, preventing 302 redirect failures on Tron nodes.
These core configs are specifically designed for **cross-chain e2e tests** that involve multiple VM types (EVM, CosmosNative, Radix, Sealevel).
4
+
5
+
## Why separate configs?
6
+
7
+
The standard example configs (in `../cosmosnative/`, `../radix/`, etc.) are minimal and protocol-specific. Cross-VM warp route deployments require:
8
+
9
+
1.**IGP destination gas configs** for all remote chains - without these, `MsgEnrollRemoteRouter` fails on AltVMs because the remote domain isn't registered as "supported"
10
+
2.**Consistent hook types** across VMs for interoperability testing
11
+
12
+
These configs pre-register all test chains (`hyp1-3`, `anvil1-4`, `radix1-2`, `sealevel1`) in their IGP `oracleConfig` and `overhead` settings.
Cross-chain tests reference these configs via `CROSS_CHAIN_CORE_CONFIG_PATH_BY_PROTOCOL` in `src/tests/constants.ts`. To add a new cross-VM test, use these configs instead of the standard examples.
`Chain config is invalid, please see https://github.com/hyperlane-xyz/hyperlane-monorepo/blob/main/typescript/cli/examples/chain-config.yaml for an example`,
@@ -165,7 +168,9 @@ async function addBlockExplorerConfig(metadata: ChainMetadata): Promise<void> {
165
168
});
166
169
constfamily=(awaitselect({
167
170
message: 'Select the type (family) of block explorer:',
168
-
choices: Object.entries(ExplorerFamily).map(([_,value])=>({ value })),
0 commit comments