[
  "constructor(address _carvIdContract)",
  "error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner)",
  "error ERC721InsufficientApproval(address operator, uint256 tokenId)",
  "error ERC721InvalidApprover(address approver)",
  "error ERC721InvalidOperator(address operator)",
  "error ERC721InvalidOwner(address owner)",
  "error ERC721InvalidReceiver(address receiver)",
  "error ERC721InvalidSender(address sender)",
  "error ERC721NonexistentToken(uint256 tokenId)",
  "error OwnableInvalidOwner(address owner)",
  "error OwnableUnauthorizedAccount(address account)",
  "error ReentrancyGuardReentrantCall()",
  "event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)",
  "event ApprovalForAll(address indexed owner, address indexed operator, bool approved)",
  "event ContributionScoreUpdated(uint256 indexed tokenId, uint256 oldScore, uint256 newScore)",
  "event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)",
  "event PostExecuted(uint256 indexed postId, bool passed)",
  "event PostVoteCast(uint256 indexed postId, address indexed voter, bool support)",
  "event ReputationNFTMinted(address indexed user, uint256 indexed tokenId, uint256 contributionScore, uint8 tier, bytes32 carvIdHash)",
  "event TierUpgradeProposed(uint256 indexed proposalId, uint256 indexed tokenId, uint8 currentTier, uint8 proposedTier, address proposer)",
  "event TierUpgraded(uint256 indexed tokenId, uint8 oldTier, uint8 newTier)",
  "event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)",
  "event VoteCast(uint256 indexed proposalId, address indexed voter, bool support, string reason)",
  "function MIN_VOTES_REQUIRED() view returns (uint256)",
  "function POST_VOTING_PERIOD() view returns (uint256)",
  "function VOTING_PERIOD() view returns (uint256)",
  "function approve(address to, uint256 tokenId)",
  "function balanceOf(address owner) view returns (uint256)",
  "function carvIdContract() view returns (address)",
  "function createPost(uint256 votingDeadline)",
  "function deactivateNFT(uint256 tokenId)",
  "function executePost(uint256 postId)",
  "function executeTierUpgrade(uint256 proposalId)",
  "function getApproved(uint256 tokenId) view returns (address)",
  "function getPostVote(uint256 postId) view returns (uint256 votesFor, uint256 votesAgainst, uint256 votingDeadline, bool isExecuted)",
  "function getProposal(uint256 proposalId) view returns (uint256 tokenId, uint8 proposedTier, uint256 votesFor, uint256 votesAgainst, uint256 proposalDeadline, bool isExecuted)",
  "function getReputationByWallet(address wallet) view returns (uint256 tokenId, uint256 contributionScore, uint8 tier, uint256 creationDate, bytes32 carvIdHash, bool isActive)",
  "function hasVotedOnPost(uint256 postId, address voter) view returns (bool)",
  "function hasVotedOnProposal(uint256 proposalId, address voter) view returns (bool)",
  "function isApprovedForAll(address owner, address operator) view returns (bool)",
  "function mintReputationNFT(uint256 contributionScore, uint8 tier)",
  "function name() view returns (string)",
  "function owner() view returns (address)",
  "function ownerOf(uint256 tokenId) view returns (address)",
  "function postVotes(uint256) view returns (uint256 votesFor, uint256 votesAgainst, uint256 votingDeadline, bool isExecuted)",
  "function proposeTierUpgrade(uint256 tokenId, uint8 proposedTier)",
  "function renounceOwnership()",
  "function reputations(uint256) view returns (uint256 contributionScore, uint8 tier, uint256 creationDate, bytes32 carvIdHash, bool isActive)",
  "function safeTransferFrom(address from, address to, uint256 tokenId)",
  "function safeTransferFrom(address from, address to, uint256 tokenId, bytes data)",
  "function setApprovalForAll(address operator, bool approved)",
  "function supportsInterface(bytes4 interfaceId) view returns (bool)",
  "function symbol() view returns (string)",
  "function tierToString(uint8 tier) pure returns (string)",
  "function tierUpgradeProposals(uint256) view returns (uint256 tokenId, uint8 proposedTier, uint256 votesFor, uint256 votesAgainst, uint256 proposalDeadline, bool isExecuted)",
  "function tokenURI(uint256 tokenId) view returns (string)",
  "function transferFrom(address from, address to, uint256 tokenId)",
  "function transferOwnership(address newOwner)",
  "function updateCarvIdContract(address _carvIdContract)",
  "function updateContributionScore(uint256 tokenId, uint256 newScore)",
  "function voteOnPost(uint256 postId, bool support)",
  "function voteOnTierUpgrade(uint256 proposalId, bool support, string reason)",
  "function walletToRepNFT(address) view returns (uint256)"
]