0 txs
1 call
constructor
constructor(address admin, address sparkRewards_)
functions
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
getETHBalance
viewfunction getETHBalance() view returns (uint256)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
getTokenAllowance
viewfunction getTokenAllowance(address token) view returns (uint256)
getTokenBalance
viewfunction getTokenBalance(address token) view returns (uint256)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
sparkRewards
viewfunction sparkRewards() view returns (address)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
approveToken
nonpayablefunction approveToken(address token, uint256 amount)
batchApproveTokens
nonpayablefunction batchApproveTokens(address[] tokens, uint256[] amounts)
changeTokenApproval
nonpayablefunction changeTokenApproval(address token, uint256 newAmount)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address callerConfirmation)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
revokeTokenApproval
nonpayablefunction revokeTokenApproval(address token)
sendETH
nonpayablefunction sendETH(address to, uint256 amount)
setSparkRewards
nonpayablefunction setSparkRewards(address sparkRewards_)
withdrawETH
nonpayablefunction withdrawETH(address to, uint256 amount)
withdrawToken
nonpayablefunction withdrawToken(address token, address to, uint256 amount)
events
ETHDeposited
event ETHDeposited(address indexed from, uint256 amount)
ETHSent
event ETHSent(address indexed to, uint256 amount)
ETHWithdrawn
event ETHWithdrawn(address indexed to, uint256 amount)
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)
SparkRewardsUpdated
event SparkRewardsUpdated(address indexed oldSparkRewards, address indexed newSparkRewards)
TokenApprovalGranted
event TokenApprovalGranted(address indexed token, address indexed spender, uint256 amount)
TokenWithdrawn
event TokenWithdrawn(address indexed token, address indexed to, uint256 amount)
errors
AccessControlBadConfirmation
error AccessControlBadConfirmation()
AccessControlUnauthorizedAccount
error AccessControlUnauthorizedAccount(address account, bytes32 neededRole)
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
creation bytecode
0x608060405234801562000010575f80fd5b50604051620014d0380380620014d0833981016040819052620000339162000158565b6200003f5f8362000090565b50600180546001600160a01b0319166001600160a01b0383169081179091556040515f907f2d7fb882ae8c78fcba39a162b367da7a4016ec568177fb4c29a22aa1eb83f125908290a350506200018e565b5f828152602081815260408083206001600160a01b038516845290915281205460ff1662000133575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055620000ea3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600162000136565b505f5b92915050565b80516001600160a01b038116811462000153575f80fd5b919050565b5f80604083850312156200016a575f80fd5b62000175836200013c565b915062000185602084016200013c565b90509250929050565b611334806200019c5f395ff3fe608060405260043610610113575f3560e01c80633aecd0e31161009d57806391d148541161006257806391d1485414610344578063a217fddf14610363578063a5b599e414610376578063d547741f14610395578063e851f186146103b4575f80fd5b80633aecd0e31461029e5780634782f779146102bd57806364a197f3146102dc5780636e947298146102fb5780637dc325441461030d575f80fd5b806302cbcec1116100e357806302cbcec1146101e657806315c9267814610205578063248a9ca3146102245780632f2ff15d1461026057806336568abe1461027f575f80fd5b806301e00e6e1461015357806301e336671461017457806301ffc9a714610193578063022fc88b146101c7575f80fd5b3661014f5760405134815233907f6c703791f399558807424f489ccd811c72b4ff0b74af547264fad7c646776df09060200160405180910390a2005b5f80fd5b34801561015e575f80fd5b5061017261016d36600461109d565b6103d3565b005b34801561017f575f80fd5b5061017261018e3660046110bd565b610468565b34801561019e575f80fd5b506101b26101ad3660046110f6565b610525565b60405190151581526020015b60405180910390f35b3480156101d2575f80fd5b506101726101e136600461111d565b61055b565b3480156101f1575f80fd5b5061017261020036600461118d565b610617565b348015610210575f80fd5b5061017261021f36600461109d565b6107f7565b34801561022f575f80fd5b5061025261023e3660046111f4565b5f9081526020819052604090206001015490565b6040519081526020016101be565b34801561026b575f80fd5b5061017261027a36600461120b565b6108b2565b34801561028a575f80fd5b5061017261029936600461120b565b6108dc565b3480156102a9575f80fd5b506102526102b836600461109d565b610914565b3480156102c8575f80fd5b506101726102d736600461111d565b61097d565b3480156102e7575f80fd5b506101726102f636600461111d565b610afc565b348015610306575f80fd5b5047610252565b348015610318575f80fd5b5060015461032c906001600160a01b031681565b6040516001600160a01b0390911681526020016101be565b34801561034f575f80fd5b506101b261035e36600461120b565b610ca6565b34801561036e575f80fd5b506102525f81565b348015610381575f80fd5b5061025261039036600461109d565b610cce565b3480156103a0575f80fd5b506101726103af36600461120b565b610d07565b3480156103bf575f80fd5b506101726103ce36600461111d565b610d2b565b5f6103dd81610d9d565b6001600160a01b03821661040c5760405162461bcd60e51b815260040161040390611235565b60405180910390fd5b6001546040516001600160a01b038085169216907f2d7fb882ae8c78fcba39a162b367da7a4016ec568177fb4c29a22aa1eb83f125905f90a350600180546001600160a01b0319166001600160a01b0392909216919091179055565b5f61047281610d9d565b6001600160a01b0384166104985760405162461bcd60e51b815260040161040390611235565b6001600160a01b0383166104be5760405162461bcd60e51b815260040161040390611235565b6104d26001600160a01b0385168484610daa565b826001600160a01b0316846001600160a01b03167f8210728e7c071f615b840ee026032693858fbcd5e5359e67e438c890f59e56208460405161051791815260200190565b60405180910390a350505050565b5f6001600160e01b03198216637965db0b60e01b148061055557506301ffc9a760e01b6001600160e01b03198316145b92915050565b5f61056581610d9d565b6001600160a01b03831661058b5760405162461bcd60e51b815260040161040390611235565b6001546001600160a01b03166105b35760405162461bcd60e51b81526004016104039061126c565b6001546105cd906001600160a01b03858116911684610e09565b6001546040518381526001600160a01b03918216918516907f7c0343d5d14b1a04e6d7d18d951252b4259e0d3c71bad5d3fefd9c0df3c425819060200160405180910390a3505050565b5f61062181610d9d565b8382146106705760405162461bcd60e51b815260206004820152601d60248201527f5265776172647357616c6c65742f6c656e6774682d6d69736d617463680000006044820152606401610403565b6001546001600160a01b03166106985760405162461bcd60e51b81526004016104039061126c565b5f5b848110156107ef575f8686838181106106b5576106b56112af565b90506020020160208101906106ca919061109d565b6001600160a01b0316036106f05760405162461bcd60e51b815260040161040390611235565b600154610750906001600160a01b0316858584818110610712576107126112af565b9050602002013588888581811061072b5761072b6112af565b9050602002016020810190610740919061109d565b6001600160a01b03169190610e09565b6001546001600160a01b031686868381811061076e5761076e6112af565b9050602002016020810190610783919061109d565b6001600160a01b03167f7c0343d5d14b1a04e6d7d18d951252b4259e0d3c71bad5d3fefd9c0df3c425818686858181106107bf576107bf6112af565b905060200201356040516107d591815260200190565b60405180910390a3806107e7816112c3565b91505061069a565b505050505050565b5f61080181610d9d565b6001600160a01b0382166108275760405162461bcd60e51b815260040161040390611235565b6001546001600160a01b031661084f5760405162461bcd60e51b81526004016104039061126c565b600154610869906001600160a01b0384811691165f610e09565b6001546040515f81526001600160a01b03918216918416907f7c0343d5d14b1a04e6d7d18d951252b4259e0d3c71bad5d3fefd9c0df3c425819060200160405180910390a35050565b5f828152602081905260409020600101546108cc81610d9d565b6108d68383610e98565b50505050565b6001600160a01b03811633146109055760405163334bd91960e11b815260040160405180910390fd5b61090f8282610f27565b505050565b6040516370a0823160e01b81523060048201525f906001600160a01b038316906370a08231906024015b602060405180830381865afa158015610959573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061055591906112e7565b5f61098781610d9d565b6001600160a01b0383166109ad5760405162461bcd60e51b815260040161040390611235565b81471015610a085760405162461bcd60e51b815260206004820152602260248201527f5265776172647357616c6c65742f696e73756666696369656e742d62616c616e604482015261636560f01b6064820152608401610403565b5f836001600160a01b0316836040515f6040518083038185875af1925050503d805f8114610a51576040519150601f19603f3d011682016040523d82523d5f602084013e610a56565b606091505b5050905080610ab35760405162461bcd60e51b815260206004820152602360248201527f5265776172647357616c6c65742f6574682d7769746864726177616c2d6661696044820152621b195960ea1b6064820152608401610403565b836001600160a01b03167f94b2de810873337ed265c5f8cf98c9cffefa06b8607f9a2f1fbaebdfbcfbef1c84604051610aee91815260200190565b60405180910390a250505050565b6001546001600160a01b03163314610b565760405162461bcd60e51b815260206004820181905260248201527f5265776172647357616c6c65742f6f6e6c792d737061726b2d726577617264736044820152606401610403565b80471015610bb55760405162461bcd60e51b815260206004820152602660248201527f5265776172647357616c6c65742f696e73756666696369656e742d6574682d62604482015265616c616e636560d01b6064820152608401610403565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114610bfe576040519150601f19603f3d011682016040523d82523d5f602084013e610c03565b606091505b5050905080610c5e5760405162461bcd60e51b815260206004820152602160248201527f5265776172647357616c6c65742f6574682d7472616e736665722d6661696c656044820152601960fa1b6064820152608401610403565b826001600160a01b03167f07e522f923c81306583f6ac561a0b016b750def4b9fba3fc2198249b036905e583604051610c9991815260200190565b60405180910390a2505050565b5f918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b600154604051636eb1769f60e11b81523060048201526001600160a01b0391821660248201525f9183169063dd62ed3e9060440161093e565b5f82815260208190526040902060010154610d2181610d9d565b6108d68383610f27565b5f610d3581610d9d565b6001600160a01b038316610d5b5760405162461bcd60e51b815260040161040390611235565b6001546001600160a01b0316610d835760405162461bcd60e51b81526004016104039061126c565b6001546105b3906001600160a01b0385811691165f610e09565b610da78133610f90565b50565b6040516001600160a01b0383811660248301526044820183905261090f91859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050610fcd565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b179052610e5a8482611039565b6108d6576040516001600160a01b0384811660248301525f6044830152610e8e91869182169063095ea7b390606401610dd7565b6108d68482610fcd565b5f610ea38383610ca6565b610f20575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055610ed83390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610555565b505f610555565b5f610f328383610ca6565b15610f20575f838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610555565b610f9a8282610ca6565b610fc95760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610403565b5050565b5f8060205f8451602086015f885af180610fec576040513d5f823e3d81fd5b50505f513d91508115611003578060011415611010565b6001600160a01b0384163b155b156108d657604051635274afe760e01b81526001600160a01b0385166004820152602401610403565b5f805f8060205f8651602088015f8a5af192503d91505f5190508280156110785750811561106a5780600114611078565b5f866001600160a01b03163b115b9695505050505050565b80356001600160a01b0381168114611098575f80fd5b919050565b5f602082840312156110ad575f80fd5b6110b682611082565b9392505050565b5f805f606084860312156110cf575f80fd5b6110d884611082565b92506110e660208501611082565b9150604084013590509250925092565b5f60208284031215611106575f80fd5b81356001600160e01b0319811681146110b6575f80fd5b5f806040838503121561112e575f80fd5b61113783611082565b946020939093013593505050565b5f8083601f840112611155575f80fd5b50813567ffffffffffffffff81111561116c575f80fd5b6020830191508360208260051b8501011115611186575f80fd5b9250929050565b5f805f80604085870312156111a0575f80fd5b843567ffffffffffffffff808211156111b7575f80fd5b6111c388838901611145565b909650945060208701359150808211156111db575f80fd5b506111e887828801611145565b95989497509550505050565b5f60208284031215611204575f80fd5b5035919050565b5f806040838503121561121c575f80fd5b8235915061122c60208401611082565b90509250929050565b6020808252601a908201527f5265776172647357616c6c65742f7a65726f2d61646472657373000000000000604082015260600190565b60208082526023908201527f5265776172647357616c6c65742f737061726b2d726577617264732d6e6f742d6040820152621cd95d60ea1b606082015260800190565b634e487b7160e01b5f52603260045260245ffd5b5f600182016112e057634e487b7160e01b5f52601160045260245ffd5b5060010190565b5f602082840312156112f7575f80fd5b505191905056fea26469706673582212201060bf59a1ff7df1978f1e7dbca5e15b7e4373ee73838e2493a101d2a38cf7df64736f6c63430008140033000000000000000000000000e911f518449ba0011d84b047b4cde50daa081ec10000000000000000000000003a8bc981830f7e513fbc17eab8c75d2d49bdb258