Короче говоря, я потерял код контракта, который я развернул. Это развернуто в живой сети. Есть ли возможность просмотреть исходный код контракта, который был развернут?
Если вы знаете адрес контракта в сети, вы можете получить его байт-код и декомпилировать с помощью этого инструмента https://github.com/comaeio/porosity . Вот пример из их README:
> porosity --abi $abi --code $code --decompile --verbose 0
Porosity v0.1 (https://www.comae.io)
Matt Suiche, Comae Technologies <support@comae.io>
The Ethereum bytecode commandline decompiler.
Decompiles the given Ethereum input bytecode and outputs the Solidity code.
Attempting to parse ABI definition...
Success.
Hash: 0x5FD8C710
function withdrawBalance() {
if (msg.sender.call.gas(4369).value(store[msg.sender])()) {
store[msg.sender] = 0x0;
}
}
L3 (D8193): Potential reetrant vulnerability found.
LOC: 5
Hash: 0xC0E317FB
function addToBalance() {
store[msg.sender] = store[msg.sender] + msg.value;
return;
}
LOC: 4
Hash: 0xF8B2CB4F
function getBalance(address) {
return store[arg_4];
}
LOC: 3
Попробуйте такие инструменты, как JEB Decompiler или Ethervm.io .
JEB — это интерактивный декомпилятор, который создает очень читаемый код, часть которого можно модифицировать (например, имена переменных и функций).
Ethervm — это бесплатный веб-портал. Вывод не такой чистый, но вполне удобный для разовой декомпиляции.
Пол Верест
Пол Верест