SetSignatureValidatorProposal
This proposal type enables validating, or setting arbitrary ERC1271
signature validators for a given hash. To simply validate a hash, the hash validator is set to address(1)
. Otherwise, a contract validator is set —- these validators must implement IERC1271
and are called by the party when isValidSignature
is called with the given hash.
When the tx.origin
is address(0)
(indicative of an off-chain call), we fallback to the validator stored for the zero hash if none is set for the given hash. If the party hasn't set a validator for the zero hash, the party uses the GLOBAL_OFF_CHAIN_SIGNATURE_VALIDATOR
stored in globals.
Code
SetSignatureValidatorProposal.sol
Functions
_executeSetSignatureValidator
function _executeSetSignatureValidator(
IProposalExecutionEngine.ExecuteProposalParams memory params
)
getSignatureValidatorForHash
function getSignatureValidatorForHash(bytes32 hash) public view returns (IERC1271)
Structs
SetSignatureValidatorProposalData
struct SetSignatureValidatorProposalData {
bytes32 signatureHash;
IERC1271 signatureValidator;
}