Class: Straight::Blockchain::InsightAdapter

Inherits:
Adapter
  • Object
show all
Defined in:
lib/straight/blockchain_adapters/insight_adapter.rb

Constant Summary collapse

@@test_url =
nil

Constants inherited from Adapter

Adapter::MAX_TRIES

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(host_url) ⇒ InsightAdapter

Returns a new instance of InsightAdapter.



18
19
20
# File 'lib/straight/blockchain_adapters/insight_adapter.rb', line 18

def initialize(host_url)
  @base_url = host_url
end

Class Method Details

.mainnet_adapter(main_url:, test_url: nil) ⇒ Object



8
9
10
11
# File 'lib/straight/blockchain_adapters/insight_adapter.rb', line 8

def self.mainnet_adapter(main_url:, test_url: nil)
  @@test_url = test_url
  new(main_url)
end

.testnet_adapterObject



13
14
15
16
# File 'lib/straight/blockchain_adapters/insight_adapter.rb', line 13

def self.testnet_adapter
  raise "Testnet not implemented" unless @@test_url
  new(@@test_url)
end

Instance Method Details

#fetch_balance_for(address) ⇒ Object



33
34
35
36
# File 'lib/straight/blockchain_adapters/insight_adapter.rb', line 33

def fetch_balance_for(address)
  res = api_request("/addr/", address)
  res["balanceSat"].to_i
end

#fetch_transaction(tid, address: nil) ⇒ Object



22
23
24
25
# File 'lib/straight/blockchain_adapters/insight_adapter.rb', line 22

def fetch_transaction(tid, address: nil)
  res = api_request("/tx/", tid)
  straighten_transaction(res, address: address)
end

#fetch_transactions_for(address) ⇒ Object



27
28
29
30
31
# File 'lib/straight/blockchain_adapters/insight_adapter.rb', line 27

def fetch_transactions_for(address)
  res = api_request("/addr/", address)
  return [] if res["transactions"].empty?
  [fetch_transaction(res["transactions"].first, address: address)]
end