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.
- Is this useful to you?
- 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—