 |
Ethereum
PoC-8
The C++ Implementation of Ethereum
|
Go to the documentation of this file.
28 inline std::string
toJS(
byte _b)
30 return "0x" + std::to_string(_b);
38 template <
unsigned N> std::string
toJS(boost::multiprecision::number<boost::multiprecision::cpp_int_backend<N, N, boost::multiprecision::unsigned_magnitude, boost::multiprecision::unchecked, void>>
const& _n)
42 std::string res = h[0] !=
'0' ? h : h.substr(1);
46 inline std::string
toJS(
bytes const& _n, std::size_t _padding = 0)
52 n.resize(std::max<unsigned>(n.size(), _padding));
58 std::stringstream stream;
63 template<
typename T> std::string
toJS(T
const& _i)
65 std::stringstream stream;
66 stream <<
"0x" << std::hex << _i;
88 if (_s.substr(0, 2) ==
"0x")
90 return FixedHash<N>(_s.substr(2 + std::max<unsigned>(N * 2, _s.size() - 2) - N * 2));
91 else if (_s.find_first_not_of(
"0123456789") == std::string::npos)
99 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)
101 if (_s.substr(0, 2) ==
"0x")
103 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)));
104 else if (_s.find_first_not_of(
"0123456789") == std::string::npos)
106 return boost::multiprecision::number<boost::multiprecision::cpp_int_backend<N * 8, N * 8, boost::multiprecision::unsigned_magnitude, boost::multiprecision::unchecked, void>>(_s);
112 inline u256 jsToU256(std::string
const& _s) {
return jsToInt<32>(_s); }
117 inline int jsToInt(std::string
const& _s)
string fromRaw(h256 _n)
Convert h256 into user-readable string (by directly using std::string constructor)....
boost::multiprecision::number< boost::multiprecision::cpp_int_backend< N *8, N *8, boost::multiprecision::unsigned_magnitude, boost::multiprecision::unchecked, void > > Arith
The corresponding arithmetic type.
std::string toHexPrefixed(T const &_data)
std::string toString(std::chrono::time_point< T > const &_e, std::string const &_format="%F %T")
bytes padded(bytes _b, unsigned _l)
Add '0' on, or remove items from, the front of _b until it is of length _l.
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)
bytes paddedRight(bytes _b, unsigned _l)
Add '0' on, or remove items from, the back of _b until it is of length _l.
FixedHash< T > const & makeInsecure() const
std::string jsToDecimal(std::string const &_s)
FixedHash< N > jsToFixed(std::string const &_s)
bytes toCompactBigEndian(T _val, unsigned _min=0)
std::vector< byte > bytes
bytes jsToBytes(string const &_s, OnFailed _f)
boost::multiprecision::number< boost::multiprecision::cpp_int_backend< 256, 256, boost::multiprecision::unsigned_magnitude, boost::multiprecision::unchecked, void > > u256
u256 jsToU256(std::string const &_s)
std::string toJS(byte _b)
#define DEV_IGNORE_EXCEPTIONS(X)
std::string toHex(Iterator _it, Iterator _end, std::string const &_prefix)
bytes unpadLeft(bytes _b)
Remove all 0 byte on the head of _s.
bytes unpadded(bytes _b)
Removing all trailing '0'. Returns empty array if input contains only '0' char.
bytes fromHex(std::string const &_s, WhenError _throw=WhenError::DontThrow)