contract ZeusClaimToken is ERC20, ERC20Detailed {
    IERC721Mintable public token;
    uint256 unique_id = 0;

    constructor(IERC721Mintable nft) public
    ERC20Detailed("Zeus NFT Claim Token", "ZNFTClaim", 0)
    {
        token = nft;
        _mint(msg.sender, 60);
    }

    /**
    * 
    */
    function claim() external {
        _burn(msg.sender, 1);
        token.mintWithTokenURI(msg.sender, unique_id, uint2str(unique_id));
        unique_id++;
    }

    function uint2str(uint _i) internal pure returns (string memory _uintAsString) {
        if (_i == 0) {
            return "0";
        }
        uint j = _i;
        uint len;
        while (j != 0) {
            len++;
            j /= 10;
        }
        bytes memory bstr = new bytes(len);
        uint k = len;
        while (_i != 0) {
            k = k-1;
            uint8 temp = (48 + uint8(_i - _i / 10 * 10));
            bytes1 b1 = bytes1(temp);
            bstr[k] = b1;
            _i /= 10;
        }
        return string(bstr);
    }
}
function claim() external {
    _burn(msg.sender, 1);
    token.mintWithTokenURI(msg.sender, unique_id, uint2str(unique_id));
    unique_id++;
}

/**
 * 
 */