0 txs
4 calls
constructor
constructor(address root_, address deployer)
functions
checkERC20Transfer
viewfunction checkERC20Transfer(address from, address to, uint256, tuple hookData) view returns (bool)
FREEZE_BIT
viewfunction FREEZE_BIT() view returns (uint8)
isFrozen
viewfunction isFrozen(address token, address user) view returns (bool)
isMember
viewfunction isMember(address token, address user) view returns (bool isValid, uint64 validUntil)
onERC20AuthTransfer
purefunction onERC20AuthTransfer(address, address, address, uint256, tuple) pure returns (bytes4)
root
viewfunction root() view returns (address)
supportsInterface
purefunction supportsInterface(bytes4 interfaceId) pure returns (bool)
wards
viewfunction wards(address) view returns (uint256)
deny
nonpayablefunction deny(address user)
freeze
nonpayablefunction freeze(address token, address user)
onERC20Transfer
nonpayablefunction onERC20Transfer(address from, address to, uint256 value, tuple hookData) returns (bytes4)
rely
nonpayablefunction rely(address user)
unfreeze
nonpayablefunction unfreeze(address token, address user)
updateMember
nonpayablefunction updateMember(address token, address user, uint64 validUntil)
updateRestriction
nonpayablefunction updateRestriction(address token, bytes payload)
events
Deny
event Deny(address indexed user)
Freeze
event Freeze(address indexed token, address indexed user)
Rely
event Rely(address indexed user)
Unfreeze
event Unfreeze(address indexed token, address indexed user)
UpdateMember
event UpdateMember(address indexed token, address indexed user, uint64 validUntil)
errors
CannotFreezeZeroAddress
error CannotFreezeZeroAddress()
EndorsedUserCannotBeFrozen
error EndorsedUserCannotBeFrozen()
EndorsedUserCannotBeUpdated
error EndorsedUserCannotBeUpdated()
InvalidUpdate
error InvalidUpdate()
InvalidValidUntil
error InvalidValidUntil()
NotAuthorized
error NotAuthorized()
SliceOutOfBounds
error SliceOutOfBounds()
TransferBlocked
error TransferBlocked()
UnknownMessageType
error UnknownMessageType()
creation bytecode
0x60a060405234801561000f575f5ffd5b5060405161139d38038061139d83398101604081905261002e9161009f565b6001600160a01b0381165f8181526020819052604080822060019055518392917fdd0e34038ac38b2a1ce960229778ac48a8719bc900b6c4f8d0475c6e8b385a6091a250506001600160a01b03166080526100d0565b80516001600160a01b038116811461009a575f5ffd5b919050565b5f5f604083850312156100b0575f5ffd5b6100b983610084565b91506100c760208401610084565b90509250929050565b6080516112a06100fd5f395f818161023e01528181610323015281816106b00152610b9101526112a05ff3fe608060405234801561000f575f5ffd5b50600436106100c3575f3560e01c806301ffc9a7146100c7578063078d18cd146100ef578063157482501461012757806339ac7a081461013c5780633f71910e1461016e57806346de0fb1146101815780635156eb17146101945780635adb6ddb146101a757806365fae35e146101ba5780637aeba8d5146101cd5780637f5ca5a3146101e05780639c52a7f1146101f9578063bf353dbb1461020c578063ebf0c71714610239578063ef59bc921461026d575b5f5ffd5b6100da6100d5366004610f27565b610280565b60405190151581526020015b60405180910390f35b61010e6100fd366004610f7f565b63078d18cd60e01b95945050505050565b6040516001600160e01b031990911681526020016100e6565b61013a610135366004610fda565b6102b6565b005b61014f61014a366004610fda565b6104cc565b6040805192151583526001600160401b039091166020830152016100e6565b61010e61017c36600461100b565b610581565b6100da61018f366004610fda565b6105bd565b61013a6101a2366004611056565b610640565b61013a6101b5366004610fda565b610823565b61013a6101c83660046110a5565b610968565b61013a6101db3660046110d2565b6109db565b6101e75f81565b60405160ff90911681526020016100e6565b61013a6102073660046110a5565b610ade565b61022b61021a3660046110a5565b5f6020819052908152604090205481565b6040519081526020016100e6565b6102607f000000000000000000000000000000000000000000000000000000000000000081565b6040516100e69190611193565b6100da61027b36600461100b565b610b50565b5f6001600160e01b03198216632b53a76160e21b14806102b057506001600160e01b031982166301ffc9a760e01b145b92915050565b335f908152602081905260409020546001146102e55760405163ea8e4eb560e01b815260040160405180910390fd5b6001600160a01b03811661030c57604051631e778ac960e21b815260040160405180910390fd5b60405163854b89d560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063854b89d590610358908490600401611193565b602060405180830381865afa158015610373573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061039791906111a7565b156103b5576040516307bd5aa160e51b815260040160405180910390fd5b60405163e8e6dc7560e01b81525f906001600160a01b0384169063e8e6dc75906103e3908590600401611193565b602060405180830381865afa1580156103fe573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061042291906111de565b60801c90506001600160a01b038316636a9154aa83610443845f6001610cbd565b60801b6040518363ffffffff1660e01b81526004016104639291906111f9565b5f604051808303815f87803b15801561047a575f5ffd5b505af115801561048c573d5f5f3e3d5ffd5b50506040516001600160a01b038086169350861691507f51d18786e9cb144f87d46e7b796309ea84c7c687d91e09c97f051eacf59bc528905f90a3505050565b5f5f61056a5f856001600160a01b031663e8e6dc75866040518263ffffffff1660e01b81526004016104fe9190611193565b602060405180830381865afa158015610519573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061053d91906111de565b6040516001600160801b0319909116602082015260300160408051601f1981840301815291905290610cef565b426001600160401b03821610159590945092505050565b5f61058e85858585610b50565b6105ab57604051637c8733a560e11b815260040160405180910390fd5b50631fb8c88760e11b5b949350505050565b60405163e8e6dc7560e01b81525f906106399082906001600160a01b0386169063e8e6dc75906105f1908790600401611193565b602060405180830381865afa15801561060c573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061063091906111de565b60801c90610d25565b9392505050565b335f9081526020819052604090205460011461066f5760405163ea8e4eb560e01b815260040160405180910390fd5b806001600160401b03164211156106995760405163488b16b760e01b815260040160405180910390fd5b60405163854b89d560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063854b89d5906106e5908590600401611193565b602060405180830381865afa158015610700573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061072491906111a7565b156107425760405163da427dd160e01b815260040160405180910390fd5b600160401b600160801b03604082901b166107725f61076186866105bd565b6001600160801b0384169190610cbd565b50604051633548aa5560e11b81526001600160a01b03851690636a9154aa906107a5908690608086901b906004016111f9565b5f604051808303815f87803b1580156107bc575f5ffd5b505af11580156107ce573d5f5f3e3d5ffd5b50506040516001600160401b03851681526001600160a01b038087169350871691507f2cb446aa76cf148ccee709c872ab53d7064340c84a66351f6a16ec660434c8cc9060200160405180910390a350505050565b335f908152602081905260409020546001146108525760405163ea8e4eb560e01b815260040160405180910390fd5b60405163e8e6dc7560e01b81525f906001600160a01b0384169063e8e6dc7590610880908590600401611193565b602060405180830381865afa15801561089b573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108bf91906111de565b60801c90506001600160a01b038316636a9154aa836108df845f80610cbd565b60801b6040518363ffffffff1660e01b81526004016108ff9291906111f9565b5f604051808303815f87803b158015610916575f5ffd5b505af1158015610928573d5f5f3e3d5ffd5b50506040516001600160a01b038086169350861691507f4f3ab9ff0cc4f039268532098e01239544b0420171876e36889d01c62c784c79905f90a3505050565b335f908152602081905260409020546001146109975760405163ea8e4eb560e01b815260040160405180910390fd5b6001600160a01b0381165f8181526020819052604080822060019055517fdd0e34038ac38b2a1ce960229778ac48a8719bc900b6c4f8d0475c6e8b385a609190a250565b335f90815260208190526040902054600114610a0a5760405163ea8e4eb560e01b815260040160405180910390fd5b5f610a1482610d3d565b90506001816003811115610a2a57610a2a61121c565b03610a5b575f610a3983610d5c565b9050610a5584610a4b835f0151610de0565b8360200151610640565b50505050565b6002816003811115610a6f57610a6f61121c565b03610a90575f610a7e83610e3e565b9050610a5584610135835f0151610de0565b6003816003811115610aa457610aa461121c565b03610ac5575f610ab383610ea6565b9050610a55846101b5835f0151610de0565b604051637d5ba07f60e01b815260040160405180910390fd5b335f90815260208190526040902054600114610b0d5760405163ea8e4eb560e01b815260040160405180910390fd5b6001600160a01b0381165f81815260208190526040808220829055517f184450df2e323acec0ed3b5c7531b81f9b4cdef7914dfd4c0a4317416bb5251b9190a250565b5f80610b5f6020840184611230565b60801c9050610b6e815f610d25565b15156001148015610c07575060405163854b89d560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063854b89d590610bc6908990600401611193565b602060405180830381865afa158015610be1573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c0591906111a7565b155b15610c15575f9150506105b5565b5f610c266040850160208601611230565b60801c9050610c35815f610d25565b1515600103610c48575f925050506105b5565b6001600160a01b038716158015610c6a57506001600160a01b0386166201cf60145b15610c7a576001925050506105b5565b6001600160a01b0386166201cf60148015610ca15750426001600160401b03604084901c16105b15610cb0575f925050506105b5565b5060019695505050505050565b5f8115610cd9575060016001600160801b0383161b8317610639565b505060016001600160801b03919091161b191690565b5f610cfb82600861124b565b83511015610d1c57604051633b99b53d60e01b815260040160405180910390fd5b50016008015190565b60016001600160801b039182161b9190911616151590565b5f610d488282610ebb565b60ff1660038111156102b0576102b061121c565b604080518082019091525f80825260208201526001610d7a83610d3d565b6003811115610d8b57610d8b61121c565b14610da9576040516304c735eb60e11b815260040160405180910390fd5b6040805180820190915280610dbf846001610ef1565b8152602001610dcf846021610cef565b6001600160401b0316905292915050565b5f6001600160601b03821615610e375760405162461bcd60e51b8152602060048201526018602482015277496e7075742073686f756c6420626520323020627974657360401b604482015260640160405180910390fd5b5060601c90565b60408051602081019091525f815260025b610e5883610d3d565b6003811115610e6957610e6961121c565b14610e87576040516304c735eb60e11b815260040160405180910390fd5b604080516020810190915280610e9e846001610ef1565b905292915050565b60408051602081019091525f81526003610e4f565b5f610ec782600161124b565b83511015610ee857604051633b99b53d60e01b815260040160405180910390fd5b50016001015190565b5f610efd82602061124b565b83511015610f1e57604051633b99b53d60e01b815260040160405180910390fd5b50016020015190565b5f60208284031215610f37575f5ffd5b81356001600160e01b031981168114610639575f5ffd5b80356001600160a01b0381168114610f64575f5ffd5b919050565b5f60408284031215610f79575f5ffd5b50919050565b5f5f5f5f5f60c08688031215610f93575f5ffd5b610f9c86610f4e565b9450610faa60208701610f4e565b9350610fb860408701610f4e565b925060608601359150610fce8760808801610f69565b90509295509295909350565b5f5f60408385031215610feb575f5ffd5b610ff483610f4e565b915061100260208401610f4e565b90509250929050565b5f5f5f5f60a0858703121561101e575f5ffd5b61102785610f4e565b935061103560208601610f4e565b92506040850135915061104b8660608701610f69565b905092959194509250565b5f5f5f60608486031215611068575f5ffd5b61107184610f4e565b925061107f60208501610f4e565b915060408401356001600160401b038116811461109a575f5ffd5b809150509250925092565b5f602082840312156110b5575f5ffd5b61063982610f4e565b634e487b7160e01b5f52604160045260245ffd5b5f5f604083850312156110e3575f5ffd5b6110ec83610f4e565b915060208301356001600160401b03811115611106575f5ffd5b8301601f81018513611116575f5ffd5b80356001600160401b0381111561112f5761112f6110be565b604051601f8201601f19908116603f011681016001600160401b038111828210171561115d5761115d6110be565b604052818152828201602001871015611174575f5ffd5b816020840160208301375f602083830101528093505050509250929050565b6001600160a01b0391909116815260200190565b5f602082840312156111b7575f5ffd5b81518015158114610639575f5ffd5b6001600160801b0319811681146111db575f5ffd5b50565b5f602082840312156111ee575f5ffd5b8151610639816111c6565b6001600160a01b039290921682526001600160801b031916602082015260400190565b634e487b7160e01b5f52602160045260245ffd5b5f60208284031215611240575f5ffd5b8135610639816111c6565b808201808211156102b057634e487b7160e01b5f52601160045260245ffdfea26469706673582212203d16bbcc3dbec53f71553ef44df497920b1e299fb2fc48da37ece5500a02709f64736f6c634300081c00330000000000000000000000007ed48c31f2fdc40d37407cbabf0870b2b688368f000000000000000000000000b8f0141317f8410a1f87f1b26af3d8bdc4bcf16e