ERC20SwapValidator
Overview
ERC20SwapValidator
ensures that only authorized routers and tokens are used for ERC20 token swaps. It provides validation methods, mappings to track supported routers/tokens, and emits relevant events to keep track of changes.
Key Features
Router and Token Support: Controls which routers and tokens are authorized for swap operations.
Swap Validation: Enforces rules for swap operations, ensuring compliance with authorized routers and tokens.
Error Reporting: Raises specific errors when a swap operation fails validation.
Error Definitions
InvalidLength: Raised when the data length for a swap operation is incorrect.
InvalidSelector: The function selector provided is not recognized.
UnsupportedToken: The token used is not on the supported list.
UnsupportedRouter: The router used is not on the supported list.
Core Methods
View Functions
isSupportedRouter(address)
: Checks if a router is supported for swaps.isSupportedToken(address)
: Checks if a token is supported for swaps.
Configuration Functions
setSupportedRouter(address, bool)
: Sets a router's supported status.setSupportedToken(address, bool)
: Sets a token's supported status.
Validation Function
validate(address, address, bytes)
: Validates that the swap operation complies with the rules:Checks function signatures.
Verifies swap parameters.
Ensures routers and tokens are authorized.
Events
Router Updates:
ERC20SwapValidatorSetSupportedRouter(address, bool, uint256)
: Emitted when a router's support status is updated.router: Address of the router.
flag: Boolean indicating support status.
timestamp: Timestamp of the action.
Token Updates:
ERC20SwapValidatorSetSupportedToken(address, bool, uint256)
: Emitted when a token's support status is updated.token: Address of the token.
flag: Boolean indicating support status.
timestamp: Timestamp of the action.