From cfdeeda8fe81a1a482bc7645ff89e0859ecfece8 Mon Sep 17 00:00:00 2001 From: Rens Rooimans Date: Wed, 27 Sep 2023 08:44:25 +0200 Subject: [PATCH] pretty struct packing comments (#162) --- .../src/v0.8/ccip/AggregateRateLimiter.sol | 3 +- contracts/src/v0.8/ccip/CommitStore.sol | 14 +-- contracts/src/v0.8/ccip/PriceRegistry.sol | 8 +- contracts/src/v0.8/ccip/Router.sol | 8 +- .../src/v0.8/ccip/libraries/RateLimiter.sol | 14 +-- .../src/v0.8/ccip/offRamp/EVM2EVMOffRamp.sol | 26 +++--- .../src/v0.8/ccip/onRamp/EVM2EVMOnRamp.sol | 88 +++++++++---------- contracts/src/v0.8/ccip/pools/TokenPool.sol | 8 +- .../v0.8/ccip/pools/USDC/USDCTokenPool.sol | 16 ++-- 9 files changed, 93 insertions(+), 92 deletions(-) diff --git a/contracts/src/v0.8/ccip/AggregateRateLimiter.sol b/contracts/src/v0.8/ccip/AggregateRateLimiter.sol index 7d22df5282..fef7a64f15 100644 --- a/contracts/src/v0.8/ccip/AggregateRateLimiter.sol +++ b/contracts/src/v0.8/ccip/AggregateRateLimiter.sol @@ -16,6 +16,7 @@ contract AggregateRateLimiter is OwnerIsCreator { using USDPriceWith18Decimals for uint224; error PriceNotFoundForToken(address token); + event AdminSet(address newAdmin); // The address of the token limit admin that has the same permissions as the owner. @@ -67,7 +68,7 @@ contract AggregateRateLimiter is OwnerIsCreator { } // ================================================================ - // | Access | + // │ Access │ // ================================================================ /// @notice Gets the token limit admin address. diff --git a/contracts/src/v0.8/ccip/CommitStore.sol b/contracts/src/v0.8/ccip/CommitStore.sol index 9f1cc77196..bff308f2bf 100644 --- a/contracts/src/v0.8/ccip/CommitStore.sol +++ b/contracts/src/v0.8/ccip/CommitStore.sol @@ -27,8 +27,8 @@ contract CommitStore is ICommitStore, TypeAndVersionInterface, OCR2Base { /// @notice Static commit store config struct StaticConfig { - uint64 chainSelector; // -------┐ Destination chainSelector - uint64 sourceChainSelector; // -┘ Source chainSelector + uint64 chainSelector; // ───────╮ Destination chainSelector + uint64 sourceChainSelector; // ─╯ Source chainSelector address onRamp; // OnRamp address on the source chain address armProxy; // ARM proxy address } @@ -40,8 +40,8 @@ contract CommitStore is ICommitStore, TypeAndVersionInterface, OCR2Base { /// @notice a sequenceNumber interval struct Interval { - uint64 min; // ---┐ Minimum sequence number, inclusive - uint64 max; // ---┘ Maximum sequence number, inclusive + uint64 min; // ───╮ Minimum sequence number, inclusive + uint64 max; // ───╯ Maximum sequence number, inclusive } /// @notice Report that is committed by the observing DON at the committing phase @@ -98,7 +98,7 @@ contract CommitStore is ICommitStore, TypeAndVersionInterface, OCR2Base { } // ================================================================ - // | Verification | + // │ Verification │ // ================================================================ /// @notice Returns the next expected sequence number. @@ -218,7 +218,7 @@ contract CommitStore is ICommitStore, TypeAndVersionInterface, OCR2Base { } // ================================================================ - // | Config | + // │ Config │ // ================================================================ /// @notice Returns the static commit store config. @@ -264,7 +264,7 @@ contract CommitStore is ICommitStore, TypeAndVersionInterface, OCR2Base { } // ================================================================ - // | Access and ARM | + // │ Access and ARM │ // ================================================================ /// @notice Single function to check the status of the commitStore. diff --git a/contracts/src/v0.8/ccip/PriceRegistry.sol b/contracts/src/v0.8/ccip/PriceRegistry.sol index 755141caca..ec7089fc0d 100644 --- a/contracts/src/v0.8/ccip/PriceRegistry.sol +++ b/contracts/src/v0.8/ccip/PriceRegistry.sol @@ -66,7 +66,7 @@ contract PriceRegistry is IPriceRegistry, OwnerIsCreator, TypeAndVersionInterfac } // ================================================================ - // | Price calculations | + // │ Price calculations │ // ================================================================ // @inheritdoc IPriceRegistry @@ -147,7 +147,7 @@ contract PriceRegistry is IPriceRegistry, OwnerIsCreator, TypeAndVersionInterfac } // ================================================================ - // | Fee tokens | + // │ Fee tokens │ // ================================================================ /// @notice Get the list of fee tokens. @@ -185,7 +185,7 @@ contract PriceRegistry is IPriceRegistry, OwnerIsCreator, TypeAndVersionInterfac } // ================================================================ - // | Price updates | + // │ Price updates │ // ================================================================ // @inheritdoc IPriceRegistry @@ -211,7 +211,7 @@ contract PriceRegistry is IPriceRegistry, OwnerIsCreator, TypeAndVersionInterfac } // ================================================================ - // | Access | + // │ Access │ // ================================================================ /// @notice Get the list of price updaters. diff --git a/contracts/src/v0.8/ccip/Router.sol b/contracts/src/v0.8/ccip/Router.sol index 6b15e521c5..3cdb5f8d15 100644 --- a/contracts/src/v0.8/ccip/Router.sol +++ b/contracts/src/v0.8/ccip/Router.sol @@ -71,7 +71,7 @@ contract Router is IRouter, IRouterClient, TypeAndVersionInterface, OwnerIsCreat } // ================================================================ - // | Message sending | + // │ Message sending │ // ================================================================ /// @inheritdoc IRouterClient @@ -145,7 +145,7 @@ contract Router is IRouter, IRouterClient, TypeAndVersionInterface, OwnerIsCreat } // ================================================================ - // | Message execution | + // │ Message execution │ // ================================================================ /// @inheritdoc IRouter @@ -218,7 +218,7 @@ contract Router is IRouter, IRouterClient, TypeAndVersionInterface, OwnerIsCreat } // ================================================================ - // | Config | + // │ Config │ // ================================================================ /// @notice Gets the wrapped representation of the native fee coin. @@ -316,7 +316,7 @@ contract Router is IRouter, IRouterClient, TypeAndVersionInterface, OwnerIsCreat } // ================================================================ - // | Access | + // │ Access │ // ================================================================ /// @notice only lets permissioned offRamps execute diff --git a/contracts/src/v0.8/ccip/libraries/RateLimiter.sol b/contracts/src/v0.8/ccip/libraries/RateLimiter.sol index 578fb60830..81b6999d1c 100644 --- a/contracts/src/v0.8/ccip/libraries/RateLimiter.sol +++ b/contracts/src/v0.8/ccip/libraries/RateLimiter.sol @@ -20,17 +20,17 @@ library RateLimiter { event ConfigChanged(Config config); struct TokenBucket { - uint128 tokens; // ------┐ Current number of tokens that are in the bucket. - uint32 lastUpdated; // | Timestamp in seconds of the last token refill, good for 100+ years. - bool isEnabled; // ------┘ Indication whether the rate limiting is enabled or not - uint128 capacity; // ----┐ Maximum number of tokens that can be in the bucket. - uint128 rate; // --------┘ Number of tokens per second that the bucket is refilled. + uint128 tokens; // ──────╮ Current number of tokens that are in the bucket. + uint32 lastUpdated; // │ Timestamp in seconds of the last token refill, good for 100+ years. + bool isEnabled; // ──────╯ Indication whether the rate limiting is enabled or not + uint128 capacity; // ────╮ Maximum number of tokens that can be in the bucket. + uint128 rate; // ────────╯ Number of tokens per second that the bucket is refilled. } struct Config { bool isEnabled; // Indication whether the rate limiting should be enabled - uint128 capacity; // ----┐ Specifies the capacity of the rate limiter - uint128 rate; // -------┘ Specifies the rate of the rate limiter + uint128 capacity; // ────╮ Specifies the capacity of the rate limiter + uint128 rate; // ───────╯ Specifies the rate of the rate limiter } /// @notice _consume removes the given tokens from the pool, lowering the diff --git a/contracts/src/v0.8/ccip/offRamp/EVM2EVMOffRamp.sol b/contracts/src/v0.8/ccip/offRamp/EVM2EVMOffRamp.sol index 6adfe76aa7..b1c5cd2482 100644 --- a/contracts/src/v0.8/ccip/offRamp/EVM2EVMOffRamp.sol +++ b/contracts/src/v0.8/ccip/offRamp/EVM2EVMOffRamp.sol @@ -76,10 +76,10 @@ contract EVM2EVMOffRamp is IAny2EVMOffRamp, AggregateRateLimiter, TypeAndVersion /// @notice Static offRamp config struct StaticConfig { - address commitStore; // --------┐ CommitStore address on the destination chain - uint64 chainSelector; // -------┘ Destination chainSelector - uint64 sourceChainSelector; // -┐ Source chainSelector - address onRamp; // -------------┘ OnRamp address on the source chain + address commitStore; // ────────╮ CommitStore address on the destination chain + uint64 chainSelector; // ───────╯ Destination chainSelector + uint64 sourceChainSelector; // ─╮ Source chainSelector + address onRamp; // ─────────────╯ OnRamp address on the source chain address prevOffRamp; // Address of previous-version OffRamp address armProxy; // ARM proxy address } @@ -87,11 +87,11 @@ contract EVM2EVMOffRamp is IAny2EVMOffRamp, AggregateRateLimiter, TypeAndVersion /// @notice Dynamic offRamp config /// @dev since OffRampConfig is part of OffRampConfigChanged event, if changing it, we should update the ABI on Atlas struct DynamicConfig { - uint32 permissionLessExecutionThresholdSeconds; // -┐ Waiting time before manual execution is enabled - address router; // ---------------------------------┘ Router address - address priceRegistry; // -----┐ Price registry address - uint16 maxTokensLength; // | Maximum number of ERC20 token transfers that can be included per message - uint32 maxDataSize; // --------┘ Maximum payload data size + uint32 permissionLessExecutionThresholdSeconds; // ─╮ Waiting time before manual execution is enabled + address router; // ─────────────────────────────────╯ Router address + address priceRegistry; // ─────╮ Price registry address + uint16 maxTokensLength; // │ Maximum number of ERC20 token transfers that can be included per message + uint32 maxDataSize; // ────────╯ Maximum payload data size } // STATIC CONFIG @@ -168,7 +168,7 @@ contract EVM2EVMOffRamp is IAny2EVMOffRamp, AggregateRateLimiter, TypeAndVersion } // ================================================================ - // | Messaging | + // │ Messaging │ // ================================================================ // The size of the execution state in bits @@ -431,7 +431,7 @@ contract EVM2EVMOffRamp is IAny2EVMOffRamp, AggregateRateLimiter, TypeAndVersion } // ================================================================ - // | Config | + // │ Config │ // ================================================================ /// @notice Returns the static config. @@ -476,7 +476,7 @@ contract EVM2EVMOffRamp is IAny2EVMOffRamp, AggregateRateLimiter, TypeAndVersion } // ================================================================ - // | Tokens and pools | + // │ Tokens and pools │ // ================================================================ /// @notice Get all supported source tokens @@ -616,7 +616,7 @@ contract EVM2EVMOffRamp is IAny2EVMOffRamp, AggregateRateLimiter, TypeAndVersion } // ================================================================ - // | Access and ARM | + // │ Access and ARM │ // ================================================================ /// @notice Reverts as this contract should not access CCIP messages diff --git a/contracts/src/v0.8/ccip/onRamp/EVM2EVMOnRamp.sol b/contracts/src/v0.8/ccip/onRamp/EVM2EVMOnRamp.sol index 3602eb988c..3fef0f2cda 100644 --- a/contracts/src/v0.8/ccip/onRamp/EVM2EVMOnRamp.sol +++ b/contracts/src/v0.8/ccip/onRamp/EVM2EVMOnRamp.sol @@ -66,71 +66,71 @@ contract EVM2EVMOnRamp is IEVM2AnyOnRamp, ILinkAvailable, AggregateRateLimiter, /// @dev Struct that contains the static configuration struct StaticConfig { - address linkToken; // --------┐ Link token address - uint64 chainSelector; // -----┘ Source chainSelector - uint64 destChainSelector; // -┐ Destination chainSelector - uint64 defaultTxGasLimit; // | Default gas limit for a tx - uint96 maxNopFeesJuels; // ---┘ Max nop fee balance onramp can have + address linkToken; // ────────╮ Link token address + uint64 chainSelector; // ─────╯ Source chainSelector + uint64 destChainSelector; // ─╮ Destination chainSelector + uint64 defaultTxGasLimit; // │ Default gas limit for a tx + uint96 maxNopFeesJuels; // ───╯ Max nop fee balance onramp can have address prevOnRamp; // Address of previous-version OnRamp address armProxy; // Address of ARM proxy } /// @dev Struct to contains the dynamic configuration struct DynamicConfig { - address router; // -------------------------┐ Router address - uint16 maxTokensLength; // | Maximum number of ERC20 token transfers per message - uint32 destGasOverhead; // | Extra gas charged on top of the gasLimit - uint16 destGasPerPayloadByte; // | Destination chain gas charged per byte of `data` payload - uint32 destDataAvailabilityOverheadGas; // | Extra data availability gas charged on top of message data - uint16 destGasPerDataAvailabilityByte; // --┘ Amount of gas to charge per byte of data that needs availability - uint16 destDataAvailabilityMultiplier; // --┐ Multiplier for data availability gas, multples of 1e-4, or 0.0001 - address priceRegistry; // | Price registry address - uint32 maxDataSize; // | Maximum payload data size, max 4GB - uint32 maxGasLimit; // ---------------------┘ Maximum gas limit for messages targeting EVMs, max 4 Billion gas + address router; // ─────────────────────────╮ Router address + uint16 maxTokensLength; // │ Maximum number of ERC20 token transfers per message + uint32 destGasOverhead; // │ Extra gas charged on top of the gasLimit + uint16 destGasPerPayloadByte; // │ Destination chain gas charged per byte of `data` payload + uint32 destDataAvailabilityOverheadGas; // │ Extra data availability gas charged on top of message data + uint16 destGasPerDataAvailabilityByte; // ──╯ Amount of gas to charge per byte of data that needs availability + uint16 destDataAvailabilityMultiplier; // ──╮ Multiplier for data availability gas, multples of 1e-4, or 0.0001 + address priceRegistry; // │ Price registry address + uint32 maxDataSize; // │ Maximum payload data size, max 4GB + uint32 maxGasLimit; // ─────────────────────╯ Maximum gas limit for messages targeting EVMs, max 4 Billion gas } /// @dev Struct to hold the execution fee configuration for a fee token struct FeeTokenConfig { - uint32 networkFeeUSD; // -----------┐ Flat network fee to charge for messages, multiples of 0.01 USD - uint32 minTokenTransferFeeUSD; // | Minimum fee to charge for token transfers, multiples of 0.01 USD - uint32 maxTokenTransferFeeUSD; // | Maximum fee to charge for token transfers, multiples of 0.01 USD - uint64 gasMultiplier; // | Price multiplier for gas costs, 1e18 based so 11e17 = 10% extra cost. - uint64 premiumMultiplier; // | Multiplier for fee-token-specific premiums - bool enabled; // -------------------┘ Whether this fee token is enabled + uint32 networkFeeUSD; // ───────────╮ Flat network fee to charge for messages, multiples of 0.01 USD + uint32 minTokenTransferFeeUSD; // │ Minimum fee to charge for token transfers, multiples of 0.01 USD + uint32 maxTokenTransferFeeUSD; // │ Maximum fee to charge for token transfers, multiples of 0.01 USD + uint64 gasMultiplier; // │ Price multiplier for gas costs, 1e18 based so 11e17 = 10% extra cost. + uint64 premiumMultiplier; // │ Multiplier for fee-token-specific premiums + bool enabled; // ───────────────────╯ Whether this fee token is enabled } /// @dev Struct to hold the fee configuration for a fee token, same as the FeeTokenConfig but with /// token included so that an array of these can be passed in to setFeeTokenConfig to set the mapping struct FeeTokenConfigArgs { - address token; // ------------------┐ Token address - uint32 networkFeeUSD; // | Flat network fee to charge for messages, multiples of 0.01 USD - uint32 minTokenTransferFeeUSD; // | Minimum fee to charge for token transfers, multiples of 0.01 USD - uint32 maxTokenTransferFeeUSD; //---┘ Maximum fee to charge for token transfers, multiples of 0.01 USD - uint64 gasMultiplier; // ---┐ Price multiplier for gas costs, 1e18 based so 11e17 = 10% extra cost - uint64 premiumMultiplier; // | Multiplier for fee-token-specific premiums - bool enabled; // -------------------┘ Whether this fee token is enabled + address token; // ──────────────────╮ Token address + uint32 networkFeeUSD; // │ Flat network fee to charge for messages, multiples of 0.01 USD + uint32 minTokenTransferFeeUSD; // │ Minimum fee to charge for token transfers, multiples of 0.01 USD + uint32 maxTokenTransferFeeUSD; //───╯ Maximum fee to charge for token transfers, multiples of 0.01 USD + uint64 gasMultiplier; // ───╮ Price multiplier for gas costs, 1e18 based so 11e17 = 10% extra cost + uint64 premiumMultiplier; // │ Multiplier for fee-token-specific premiums + bool enabled; // ───────────────────╯ Whether this fee token is enabled } /// @dev Struct to hold the transfer fee configuration for token transfers struct TokenTransferFeeConfig { - uint16 ratio; // -------------------┐ Ratio of token transfer value to charge as fee, multiples of 0.1bps, or 1e-5 - uint32 destGasOverhead; // | Gas charged to execute the token transfer on the destination chain - uint32 destBytesOverhead; // -------┘ Extra data availability bytes on top of transfer data, e.g. USDC offchain data + uint16 ratio; // ───────────────────╮ Ratio of token transfer value to charge as fee, multiples of 0.1bps, or 1e-5 + uint32 destGasOverhead; // │ Gas charged to execute the token transfer on the destination chain + uint32 destBytesOverhead; // ───────╯ Extra data availability bytes on top of transfer data, e.g. USDC offchain data } /// @dev Same as TokenTransferFeeConfig /// token included so that an array of these can be passed in to setTokenTransferFeeConfig struct TokenTransferFeeConfigArgs { - address token; // ------------------┐ Token address - uint16 ratio; // | Ratio of token transfer value to charge as fee, multiples of 0.1bps, or 1e-5 - uint32 destGasOverhead; // | Gas charged to execute the token transfer on the destination chain - uint32 destBytesOverhead; // -------┘ Extra data availability bytes on top of transfer data, e.g. USDC offchain data + address token; // ──────────────────╮ Token address + uint16 ratio; // │ Ratio of token transfer value to charge as fee, multiples of 0.1bps, or 1e-5 + uint32 destGasOverhead; // │ Gas charged to execute the token transfer on the destination chain + uint32 destBytesOverhead; // ───────╯ Extra data availability bytes on top of transfer data, e.g. USDC offchain data } /// @dev Nop address and weight, used to set the nops and their weights struct NopAndWeight { - address nop; // -----┐ Address of the node operator - uint16 weight; // ---┘ Weight for nop rewards + address nop; // ────╮ Address of the node operator + uint16 weight; // ──╯ Weight for nop rewards } // STATIC CONFIG @@ -231,7 +231,7 @@ contract EVM2EVMOnRamp is IEVM2AnyOnRamp, ILinkAvailable, AggregateRateLimiter, } // ================================================================ - // | Messaging | + // │ Messaging │ // ================================================================ /// @inheritdoc IEVM2AnyOnRamp @@ -359,7 +359,7 @@ contract EVM2EVMOnRamp is IEVM2AnyOnRamp, ILinkAvailable, AggregateRateLimiter, } // ================================================================ - // | Config | + // │ Config │ // ================================================================ /// @notice Returns the static onRamp config. @@ -411,7 +411,7 @@ contract EVM2EVMOnRamp is IEVM2AnyOnRamp, ILinkAvailable, AggregateRateLimiter, } // ================================================================ - // | Tokens and pools | + // │ Tokens and pools │ // ================================================================ /// @inheritdoc IEVM2AnyOnRamp @@ -467,7 +467,7 @@ contract EVM2EVMOnRamp is IEVM2AnyOnRamp, ILinkAvailable, AggregateRateLimiter, } // ================================================================ - // | Fees | + // │ Fees │ // ================================================================ /// @inheritdoc IEVM2AnyOnRamp @@ -686,7 +686,7 @@ contract EVM2EVMOnRamp is IEVM2AnyOnRamp, ILinkAvailable, AggregateRateLimiter, } // ================================================================ - // | NOP payments | + // │ NOP payments │ // ================================================================ /// @notice Get the total amount of fees to be paid to the Nops (in LINK) @@ -796,7 +796,7 @@ contract EVM2EVMOnRamp is IEVM2AnyOnRamp, ILinkAvailable, AggregateRateLimiter, } // ================================================================ - // | Link monitoring | + // │ Link monitoring │ // ================================================================ /// @notice Calculate remaining LINK balance after paying nops @@ -812,7 +812,7 @@ contract EVM2EVMOnRamp is IEVM2AnyOnRamp, ILinkAvailable, AggregateRateLimiter, } // ================================================================ - // | Access and ARM | + // │ Access and ARM │ // ================================================================ /// @dev Require that the sender is the owner or the fee admin or a nop diff --git a/contracts/src/v0.8/ccip/pools/TokenPool.sol b/contracts/src/v0.8/ccip/pools/TokenPool.sol index ccb13b5589..5163749661 100644 --- a/contracts/src/v0.8/ccip/pools/TokenPool.sol +++ b/contracts/src/v0.8/ccip/pools/TokenPool.sol @@ -99,7 +99,7 @@ abstract contract TokenPool is IPool, OwnerIsCreator, IERC165 { } // ================================================================ - // | Ramp permissions | + // │ Ramp permissions │ // ================================================================ /// @notice Checks whether something is a permissioned onRamp on this contract. @@ -189,7 +189,7 @@ abstract contract TokenPool is IPool, OwnerIsCreator, IERC165 { } // ================================================================ - // | Rate limiting | + // │ Rate limiting │ // ================================================================ /// @notice Consumes outbound rate limiting capacity in this pool @@ -231,7 +231,7 @@ abstract contract TokenPool is IPool, OwnerIsCreator, IERC165 { } // ================================================================ - // | Access | + // │ Access │ // ================================================================ /// @notice Checks whether the msg.sender is a permissioned onRamp on this contract @@ -249,7 +249,7 @@ abstract contract TokenPool is IPool, OwnerIsCreator, IERC165 { } // ================================================================ - // | Allowlist | + // │ Allowlist │ // ================================================================ modifier checkAllowList(address sender) { diff --git a/contracts/src/v0.8/ccip/pools/USDC/USDCTokenPool.sol b/contracts/src/v0.8/ccip/pools/USDC/USDCTokenPool.sol index 832e7f2f50..01e8207e38 100644 --- a/contracts/src/v0.8/ccip/pools/USDC/USDCTokenPool.sol +++ b/contracts/src/v0.8/ccip/pools/USDC/USDCTokenPool.sol @@ -33,15 +33,15 @@ contract USDCTokenPool is TokenPool { // A domain is a USDC representation of a chain. struct DomainUpdate { bytes32 allowedCaller; // Address allowed to mint on the domain - uint32 domainIdentifier; // --┐ Unique domain ID - uint64 destChainSelector; // | The destination chain for this domain - bool enabled; // -------------┘ Whether the domain is enabled + uint32 domainIdentifier; // ──╮ Unique domain ID + uint64 destChainSelector; // │ The destination chain for this domain + bool enabled; // ─────────────╯ Whether the domain is enabled } // Contains the contracts for sending and receiving USDC tokens struct USDCConfig { - uint32 version; // ----------┐ CCTP internal version - address tokenMessenger; // --┘ Contract to burn tokens + uint32 version; // ──────────╮ CCTP internal version + address tokenMessenger; // ──╯ Contract to burn tokens address messageTransmitter; // Contract to mint tokens } @@ -62,8 +62,8 @@ contract USDCTokenPool is TokenPool { // A domain is a USDC representation of a chain. struct Domain { bytes32 allowedCaller; // Address allowed to mint on the domain - uint32 domainIdentifier; // -┐ Unique domain ID - bool enabled; // ------------┘ Whether the domain is enabled + uint32 domainIdentifier; // ─╮ Unique domain ID + bool enabled; // ────────────╯ Whether the domain is enabled } // A mapping of CCIP chain identifiers to destination domains @@ -203,7 +203,7 @@ contract USDCTokenPool is TokenPool { } // ================================================================ - // | Config | + // │ Config │ // ================================================================ /// @notice Gets the current config