¿Existe una herramienta para generar un código de solidez desde la interfaz ABI?
const Ballot = [{"constant":false,"inputs":[{"name":"to","type":"address"}],"name":"delegate","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"winningProposal","outputs":[{"name":"winningProposal","type":"uint8"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"voter","type":"address"}],"name":"giveRightToVote","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"proposal","type":"uint8"}],"name":"vote","outputs":[],"payable":false,"type":"function"},{"inputs":[{"name":"_numProposals","type":"uint8"}],"payable":false,"type":"constructor"}]
Debería resultar en algo como:
contract Ballot {
function Ballot(uint8 _numProposals) {}
function giveRightToVote(address voter) {}
function delegate(address to) {}
function vote(uint8 proposal) {}
function winningProposal() constant returns (uint8 winningProposal) {}
}
Aquí hay una herramienta que toma un ABI y lo convierte a su interfaz Solidity: https://bia.is/tools/abi2solidity/
El código fuente está publicado en GitHub: https://github.com/maxme/abi2solidity/
grabABI, que es parte de QuickBlocks, se acerca mucho. Es de código abierto, por lo que puede modificarlo ligeramente para rodear su salida con la contract
parte y agregar los garabatos después de cada función, pero debería ser fácil.
Puedes encontrarlo en github.