flat-cli 0.4.0

Flatten codebases into AI-friendly format
Documentation
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import "./OtherContract.sol";

contract SampleContract {
    uint256 public constant MAX_SUPPLY = 10000;

    event Transfer(address indexed from, address indexed to, uint256 amount);

    struct User {
        string name;
        uint256 balance;
    }

    enum Status { Pending, Active }

    error InsufficientBalance(uint256 available, uint256 required);

    modifier onlyOwner() {
        require(msg.sender == owner, "Not owner");
        _;
    }

    function transfer(address to, uint256 amount) public {
        require(balances[msg.sender] >= amount, "Insufficient balance");
        balances[msg.sender] -= amount;
        balances[to] += amount;
        emit Transfer(msg.sender, to, amount);
    }

    function getBalance(address account) public view returns (uint256) {
        return balances[account];
    }
}