Solidity to ELI5 compiler (human readable smart contract generator)

So I’ve created a quick demo of a compiler that takes Solidity source code and outputs an ELI5 explanation. The idea is to be able to generate simple yet detailed explanations of smart contract code for non-developers to understand what is going on. I have two questions for you, the reader.

  1. Is this useful to you?
  2. How would you like me to improve upon the initial prototype?

Here’s a link to the repo: https://github.com/lastmjs/eli5-smart-contracts

Here’s the fully automated output after running the compiler on the Dai smart contract:

In total, 1 contract was found.

Dai

Welcome to the Dai contract.

Functions

Dai has 10 functions that you can use. Their names are rely, deny, transfer, mint, burn, approve, push, pull, move, and permit.

rely

rely has 1 input that you need to provide. It returns no outputs.

Inputs

The first input is called guy, and it is an address.

Outputs

There are no outputs.

Functionality

Yet to be implemented

deny

deny has 1 input that you need to provide. It returns no outputs.

Inputs

The first input is called guy, and it is an address.

Outputs

There are no outputs.

Functionality

Yet to be implemented

transfer

transfer has 2 inputs that you need to provide. It returns 1 outputs.

Inputs

The first input is called dst, and it is an address.

The second input is called wad, and it is an uint.

Outputs

The only output does not have a name, and it is a bool.

Functionality

Yet to be implemented

mint

mint has 2 inputs that you need to provide. It returns no outputs.

Inputs

The first input is called usr, and it is an address.

The second input is called wad, and it is an uint.

Outputs

There are no outputs.

Functionality

Yet to be implemented

burn

burn has 2 inputs that you need to provide. It returns no outputs.

Inputs

The first input is called usr, and it is an address.

The second input is called wad, and it is an uint.

Outputs

There are no outputs.

Functionality

Yet to be implemented

approve

approve has 2 inputs that you need to provide. It returns 1 outputs.

Inputs

The first input is called usr, and it is an address.

The second input is called wad, and it is an uint.

Outputs

The only output does not have a name, and it is a bool.

Functionality

Yet to be implemented

push

push has 2 inputs that you need to provide. It returns no outputs.

Inputs

The first input is called usr, and it is an address.

The second input is called wad, and it is an uint.

Outputs

There are no outputs.

Functionality

Yet to be implemented

pull

pull has 2 inputs that you need to provide. It returns no outputs.

Inputs

The first input is called usr, and it is an address.

The second input is called wad, and it is an uint.

Outputs

There are no outputs.

Functionality

Yet to be implemented

move

move has 3 inputs that you need to provide. It returns no outputs.

Inputs

The first input is called src, and it is an address.

The second input is called dst, and it is an address.

The third input is called wad, and it is an uint.

Outputs

There are no outputs.

Functionality

Yet to be implemented

permit

permit has 8 inputs that you need to provide. It returns no outputs.

Inputs

The first input is called holder, and it is an address.

The second input is called spender, and it is an address.

The third input is called nonce, and it is an uint256.

The fourth input is called expiry, and it is an uint256.

The fifth input is called allowed, and it is a bool.

The sixth input is called v, and it is an uint8.

The seventh input is called r, and it is a bytes32.

The eigth input is called s, and it is a bytes32.

Outputs

There are no outputs.

Functionality

Yet to be implemented

submitted by /u/lastmjs
[link] [comments] —Source link—

What do you think?

DeFi Money Market Offers 6.25% Fixed Return on ETH Lending to Community Contention

Deploy Truffle on AWS: super sweet and super simple