@hyperlane-xyz/core 5.6.0 → 5.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (175) hide show
  1. package/contracts/PackageVersioned.sol +1 -1
  2. package/contracts/token/extensions/HypERC4626.sol +66 -29
  3. package/dist/buildArtifact.js +1 -1
  4. package/dist/buildArtifact.json +1 -1
  5. package/dist/contracts/token/extensions/HypERC4626.d.ts +26 -11
  6. package/dist/contracts/token/extensions/HypERC4626.d.ts.map +1 -1
  7. package/dist/factories/contracts/AttributeCheckpointFraud__factory.d.ts +1 -1
  8. package/dist/factories/contracts/AttributeCheckpointFraud__factory.js +1 -1
  9. package/dist/factories/contracts/CheckpointFraudProofs__factory.d.ts +1 -1
  10. package/dist/factories/contracts/CheckpointFraudProofs__factory.js +1 -1
  11. package/dist/factories/contracts/Mailbox__factory.d.ts +1 -1
  12. package/dist/factories/contracts/Mailbox__factory.js +1 -1
  13. package/dist/factories/contracts/avs/ECDSAStakeRegistry__factory.d.ts +1 -1
  14. package/dist/factories/contracts/avs/ECDSAStakeRegistry__factory.js +1 -1
  15. package/dist/factories/contracts/avs/HyperlaneServiceManager__factory.d.ts +1 -1
  16. package/dist/factories/contracts/avs/HyperlaneServiceManager__factory.js +1 -1
  17. package/dist/factories/contracts/hooks/ArbL2ToL1Hook__factory.d.ts +1 -1
  18. package/dist/factories/contracts/hooks/ArbL2ToL1Hook__factory.js +1 -1
  19. package/dist/factories/contracts/hooks/MerkleTreeHook__factory.d.ts +1 -1
  20. package/dist/factories/contracts/hooks/MerkleTreeHook__factory.js +1 -1
  21. package/dist/factories/contracts/hooks/OPL2ToL1Hook__factory.d.ts +1 -1
  22. package/dist/factories/contracts/hooks/OPL2ToL1Hook__factory.js +1 -1
  23. package/dist/factories/contracts/hooks/OPStackHook__factory.d.ts +1 -1
  24. package/dist/factories/contracts/hooks/OPStackHook__factory.js +1 -1
  25. package/dist/factories/contracts/hooks/PausableHook__factory.d.ts +1 -1
  26. package/dist/factories/contracts/hooks/PausableHook__factory.js +1 -1
  27. package/dist/factories/contracts/hooks/PolygonPosHook__factory.d.ts +1 -1
  28. package/dist/factories/contracts/hooks/PolygonPosHook__factory.js +1 -1
  29. package/dist/factories/contracts/hooks/ProtocolFee__factory.d.ts +1 -1
  30. package/dist/factories/contracts/hooks/ProtocolFee__factory.js +1 -1
  31. package/dist/factories/contracts/hooks/aggregation/ERC5164Hook__factory.d.ts +1 -1
  32. package/dist/factories/contracts/hooks/aggregation/ERC5164Hook__factory.js +1 -1
  33. package/dist/factories/contracts/hooks/aggregation/StaticAggregationHookFactory__factory.d.ts +1 -1
  34. package/dist/factories/contracts/hooks/aggregation/StaticAggregationHookFactory__factory.js +1 -1
  35. package/dist/factories/contracts/hooks/aggregation/StaticAggregationHook__factory.d.ts +1 -1
  36. package/dist/factories/contracts/hooks/aggregation/StaticAggregationHook__factory.js +1 -1
  37. package/dist/factories/contracts/hooks/igp/InterchainGasPaymaster__factory.d.ts +1 -1
  38. package/dist/factories/contracts/hooks/igp/InterchainGasPaymaster__factory.js +1 -1
  39. package/dist/factories/contracts/hooks/igp/StorageGasOracle__factory.d.ts +1 -1
  40. package/dist/factories/contracts/hooks/igp/StorageGasOracle__factory.js +1 -1
  41. package/dist/factories/contracts/hooks/layer-zero/LayerZeroV1Hook__factory.d.ts +1 -1
  42. package/dist/factories/contracts/hooks/layer-zero/LayerZeroV1Hook__factory.js +1 -1
  43. package/dist/factories/contracts/hooks/layer-zero/LayerZeroV2Hook__factory.d.ts +1 -1
  44. package/dist/factories/contracts/hooks/layer-zero/LayerZeroV2Hook__factory.js +1 -1
  45. package/dist/factories/contracts/hooks/routing/DestinationRecipientRoutingHook__factory.d.ts +1 -1
  46. package/dist/factories/contracts/hooks/routing/DestinationRecipientRoutingHook__factory.js +1 -1
  47. package/dist/factories/contracts/hooks/routing/DomainRoutingHook__factory.d.ts +1 -1
  48. package/dist/factories/contracts/hooks/routing/DomainRoutingHook__factory.js +1 -1
  49. package/dist/factories/contracts/hooks/routing/FallbackDomainRoutingHook__factory.d.ts +1 -1
  50. package/dist/factories/contracts/hooks/routing/FallbackDomainRoutingHook__factory.js +1 -1
  51. package/dist/factories/contracts/hooks/warp-route/RateLimitedHook__factory.d.ts +1 -1
  52. package/dist/factories/contracts/hooks/warp-route/RateLimitedHook__factory.js +1 -1
  53. package/dist/factories/contracts/isms/NoopIsm__factory.d.ts +1 -1
  54. package/dist/factories/contracts/isms/NoopIsm__factory.js +1 -1
  55. package/dist/factories/contracts/isms/PausableIsm__factory.d.ts +1 -1
  56. package/dist/factories/contracts/isms/PausableIsm__factory.js +1 -1
  57. package/dist/factories/contracts/isms/TrustedRelayerIsm__factory.d.ts +1 -1
  58. package/dist/factories/contracts/isms/TrustedRelayerIsm__factory.js +1 -1
  59. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsmFactory__factory.d.ts +1 -1
  60. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsmFactory__factory.js +1 -1
  61. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsm__factory.d.ts +1 -1
  62. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsm__factory.js +1 -1
  63. package/dist/factories/contracts/isms/hook/ArbL2ToL1Ism__factory.d.ts +1 -1
  64. package/dist/factories/contracts/isms/hook/ArbL2ToL1Ism__factory.js +1 -1
  65. package/dist/factories/contracts/isms/hook/ERC5164Ism__factory.d.ts +1 -1
  66. package/dist/factories/contracts/isms/hook/ERC5164Ism__factory.js +1 -1
  67. package/dist/factories/contracts/isms/hook/OPL2ToL1Ism__factory.d.ts +1 -1
  68. package/dist/factories/contracts/isms/hook/OPL2ToL1Ism__factory.js +1 -1
  69. package/dist/factories/contracts/isms/hook/OPStackIsm__factory.d.ts +1 -1
  70. package/dist/factories/contracts/isms/hook/OPStackIsm__factory.js +1 -1
  71. package/dist/factories/contracts/isms/hook/PolygonPosIsm__factory.d.ts +1 -1
  72. package/dist/factories/contracts/isms/hook/PolygonPosIsm__factory.js +1 -1
  73. package/dist/factories/contracts/isms/hook/layer-zero/LayerZeroV2Ism__factory.d.ts +1 -1
  74. package/dist/factories/contracts/isms/hook/layer-zero/LayerZeroV2Ism__factory.js +1 -1
  75. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsmFactory__factory.d.ts +1 -1
  76. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsmFactory__factory.js +1 -1
  77. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm__factory.d.ts +1 -1
  78. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm__factory.js +1 -1
  79. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsmFactory__factory.d.ts +1 -1
  80. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsmFactory__factory.js +1 -1
  81. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm__factory.d.ts +1 -1
  82. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm__factory.js +1 -1
  83. package/dist/factories/contracts/isms/multisig/ValidatorAnnounce__factory.d.ts +1 -1
  84. package/dist/factories/contracts/isms/multisig/ValidatorAnnounce__factory.js +1 -1
  85. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsmFactory__factory.d.ts +1 -1
  86. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsmFactory__factory.js +1 -1
  87. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsm__factory.d.ts +1 -1
  88. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsm__factory.js +1 -1
  89. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsmFactory__factory.d.ts +1 -1
  90. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsmFactory__factory.js +1 -1
  91. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsm__factory.d.ts +1 -1
  92. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsm__factory.js +1 -1
  93. package/dist/factories/contracts/isms/routing/DefaultFallbackRoutingIsm__factory.d.ts +1 -1
  94. package/dist/factories/contracts/isms/routing/DefaultFallbackRoutingIsm__factory.js +1 -1
  95. package/dist/factories/contracts/isms/routing/DomainRoutingIsmFactory.sol/DomainRoutingIsmFactory__factory.d.ts +1 -1
  96. package/dist/factories/contracts/isms/routing/DomainRoutingIsmFactory.sol/DomainRoutingIsmFactory__factory.js +1 -1
  97. package/dist/factories/contracts/isms/routing/DomainRoutingIsm__factory.d.ts +1 -1
  98. package/dist/factories/contracts/isms/routing/DomainRoutingIsm__factory.js +1 -1
  99. package/dist/factories/contracts/isms/routing/InterchainAccountIsm__factory.d.ts +1 -1
  100. package/dist/factories/contracts/isms/routing/InterchainAccountIsm__factory.js +1 -1
  101. package/dist/factories/contracts/isms/warp-route/RateLimitedIsm__factory.d.ts +1 -1
  102. package/dist/factories/contracts/isms/warp-route/RateLimitedIsm__factory.js +1 -1
  103. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.d.ts +1 -1
  104. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.js +1 -1
  105. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.d.ts +1 -1
  106. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.js +1 -1
  107. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.d.ts +1 -1
  108. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.js +1 -1
  109. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.d.ts +1 -1
  110. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.js +1 -1
  111. package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.d.ts +1 -1
  112. package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.js +1 -1
  113. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.d.ts +1 -1
  114. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.js +1 -1
  115. package/dist/factories/contracts/mock/MockMailbox__factory.d.ts +1 -1
  116. package/dist/factories/contracts/mock/MockMailbox__factory.js +1 -1
  117. package/dist/factories/contracts/test/TestGasRouter__factory.d.ts +1 -1
  118. package/dist/factories/contracts/test/TestGasRouter__factory.js +1 -1
  119. package/dist/factories/contracts/test/TestInterchainGasPaymaster__factory.d.ts +1 -1
  120. package/dist/factories/contracts/test/TestInterchainGasPaymaster__factory.js +1 -1
  121. package/dist/factories/contracts/test/TestMailbox__factory.d.ts +1 -1
  122. package/dist/factories/contracts/test/TestMailbox__factory.js +1 -1
  123. package/dist/factories/contracts/test/TestMerkleTreeHook__factory.d.ts +1 -1
  124. package/dist/factories/contracts/test/TestMerkleTreeHook__factory.js +1 -1
  125. package/dist/factories/contracts/test/TestPostDispatchHook__factory.d.ts +1 -1
  126. package/dist/factories/contracts/test/TestPostDispatchHook__factory.js +1 -1
  127. package/dist/factories/contracts/test/TestQuerySender__factory.d.ts +1 -1
  128. package/dist/factories/contracts/test/TestQuerySender__factory.js +1 -1
  129. package/dist/factories/contracts/test/TestQuery__factory.d.ts +1 -1
  130. package/dist/factories/contracts/test/TestQuery__factory.js +1 -1
  131. package/dist/factories/contracts/test/TestRemoteChallenger__factory.d.ts +1 -1
  132. package/dist/factories/contracts/test/TestRemoteChallenger__factory.js +1 -1
  133. package/dist/factories/contracts/test/TestRouter__factory.d.ts +1 -1
  134. package/dist/factories/contracts/test/TestRouter__factory.js +1 -1
  135. package/dist/factories/contracts/test/TestSendReceiver__factory.d.ts +1 -1
  136. package/dist/factories/contracts/test/TestSendReceiver__factory.js +1 -1
  137. package/dist/factories/contracts/test/avs/TestHyperlaneServiceManager__factory.d.ts +1 -1
  138. package/dist/factories/contracts/test/avs/TestHyperlaneServiceManager__factory.js +1 -1
  139. package/dist/factories/contracts/token/HypERC20Collateral__factory.d.ts +1 -1
  140. package/dist/factories/contracts/token/HypERC20Collateral__factory.js +1 -1
  141. package/dist/factories/contracts/token/HypERC20__factory.d.ts +1 -1
  142. package/dist/factories/contracts/token/HypERC20__factory.js +1 -1
  143. package/dist/factories/contracts/token/HypERC721Collateral__factory.d.ts +1 -1
  144. package/dist/factories/contracts/token/HypERC721Collateral__factory.js +1 -1
  145. package/dist/factories/contracts/token/HypERC721__factory.d.ts +1 -1
  146. package/dist/factories/contracts/token/HypERC721__factory.js +1 -1
  147. package/dist/factories/contracts/token/HypNative__factory.d.ts +1 -1
  148. package/dist/factories/contracts/token/HypNative__factory.js +1 -1
  149. package/dist/factories/contracts/token/extensions/FastHypERC20Collateral__factory.d.ts +1 -1
  150. package/dist/factories/contracts/token/extensions/FastHypERC20Collateral__factory.js +1 -1
  151. package/dist/factories/contracts/token/extensions/FastHypERC20__factory.d.ts +1 -1
  152. package/dist/factories/contracts/token/extensions/FastHypERC20__factory.js +1 -1
  153. package/dist/factories/contracts/token/extensions/HypERC4626Collateral__factory.d.ts +1 -1
  154. package/dist/factories/contracts/token/extensions/HypERC4626Collateral__factory.js +1 -1
  155. package/dist/factories/contracts/token/extensions/HypERC4626OwnerCollateral__factory.d.ts +1 -1
  156. package/dist/factories/contracts/token/extensions/HypERC4626OwnerCollateral__factory.js +1 -1
  157. package/dist/factories/contracts/token/extensions/HypERC4626__factory.d.ts +13 -3
  158. package/dist/factories/contracts/token/extensions/HypERC4626__factory.d.ts.map +1 -1
  159. package/dist/factories/contracts/token/extensions/HypERC4626__factory.js +16 -3
  160. package/dist/factories/contracts/token/extensions/HypERC4626__factory.js.map +1 -1
  161. package/dist/factories/contracts/token/extensions/HypERC721URICollateral__factory.d.ts +1 -1
  162. package/dist/factories/contracts/token/extensions/HypERC721URICollateral__factory.js +1 -1
  163. package/dist/factories/contracts/token/extensions/HypERC721URIStorage__factory.d.ts +1 -1
  164. package/dist/factories/contracts/token/extensions/HypERC721URIStorage__factory.js +1 -1
  165. package/dist/factories/contracts/token/extensions/HypFiatToken__factory.d.ts +1 -1
  166. package/dist/factories/contracts/token/extensions/HypFiatToken__factory.js +1 -1
  167. package/dist/factories/contracts/token/extensions/HypNativeScaled__factory.d.ts +1 -1
  168. package/dist/factories/contracts/token/extensions/HypNativeScaled__factory.js +1 -1
  169. package/dist/factories/contracts/token/extensions/HypXERC20Lockbox__factory.d.ts +1 -1
  170. package/dist/factories/contracts/token/extensions/HypXERC20Lockbox__factory.js +1 -1
  171. package/dist/factories/contracts/token/extensions/HypXERC20__factory.d.ts +1 -1
  172. package/dist/factories/contracts/token/extensions/HypXERC20__factory.js +1 -1
  173. package/dist/factories/contracts/token/extensions/WHypERC4626__factory.d.ts +1 -1
  174. package/dist/factories/contracts/token/extensions/WHypERC4626__factory.js +1 -1
  175. package/package.json +2 -2
