Beispiel #1
0
TransactionSkeleton toTransactionSkeleton(Json::Value const& _json)
{
    TransactionSkeleton ret;
    if (!_json.isObject() || _json.empty())
        return ret;

    if (!_json["from"].empty())
        ret.from = jsToAddress(_json["from"].asString());
    if (!_json["to"].empty() && _json["to"].asString() != "0x" && !_json["to"].asString().empty())
        ret.to = jsToAddress(_json["to"].asString());
    else
        ret.creation = true;

    if (!_json["value"].empty())
        ret.value = jsToU256(_json["value"].asString());

    if (!_json["gas"].empty())
        ret.gas = jsToU256(_json["gas"].asString());

    if (!_json["gasPrice"].empty())
        ret.gasPrice = jsToU256(_json["gasPrice"].asString());

    if (!_json["data"].empty())							// ethereum.js has preconstructed the data array
        ret.data = jsToBytes(_json["data"].asString(), OnFailed::Throw);

    if (!_json["code"].empty())
        ret.data = jsToBytes(_json["code"].asString(), OnFailed::Throw);

    if (!_json["nonce"].empty())
        ret.nonce = jsToU256(_json["nonce"].asString());
    return ret;
}
Beispiel #2
0
shh::Message toMessage(Json::Value const& _json)
{
    shh::Message ret;
    if (!_json["from"].empty())
        ret.setFrom(jsToPublic(_json["from"].asString()));
    if (!_json["to"].empty())
        ret.setTo(jsToPublic(_json["to"].asString()));
    if (!_json["payload"].empty())
        ret.setPayload(jsToBytes(_json["payload"].asString()));
    return ret;
}
Beispiel #3
0
pair<shh::Topics, Public> toWatch(Json::Value const& _json)
{
    shh::BuildTopic bt;
    Public to;

    if (!_json["to"].empty())
        to = jsToPublic(_json["to"].asString());

    if (!_json["topics"].empty())
        for (auto i: _json["topics"])
            bt.shift(jsToBytes(i.asString()));

    return make_pair(bt, to);
}