solidity-structure

0.1.18 • Public • Published

Solidity structure

Parse structure of ethereum solidity contract, including enums,constructor, structs. Based on Solidity Parser library from ConsenSys.

The goal of it is to take Solidity code as input and return an object as output that can be used to describe all parts of Solidity smart contract.

Build status Coverage bitHound Code

Instalation

npm install solidity-structure

Usage in code

const SolidityStructure = require("solidity-structure");

// Parse Solidity code as a string:
let result = SolidityStructure.parse("contract { ... }");

// Or, parse a file:
let result = SolidityStructure.parseFile("./path/to/file.sol");

Usage in command line

(suppose solidity-structure package installed globally )

user@host:/solidity-structure MyContract.sol > contract-structure.json

Examples

Contract constructor structure

Solidity contract HasConstructor

pragma solidity ^0.4.4;

/**
* Contract with constructor
*/
contract WithConstructor {

  /**
   * My constructor long long description
   * @dev my constructor short description
   * @param uintParam Description of item 1
   * @param uintParam2
   */
   function  WithConstructor (  uint uintParam,  string stringParam,  uint uintParam2) {
     //empty
   }
}

Structure of constructor

{
        name: 'WithConstructor',
        title: 'my constructor short description',
        description: 'My constructor long long description',
        paramsSeq: [
          'uintParam',
          'stringParam',
          'uintParam2'
        ],
        params: {
          uintParam: {
            name : 'uintParam',
            description: 'Description of item 1',
            type: 'uint',
            typeHint: null
          },
          stringParam: {
            name: 'stringParam',
            type: 'string'
          },
          uintParam2: {
            name : 'uintParam2',
            description: '',
            type: 'uint',
            typeHint: null
          },
        }
}

Contract enum structure

Solidity contract HasEnum

pragma solidity ^0.4.4;

/**
* Contract has enum
*/
contract HasEnum {

   /**
   * My enum lon long description
   * @dev my enum short description
   * @param item1 Description of item 1
   * @param item2
   * @param item4 Item 4 some description
   */
   enum MyEnum  {
      item1,
      item2,
      item3,
      item4
   }
}

Structure of enum

{
        MyEnum: {
          name: 'MyEnum',
          title: 'my enum short description',
          description: 'My enum lon long description',
          members: [
            'item1',
            'item2',
            'item3',
            'item4'
          ],
          params: {
            item1: {
              description: 'Description of item 1'
            },
            item2: {
              description : ''
            },
            item4: {
              description: 'Item 4 some description'
            }
          }

        }
}

Other examples can be found in tests

Readme

Keywords

none

Package Sidebar

Install

npm i solidity-structure

Weekly Downloads

22

Version

0.1.18

License

ISC

Last publish

Collaborators

  • vitiko