Class: Utxoracle::Mempool
- Defined in:
- lib/utxoracle/providers/mempool.rb
Instance Method Summary collapse
- #getblock(block_hash, _verbosity = 2) ⇒ Object
- #getblockcount ⇒ Object
- #getblockhash(height) ⇒ Object
-
#getblockheader(block_hash, _verbose = true) ⇒ Object
Oracle.price needs blockheader.
-
#initialize ⇒ Mempool
constructor
A new instance of Mempool.
Methods inherited from Provider
Constructor Details
#initialize ⇒ Mempool
Returns a new instance of Mempool.
9 |
# File 'lib/utxoracle/providers/mempool.rb', line 9 def initialize; end |
Instance Method Details
#getblock(block_hash, _verbosity = 2) ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/utxoracle/providers/mempool.rb', line 35 def getblock(block_hash, _verbosity = 2) block = JSON.parse Request.send("https://mempool.space/api/block/#{block_hash}").body # mempool API maps 'timestamp' to 'time' block['time'] = block['timestamp'] # mempool API doesn't return tx. Set to empty array: block['tx'] = [] # Get all tx_ids in the block tx_ids = JSON.parse Request.send("https://mempool.space/api/block/#{block_hash}/txids").body # Append vout to block['tx'] # ( requires mempool enterprise: 429 Too Many Requests) tx_ids.each do |tx_id| tx = JSON.parse Request.send("https://mempool.space/api/tx/#{tx_id}").body block['tx'] << tx['vout'] end block end |
#getblockcount ⇒ Object
11 12 13 |
# File 'lib/utxoracle/providers/mempool.rb', line 11 def getblockcount Request.send('https://mempool.space/api/blocks/tip/height').body.to_i end |
#getblockhash(height) ⇒ Object
15 16 17 |
# File 'lib/utxoracle/providers/mempool.rb', line 15 def getblockhash(height) Request.send("https://mempool.space/api/block-height/#{height}").body end |
#getblockheader(block_hash, _verbose = true) ⇒ Object
Oracle.price needs blockheader
20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/utxoracle/providers/mempool.rb', line 20 def getblockheader(block_hash, _verbose = true) hex_block_header = Request.send("https://mempool.space/api/block/#{block_hash}/header").body # version = hex_to_int(reverse_byte_order(hex_block_header[0..7])) # prev_block_hash = reverse_byte_order(hex_block_header[8..71]) # merkle_root = reverse_byte_order(hex_block_header[72..135]) = hex_to_int(reverse_byte_order(hex_block_header[136..143])) # bits = reverse_byte_order(hex_block_header[144..151]) # nonce = hex_to_int(reverse_byte_order(hex_block_header[152..159])) { 'time' => } end |