pragma solidity 0.4.20; import 'libraries/ITyped.sol'; import 'libraries/token/ERC20.sol'; import 'reporting/IUniverse.sol'; contract IReputationToken is ITyped, ERC20 { function initialize(IUniverse _universe) public returns (bool); function migrateOut(IReputationToken _destination, uint256 _attotokens) public returns (bool); function migrateIn(address _reporter, uint256 _attotokens) public returns (bool); function trustedReportingParticipantTransfer(address _source, address _destination, uint256 _attotokens) public returns (bool); function trustedMarketTransfer(address _source, address _destination, uint256 _attotokens) public returns (bool); function trustedFeeWindowTransfer(address _source, address _destination, uint256 _attotokens) public returns (bool); function trustedUniverseTransfer(address _source, address _destination, uint256 _attotokens) public returns (bool); function getUniverse() public view returns (IUniverse); function getTotalMigrated() public view returns (uint256); function getTotalTheoreticalSupply() public view returns (uint256); function mintForReportingParticipant(uint256 _amountMigrated) public returns (bool); }