pragma solidity >=0.6.12; // Author: Louis Holbrook 0826EDA1702D1E87C6E2875121D2E7BB88C2A746 // SPDX-License-Identifier: AGPL-3.0-or-later // File-version: 6 interface IFaucet { // Tokens were given to an address event Give(address indexed _recipient, address indexed _token, uint256 _value); // The amount that the faucet disperses has changed event FaucetAmountChange(uint256 _value); // Address of token the faucet represents // The faucet will return gas tokens with the zero-address is returned. function token() external returns (address); // Amount of tokens the faucet gives out function tokenAmount() external returns (uint256); // Give tokens to the given recipient. Returns amount of tokens given. function giveTo(address _recipient) external returns (uint256); // Give tokens to yourself. Returns amount of tokens given. function gimme() external returns (uint256); // Check if faucet may be used in the current contract state by _recipient function check(address _recipient) external view returns (bool); // Returns timestamp when faucet may be used again by _recipient // If 0 is returned, the address has not yet been used. // A return value of max(uint256) indicates that the faucet may not be used again. function nextTime(address _recipient) external returns (uint256); // Returns the token balance under which faucet may be used again by _recipient // A return value of max(uint256) indicates that the faucet may be used regardless // of the token balance of _recipient function nextBalance(address _recipient) external returns (uint256); }