Class: BlockGiven::Connectors::Base
- Inherits:
-
Object
- Object
- BlockGiven::Connectors::Base
- Defined in:
- lib/block_given/connectors/base.rb
Overview
A connector is a JSON-RPC transport. Subclasses implement #request; the chain is passed so multi-network providers (Alchemy) can pick the endpoint.
Instance Method Summary collapse
-
#batch(calls, chain: nil) ⇒ Object
Naive batch: one request per call.
- #name ⇒ Object
-
#request(method, params = [], chain: nil) ⇒ Object
The JSON-RPC
result(raw JSON value).
Instance Method Details
#batch(calls, chain: nil) ⇒ Object
Naive batch: one request per call. Transports with real batching override it. Returns an array of results; failed calls are returned as RpcError instances.
15 16 17 18 19 20 21 |
# File 'lib/block_given/connectors/base.rb', line 15 def batch(calls, chain: nil) calls.map do |(method, params)| request(method, params || [], chain: chain) rescue RpcError => e e end end |
#name ⇒ Object
23 |
# File 'lib/block_given/connectors/base.rb', line 23 def name = self.class.name.split("::").last.downcase |
#request(method, params = [], chain: nil) ⇒ Object
Returns the JSON-RPC result (raw JSON value). Raises BlockGiven::RpcError on error.
9 10 11 |
# File 'lib/block_given/connectors/base.rb', line 9 def request(method, params = [], chain: nil) raise NotImplementedError, "#{self.class}#request" end |