GithubHelp home page GithubHelp logo

ulasanil / piet Goto Github PK

View Code? Open in Web Editor NEW

This project forked from blockchainsllc/piet

0.0 0.0 0.0 4.16 MB

License: GNU General Public License v3.0

JavaScript 58.53% TypeScript 39.77% CSS 1.25% HTML 0.31% Dockerfile 0.01% Solidity 0.13%

piet's Introduction

Blockchains Piet

A tool helping to grasp solidity smart contract architectures.

Live Demo

Warning: Piet has not yet undergone in-depth testing and may contain serious bugs.

Abstract

Piet is a web application providing support to understand smart contract architectures. This is approached by generating a graphical representation of such architectures and a possibility to query deployed instances of smart contracts.

The graphical representation shows the inheritance structure of solidity contracts. In addition to the inheritance structure the defined enumerations and structs are shown.

To provide understanding of one single solidity contract Piet offers an inspector view showing all members of the contract including the inherited ones. The presentation of the contract and the contract members is enriched by documentation labels derived from Ethereum NatSpec tags.

Piet also provides an interactive mode enabling to read the state of a smart contract, sending transactions and browsing through events. This is achieved by connecting to deployed smart contracts through an injected web3 object.

Feature List

  • Graphical representation of smart contract architectures
    • Inheritance structure of contracts
    • Shows structs and enums
  • Smart contract inspector
    • Shows structure of a smart contract (e.g. functions, events, ...)
    • Shows inherited members
    • Convenient representation of solidity code documentation
  • Interactive Mode
    • Read state from blockchain (e.g. state variables, view functions)
    • Send transactions
  • Event browser
  • NatSpec to Markdown documentation generator
  • Node inspection via JSON RPC calls
  • Transaction history view
  • Code and ABI view

Usage

Type npm i followed by npm start to start a local instance of Piet at http://localhost:3001

Known Issues

  • Some returned tuples may not be displayed correctly
  • Two or more contracts with the identical name cannot be loaded
  • The react component structure needs to be refactored

piet's People

Contributors

slockitpush avatar simon-jentzsch avatar jbentke avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.