@@ -7,5 +7,5 @@ pragma solidity >=0.6.11;
7
7
  **/
8
8
  abstract contract PackageVersioned {
9
9
  // GENERATED CODE - DO NOT EDIT
10
- string public constant PACKAGE_VERSION = "5.6.0";
10
+ string public constant PACKAGE_VERSION = "5.6.1";
11
11
  }
@@ -22,10 +22,13 @@ import {TokenRouter} from "../libs/TokenRouter.sol";
22
22
 
23
23
  // ============ External Imports ============
24
24
  import {Math} from "@openzeppelin/contracts/utils/math/Math.sol";
25
+ import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
26
+ import {ERC20Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol";
25
27
 
26
28
  /**
27
29
  * @title Hyperlane ERC20 Rebasing Token
28
30
  * @author Abacus Works
31
+ * @notice This contract implements a rebasing token that reflects yields from the origin chain
29
32
  */
30
33
  contract HypERC4626 is HypERC20 {
31
34
  using Math for uint256;
@@ -49,6 +52,67 @@ contract HypERC4626 is HypERC20 {
49
52
  _disableInitializers();
50
53
  }
51
54
 
55
+ // ============ Public Functions ============
56
+
57
+ /// Override transfer to handle underlying amounts while using shares internally
58
+ /// @inheritdoc ERC20Upgradeable
59
+ /// @dev the Transfer event emitted from ERC20Upgradeable will be in terms of shares not assets, so it may be misleading
60
+ function transfer(
61
+ address to,
62
+ uint256 amount
63
+ ) public virtual override returns (bool) {
64
+ _transfer(_msgSender(), to, assetsToShares(amount));
65
+ return true;
66
+ }
67
+
68
+ /// Override transferFrom to handle underlying amounts while using shares internally
69
+ /// @inheritdoc ERC20Upgradeable
70
+ function transferFrom(
71
+ address sender,
72
+ address recipient,
73
+ uint256 amount
74
+ ) public virtual override returns (bool) {
75
+ address spender = _msgSender();
76
+ uint256 shares = assetsToShares(amount);
77
+ _spendAllowance(sender, spender, amount);
78
+ _transfer(sender, recipient, shares);
79
+ return true;
80
+ }
81
+
82
+ /// Override totalSupply to return the total assets instead of shares. This reflects the actual circulating supply in terms of assets, accounting for rebasing
83
+ /// @inheritdoc ERC20Upgradeable
84
+ function totalSupply() public view virtual override returns (uint256) {
85
+ return sharesToAssets(totalShares());
86
+ }
87
+
88
+ /// This returns the balance of the account in terms of assets, accounting for rebasing
89
+ /// @inheritdoc ERC20Upgradeable
90
+ function balanceOf(
91
+ address account
92
+ ) public view virtual override returns (uint256) {
93
+ return sharesToAssets(shareBalanceOf(account));
94
+ }
95
+
96
+ /// This function provides the total supply in terms of shares
97
+ function totalShares() public view returns (uint256) {
98
+ return super.totalSupply();
99
+ }
100
+
101
+ /// This returns the balance of the account in terms of shares
102
+ function shareBalanceOf(address account) public view returns (uint256) {
103
+ return super.balanceOf(account);
104
+ }
105
+
106
+ function assetsToShares(uint256 _amount) public view returns (uint256) {
107
+ return _amount.mulDiv(PRECISION, exchangeRate);
108
+ }
109
+
110
+ function sharesToAssets(uint256 _shares) public view returns (uint256) {
111
+ return _shares.mulDiv(exchangeRate, PRECISION);
112
+ }
113
+
114
+ // ============ Internal Functions ============
115
+
52
116
  /// Override to send shares instead of assets from synthetic
53
117
  /// @inheritdoc TokenRouter
54
118
  function _transferRemote(
@@ -78,6 +142,8 @@ contract HypERC4626 is HypERC20 {
78
142
  emit SentTransferRemote(_destination, _recipient, _amountOrId);
79
143
  }
80
144
 
145
+ /// override _handle to update exchange rate
146
+ /// @inheritdoc TokenRouter
81
147
  function _handle(
82
148
  uint32 _origin,
83
149
  bytes32 _sender,
@@ -97,33 +163,4 @@ contract HypERC4626 is HypERC20 {
97
163
  }
98
164
  super._handle(_origin, _sender, _message);
99
165
  }
100
-
101
- // Override to send shares locally instead of assets
102
- function transfer(
103
- address to,
104
- uint256 amount
105
- ) public virtual override returns (bool) {
106
- address owner = _msgSender();
107
- _transfer(owner, to, assetsToShares(amount));
108
- return true;
109
- }
110
-
111
- function shareBalanceOf(address account) public view returns (uint256) {
112
- return super.balanceOf(account);
113
- }
114
-
115
- function balanceOf(
116
- address account
117
- ) public view virtual override returns (uint256) {
118
- uint256 _balance = super.balanceOf(account);
119
- return sharesToAssets(_balance);
120
- }
121
-
122
- function assetsToShares(uint256 _amount) public view returns (uint256) {
123
- return _amount.mulDiv(PRECISION, exchangeRate);
124
- }
125
-
126
- function sharesToAssets(uint256 _shares) public view returns (uint256) {
127
- return _shares.mulDiv(exchangeRate, PRECISION);
128
- }
129
166
  }