Browse Source

retab

cl-refactor
Marek Kotewicz 10 years ago
parent
commit
982ef819fb
  1. 14
      libdevcore/CommonJS.cpp
  2. 44
      libdevcore/CommonJS.h
  3. 3
      libethereum/BlockChain.cpp

14
libdevcore/CommonJS.cpp

@ -7,13 +7,13 @@ bytes dev::eth::jsToBytes(std::string const& _s)
{ {
if (_s.substr(0, 2) == "0x") if (_s.substr(0, 2) == "0x")
// Hex // Hex
return fromHex(_s.substr(2)); return fromHex(_s.substr(2));
else if (_s.find_first_not_of("0123456789") == std::string::npos) else if (_s.find_first_not_of("0123456789") == std::string::npos)
// Decimal // Decimal
return toCompactBigEndian(bigint(_s)); return toCompactBigEndian(bigint(_s));
else else
// Binary // Binary
return asBytes(_s); return asBytes(_s);
} }
std::string dev::eth::jsPadded(std::string const& _s, unsigned _l, unsigned _r) std::string dev::eth::jsPadded(std::string const& _s, unsigned _l, unsigned _r)

44
libdevcore/CommonJS.h

@ -42,20 +42,20 @@ template <unsigned N> FixedHash<N> jsToFixed(std::string const& _s)
inline std::string jsToFixed(double _s) inline std::string jsToFixed(double _s)
{ {
return toJS(dev::u256(_s * (double)(dev::u256(1) << 128))); return toJS(dev::u256(_s * (double)(dev::u256(1) << 128)));
} }
template <unsigned N> boost::multiprecision::number<boost::multiprecision::cpp_int_backend<N * 8, N * 8, boost::multiprecision::unsigned_magnitude, boost::multiprecision::unchecked, void>> jsToInt(std::string const& _s) template <unsigned N> boost::multiprecision::number<boost::multiprecision::cpp_int_backend<N * 8, N * 8, boost::multiprecision::unsigned_magnitude, boost::multiprecision::unchecked, void>> jsToInt(std::string const& _s)
{ {
if (_s.substr(0, 2) == "0x") if (_s.substr(0, 2) == "0x")
// Hex // Hex
return fromBigEndian<boost::multiprecision::number<boost::multiprecision::cpp_int_backend<N * 8, N * 8, boost::multiprecision::unsigned_magnitude, boost::multiprecision::unchecked, void>>>(fromHex(_s.substr(2))); return fromBigEndian<boost::multiprecision::number<boost::multiprecision::cpp_int_backend<N * 8, N * 8, boost::multiprecision::unsigned_magnitude, boost::multiprecision::unchecked, void>>>(fromHex(_s.substr(2)));
else if (_s.find_first_not_of("0123456789") == std::string::npos) else if (_s.find_first_not_of("0123456789") == std::string::npos)
// Decimal // Decimal
return boost::multiprecision::number<boost::multiprecision::cpp_int_backend<N * 8, N * 8, boost::multiprecision::unsigned_magnitude, boost::multiprecision::unchecked, void>>(_s); return boost::multiprecision::number<boost::multiprecision::cpp_int_backend<N * 8, N * 8, boost::multiprecision::unsigned_magnitude, boost::multiprecision::unchecked, void>>(_s);
else else
// Binary // Binary
return fromBigEndian<boost::multiprecision::number<boost::multiprecision::cpp_int_backend<N * 8, N * 8, boost::multiprecision::unsigned_magnitude, boost::multiprecision::unchecked, void>>>(asBytes(jsPadded(_s, N))); return fromBigEndian<boost::multiprecision::number<boost::multiprecision::cpp_int_backend<N * 8, N * 8, boost::multiprecision::unsigned_magnitude, boost::multiprecision::unchecked, void>>>(asBytes(jsPadded(_s, N)));
} }
inline Address jsToAddress(std::string const& _s) { return jsToFixed<20>(_s); } inline Address jsToAddress(std::string const& _s) { return jsToFixed<20>(_s); }
@ -64,38 +64,38 @@ inline u256 jsToU256(std::string const& _s) { return jsToInt<32>(_s); }
inline std::string jsToBinary(std::string const& _s) inline std::string jsToBinary(std::string const& _s)
{ {
return jsUnpadded(dev::toString(jsToBytes(_s))); return jsUnpadded(dev::toString(jsToBytes(_s)));
} }
inline std::string jsToDecimal(std::string const& _s) inline std::string jsToDecimal(std::string const& _s)
{ {
return dev::toString(jsToU256(_s)); return dev::toString(jsToU256(_s));
} }
inline std::string jsFromBinary(dev::bytes _s, unsigned _padding = 32) inline std::string jsFromBinary(dev::bytes _s, unsigned _padding = 32)
{ {
_s.resize(std::max<unsigned>(_s.size(), _padding)); _s.resize(std::max<unsigned>(_s.size(), _padding));
return "0x" + dev::toHex(_s); return "0x" + dev::toHex(_s);
} }
inline std::string jsFromBinary(std::string const& _s, unsigned _padding = 32) inline std::string jsFromBinary(std::string const& _s, unsigned _padding = 32)
{ {
return jsFromBinary(asBytes(_s), _padding); return jsFromBinary(asBytes(_s), _padding);
} }
inline double jsFromFixed(std::string const& _s) inline double jsFromFixed(std::string const& _s)
{ {
return (double)jsToU256(_s) / (double)(dev::u256(1) << 128); return (double)jsToU256(_s) / (double)(dev::u256(1) << 128);
} }
struct TransactionJS struct TransactionJS
{ {
Secret from; Secret from;
Address to; Address to;
u256 value; u256 value;
bytes data; bytes data;
u256 gas; u256 gas;
u256 gasPrice; u256 gasPrice;
}; };

3
libethereum/BlockChain.cpp

@ -159,8 +159,7 @@ void BlockChain::open(std::string _path, bool _killExisting)
m_lastBlockHash = l.empty() ? m_genesisHash : *(h256*)l.data(); m_lastBlockHash = l.empty() ? m_genesisHash : *(h256*)l.data();
cnote << _path; cnote << "Opened blockchain DB. Latest: " << currentHash();
cnote << "Opened blockchain DB. Latest: " << currentHash();
} }
void BlockChain::close() void BlockChain::close()

Loading…
Cancel
Save