0 txs
4.7k calls
constructor
constructor(address _whitelistAdmin)
functions
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
getWhitelistedTokenAt
viewfunction getWhitelistedTokenAt(uint256 index) view returns (address)
getWhitelistedTokenCount
viewfunction getWhitelistedTokenCount() view returns (uint256)
getWhitelistedTokens
viewfunction getWhitelistedTokens() view returns (address[])
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
isOwner
viewfunction isOwner(address account) view returns (bool hasOwnership)
isTokenWhitelisted
viewfunction isTokenWhitelisted(address token) view returns (bool)
owner
viewfunction owner() view returns (address primaryOwner)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
WHITELIST_ADMIN_ROLE
viewfunction WHITELIST_ADMIN_ROLE() view returns (bytes32)
addToken
nonpayablefunction addToken(address token)
addTokensBatch
nonpayablefunction addTokensBatch(address[] tokens)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
removeToken
nonpayablefunction removeToken(address token)
removeTokensBatch
nonpayablefunction removeTokensBatch(address[] tokens)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address callerConfirmation)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
transferWhitelistAdmin
nonpayablefunction transferWhitelistAdmin(address newAdmin)
events
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
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)
TokenRemoved
event TokenRemoved(address indexed token, address indexed admin, uint256 timestamp)
TokenWhitelisted
event TokenWhitelisted(address indexed token, address indexed admin, uint256 timestamp)
WhitelistAdminChanged
event WhitelistAdminChanged(address indexed previousAdmin, address indexed newAdmin)
errors
AccessControlBadConfirmation
error AccessControlBadConfirmation()
AccessControlUnauthorizedAccount
error AccessControlUnauthorizedAccount(address account, bytes32 neededRole)
InvalidTokenAddress
error InvalidTokenAddress()
TokenAlreadyWhitelisted
error TokenAlreadyWhitelisted(address token)
TokenNotWhitelisted
error TokenNotWhitelisted(address token)
UnauthorizedAccess
error UnauthorizedAccess()
creation bytecode
0x60803461009d57601f61125f38819003918201601f19168301916001600160401b038311848410176100a15780849260209460405283398101031261009d57516001600160a01b0381169081810361009d57811561008e57600380546001600160a01b03191690921790915561007e90610078816100b5565b5061012b565b5060405161104090816101bf8239f35b630f58058360e11b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b6001600160a01b0381165f9081525f51602061123f5f395f51905f52602052604090205460ff16610126576001600160a01b03165f8181525f51602061123f5f395f51905f5260205260408120805460ff191660011790553391905f5160206111ff5f395f51905f528180a4600190565b505f90565b6001600160a01b0381165f9081525f51602061121f5f395f51905f52602052604090205460ff16610126576001600160a01b03165f8181525f51602061121f5f395f51905f5260205260408120805460ff191660011790553391907f28f5a99355973cc89255b8c4ac88405f27c78ded7608b040ee77a8bdf44d15e2905f5160206111ff5f395f51905f529080a460019056fe6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a71461085157508063166925e514610789578063248a9ca3146107575780632dbf68a21461073a5780632f2ff15d146106fd5780632f54bf6e146106af57806336568abe1461066b5780633b0c5206146105fd57806354202c4e146105c35780635fa7b584146105205780636ea77e4c1461046457806373cfffa0146103c55780638da5cb5b1461039d57806391d1485414610355578063a217fddf1461033b578063b5af090f146102f9578063d48bfca714610220578063d547741f146101de578063e26f79001461011f5763f2fde38b146100f8575f80fd5b3461011b57602036600319011261011b5761011961011461090e565b610948565b005b5f80fd5b3461011b575f36600319011261011b576040518060206001549283815201809260015f527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6905f5b8181106101c8575050508161017d9103826109e2565b604051918291602083019060208452518091526040830191905f5b8181106101a6575050500390f35b82516001600160a01b0316845285945060209384019390920191600101610198565b8254845260209093019260019283019201610167565b3461011b57604036600319011261011b576101196004356101fd6108f8565b9061021b610216825f525f602052600160405f20015490565b610ae2565b610df7565b3461011b57602036600319011261011b5761023961090e565b335f9081525f516020610fcb5f395f51905f52602052604090205460ff16156102ea576001600160a01b0381169081156102db57610282825f52600260205260405f2054151590565b6102c85761028f90610a18565b61029881610e8c565b50604051904282527f25c34e2a97ecce6a643e2876ba21f43208b744c0a1f017fe999208638c7fecdc60203393a3005b506301e2357560e01b5f5260045260245ffd5b630f58058360e11b5f5260045ffd5b631a27eac360e11b5f5260045ffd5b3461011b57602036600319011261011b5760206103316001600160a01b0361031f61090e565b165f52600260205260405f2054151590565b6040519015158152f35b3461011b575f36600319011261011b5760206040515f8152f35b3461011b57604036600319011261011b5761036e6108f8565b6004355f525f60205260405f209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b3461011b575f36600319011261011b576003546040516001600160a01b039091168152602090f35b3461011b57602036600319011261011b576103de61090e565b335f9081525f516020610feb5f395f51905f52602052604090205460ff161561044d576001600160a01b0381169081156102db576104259061041f33610cd1565b50610b1a565b50337f6c0a8a9cbf7f807c711446ed20f10fbaeea4c098ff4f08387a7f90feb60eb04c5f80a3005b63e2517d3f60e01b5f52336004525f60245260445ffd5b3461011b57610472366108a4565b335f9081525f516020610fcb5f395f51905f52602052604090205490919060ff16156102ea575f5b8281106104a357005b6001906001600160a01b036104c16104bc838787610924565b610934565b166104d7815f52600260205260405f2054151590565b1561051a576104e581610ef7565b50604051904282527feddce3117927831e55f862ee4b16c60ba431908fc8404f5a2d40c2ac163c3b1460203393a35b0161049a565b50610514565b3461011b57602036600319011261011b5761053961090e565b335f9081525f516020610fcb5f395f51905f52602052604090205460ff16156102ea576001600160a01b03165f81815260026020526040902054156105b15761058181610ef7565b50604051904282527feddce3117927831e55f862ee4b16c60ba431908fc8404f5a2d40c2ac163c3b1460203393a3005b63751dff9760e11b5f5260045260245ffd5b3461011b575f36600319011261011b5760206040517f28f5a99355973cc89255b8c4ac88405f27c78ded7608b040ee77a8bdf44d15e28152f35b3461011b57602036600319011261011b576004356001548110156106575760015f527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601546040516001600160a01b039091168152602090f35b634e487b7160e01b5f52603260045260245ffd5b3461011b57604036600319011261011b576106846108f8565b336001600160a01b038216036106a05761011990600435610df7565b63334bd91960e11b5f5260045ffd5b3461011b57602036600319011261011b576106c861090e565b6001600160a01b03165f9081525f516020610feb5f395f51905f52602090815260409182902054915160ff9092161515825290f35b3461011b57604036600319011261011b5761011960043561071c6108f8565b90610735610216825f525f602052600160405f20015490565b610c49565b3461011b575f36600319011261011b576020600154604051908152f35b3461011b57602036600319011261011b5760206107816004355f525f602052600160405f20015490565b604051908152f35b3461011b57610797366108a4565b335f9081525f516020610fcb5f395f51905f52602052604090205490919060ff16156102ea575f5b8281106107c857005b6107d66104bc828585610924565b906001600160a01b03821680156102db576001926107ff825f52600260205260405f2054151590565b61084a5761080c90610a18565b61081581610e8c565b50604051904282527f25c34e2a97ecce6a643e2876ba21f43208b744c0a1f017fe999208638c7fecdc60203393a35b016107bf565b5050610844565b3461011b57602036600319011261011b576004359063ffffffff60e01b821680920361011b57602091637965db0b60e01b8114908115610893575b5015158152f35b6301ffc9a760e01b1490508361088c565b90602060031983011261011b5760043567ffffffffffffffff811161011b578260238201121561011b5780600401359267ffffffffffffffff841161011b5760248460051b8301011161011b576024019190565b602435906001600160a01b038216820361011b57565b600435906001600160a01b038216820361011b57565b91908110156106575760051b0190565b356001600160a01b038116810361011b5790565b6001600160a01b0381169081156102db57335f9081525f516020610feb5f395f51905f52602052604090205460ff16156102ea573382146109de57600380546001600160a01b031916831790556109a29061041f81610bc5565b506109ac33610d75565b506109b633610cd1565b50337f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b5050565b90601f8019910116810190811067ffffffffffffffff821117610a0457604052565b634e487b7160e01b5f52604160045260245ffd5b803b156102db576040516318160ddd60e01b81526001600160a01b039190911690602081600481855afa9081610ab3575b50610a5d57630f58058360e11b5f5260045ffd5b60206004916040519283809263313ce56760e01b82525afa610a7c5750565b6020813d602011610aab575b81610a95602093836109e2565b8101031261011b575160ff8116810361011b5750565b3d9150610a88565b6020813d602011610ada575b81610acc602093836109e2565b8101031261011b5751610a49565b3d9150610abf565b5f8181526020818152604080832033845290915290205460ff1615610b045750565b63e2517d3f60e01b5f523360045260245260445ffd5b6001600160a01b0381165f9081525f516020610fcb5f395f51905f52602052604090205460ff16610bc0576001600160a01b03165f8181525f516020610fcb5f395f51905f5260205260408120805460ff191660011790553391907f28f5a99355973cc89255b8c4ac88405f27c78ded7608b040ee77a8bdf44d15e2907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b505f90565b6001600160a01b0381165f9081525f516020610feb5f395f51905f52602052604090205460ff16610bc0576001600160a01b03165f8181525f516020610feb5f395f51905f5260205260408120805460ff191660011790553391907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b5f818152602081815260408083206001600160a01b038616845290915290205460ff16610ccb575f818152602081815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b50505f90565b6001600160a01b0381165f9081525f516020610fcb5f395f51905f52602052604090205460ff1615610bc0576001600160a01b03165f8181525f516020610fcb5f395f51905f5260205260408120805460ff191690553391907f28f5a99355973cc89255b8c4ac88405f27c78ded7608b040ee77a8bdf44d15e2907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6001600160a01b0381165f9081525f516020610feb5f395f51905f52602052604090205460ff1615610bc0576001600160a01b03165f8181525f516020610feb5f395f51905f5260205260408120805460ff191690553391907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b8180a4600190565b5f818152602081815260408083206001600160a01b038616845290915290205460ff1615610ccb575f818152602081815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b8054821015610657575f5260205f2001905f90565b805f52600260205260405f2054155f14610bc05760015468010000000000000000811015610a0457610ee0610eca8260018594016001556001610e77565b819391549060031b91821b915f19901b19161790565b9055600154905f52600260205260405f2055600190565b5f818152600260205260409020548015610ccb575f198101818111610fb6576001545f19810191908211610fb657818103610f7e575b5050506001548015610f6a575f1901610f47816001610e77565b8154905f199060031b1b191690556001555f5260026020525f6040812055600190565b634e487b7160e01b5f52603160045260245ffd5b610fa0610f8f610eca936001610e77565b90549060031b1c9283926001610e77565b90555f52600260205260405f20555f8080610f2d565b634e487b7160e01b5f52601160045260245ffdfe7eac939d1a347bb63921597c6d90386866c45f17392d48d77fb5104f6746d525ad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5a2646970667358221220eddefab0781e2b4b82bbb07f24033b8fa5ef8cb70d0c0a699c325270b6bc350d64736f6c634300081c00332f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d7eac939d1a347bb63921597c6d90386866c45f17392d48d77fb5104f6746d525ad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb500000000000000000000000000921726681d22706be0e377770b66a4f7f55d7c