New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

solidity-structure

Package Overview
Dependencies
Maintainers
1
Versions
18
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

solidity-structure

Structure of ethereum contract in solidity language

latest
Source
npmnpm
Version
0.1.18
Version published
Maintainers
1
Created
Source

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

FAQs

Package last updated on 05 Oct 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts