Copy interface IGen0Airdrop {
event CrystalAirdrop(address indexed owner, uint256 crystalId, uint256 createdBlock);
event CrystalOpen(address indexed owner, uint256 crystalId, uint256 heroId);
function airdropCrystal(address _recipient);
function crystals(uint256) view returns (address owner, uint256 summonerId, uint256 assistantId, uint16 generation, uint256 createdBlock, uint256 heroId, uint8 summonerTears, uint8 assistantTears, address bonusItem, uint32 maxSummons, uint32 firstName, uint32 lastName, uint8 shinyStyle);
function enabled() view returns (bool);
function extractNumber(uint256 randomNumber, uint256 digits, uint256 offset) pure returns (uint256 result);
function getCrystal(uint256 _crystalId) view returns (tuple(address owner, uint256 summonerId, uint256 assistantId, uint16 generation, uint256 createdBlock, uint256 heroId, uint8 summonerTears, uint8 assistantTears, address bonusItem, uint32 maxSummons, uint32 firstName, uint32 lastName, uint8 shinyStyle));
function getUserCrystals(address _address) view returns (uint256[]);
function open(uint256 _crystalId) returns (uint256);
function userCrystals(address, uint256) view returns (uint256);
function vrf(uint256 blockNumber) view returns (bytes32 result);
}