Class: Steem::BlockApi
Overview
BlockApi is used to query values related to the block plugin. It can also be used to access a range of multiple blocks by using JSON-RPC 2.0 batch requests.
Also see: Block API Definitions
Constant Summary collapse
- MAX_RANGE_SIZE =
3000
Constants inherited from Api
Instance Attribute Summary
Attributes inherited from Api
Instance Method Summary collapse
-
#get_blocks(options = {block_range: [0..0]}, &block) ⇒ Object
Uses a batched requst on a range of blocks.
-
#initialize(options = {}) ⇒ BlockApi
constructor
A new instance of BlockApi.
Methods inherited from Api
api_class_name, api_name, api_name=, #inspect, jsonrpc, jsonrpc=
Constructor Details
#initialize(options = {}) ⇒ BlockApi
Returns a new instance of BlockApi.
10 11 12 13 |
# File 'lib/steem/block_api.rb', line 10 def initialize( = {}) self.class.api_name = :block_api super end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class Steem::Api
Instance Method Details
#get_blocks(options = {block_range: [0..0]}, &block) ⇒ Object
Uses a batched requst on a range of blocks.
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/steem/block_api.rb', line 19 def get_blocks( = {block_range: [0..0]}, &block) block_range = [:block_range] || [0..0] if block_range.size > MAX_RANGE_SIZE raise Steem::ArgumentError, "Too many blocks requested: #{block_range.size}; maximum request size: #{MAX_RANGE_SIZE}." end request_body = [] for i in block_range do @rpc_client.put(self.class.api_name, :get_block, block_num: i, request_body: request_body) end if !!block @rpc_client.rpc_post(nil, nil, request_body: request_body) do |result, error, id| yield result.nil? ? nil : result.block, error, id end else blocks = [] @rpc_client.rpc_post(nil, nil, request_body: request_body) do |result, error, id| blocks << result end end end |