19 std::shared_ptr<scorum::plugin::raw_block::raw_block_plugin>
get_plugin();
38 my = std::make_shared<detail::raw_block_api_impl>(ctx.
app);
43 FC_ASSERT(!my->app.is_read_only(),
"get_raw_block is not available in read-only mode.");
46 std::shared_ptr<scorum::chain::database> db = my->app.chain_database();
48 fc::optional<chain::signed_block> block = db->fetch_block_by_number(args.
block_num);
53 std::vector<char> serialized_block = fc::raw::pack(*block);
55 = fc::base64_encode(std::string(&serialized_block[0], &serialized_block[0] + serialized_block.size()));
56 result.block_id = block->id();
57 result.previous = block->previous;
58 result.timestamp = block->timestamp;
64 FC_ASSERT(!my->app.is_read_only(),
"push_raw_block is not available in read-only mode.");
66 std::shared_ptr<scorum::chain::database> db = my->app.chain_database();
68 std::string block_bin = fc::base64_decode(block_b64);
69 fc::datastream<const char*> ds(block_bin.c_str(), block_bin.size());
71 fc::raw::unpack(ds, block);
73 db->push_block(block);
std::shared_ptr< abstract_plugin > get_plugin(const std::string &name) const
scorum::app::application & app
std::shared_ptr< scorum::plugin::raw_block::raw_block_plugin > get_plugin()
raw_block_api_impl(scorum::app::application &_app)
raw_block_api(const scorum::app::api_context &ctx)
get_raw_block_result get_raw_block(get_raw_block_args args)
void push_raw_block(std::string block_b64)