8 txs
35 calls
constructor
constructor(address admin)
functions
ADMIN_ROLE_MASK
viewfunction ADMIN_ROLE_MASK() view returns (uint256)
allowAllSignaturesRoles
viewfunction allowAllSignaturesRoles(address contractAddress) view returns (uint256)
allowSignatureRoles
viewfunction allowSignatureRoles(address contractAddress, bytes4 selector) view returns (uint256)
customValidator
viewfunction customValidator(address contractAddress) view returns (address)
hasPermission
viewfunction hasPermission(address user, address contractAddress, bytes4 signature) view returns (bool)
publicRoles
viewfunction publicRoles() view returns (uint256)
requirePermission
viewfunction requirePermission(address user, address contractAddress, bytes4 signature) view
STORAGE_POSITION
viewfunction STORAGE_POSITION() view returns (bytes32)
userRoles
viewfunction userRoles(address user) view returns (uint256)
validate
viewfunction validate(address from, address to, bytes data) view
grantContractRole
nonpayablefunction grantContractRole(address contractAddress, uint8 role)
grantContractSignatureRole
nonpayablefunction grantContractSignatureRole(address contractAddress, bytes4 signature, uint8 role)
grantPublicRole
nonpayablefunction grantPublicRole(uint8 role)
grantRole
nonpayablefunction grantRole(address user, uint8 role)
revokeContractRole
nonpayablefunction revokeContractRole(address contractAddress, uint8 role)
revokeContractSignatureRole
nonpayablefunction revokeContractSignatureRole(address contractAddress, bytes4 signature, uint8 role)
revokePublicRole
nonpayablefunction revokePublicRole(uint8 role)
revokeRole
nonpayablefunction revokeRole(address user, uint8 role)
setCustomValidator
nonpayablefunction setCustomValidator(address contractAddress, address validator)
events
ContractRoleGranted
event ContractRoleGranted(address indexed contractAddress, uint8 role)
ContractRoleRevoked
event ContractRoleRevoked(address indexed contractAddress, uint8 role)
ContractSignatureRoleGranted
event ContractSignatureRoleGranted(address indexed contractAddress, bytes4 signature, uint8 role)
ContractSignatureRoleRevoked
event ContractSignatureRoleRevoked(address indexed contractAddress, bytes4 signature, uint8 role)
CustomValidatorSet
event CustomValidatorSet(address indexed contractAddress, address validator)
PublicRoleGranted
event PublicRoleGranted(uint8 role)
PublicRoleRevoked
event PublicRoleRevoked(uint8 role)
RoleGranted
event RoleGranted(address indexed user, uint8 role)
RoleRevoked
event RoleRevoked(address indexed user, uint8 role)
errors
Forbidden
error Forbidden()
InvalidData
error InvalidData()
creation bytecode
0x6080604052348015600e575f80fd5b50604051610e2f380380610e2f833981016040819052602b91606b565b6001600160a01b03165f9081527fc5d9a5dc0c3dbbd4debebdb870fda826372ee5f5ea588d9114d28c33a7f08b3960205260409020600160ff1b90556096565b5f60208284031215607a575f80fd5b81516001600160a01b0381168114608f575f80fd5b9392505050565b610d8c806100a35f395ff3fe608060405234801561000f575f80fd5b506004361061011c575f3560e01c806349032c6d116100a9578063aa55cc8c1161006e578063aa55cc8c14610304578063b306237c14610318578063c4c092d91461032b578063e57ac35c1461033e578063f55a560314610385575f80fd5b806349032c6d1461023757806374d5e1001461024b57806375070e821461027f5780639e8d53da14610292578063a7f714d0146102a5575f80fd5b8063203261e1116100ef578063203261e1146101d25780632d2e0668146101e55780633e840236146101f85780633edcccd01461020b57806346d43b8a14610224575f80fd5b80630761a6d214610120578063077d3c031461013557806314035f831461014857806315771845146101af575b5f80fd5b61013361012e366004610a97565b610398565b005b610133610143366004610ac6565b610404565b610192610156366004610af7565b6001600160a01b039081165f9081527fc5d9a5dc0c3dbbd4debebdb870fda826372ee5f5ea588d9114d28c33a7f08b3d60205260409020541690565b6040516001600160a01b0390911681526020015b60405180910390f35b6101c26101bd366004610b27565b61048a565b60405190151581526020016101a6565b6101336101e0366004610b67565b610555565b6101336101f3366004610a97565b610612565b610133610206366004610ac6565b610678565b610216600160ff1b81565b6040519081526020016101a6565b610133610232366004610b8f565b6106f5565b5f80516020610d1783398151915254610216565b610216610259366004610af7565b6001600160a01b03165f9081525f80516020610d37833981519152602052604090205490565b61013361028d366004610ac6565b6107a8565b6101336102a0366004610bc6565b610837565b6102166102b3366004610c4d565b6001600160a01b03919091165f9081527fc5d9a5dc0c3dbbd4debebdb870fda826372ee5f5ea588d9114d28c33a7f08b3c602090815260408083206001600160e01b03199094168352929052205490565b6102165f80516020610d3783398151915281565b610133610326366004610b27565b61091e565b610133610339366004610b8f565b61094b565b61021661034c366004610af7565b6001600160a01b03165f9081527fc5d9a5dc0c3dbbd4debebdb870fda826372ee5f5ea588d9114d28c33a7f08b3b602052604090205490565b610133610393366004610ac6565b6109f4565b6103ae33305f356001600160e01b03191661091e565b5f80516020610d178339815191528054600160ff841690811b9091179091556040519081527fa322335eef032cdb09cf78385fc6fa219adbbfe62c8cc94ff6bb3fe0f734f7d4906020015b60405180910390a150565b61041a33305f356001600160e01b03191661091e565b600160ff82161b195f80516020610d378339815191526001600160a01b0384165f8181526020928352604090819020805494909416909355915160ff841681527f34a1009b84e077aee5bc8197faf7105e54f9ba6879e2a51a716e4156ea9ad76991015b60405180910390a25050565b5f80516020610d17833981519152546001600160a01b0384165f9081525f80516020610d37833981519152602081905260408220549192909117600160ff1b8116156104db5760019250505061054e565b6001600160a01b0385165f9081526002830160205260409020548116156105075760019250505061054e565b6001600160a01b0385165f90815260038301602090815260408083206001600160e01b0319881684529091529020548116156105485760019250505061054e565b5f925050505b9392505050565b61056b33305f356001600160e01b03191661091e565b306001600160a01b0382160361059457604051631dd2188d60e31b815260040160405180910390fd5b6001600160a01b038281165f8181527fc5d9a5dc0c3dbbd4debebdb870fda826372ee5f5ea588d9114d28c33a7f08b3d602090815260409182902080546001600160a01b0319169486169485179055905192835290917fc4e19ccc286fbd4a591d390b057f4219aade45184eb91108cea9bff565b2cfd9910161047e565b61062833305f356001600160e01b03191661091e565b5f80516020610d178339815191528054600160ff841690811b199091169091556040519081527fbe00da285d81a092f47cfc737d6abc4324ada9888463c6f24d1bb69f2374633a906020016103f9565b61068e33305f356001600160e01b03191661091e565b600160ff82161b5f80516020610d378339815191526001600160a01b0384165f8181526020928352604090819020805494909417909355915160ff841681527faa259565575c834bc07e74dca784b4071676133ac78513b431afb6ee7edae121910161047e565b61070b33305f356001600160e01b03191661091e565b6001600160a01b0383165f8181527fc5d9a5dc0c3dbbd4debebdb870fda826372ee5f5ea588d9114d28c33a7f08b3c602090815260408083206001600160e01b03198716808552908352928190208054600160ff881690811b199091169091558151938452918301919091527fb4b7542c3f7ce6acf67a4a701107c935c8f64cb3f1427a1792e7f46fa212f4c191015b60405180910390a2505050565b6107be33305f356001600160e01b03191661091e565b6001600160a01b0382165f8181527fc5d9a5dc0c3dbbd4debebdb870fda826372ee5f5ea588d9114d28c33a7f08b3b60209081526040918290208054600160ff871690811b1990911690915591519182527fc69b9792427f6db2b813f4b122b07a6bbfe29ba701506cd25e22cfc7ce11f4d5910161047e565b600481101561085957604051635cb045db60e01b815260040160405180910390fd5b610874848461086b60045f8688610c75565b61032691610c9c565b6001600160a01b038381165f9081527fc5d9a5dc0c3dbbd4debebdb870fda826372ee5f5ea588d9114d28c33a7f08b3d602052604090205416806108b85750610918565b604051634f46a9ed60e11b81526001600160a01b03821690639e8d53da906108ea908890889088908890600401610ccc565b5f6040518083038186803b158015610900575f80fd5b505afa158015610912573d5f803e3d5ffd5b50505050505b50505050565b61092983838361048a565b61094657604051631dd2188d60e31b815260040160405180910390fd5b505050565b61096133305f356001600160e01b03191661091e565b6001600160a01b0383165f8181527fc5d9a5dc0c3dbbd4debebdb870fda826372ee5f5ea588d9114d28c33a7f08b3c602090815260408083206001600160e01b03198716808552908352928190208054600160ff881690811b9091179091558151938452918301919091527fdc85bc008f9991eb8101c2931fc4a6ec7fff98ee83f2fb9963f619333c5459d5910161079b565b610a0a33305f356001600160e01b03191661091e565b6001600160a01b0382165f8181527fc5d9a5dc0c3dbbd4debebdb870fda826372ee5f5ea588d9114d28c33a7f08b3b60209081526040918290208054600160ff871690811b90911790915591519182527f30640134726c0b31a0d192465d6b1d0b9f85479f834828d664e739a1486cfebc910161047e565b803560ff81168114610a92575f80fd5b919050565b5f60208284031215610aa7575f80fd5b61054e82610a82565b80356001600160a01b0381168114610a92575f80fd5b5f8060408385031215610ad7575f80fd5b610ae083610ab0565b9150610aee60208401610a82565b90509250929050565b5f60208284031215610b07575f80fd5b61054e82610ab0565b80356001600160e01b031981168114610a92575f80fd5b5f805f60608486031215610b39575f80fd5b610b4284610ab0565b9250610b5060208501610ab0565b9150610b5e60408501610b10565b90509250925092565b5f8060408385031215610b78575f80fd5b610b8183610ab0565b9150610aee60208401610ab0565b5f805f60608486031215610ba1575f80fd5b610baa84610ab0565b9250610bb860208501610b10565b9150610b5e60408501610a82565b5f805f8060608587031215610bd9575f80fd5b610be285610ab0565b9350610bf060208601610ab0565b9250604085013567ffffffffffffffff80821115610c0c575f80fd5b818701915087601f830112610c1f575f80fd5b813581811115610c2d575f80fd5b886020828501011115610c3e575f80fd5b95989497505060200194505050565b5f8060408385031215610c5e575f80fd5b610c6783610ab0565b9150610aee60208401610b10565b5f8085851115610c83575f80fd5b83861115610c8f575f80fd5b5050820193919092039150565b6001600160e01b03198135818116916004851015610cc45780818660040360031b1b83161692505b505092915050565b6001600160a01b0385811682528416602082015260606040820181905281018290525f828460808401375f608084840101526080601f19601f85011683010190509594505050505056fec5d9a5dc0c3dbbd4debebdb870fda826372ee5f5ea588d9114d28c33a7f08b3ac5d9a5dc0c3dbbd4debebdb870fda826372ee5f5ea588d9114d28c33a7f08b39a2646970667358221220477c3e0758a363ba2bc62aedee0e7e13d0cb87cc779d28f1de2f30abfc1e1d5364736f6c63430008190033000000000000000000000000188858ac61a74350116d1cb6958fbc509fd6afa1