@hyperlane-xyz/core 5.12.0-ccip.0 → 5.12.0-ccip.2
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.
- package/contracts/PackageVersioned.sol +1 -1
- package/contracts/libs/RateLimitMidpointCommonLibrary.sol +22 -0
- package/contracts/test/ERC20Test.sol +9 -4
- package/contracts/token/interfaces/IXERC20VS.sol +96 -0
- package/dist/buildArtifact.js +1 -1
- package/dist/buildArtifact.json +1 -1
- package/dist/contracts/test/ERC20Test.sol/XERC20Test.d.ts +108 -1
- package/dist/contracts/test/ERC20Test.sol/XERC20Test.d.ts.map +1 -1
- package/dist/contracts/token/interfaces/IXERC20VS.d.ts +557 -0
- package/dist/contracts/token/interfaces/IXERC20VS.d.ts.map +1 -0
- package/dist/contracts/token/interfaces/IXERC20VS.js +2 -0
- package/dist/contracts/token/interfaces/IXERC20VS.js.map +1 -0
- package/dist/contracts/token/interfaces/index.d.ts +1 -0
- package/dist/contracts/token/interfaces/index.d.ts.map +1 -1
- package/dist/factories/contracts/AttributeCheckpointFraud__factory.d.ts +1 -1
- package/dist/factories/contracts/AttributeCheckpointFraud__factory.js +1 -1
- package/dist/factories/contracts/CheckpointFraudProofs__factory.d.ts +1 -1
- package/dist/factories/contracts/CheckpointFraudProofs__factory.js +1 -1
- package/dist/factories/contracts/Mailbox__factory.d.ts +1 -1
- package/dist/factories/contracts/Mailbox__factory.js +1 -1
- package/dist/factories/contracts/avs/ECDSAStakeRegistry__factory.d.ts +1 -1
- package/dist/factories/contracts/avs/ECDSAStakeRegistry__factory.js +1 -1
- package/dist/factories/contracts/avs/HyperlaneServiceManager__factory.d.ts +1 -1
- package/dist/factories/contracts/avs/HyperlaneServiceManager__factory.js +1 -1
- package/dist/factories/contracts/hooks/ArbL2ToL1Hook__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/ArbL2ToL1Hook__factory.js +1 -1
- package/dist/factories/contracts/hooks/CCIPHook__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/CCIPHook__factory.js +1 -1
- package/dist/factories/contracts/hooks/DefaultHook__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/DefaultHook__factory.js +1 -1
- package/dist/factories/contracts/hooks/MerkleTreeHook__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/MerkleTreeHook__factory.js +1 -1
- package/dist/factories/contracts/hooks/OPL2ToL1Hook__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/OPL2ToL1Hook__factory.js +1 -1
- package/dist/factories/contracts/hooks/OPStackHook__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/OPStackHook__factory.js +1 -1
- package/dist/factories/contracts/hooks/PausableHook__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/PausableHook__factory.js +1 -1
- package/dist/factories/contracts/hooks/PolygonPosHook__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/PolygonPosHook__factory.js +1 -1
- package/dist/factories/contracts/hooks/ProtocolFee__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/ProtocolFee__factory.js +1 -1
- package/dist/factories/contracts/hooks/aggregation/ERC5164Hook__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/aggregation/ERC5164Hook__factory.js +1 -1
- package/dist/factories/contracts/hooks/aggregation/StaticAggregationHookFactory__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/aggregation/StaticAggregationHookFactory__factory.js +1 -1
- package/dist/factories/contracts/hooks/aggregation/StaticAggregationHook__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/aggregation/StaticAggregationHook__factory.js +1 -1
- package/dist/factories/contracts/hooks/igp/InterchainGasPaymaster__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/igp/InterchainGasPaymaster__factory.js +1 -1
- package/dist/factories/contracts/hooks/igp/StorageGasOracle__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/igp/StorageGasOracle__factory.js +1 -1
- package/dist/factories/contracts/hooks/layer-zero/LayerZeroV1Hook__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/layer-zero/LayerZeroV1Hook__factory.js +1 -1
- package/dist/factories/contracts/hooks/layer-zero/LayerZeroV2Hook__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/layer-zero/LayerZeroV2Hook__factory.js +1 -1
- package/dist/factories/contracts/hooks/routing/AmountRoutingHook__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/routing/AmountRoutingHook__factory.js +1 -1
- package/dist/factories/contracts/hooks/routing/DestinationRecipientRoutingHook__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/routing/DestinationRecipientRoutingHook__factory.js +1 -1
- package/dist/factories/contracts/hooks/routing/DomainRoutingHook__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/routing/DomainRoutingHook__factory.js +1 -1
- package/dist/factories/contracts/hooks/routing/FallbackDomainRoutingHook__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/routing/FallbackDomainRoutingHook__factory.js +1 -1
- package/dist/factories/contracts/hooks/warp-route/RateLimitedHook__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/warp-route/RateLimitedHook__factory.js +1 -1
- package/dist/factories/contracts/isms/NoopIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/NoopIsm__factory.js +1 -1
- package/dist/factories/contracts/isms/PausableIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/PausableIsm__factory.js +1 -1
- package/dist/factories/contracts/isms/TrustedRelayerIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/TrustedRelayerIsm__factory.js +1 -1
- package/dist/factories/contracts/isms/aggregation/StaticAggregationIsmFactory__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/aggregation/StaticAggregationIsmFactory__factory.js +1 -1
- package/dist/factories/contracts/isms/aggregation/StaticAggregationIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/aggregation/StaticAggregationIsm__factory.js +1 -1
- package/dist/factories/contracts/isms/aggregation/StorageAggregationIsm.sol/StorageAggregationIsmFactory__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/aggregation/StorageAggregationIsm.sol/StorageAggregationIsmFactory__factory.js +1 -1
- package/dist/factories/contracts/isms/aggregation/StorageAggregationIsm.sol/StorageAggregationIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/aggregation/StorageAggregationIsm.sol/StorageAggregationIsm__factory.js +1 -1
- package/dist/factories/contracts/isms/hook/ArbL2ToL1Ism__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/hook/ArbL2ToL1Ism__factory.js +1 -1
- package/dist/factories/contracts/isms/hook/CCIPIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/hook/CCIPIsm__factory.js +1 -1
- package/dist/factories/contracts/isms/hook/ERC5164Ism__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/hook/ERC5164Ism__factory.js +1 -1
- package/dist/factories/contracts/isms/hook/OPL2ToL1Ism__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/hook/OPL2ToL1Ism__factory.js +1 -1
- package/dist/factories/contracts/isms/hook/OPStackIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/hook/OPStackIsm__factory.js +1 -1
- package/dist/factories/contracts/isms/hook/PolygonPosIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/hook/PolygonPosIsm__factory.js +1 -1
- package/dist/factories/contracts/isms/hook/layer-zero/LayerZeroV2Ism__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/hook/layer-zero/LayerZeroV2Ism__factory.js +1 -1
- package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsmFactory__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsmFactory__factory.js +1 -1
- package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm__factory.js +1 -1
- package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsmFactory__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsmFactory__factory.js +1 -1
- package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm__factory.js +1 -1
- package/dist/factories/contracts/isms/multisig/StorageMultisigIsm.sol/StorageMerkleRootMultisigIsmFactory__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/multisig/StorageMultisigIsm.sol/StorageMerkleRootMultisigIsmFactory__factory.js +1 -1
- package/dist/factories/contracts/isms/multisig/StorageMultisigIsm.sol/StorageMerkleRootMultisigIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/multisig/StorageMultisigIsm.sol/StorageMerkleRootMultisigIsm__factory.js +1 -1
- package/dist/factories/contracts/isms/multisig/StorageMultisigIsm.sol/StorageMessageIdMultisigIsmFactory__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/multisig/StorageMultisigIsm.sol/StorageMessageIdMultisigIsmFactory__factory.js +1 -1
- package/dist/factories/contracts/isms/multisig/StorageMultisigIsm.sol/StorageMessageIdMultisigIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/multisig/StorageMultisigIsm.sol/StorageMessageIdMultisigIsm__factory.js +1 -1
- package/dist/factories/contracts/isms/multisig/ValidatorAnnounce__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/multisig/ValidatorAnnounce__factory.js +1 -1
- package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsmFactory__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsmFactory__factory.js +1 -1
- package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsm__factory.js +1 -1
- package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsmFactory__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsmFactory__factory.js +1 -1
- package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsm__factory.js +1 -1
- package/dist/factories/contracts/isms/routing/DefaultFallbackRoutingIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/routing/DefaultFallbackRoutingIsm__factory.js +1 -1
- package/dist/factories/contracts/isms/routing/DomainRoutingIsmFactory.sol/DomainRoutingIsmFactory__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/routing/DomainRoutingIsmFactory.sol/DomainRoutingIsmFactory__factory.js +1 -1
- package/dist/factories/contracts/isms/routing/DomainRoutingIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/routing/DomainRoutingIsm__factory.js +1 -1
- package/dist/factories/contracts/isms/routing/InterchainAccountIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/routing/InterchainAccountIsm__factory.js +1 -1
- package/dist/factories/contracts/isms/warp-route/AmountRoutingIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/warp-route/AmountRoutingIsm__factory.js +1 -1
- package/dist/factories/contracts/isms/warp-route/RateLimitedIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/warp-route/RateLimitedIsm__factory.js +1 -1
- package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.d.ts +1 -1
- package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.js +1 -1
- package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.d.ts +1 -1
- package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.js +1 -1
- package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.d.ts +1 -1
- package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.js +1 -1
- package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.d.ts +1 -1
- package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.js +1 -1
- package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.d.ts +1 -1
- package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.js +1 -1
- package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.d.ts +1 -1
- package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.js +1 -1
- package/dist/factories/contracts/mock/MockMailbox__factory.d.ts +1 -1
- package/dist/factories/contracts/mock/MockMailbox__factory.js +1 -1
- package/dist/factories/contracts/test/ERC20Test.sol/ERC20Test__factory.d.ts +1 -1
- package/dist/factories/contracts/test/ERC20Test.sol/ERC20Test__factory.js +1 -1
- package/dist/factories/contracts/test/ERC20Test.sol/FiatTokenTest__factory.d.ts +1 -1
- package/dist/factories/contracts/test/ERC20Test.sol/FiatTokenTest__factory.js +1 -1
- package/dist/factories/contracts/test/ERC20Test.sol/XERC20LockboxTest__factory.d.ts +1 -1
- package/dist/factories/contracts/test/ERC20Test.sol/XERC20LockboxTest__factory.d.ts.map +1 -1
- package/dist/factories/contracts/test/ERC20Test.sol/XERC20LockboxTest__factory.js +1 -1
- package/dist/factories/contracts/test/ERC20Test.sol/XERC20LockboxTest__factory.js.map +1 -1
- package/dist/factories/contracts/test/ERC20Test.sol/XERC20Test__factory.d.ts +39 -2
- package/dist/factories/contracts/test/ERC20Test.sol/XERC20Test__factory.d.ts.map +1 -1
- package/dist/factories/contracts/test/ERC20Test.sol/XERC20Test__factory.js +48 -2
- package/dist/factories/contracts/test/ERC20Test.sol/XERC20Test__factory.js.map +1 -1
- package/dist/factories/contracts/test/TestGasRouter__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestGasRouter__factory.js +1 -1
- package/dist/factories/contracts/test/TestInterchainGasPaymaster__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestInterchainGasPaymaster__factory.js +1 -1
- package/dist/factories/contracts/test/TestMailbox__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestMailbox__factory.js +1 -1
- package/dist/factories/contracts/test/TestMerkleTreeHook__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestMerkleTreeHook__factory.js +1 -1
- package/dist/factories/contracts/test/TestPostDispatchHook__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestPostDispatchHook__factory.js +1 -1
- package/dist/factories/contracts/test/TestQuerySender__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestQuerySender__factory.js +1 -1
- package/dist/factories/contracts/test/TestQuery__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestQuery__factory.js +1 -1
- package/dist/factories/contracts/test/TestRemoteChallenger__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestRemoteChallenger__factory.js +1 -1
- package/dist/factories/contracts/test/TestRouter__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestRouter__factory.js +1 -1
- package/dist/factories/contracts/test/TestSendReceiver__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestSendReceiver__factory.js +1 -1
- package/dist/factories/contracts/test/avs/TestHyperlaneServiceManager__factory.d.ts +1 -1
- package/dist/factories/contracts/test/avs/TestHyperlaneServiceManager__factory.js +1 -1
- package/dist/factories/contracts/token/HypERC20Collateral__factory.d.ts +1 -1
- package/dist/factories/contracts/token/HypERC20Collateral__factory.js +1 -1
- package/dist/factories/contracts/token/HypERC20__factory.d.ts +1 -1
- package/dist/factories/contracts/token/HypERC20__factory.js +1 -1
- package/dist/factories/contracts/token/HypERC721Collateral__factory.d.ts +1 -1
- package/dist/factories/contracts/token/HypERC721Collateral__factory.js +1 -1
- package/dist/factories/contracts/token/HypERC721__factory.d.ts +1 -1
- package/dist/factories/contracts/token/HypERC721__factory.js +1 -1
- package/dist/factories/contracts/token/HypNative__factory.d.ts +1 -1
- package/dist/factories/contracts/token/HypNative__factory.js +1 -1
- package/dist/factories/contracts/token/extensions/FastHypERC20Collateral__factory.d.ts +1 -1
- package/dist/factories/contracts/token/extensions/FastHypERC20Collateral__factory.js +1 -1
- package/dist/factories/contracts/token/extensions/FastHypERC20__factory.d.ts +1 -1
- package/dist/factories/contracts/token/extensions/FastHypERC20__factory.js +1 -1
- package/dist/factories/contracts/token/extensions/HypERC4626Collateral__factory.d.ts +1 -1
- package/dist/factories/contracts/token/extensions/HypERC4626Collateral__factory.js +1 -1
- package/dist/factories/contracts/token/extensions/HypERC4626OwnerCollateral__factory.d.ts +1 -1
- package/dist/factories/contracts/token/extensions/HypERC4626OwnerCollateral__factory.js +1 -1
- package/dist/factories/contracts/token/extensions/HypERC4626__factory.d.ts +1 -1
- package/dist/factories/contracts/token/extensions/HypERC4626__factory.js +1 -1
- package/dist/factories/contracts/token/extensions/HypERC721URICollateral__factory.d.ts +1 -1
- package/dist/factories/contracts/token/extensions/HypERC721URICollateral__factory.js +1 -1
- package/dist/factories/contracts/token/extensions/HypERC721URIStorage__factory.d.ts +1 -1
- package/dist/factories/contracts/token/extensions/HypERC721URIStorage__factory.js +1 -1
- package/dist/factories/contracts/token/extensions/HypFiatToken__factory.d.ts +1 -1
- package/dist/factories/contracts/token/extensions/HypFiatToken__factory.js +1 -1
- package/dist/factories/contracts/token/extensions/HypNativeScaled__factory.d.ts +1 -1
- package/dist/factories/contracts/token/extensions/HypNativeScaled__factory.js +1 -1
- package/dist/factories/contracts/token/extensions/HypXERC20Lockbox__factory.d.ts +1 -1
- package/dist/factories/contracts/token/extensions/HypXERC20Lockbox__factory.js +1 -1
- package/dist/factories/contracts/token/extensions/HypXERC20__factory.d.ts +1 -1
- package/dist/factories/contracts/token/extensions/HypXERC20__factory.js +1 -1
- package/dist/factories/contracts/token/extensions/WHypERC4626__factory.d.ts +1 -1
- package/dist/factories/contracts/token/extensions/WHypERC4626__factory.js +1 -1
- package/dist/factories/contracts/token/interfaces/IXERC20VS__factory.d.ts +354 -0
- package/dist/factories/contracts/token/interfaces/IXERC20VS__factory.d.ts.map +1 -0
- package/dist/factories/contracts/token/interfaces/IXERC20VS__factory.js +468 -0
- package/dist/factories/contracts/token/interfaces/IXERC20VS__factory.js.map +1 -0
- package/dist/factories/contracts/token/interfaces/index.d.ts +1 -0
- package/dist/factories/contracts/token/interfaces/index.d.ts.map +1 -1
- package/dist/factories/contracts/token/interfaces/index.js +1 -0
- package/dist/factories/contracts/token/interfaces/index.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// SPDX-License-Identifier: BSD-3.0
|
|
2
|
+
pragma solidity >=0.8.19 <0.9.0;
|
|
3
|
+
|
|
4
|
+
/// @notice two rate storage slots per rate limit
|
|
5
|
+
struct RateLimitMidPoint {
|
|
6
|
+
//// -------------------------------------------- ////
|
|
7
|
+
//// ------------------ SLOT 0 ------------------ ////
|
|
8
|
+
//// -------------------------------------------- ////
|
|
9
|
+
/// @notice the rate per second for this contract
|
|
10
|
+
uint128 rateLimitPerSecond;
|
|
11
|
+
/// @notice the cap of the buffer that can be used at once
|
|
12
|
+
uint112 bufferCap;
|
|
13
|
+
//// -------------------------------------------- ////
|
|
14
|
+
//// ------------------ SLOT 1 ------------------ ////
|
|
15
|
+
//// -------------------------------------------- ////
|
|
16
|
+
/// @notice the last time the buffer was used by the contract
|
|
17
|
+
uint32 lastBufferUsedTime;
|
|
18
|
+
/// @notice the buffer at the timestamp of lastBufferUsedTime
|
|
19
|
+
uint112 bufferStored;
|
|
20
|
+
/// @notice the mid point of the buffer
|
|
21
|
+
uint112 midPoint;
|
|
22
|
+
}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
pragma solidity >=0.8.0;
|
|
3
3
|
|
|
4
4
|
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
|
|
5
|
+
import "@openzeppelin/contracts/access/Ownable.sol";
|
|
5
6
|
|
|
6
7
|
import "../token/interfaces/IXERC20Lockbox.sol";
|
|
7
8
|
import "../token/interfaces/IXERC20.sol";
|
|
@@ -55,13 +56,17 @@ contract FiatTokenTest is ERC20Test, IFiatToken {
|
|
|
55
56
|
}
|
|
56
57
|
}
|
|
57
58
|
|
|
58
|
-
contract XERC20Test is ERC20Test, IXERC20 {
|
|
59
|
+
contract XERC20Test is ERC20Test, Ownable, IXERC20 {
|
|
59
60
|
constructor(
|
|
60
61
|
string memory name,
|
|
61
62
|
string memory symbol,
|
|
62
63
|
uint256 totalSupply,
|
|
63
64
|
uint8 __decimals
|
|
64
|
-
) ERC20Test(name, symbol, totalSupply, __decimals) {}
|
|
65
|
+
) ERC20Test(name, symbol, totalSupply, __decimals) Ownable() {}
|
|
66
|
+
|
|
67
|
+
function initialize() external {
|
|
68
|
+
_transferOwnership(msg.sender);
|
|
69
|
+
}
|
|
65
70
|
|
|
66
71
|
function mint(address account, uint256 amount) public override {
|
|
67
72
|
_mint(account, amount);
|
|
@@ -75,8 +80,8 @@ contract XERC20Test is ERC20Test, IXERC20 {
|
|
|
75
80
|
assert(false);
|
|
76
81
|
}
|
|
77
82
|
|
|
78
|
-
function owner()
|
|
79
|
-
return
|
|
83
|
+
function owner() public view override(Ownable, IXERC20) returns (address) {
|
|
84
|
+
return Ownable.owner();
|
|
80
85
|
}
|
|
81
86
|
|
|
82
87
|
function burningCurrentLimitOf(
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity ^0.8.0;
|
|
3
|
+
|
|
4
|
+
import {RateLimitMidPoint} from "../../libs/RateLimitMidpointCommonLibrary.sol";
|
|
5
|
+
import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
|
|
6
|
+
|
|
7
|
+
interface IXERC20VS is IERC20 {
|
|
8
|
+
/// @notice Emits when a limit is set
|
|
9
|
+
/// @param _bridge The address of the bridge we are setting the limit to
|
|
10
|
+
/// @param _bufferCap The updated buffer cap for the bridge
|
|
11
|
+
event BridgeLimitsSet(address indexed _bridge, uint256 _bufferCap);
|
|
12
|
+
|
|
13
|
+
struct RateLimitMidPointInfo {
|
|
14
|
+
/// @notice the buffer cap for this bridge
|
|
15
|
+
uint112 bufferCap;
|
|
16
|
+
/// @notice the rate limit per second for this bridge
|
|
17
|
+
uint128 rateLimitPerSecond;
|
|
18
|
+
/// @notice the bridge address
|
|
19
|
+
address bridge;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/// @notice The address of the lockbox contract
|
|
23
|
+
function lockbox() external view returns (address);
|
|
24
|
+
|
|
25
|
+
/// @notice Maps bridge address to bridge rate limits
|
|
26
|
+
/// @param _bridge The bridge we are viewing the limits of
|
|
27
|
+
/// @return _rateLimit The limits of the bridge
|
|
28
|
+
function rateLimits(
|
|
29
|
+
address _bridge
|
|
30
|
+
) external view returns (RateLimitMidPoint memory _rateLimit);
|
|
31
|
+
|
|
32
|
+
/// @notice Returns the max limit of a bridge
|
|
33
|
+
/// @param _bridge The bridge we are viewing the limits of
|
|
34
|
+
/// @return _limit The limit the bridge has
|
|
35
|
+
function mintingMaxLimitOf(
|
|
36
|
+
address _bridge
|
|
37
|
+
) external view returns (uint256 _limit);
|
|
38
|
+
|
|
39
|
+
/// @notice Returns the max limit of a bridge
|
|
40
|
+
/// @param _bridge the bridge we are viewing the limits of
|
|
41
|
+
/// @return _limit The limit the bridge has
|
|
42
|
+
function burningMaxLimitOf(
|
|
43
|
+
address _bridge
|
|
44
|
+
) external view returns (uint256 _limit);
|
|
45
|
+
|
|
46
|
+
/// @notice Returns the current limit of a bridge
|
|
47
|
+
/// @param _bridge The bridge we are viewing the limits of
|
|
48
|
+
/// @return _limit The limit the bridge has
|
|
49
|
+
function mintingCurrentLimitOf(
|
|
50
|
+
address _bridge
|
|
51
|
+
) external view returns (uint256 _limit);
|
|
52
|
+
|
|
53
|
+
/// @notice Returns the current limit of a bridge
|
|
54
|
+
/// @param _bridge the bridge we are viewing the limits of
|
|
55
|
+
/// @return _limit The limit the bridge has
|
|
56
|
+
function burningCurrentLimitOf(
|
|
57
|
+
address _bridge
|
|
58
|
+
) external view returns (uint256 _limit);
|
|
59
|
+
|
|
60
|
+
/// @notice Mints tokens for a user
|
|
61
|
+
/// @dev Can only be called by a bridge
|
|
62
|
+
/// @param _user The address of the user who needs tokens minted
|
|
63
|
+
/// @param _amount The amount of tokens being minted
|
|
64
|
+
function mint(address _user, uint256 _amount) external;
|
|
65
|
+
|
|
66
|
+
/// @notice Burns tokens for a user
|
|
67
|
+
/// @dev Can only be called by a bridge
|
|
68
|
+
/// @param _user The address of the user who needs tokens burned
|
|
69
|
+
/// @param _amount The amount of tokens being burned
|
|
70
|
+
function burn(address _user, uint256 _amount) external;
|
|
71
|
+
|
|
72
|
+
/// @notice Conform to the xERC20 setLimits interface
|
|
73
|
+
/// @dev Can only be called if the bridge already has a buffer cap
|
|
74
|
+
/// @param _bridge The bridge we are setting the limits of
|
|
75
|
+
/// @param _newBufferCap The new buffer cap, uint112 max for unlimited
|
|
76
|
+
function setBufferCap(address _bridge, uint256 _newBufferCap) external;
|
|
77
|
+
|
|
78
|
+
/// @notice Sets rate limit per second for a bridge
|
|
79
|
+
/// @dev Can only be called if the bridge already has a buffer cap
|
|
80
|
+
/// @param _bridge The bridge we are setting the limits of
|
|
81
|
+
/// @param _newRateLimitPerSecond The new rate limit per second
|
|
82
|
+
function setRateLimitPerSecond(
|
|
83
|
+
address _bridge,
|
|
84
|
+
uint128 _newRateLimitPerSecond
|
|
85
|
+
) external;
|
|
86
|
+
|
|
87
|
+
/// @notice Adds a new bridge to the currently active bridges
|
|
88
|
+
/// @param _newBridge The bridge to add
|
|
89
|
+
function addBridge(RateLimitMidPointInfo memory _newBridge) external;
|
|
90
|
+
|
|
91
|
+
/// @notice Removes a bridge from the currently active bridges
|
|
92
|
+
/// deleting its buffer stored, buffer cap, mid point and last
|
|
93
|
+
/// buffer used time
|
|
94
|
+
/// @param _bridge The bridge to remove
|
|
95
|
+
function removeBridge(address _bridge) external;
|
|
96
|
+
}
|