Потерял развернутый код контракта. В любом случае просмотра этого?

Короче говоря, я потерял код контракта, который я развернул. Это развернуто в живой сети. Есть ли возможность просмотреть исходный код контракта, который был развернут?

Ответы (2)

Если вы знаете адрес контракта в сети, вы можете получить его байт-код и декомпилировать с помощью этого инструмента 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 — это бесплатный веб-портал. Вывод не такой чистый, но вполне удобный для разовой декомпиляции.