|
|
@ -151,7 +151,7 @@ void version() |
|
|
|
exit(0); |
|
|
|
} |
|
|
|
|
|
|
|
Address c_config = Address("9ef0f0d81e040012600b0c1abdef7c48f720f88a"); |
|
|
|
Address c_config = Address("661005d2720d855f1d9976f88bb10c1a3398c77f"); |
|
|
|
string pretty(h160 _a, eth::State _st) |
|
|
|
{ |
|
|
|
string ns; |
|
|
@ -668,12 +668,12 @@ int main(int argc, char** argv) |
|
|
|
if (size < 40) |
|
|
|
{ |
|
|
|
if (size > 0) |
|
|
|
cwarn << "Invalid address length: " << size; |
|
|
|
cwarn << "Invalid address length:" << size; |
|
|
|
} |
|
|
|
else if (gasPrice < info.minGasPrice) |
|
|
|
cwarn << "Minimum gas price is " << info.minGasPrice; |
|
|
|
cwarn << "Minimum gas price is" << info.minGasPrice; |
|
|
|
else if (gas < minGas) |
|
|
|
cwarn << "Minimum gas amount is " << minGas; |
|
|
|
cwarn << "Minimum gas amount is" << minGas; |
|
|
|
else if (ssize < 40) |
|
|
|
{ |
|
|
|
if (ssize > 0) |
|
|
@ -713,7 +713,7 @@ int main(int argc, char** argv) |
|
|
|
if (size < 40) |
|
|
|
{ |
|
|
|
if (size > 0) |
|
|
|
cwarn << "Invalid address length: " << size; |
|
|
|
cwarn << "Invalid address length:" << size; |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
@ -770,7 +770,7 @@ int main(int argc, char** argv) |
|
|
|
bytes init; |
|
|
|
cnote << "Init:"; |
|
|
|
cnote << sinit; |
|
|
|
cnote << "Code size: " << size; |
|
|
|
cnote << "Code size:" << size; |
|
|
|
if (size < 1) |
|
|
|
cwarn << "No code submitted"; |
|
|
|
else |
|
|
@ -787,9 +787,9 @@ int main(int argc, char** argv) |
|
|
|
if (endowment < 0) |
|
|
|
cwarn << "Invalid endowment"; |
|
|
|
else if (gasPrice < info.minGasPrice) |
|
|
|
cwarn << "Minimum gas price is " << info.minGasPrice; |
|
|
|
cwarn << "Minimum gas price is" << info.minGasPrice; |
|
|
|
else if (gas < minGas) |
|
|
|
cwarn << "Minimum gas amount is " << minGas; |
|
|
|
cwarn << "Minimum gas amount is" << minGas; |
|
|
|
else |
|
|
|
{ |
|
|
|
c.transact(us.secret(), endowment, init, gas, gasPrice); |
|
|
@ -808,17 +808,26 @@ int main(int argc, char** argv) |
|
|
|
ClientGuard g(&c); |
|
|
|
auto h = h160(fromHex(rechex)); |
|
|
|
stringstream s; |
|
|
|
auto mem = c.state().storage(h); |
|
|
|
|
|
|
|
for (auto const& i: mem) |
|
|
|
s << "@" << showbase << hex << i.first << " " << showbase << hex << i.second << endl; |
|
|
|
s << endl << disassemble(c.state().code(h)); |
|
|
|
|
|
|
|
string outFile = getDataDir() + "/" + rechex + ".evm"; |
|
|
|
ofstream ofs; |
|
|
|
ofs.open(outFile, ofstream::binary); |
|
|
|
ofs.write(s.str().c_str(), s.str().length()); |
|
|
|
ofs.close(); |
|
|
|
try |
|
|
|
{ |
|
|
|
auto storage = c.state().storage(h); |
|
|
|
for (auto const& i: storage) |
|
|
|
s << "@" << showbase << hex << i.first << " " << showbase << hex << i.second << endl; |
|
|
|
s << endl << disassemble(c.state().code(h)) << endl; |
|
|
|
|
|
|
|
string outFile = getDataDir() + "/" + rechex + ".evm"; |
|
|
|
ofstream ofs; |
|
|
|
ofs.open(outFile, ofstream::binary); |
|
|
|
ofs.write(s.str().c_str(), s.str().length()); |
|
|
|
ofs.close(); |
|
|
|
|
|
|
|
cnote << "Saved" << rechex << "to" << outFile; |
|
|
|
} |
|
|
|
catch (eth::InvalidTrie) |
|
|
|
{ |
|
|
|
cwarn << "Corrupted trie."; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
else if (cmd == "reset") |
|
|
|