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; }
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; }
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); }