4 txs
11 calls
constructor
constructor(address initialAdmin_, address kycAdmin_)
functions
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
isKYCApproved
viewfunction isKYCApproved(address user) view returns (bool)
isKYCProvider
viewfunction isKYCProvider(address provider) view returns (bool)
KYC_ADMIN_ROLE
viewfunction KYC_ADMIN_ROLE() view returns (bytes32)
KYC_PROVIDER_ROLE
viewfunction KYC_PROVIDER_ROLE() view returns (bytes32)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
addKYCProvider
nonpayablefunction addKYCProvider(address provider)
approveKYC
nonpayablefunction approveKYC(address user)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
removeKYCProvider
nonpayablefunction removeKYCProvider(address provider)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address callerConfirmation)
revokeKYC
nonpayablefunction revokeKYC(address user)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
events
KYCApproved
event KYCApproved(address indexed user)
KYCProviderAdded
event KYCProviderAdded(address indexed provider)
KYCProviderRemoved
event KYCProviderRemoved(address indexed provider)
KYCRevoked
event KYCRevoked(address indexed user)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
errors
AccessControlBadConfirmation
error AccessControlBadConfirmation()
AccessControlUnauthorizedAccount
error AccessControlUnauthorizedAccount(address account, bytes32 neededRole)
AlreadyApproved
error AlreadyApproved()
InvalidAddress
error InvalidAddress()
NotApproved
error NotApproved()
creation bytecode
0x6080346100e157601f610b7738819003918201601f19168301916001600160401b038311848410176100e65780849260409485528339810103126100e1578061005f6100596020610052610065956100fc565b93016100fc565b91610110565b5061018e565b507f6c4079fcac94e7142d8c209744c998efe53a188aadb7e55958f7ad3ea8a1d65280600052600060205260016040600020018054600080516020610b57833981519152809255604051927fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff600080a461091a908161021d8239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036100e157565b6001600160a01b031660008181527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604081205490919060ff1661018a57818052816020526040822081835260205260408220600160ff198254161790553391600080516020610b378339815191528180a4600190565b5090565b6001600160a01b031660008181527f26736404b38760f405429bd2430fb148ec256b69885d5bd06d7ecb8547daeec96020526040812054909190600080516020610b578339815191529060ff1661021757808352826020526040832082845260205260408320600160ff19825416179055600080516020610b37833981519152339380a4600190565b50509056fe608060408181526004918236101561001657600080fd5b600092833560e01c91826301ffc9a7146105455750816302d7fd921461050a5781630ae5fb501461047e5781630e27324d146103ec578163248a9ca3146103c25781632f2ff15d1461039857816336568abe1461035257816339ba645b146102c25781634a7497081461022857816391d14854146101e2578163a217fddf146101c7578163d547741f1461018457508063d9e1063d1461015c578063e73d0e501461010a5763e77db232146100ca57600080fd5b346101065760203660031901126101065760209160ff9082906001600160a01b036100f3610598565b1681526001855220541690519015158152f35b5080fd5b50346101065760203660031901126101065760ff8160209361012a610598565b6000805160206108a583398151915282528186528282206001600160a01b039091168252855220549151911615158152f35b5034610106578160031936011261010657602090516000805160206108a58339815191528152f35b919050346101c357806003193601126101c3576101bf91356101ba60016101a96105b3565b93838752866020528620015461067b565b61082f565b5080f35b8280fd5b50503461010657816003193601126101065751908152602090f35b9050346101c357816003193601126101c3578160209360ff926102036105b3565b903582528186528282206001600160a01b039091168252855220549151911615158152f35b919050346101c35760203660031901126101c357610244610598565b9061024d6105c9565b6001600160a01b0382169283156102b4575090610287600161028c936000805160206108a58339815191528752866020528620015461067b565b6106a1565b507fef18e156bdaf775d2d2c270718ae1518c77a629d7b379aa2e092595e9dd2de128280a280f35b905163e6c4247b60e01b8152fd5b919050346101c35760203660031901126101c3576102de610598565b6102e6610643565b6001600160a01b03169182156102b457828452600160205260ff828520541615610344575081835260016020528220805460ff191690557ffb4ca6a2470de95e9f648557fae63380f22c4b760bd27b0571caf5977a30278a8280a280f35b905163c19f17a960e01b8152fd5b83833461010657806003193601126101065761036c6105b3565b90336001600160a01b0383160361038957506101bf91923561082f565b5163334bd91960e11b81528390fd5b919050346101c357806003193601126101c3576101bf91356103bd60016101a96105b3565b61072f565b9050346101c35760203660031901126101c357816020936001923581528085522001549051908152f35b919050346101c35760203660031901126101c357610408610598565b610410610643565b6001600160a01b03169182156102b457828452600160205260ff8285205416610470575081835260016020528220600160ff198254161790557f333bb19eeef0621b32888db778cc7a481a89fc1d59adb2cecb59b40ef048941e8280a280f35b905163080fc0bd60e11b8152fd5b919050346101c35760203660031901126101c35761049a610598565b906104a36105c9565b6001600160a01b0382169283156102b45750906104dd60016104e2936000805160206108a58339815191528752866020528620015461067b565b6107a8565b507fd0460be336159fd5a7b316308e85398a2351fd4798cfefa2a968778042359cf78280a280f35b505034610106578160031936011261010657602090517f811427a0fa4932aef534bba16bc34e9b7b2d7d2a79c475fca1765f6cc1faebea8152f35b8491346101c35760203660031901126101c3573563ffffffff60e01b81168091036101c35760209250637965db0b60e01b8114908115610587575b5015158152f35b6301ffc9a760e01b14905083610580565b600435906001600160a01b03821682036105ae57565b600080fd5b602435906001600160a01b03821682036105ae57565b3360009081527f26736404b38760f405429bd2430fb148ec256b69885d5bd06d7ecb8547daeec960205260409020547f811427a0fa4932aef534bba16bc34e9b7b2d7d2a79c475fca1765f6cc1faebea9060ff16156106255750565b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3360009081526000805160206108c583398151915260205260409020546000805160206108a58339815191529060ff16156106255750565b80600052600060205260406000203360005260205260ff60406000205416156106255750565b6001600160a01b031660008181526000805160206108c583398151915260205260408120549091906000805160206108a58339815191529060ff1661072a57808352826020526040832082845260205260408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4600190565b505090565b9060009180835282602052604083209160018060a01b03169182845260205260ff6040842054161560001461072a57808352826020526040832082845260205260408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4600190565b6001600160a01b031660008181526000805160206108c583398151915260205260408120549091906000805160206108a58339815191529060ff161561072a5780835282602052604083208284526020526040832060ff1981541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a4600190565b9060009180835282602052604083209160018060a01b03169182845260205260ff60408420541660001461072a5780835282602052604083208284526020526040832060ff1981541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a460019056fe6c4079fcac94e7142d8c209744c998efe53a188aadb7e55958f7ad3ea8a1d6521cc1b714a06a87312844cc068c3d4b37d3e95f55dbc93d124629a4fd3f5c1d60a2646970667358221220367c2ea6f21351d01052f784dd389f07a0e1f347c46c052d190aa6d663de7ec864736f6c634300081400332f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d811427a0fa4932aef534bba16bc34e9b7b2d7d2a79c475fca1765f6cc1faebea0000000000000000000000006c15b25e9750dccb698c1a4023f34015bfe576490000000000000000000000006c15b25e9750dccb698c1a4023f34015bfe57649