pragma solidity ^0.4.24; contract IUserPoints { event AddedPoints(address indexed user, uint256 pointAmount); event SubedPoints(address indexed user, uint256 pointAmount); function addPoints(address _user, uint256 _pointAmount) public; function subPoints(address _user, uint256 _pointAmount) public; function pointsSupply() public view returns (uint256); function pointsBalanceOf(address _user) public view returns (uint256); }