uint64_t toUnsigned(js::mValue const& _v) { switch (_v.type()) { case js::int_type: return _v.get_uint64(); case js::str_type: return fromBigEndian<uint64_t>(fromHex(_v.get_str())); default: return 0; } }
static void buildRLP(js::mValue& _v, RLPStream& _rlp) { if (_v.type() == js::array_type) { RLPStream s; for (auto& i: _v.get_array()) buildRLP(i, s); _rlp.appendList(s.out()); } else if (_v.type() == js::int_type) _rlp.append(_v.get_uint64()); else if (_v.type() == js::str_type) { auto s = _v.get_str(); if (s.size() && s[0] == '#') _rlp.append(bigint(s.substr(1))); else _rlp.append(s); } }