Nutritious Potato Munchies

    buidler-source-descriptor
    TypeScript icon, indicating that this package has built-in type declarations

    0.0.15-rc • Public • Published

    buidler-source-descriptor

    Quickstart

    npm install buidler-source-descriptor

    Add this to your buidler.config.js:

    const { usePlugin } = require("@nomiclabs/buidler/config");
     
    usePlugin("buidler-source-descriptor");
     
    module.exports = {
      // All fields are optional,
      // path defaults to cache path
      // file defaults to ast-doc.json
      // ignores nothing by default
      astdocs: {
        path: "./ast-docs",
        file: "ast-doc.json",
        ignores: "test"
      }
      // ...
    };
    npx buidler compile

    What does it do

    Parses the AST to generate (richer) documentation.

    Data is serialized in a JSON blob, e.g.

    {
      "contracts/Child.sol": {
        "imports": ["contracts/Parent.sol"],
        "contracts": {
          "Child": {
            "functions": [
              {
                "name": "myFunction",
                "signature": "myFunction() external",
                "returns": "()",
                "events": ["OwnerNominated"],
                "modifiers": ["onlyOwner"],
                "visibility": "external",
                "lineNumber": 6
              }
            ],
            "events": [],
            "variables": [],
            "modifiers": [],
            "structs": [],
            "inherits": ["Parent"]
          }
        }
      },
      "contracts/ERC20.sol": {
        "imports": ["contracts/IERC20.sol"],
        "contracts": {
          "SafeMath": {
            "functions": [
              {
                "name": "add",
                "signature": "add(uint256 a, uint256 b) internal",
                "returns": "(uint256)",
                "events": [],
                "modifiers": [],
                "visibility": "internal",
                "lineNumber": 8
              },
              {
                "name": "sub",
                "signature": "sub(uint256 a, uint256 b) internal",
                "returns": "(uint256)",
                "events": [],
                "modifiers": [],
                "visibility": "internal",
                "lineNumber": 15
              },
              {
                "name": "sub",
                "signature": "sub(uint256 a, uint256 b, string errorMessage) internal",
                "returns": "(uint256)",
                "events": [],
                "modifiers": [],
                "visibility": "internal",
                "lineNumber": 19
              },
              {
                "name": "mul",
                "signature": "mul(uint256 a, uint256 b) internal",
                "returns": "(uint256)",
                "events": [],
                "modifiers": [],
                "visibility": "internal",
                "lineNumber": 30
              },
              {
                "name": "div",
                "signature": "div(uint256 a, uint256 b) internal",
                "returns": "(uint256)",
                "events": [],
                "modifiers": [],
                "visibility": "internal",
                "lineNumber": 44
              },
              {
                "name": "div",
                "signature": "div(uint256 a, uint256 b, string errorMessage) internal",
                "returns": "(uint256)",
                "events": [],
                "modifiers": [],
                "visibility": "internal",
                "lineNumber": 48
              },
              {
                "name": "mod",
                "signature": "mod(uint256 a, uint256 b) internal",
                "returns": "(uint256)",
                "events": [],
                "modifiers": [],
                "visibility": "internal",
                "lineNumber": 60
              },
              {
                "name": "mod",
                "signature": "mod(uint256 a, uint256 b, string errorMessage) internal",
                "returns": "(uint256)",
                "events": [],
                "modifiers": [],
                "visibility": "internal",
                "lineNumber": 64
              }
            ],
            "events": [],
            "modifiers": [],
            "structs": [],
            "inherits": []
          },
          "ERC20": {
            "functions": [
              {
                "name": "totalSupply",
                "signature": "totalSupply() public",
                "returns": "(uint256)",
                "events": [],
                "modifiers": [],
                "visibility": "public",
                "lineNumber": 96
              },
              {
                "name": "balanceOf",
                "signature": "balanceOf(address account) public",
                "returns": "(uint256)",
                "events": [],
                "modifiers": [],
                "visibility": "public",
                "lineNumber": 103
              },
              {
                "name": "transfer",
                "signature": "transfer(address recipient, uint256 amount) public",
                "returns": "(bool)",
                "events": [],
                "modifiers": [],
                "visibility": "public",
                "lineNumber": 115
              },
              {
                "name": "allowance",
                "signature": "allowance(address owner, address spender) public",
                "returns": "(uint256)",
                "events": [],
                "modifiers": [],
                "visibility": "public",
                "lineNumber": 123
              },
              {
                "name": "approve",
                "signature": "approve(address spender, uint256 amount) public",
                "returns": "(bool)",
                "events": [],
                "modifiers": [],
                "visibility": "public",
                "lineNumber": 138
              },
              {
                "name": "transferFrom",
                "signature": "transferFrom(address sender, address recipient, uint256 amount) public",
                "returns": "(bool)",
                "events": [],
                "modifiers": [],
                "visibility": "public",
                "lineNumber": 155
              },
              {
                "name": "increaseAllowance",
                "signature": "increaseAllowance(address spender, uint256 addedValue) public",
                "returns": "(bool)",
                "events": [],
                "modifiers": [],
                "visibility": "public",
                "lineNumber": 183
              },
              {
                "name": "decreaseAllowance",
                "signature": "decreaseAllowance(address spender, uint256 subtractedValue) public",
                "returns": "(bool)",
                "events": [],
                "modifiers": [],
                "visibility": "public",
                "lineNumber": 209
              },
              {
                "name": "_transfer",
                "signature": "_transfer(address sender, address recipient, uint256 amount) internal",
                "returns": "()",
                "events": ["Transfer"],
                "modifiers": [],
                "visibility": "internal",
                "lineNumber": 238
              },
              {
                "name": "_mint",
                "signature": "_mint(address account, uint256 amount) internal",
                "returns": "()",
                "events": ["Transfer"],
                "modifiers": [],
                "visibility": "internal",
                "lineNumber": 261
              },
              {
                "name": "_burn",
                "signature": "_burn(address account, uint256 amount) internal",
                "returns": "()",
                "events": ["Transfer"],
                "modifiers": [],
                "visibility": "internal",
                "lineNumber": 280
              },
              {
                "name": "_approve",
                "signature": "_approve(address owner, address spender, uint256 amount) internal",
                "returns": "()",
                "events": ["Approval"],
                "modifiers": [],
                "visibility": "internal",
                "lineNumber": 304
              },
              {
                "name": "_burnFrom",
                "signature": "_burnFrom(address account, uint256 amount) internal",
                "returns": "()",
                "events": [],
                "modifiers": [],
                "visibility": "internal",
                "lineNumber": 318
              }
            ],
            "events": [],
            "variables": [
              {
                "name": "_balances",
                "type": "mapping(address => uint256)",
                "lineNumber": 87,
                "visibility": "private"
              },
              {
                "name": "_allowances",
                "type": "mapping(address => mapping(address => uint256))",
                "lineNumber": 89,
                "visibility": "private"
              },
              {
                "name": "_totalSupply",
                "type": "uint256",
                "lineNumber": 91,
                "visibility": "private"
              }
            ],
            "modifiers": [],
            "structs": [],
            "inherits": ["IERC20"]
          }
        }
      },
      "contracts/IERC20.sol": {
        "imports": [],
        "contracts": {
          "IERC20": {
            "functions": [
              {
                "name": "totalSupply",
                "signature": "totalSupply() external",
                "returns": "(uint256)",
                "events": [],
                "modifiers": [],
                "visibility": "external",
                "lineNumber": 5
              },
              {
                "name": "balanceOf",
                "signature": "balanceOf(address account) external",
                "returns": "(uint256)",
                "events": [],
                "modifiers": [],
                "visibility": "external",
                "lineNumber": 10
              },
              {
                "name": "transfer",
                "signature": "transfer(address recipient, uint256 amount) external",
                "returns": "(bool)",
                "events": [],
                "modifiers": [],
                "visibility": "external",
                "lineNumber": 19
              },
              {
                "name": "allowance",
                "signature": "allowance(address owner, address spender) external",
                "returns": "(uint256)",
                "events": [],
                "modifiers": [],
                "visibility": "external",
                "lineNumber": 30
              },
              {
                "name": "approve",
                "signature": "approve(address spender, uint256 amount) external",
                "returns": "(bool)",
                "events": [],
                "modifiers": [],
                "visibility": "external",
                "lineNumber": 49
              },
              {
                "name": "transferFrom",
                "signature": "transferFrom(address sender, address recipient, uint256 amount) external",
                "returns": "(bool)",
                "events": [],
                "modifiers": [],
                "visibility": "external",
                "lineNumber": 60
              }
            ],
            "events": [
              {
                "name": "Transfer",
                "parameters": "(address from, address to, uint256 value)",
                "lineNumber": 70
              },
              {
                "name": "Approval",
                "parameters": "(address owner, address spender, uint256 value)",
                "lineNumber": 76
              }
            ],
            "variables": [],
            "modifiers": [],
            "structs": [],
            "inherits": []
          }
        }
      },
      "contracts/Multiple.sol": {
        "imports": [],
        "contracts": {
          "One": {
            "functions": [
              {
                "name": "functionOne",
                "signature": "functionOne() public",
                "returns": "(uint256)",
                "events": [],
                "modifiers": [],
                "visibility": "public",
                "lineNumber": 5
              }
            ],
            "events": [],
            "variables": [],
            "modifiers": [],
            "structs": [],
            "inherits": []
          },
          "Two": {
            "functions": [
              {
                "name": "functionTwo",
                "signature": "functionTwo() public",
                "returns": "(uint256)",
                "events": [],
                "modifiers": [],
                "visibility": "public",
                "lineNumber": 12
              }
            ],
            "events": [],
            "variables": [],
            "modifiers": [],
            "structs": [],
            "inherits": []
          }
        }
      },
      "contracts/Parent.sol": {
        "imports": [],
        "contracts": {
          "Parent": {
            "functions": [
              {
                "name": "fallback",
                "signature": "() external",
                "returns": "()",
                "events": [],
                "modifiers": [],
                "visibility": "external",
                "lineNumber": 16
              },
              {
                "name": "constructor",
                "signature": "(address _owner) public",
                "returns": "()",
                "events": ["OwnerChanged"],
                "modifiers": [],
                "visibility": "public",
                "lineNumber": 18
              },
              {
                "name": "nominateNewOwner",
                "signature": "nominateNewOwner(address _owner) external",
                "returns": "()",
                "events": ["OwnerNominated"],
                "modifiers": ["onlyOwner"],
                "visibility": "external",
                "lineNumber": 24
              },
              {
                "name": "acceptOwnership",
                "signature": "acceptOwnership() external",
                "returns": "()",
                "events": ["OwnerChanged"],
                "modifiers": [],
                "visibility": "external",
                "lineNumber": 29
              }
            ],
            "events": [
              {
                "name": "OwnerNominated",
                "parameters": "(address newOwner)",
                "lineNumber": 55
              },
              {
                "name": "OwnerChanged",
                "parameters": "(address oldOwner, address newOwner)",
                "lineNumber": 56
              }
            ],
            "variables": [
              {
                "name": "owner",
                "type": "address",
                "lineNumber": 8,
                "visibility": "public"
              },
              {
                "name": "nominatedOwner",
                "type": "address",
                "lineNumber": 9,
                "visibility": "public"
              }
            ],
            "modifiers": [
              {
                "name": "onlyOwner",
                "parameters": "()",
                "visibility": "internal",
                "lineNumber": 39
              },
              {
                "name": "onlySpecificAddress",
                "parameters": "(address user)",
                "visibility": "internal",
                "lineNumber": 47
              }
            ],
            "structs": [
              {
                "name": "MyCustomStruct",
                "members": [
                  {
                    "name": "aVariable",
                    "type": "uint256"
                  },
                  {
                    "name": "bVarible",
                    "type": "address"
                  }
                ],
                "lineNumber": 11
              }
            ],
            "inherits": []
          }
        }
      }
    }

    Install

    npm i buidler-source-descriptor

    DownloadsWeekly Downloads

    1

    Version

    0.0.15-rc

    License

    MIT

    Unpacked Size

    62.1 kB

    Total Files

    13

    Last publish

    Collaborators

    • kendricktan