bc 0.1 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. data.tar.gz.sig +0 -0
  2. data/lib/bc.rb +19 -7
  3. metadata +4 -4
  4. metadata.gz.sig +0 -0
data.tar.gz.sig CHANGED
Binary file
data/lib/bc.rb CHANGED
@@ -108,7 +108,7 @@ module Bitcoin
108
108
  # It increases logarithmically in proportion to difficulty.
109
109
  attr_reader :difficulty
110
110
 
111
- # This is an Array of every Transaction that is part of the block.
111
+ # This is an Array of every Transaction that is part of the block.
112
112
  attr_reader :transactions
113
113
 
114
114
  # This is a compact representation of the prefix this block was attempting
@@ -156,6 +156,8 @@ module Bitcoin
156
156
  block_data[block_data_key.to_s].freeze
157
157
  )
158
158
  end
159
+
160
+ @transactions ||= [].freeze
159
161
  end
160
162
 
161
163
  # This is the Block created immediately after this one, or +nil+ if this is
@@ -588,16 +590,26 @@ module Bitcoin
588
590
  @transactions[transaction_id] ||= Transaction.new(self, transaction_id)
589
591
  end
590
592
 
591
- # Get an Array of every Transaction that has occurred since +block+. If
592
- # +block+ is not a Block it will be converted into one with get_block().
593
- def get_transactions_since(block)
593
+ # Call the (Ruby) block passed for every transaction that has occurred since
594
+ # +block+ (which may be a Block, a block ID, or a block height). We return
595
+ # the last Block processed.
596
+ def each_transactions_since(block)
594
597
  unless block.is_a?(Block)
595
598
  block = get_block(block)
596
599
  end
597
600
 
598
- @jr.listsinceblock(block.block_id).fetch('transactions').map do |tx|
599
- tx.fetch('txid')
600
- end.uniq.map(&method(:get_transaction))
601
+ info = @jr.listsinceblock(block.block_id)
602
+
603
+ txes = info.fetch('transactions')
604
+ txes.map!{ |tx| tx.fetch('txid') }
605
+ txes.uniq!
606
+
607
+ txes.each do |txid|
608
+ transaction = get_transaction(txid)
609
+ yield(transaction)
610
+ end
611
+
612
+ get_block(info.fetch('lastblock'))
601
613
  end
602
614
 
603
615
  # Get an Array of every Transaction involving one of our addresses.
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bc
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.1'
4
+ version: 0.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -54,7 +54,7 @@ date: 2012-03-05 00:00:00.000000000 Z
54
54
  dependencies:
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: jr
57
- requirement: &76283090 !ruby/object:Gem::Requirement
57
+ requirement: &80146860 !ruby/object:Gem::Requirement
58
58
  none: false
59
59
  requirements:
60
60
  - - ! '>='
@@ -62,7 +62,7 @@ dependencies:
62
62
  version: '0'
63
63
  type: :runtime
64
64
  prerelease: false
65
- version_requirements: *76283090
65
+ version_requirements: *80146860
66
66
  description: bc is a Ruby interface to bitcoind.
67
67
  email: the.magical.kat@gmail.com
68
68
  executables: []
@@ -95,6 +95,6 @@ rubyforge_project:
95
95
  rubygems_version: 1.8.10
96
96
  signing_key:
97
97
  specification_version: 3
98
- summary: Interface with bitcoid.
98
+ summary: Interface with bitcoind.
99
99
  test_files: []
100
100
  has_rdoc:
metadata.gz.sig CHANGED
Binary file