1️⃣TokenRegistry.sol

The TokenRegistry contract is the core contract that manages the registration and approval of tokens.

Key Features

  • Maintains a list of tokens and their statuses (Pending, Approved, Rejected)

  • Validates token contracts by checking ERC20 compliance

  • Stores and updates token metadata

  • Provides query functions for token information

Events

event TokenAdded(address indexed contractAddress, address indexed submitter);
event TokenApproved(address indexed contractAddress);
event TokenRejected(address indexed contractAddress, string reason);
event TokenUpdated(address indexed contractAddress);
event TokentrollerUpdated(address indexed newTokentroller);

Relevant functions

// For Token Management
function addToken(address contractAddress, MetadataInput[] calldata metadata) external
function approveToken(address contractAddress) external
function rejectToken(address contractAddress, string calldata reason) external
// For Query Functions
function getToken(address contractAddress) external view returns (Token memory)
function getToken(address contractAddress, bool includeMetadata) external view returns (Token memory)
function getTokens(address[] calldata contractAddresses) external view returns (Token[] memory)
function listTokens(
    uint256 offset,
    uint256 limit,
    TokenStatus status
) external view returns (Token[] memory tokens, uint256 total)
function tokenStatus(address contractAddress) external view returns (TokenStatus)
function getTokenCounts() external view returns (uint256 pending, uint256 approved, uint256 rejected)

Last updated