[
  "event Approval(address indexed,address indexed,uint256 indexed)",
  "event ApprovalForAll(address indexed,address indexed,bool)",
  "event Deposit(address indexed,uint256,uint256,uint256 indexed,uint8,uint256)",
  "event Supply(uint256,uint256)",
  "event Transfer(address indexed,address indexed,uint256 indexed)",
  "event Withdraw(address indexed,uint256,uint256,uint256)",
  "function approve(address,uint256)",
  "function balanceOf(address) view returns (uint256)",
  "function balanceOfNFT(uint256) view returns (uint256)",
  "function blockNumber() view returns (uint256)",
  "function checkpoint()",
  "function createLock(uint256,uint256,bool) returns (uint256)",
  "function createLockFor(uint256,uint256,address,bool) returns (uint256)",
  "function depositFor(uint256,uint256)",
  "function epoch() view returns (uint256)",
  "function getApproved(uint256) view returns (address)",
  "function isApprovedForAll(address,address) view returns (bool)",
  "function isApprovedOrOwner(address,uint256) view returns (bool)",
  "function isStaked(uint256) view returns (bool)",
  "function merge(uint256,uint256)",
  "function migrateTokenFor(uint256,uint256,address) returns (uint256)",
  "function ownerOf(uint256) view returns (address)",
  "function pointHistory(uint256) view returns (tuple(int128,int128,uint256,uint256))",
  "function registry() view returns (address)",
  "function safeTransferFrom(address,address,uint256)",
  "function safeTransferFrom(address,address,uint256,bytes)",
  "function setApprovalForAll(address,bool)",
  "function supportsInterface(bytes4) view returns (bool)",
  "function totalSupply() view returns (uint256)",
  "function totalSupplyAt(uint256) view returns (uint256)",
  "function totalSupplyWithoutDecay() view returns (uint256)",
  "function transferFrom(address,address,uint256)",
  "function userPointEpoch(uint256) view returns (uint256)",
  "function userPointHistory(uint256,uint256) view returns (tuple(int128,int128,uint256,uint256))"
]
