class Pool

pending (unconfirmed) transactions (mem) pool

Public Class Methods

from_json( data ) click to toggle source
# File lib/shilling/pool.rb, line 36
def self.from_json( data )
  ## note: assumes data is an array of block records/objects in json
  transactions = data.map { |h| Tx.from_h( h ) }
  self.new( transactions )
end
new( transactions=[] ) click to toggle source
# File lib/shilling/pool.rb, line 9
def initialize( transactions=[] )
  @transactions = transactions
end

Public Instance Methods

<<( tx ) click to toggle source
# File lib/shilling/pool.rb, line 15
def <<( tx )
  @transactions << tx
end
as_json() click to toggle source
# File lib/shilling/pool.rb, line 32
def as_json
  @transactions.map { |tx| tx.to_h }
end
transactions() click to toggle source
# File lib/shilling/pool.rb, line 13
def transactions() @transactions; end
update!( txns_confirmed ) click to toggle source
# File lib/shilling/pool.rb, line 20
def update!( txns_confirmed )
  ## find a better name?
  ##  remove confirmed transactions from pool

  ##   document - keep only pending transaction not yet (confirmed) in blockchain ????
  @transactions = @transactions.select do |tx_unconfirmed|
    txns_confirmed.none? { |tx_confirmed| tx_confirmed.id == tx_unconfirmed.id }
  end
end