// Contract: MartiansVotingPower
// Target function: function tokenURI(uint256 tokenId_) public view virtual returns (string memory)
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

// ERC721Compliant is not an ERC721 token. It is the bare minimum that 
// can be accepted in the standard and does not represent an actual ERC721.

contract ERC721Compliant {
    // Name and Symbol
    string public name;
    string public symbol;

    // Constructor
    constructor(string memory name_, string memory symbol_) {
        name = name_; symbol = symbol_; }

    // Magic Events 
    event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);

    // Magic Logic (Override These)
    function totalSupply() public virtual view returns (uint256) {}
    function ownerOf(uint256 tokenId_) public virtual view returns (address) {}
    function balanceOf(address address_) public virtual view returns (uint256) {}

    // Magic Compliance
    function supportsInterface(bytes4 iid_) public virtual view returns (bool) {
        return iid_ == 0x01ffc9a7 || iid_ == 0x80ac58cd || iid_ == 0x5b5e139f; 
    }