Module
See IModule.sol for more details.
Module
is an abstract contract that defines common functions and modifiers. A module is supposed to inherit the abstract contract and implement specific logic in one of the hooks, for example finalizeRequest
. All public functions in the contract are callable only by the oracle, and there are internal functions ensuring the integrity of the data being passed around, such as _validateResponse
and _validateDispute
.
In addition to the abstract contact, we've created interfaces for each type of module:
Each of them inherits the IModule
interface and adds additional functions specific to the module type.