Releases: hyperlane-xyz/hyperlane-monorepo
@hyperlane-xyz/[email protected]
@hyperlane-xyz/[email protected]
@hyperlane-xyz/[email protected]
Patch Changes
- Updated dependencies [c9e0aed]
- @hyperlane-xyz/[email protected]
- @hyperlane-xyz/[email protected]
@hyperlane-xyz/[email protected]
Patch Changes
- c9e0aed: Improve client side StandardHookMetadata library interface
- Updated dependencies [c9e0aed]
- @hyperlane-xyz/[email protected]
- @hyperlane-xyz/[email protected]
@hyperlane-xyz/[email protected]
Patch Changes
- c9e0aed: Improve client side StandardHookMetadata library interface
- @hyperlane-xyz/[email protected]
V3 Solidity Contracts
e90ae5a @aroralanuk Remediate Trevor's comments (#2835)
1d18549 @yorhodes Merge main to v3 (#2812)
9168cca @aroralanuk Validator deploy tweaks (#2784)
d69d76a @aroralanuk Aggregation hook deployer (#2769)
a60ec18 @aroralanuk Unify overheardIgp and igp (#2766)
8e4f2bb @yorhodes Make immutable implementation of factories public (#2761)
bf3d3c4 @yorhodes Make recipientIsm more robust (#2767)
c91f589 @yorhodes Add unenroll to Router (#2760)
1ecfc46 @yorhodes v3 Router SDK changes (#2752)
fcfecdf @yorhodes Update router implementations for v3 (#2749)
03c92e1 @aroralanuk Minor internal review remediation (#2748)
f783c4e @aroralanuk Add globalHookMetadata (#2743)
f0e4f2b @aroralanuk Prevent invalid destination griefing for the relayer (#2703)
7312a6f @aroralanuk Add InsertedIntoTree event (#2736)
43ba1b4 @aroralanuk Running forge with latest solc (#2729)
f7dbc71 @yorhodes Update multisig ISMs for merkle hooks (#2722)
7309f77 @yorhodes Add forge test for Mailbox (#2713)
a07a993 @aroralanuk Add aggregation hook for V3 (#2667)
467e01a @yorhodes Add deployed block numbers to indexable contracts (#2672)
2b7ecfc @aroralanuk Add quoteDispatch
to IPostDispatchHook
(#2660)
6a32287 @aroralanuk Fix forge tests post V3 (#2661)
760dce6 @aroralanuk Converting the OP stack hooks to transient storage version (#2632)
f38660e @aroralanuk Modifying IGP to be a hook (#2638)
0e10306 @aroralanuk Adding Optimism Hook and dispatch with metadata (#2580)
46f5311 @yorhodes Init immutable mailbox v3 and native hooks
Additional Changes from Trail of Bits Audit Remediation:
https://github.com/hyperlane-xyz/hyperlane-monorepo/releases/tag/v3-audit-remediations
V3 Audit Remediation
Remediations to Trail of Bits Audit
Additional issues discovered
- Routers have no way to unenroll a domain and the potential workaround of enrolling the zero address for that domain fails due to
EnumerableMap.contains
semantics - Mailbox
recipientIsm
view call reverts if a message recipient does not implementinterchainSecurityModule()
but has a non-compliant fallback function - Mailbox
dispatch
reverts with underflow ifmsg.value
is not greater than required value in theMailbox.dispatch()
or possibly allows a user to circumvent required fees with preexistingaddress(mailbox).balance
- AbstractMessageIdAuthorizedIsm (never previously deployed)
msg.value
could be double spent with consecutive calls toverify
Changes
-
1ecfc46 v3 Router changes (#2752)
- Restructured the
solidity/
subdirectory for better navigation and readability. - Internal
_dispatch()
function takes in argument_value
to pass to the mailbox forMailboxClient
andRouter
contracts. - Removed the duplicated local Openzeppelin's
CrossChainEnabled
library and replaced as a dependency. (Openzeppelin has removed the library from their repo (at release 5.0.0) but our dependency is pointing to the release ^4.8.0 before the removal) - Directly calling
getAnnouncementDigest()
inValidatorAnnounce
(now aMailboxClient
) instead of theValidatorAnnouncements
library. - Removed the
IInterchainAccountRouter
andIInterchainQueryRouter
interfaces which were previously not being used anywhere except forInterchainAccountRouter
andInterchainQueryRouter
contracts. HypERC20Collateral
,HypNative
, andHypERC721Collateral
and their subsequent dependents adopt the new constructor signature fromTokenRouter
and omit theinitialize()
function made redundant because of their inheritance ofMailboxClient__initialize()
HypERC721
now correctly transfer ownership to themsg.sender
instead of the mailbox.
- Restructured the
-
c91f589 Security Patch 1: Add explicit Router unenrollment (#2760)
- Added a
unenrollRemoteRouter()
function to theRouter
contract to allow for removing a remote router from the local router'sEnumerableMapExtended
registry (useful for non-active routers). Similarily, theremove()
has been added toDomainRoutingIsm
to allow for removing a domain from the ISM'sEnumerableMapExtended
registry. DefaultFallbackRoutingIsm
also inherits fromMailboxClient
.
- Added a
-
bf3d3c4 Security Patch 2: Make recipient security module resilient to non-reverting empty fallback (#2767)
- Resolve the case when the recipient contract doesn't specify their own ISM by omitting a
interchainSecurityModule()
function but including a fallback function. In this case, the Mailbox'srecipientIsm
function reverts by trying to decode empty bytes.
- Resolve the case when the recipient contract doesn't specify their own ISM by omitting a
-
8e4f2bb Make factory implementations verifiable (#2761)
- Renaming abstract static factories for more clarity and making the
implementation()
function public on the specific factory contracts for easier offchain querying.
- Renaming abstract static factories for more clarity and making the
-
a60ec18 Unify overheardIgp and igp (#2766)
- Consolidating
InterchainGasPaymaster
andOverheadIgp
into a singleInterchainGasPaymaster
contract to remove the "inner IGP" design making it more accessible to deploy and interact with.DomainGasConfig
struct now stores the gas oracle address and the gas overhead (accounting for remote chain'sMailbox.process()
andISM.verify()
function calls in the gas calculation).
- Consolidating
-
d69d76a Security Patch 3: Underflow in Mailbox dispatch and error messages (#2769)
- Adding a check on the
msg.value
to be greater than required value in theMailbox.dispatch()
to throw a more descriptive error in the required hook instead of an underflow in the mailbox. Otherwise, if the mailbox has sufficientmsg.value
prior to the dispatch and the user overrides the default hook, she can circument paying for the dispatch.
- Adding a check on the
-
e90ae5a Security Patch 4: Fix
msg.value
replay onAbstractMessageIdAuthorizedIsm.verify()
calls- Prevents value on
AbstractMessageIdAuthorizedIsm
from being double-spent by anyverify
caller, independent of theMailbox.process
message lifecycle - An additional issue related to
AbstractMessageIdAuthorizedIsm.verify()
is captured in #2835.
- Prevents value on
SDK v1.5.8
Version 1.5.8 introduces a stable beta version of the Hyperlane CLI.
What's Changed
Full Changelog: v.1.5.3...v1.5.8
SDK v1.5.3
1.5.3 includes minor fixes and warp route support for local LP fulfillment. 1.5.2 was skipped due to an issue while publishing.
What's Changed
- rs-2690: Fast warp routes by @RohanShrothrium in #2714
- Cap Msg backoff by @nambrot in #2763
- Request 1M compute units in transfer remote by @tkporter in #2771
- Helloworld program and tooling by @tkporter in #2744
New Contributors
- @RohanShrothrium made their first contribution in #2714
Full Changelog: v1.5.1...v.1.5.3
SDK v1.5.1
What's Changed
- Add
receive
fn toHypNative
andScaled
variant by @yorhodes in #2671 - Finish migrating warp UI utils + adapters to SDK by @jmrossy in #2711
Full Changelog: v1.5.0...v1.5.1
SDK v1.5.0
v1.5.0 Brings some limited support for SDK tooling across multiple execution environments. For example, some new SDK classes can be used to interact with both EVM and Sealevel-based chains! See MultiProtocolProvider, MultiProtocolApp, MultiProtocolCore for details.
What's Changed since v1.4.1
- Remove legacy multisig prevention by @yorhodes in #2522
- Publish 1.4.2 by @yorhodes in #2523
- Update buildAgentConfig for backwards compat by @jmrossy in #2525
- CCIP Read ISM by @AlexBHarley in #2398
- Fix crosschaincall duplicate warning by @yorhodes in #2532
- AggregationISM set for rc kathy by @aroralanuk in #2517
- Better config.interchainSecurityModule type handling for **deployer classes by @aroralanuk in #2537
- Deploy AggregationISM to testnet3 core by @aroralanuk in #2539
- Upgrade testnet relayer to include CCIP Read support by @yorhodes in #2531
- Deploy AggregationISM for rc kathy mainnet by @aroralanuk in #2541
- Deploy AggregationISM to mainnet2 by @aroralanuk in #2563
- Fix deploying validators when there's an empty validator set by @tkporter in #2565
- Update testnet3 test recipients by @nambrot in #2582
- Fix hardhat test script in typescript/sdk/package.json by @jaehunkim in #2483
- Refactor utils package by @jmrossy in #2550
- Minimal multi-protocol SDK support by @jmrossy in #2529
- Remove zbctestnet by @tkporter in #2633
- Add custom error message for when gasOracle not configured for domain in IGP by @aroralanuk in #2656
- Agent Config Typescript Definitions by @mattiecnvr in #2658
- Migrate from config object to address map by @yorhodes in #2576
- Make Domain Routing ISM enumerable by @yorhodes in #2644
- helm: Support different signer key per a chain in relayer by @josedev-union in #2555
- Agent Config Base Parsing by @mattiecnvr in #2665
- Add pausable ism by @yorhodes in #2675
- chore: Use templating for datasource in grafana dashboard file by @josedev-union in #2542
- Deploy proteustestnet, nautilus, solanadevnet (again), and solana by @tkporter in #2646
- Rust agent config parsing by @mattiecnvr in #2687
- Multi-protocol Kathy by @jmrossy in #2559
- Migrate
SealevelTokenAdapter
from warp-routes-UI by @aroralanuk in #2684
New Contributors
- @jaehunkim made their first contribution in #2483
- @gbouv made their first contribution in #2647
Full Changelog: v1.4.1...v1.5.0