bit_wallet 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -40,7 +40,7 @@ A transaction has the following methods:
40
40
  - `address`: the address it belongs to
41
41
  - `amount`: how much was transferred
42
42
  - `category`: returns the category value of the transaction
43
- - `confirmation`: how many times this has been confirmed by the network
43
+ - `confirmations`: how many times this has been confirmed by the network
44
44
  - `id`: the transaction id
45
45
  - `occurred_at`: Ruby Time object for the `time` value returned by bitcoind
46
46
  - `received_at`: Ruby Time object for the `timereceived` value returned by bitcoind
data/bit_wallet.gemspec CHANGED
@@ -22,7 +22,7 @@ Gem::Specification.new do |gem|
22
22
  gem.add_development_dependency 'rspec', '2.12.0'
23
23
  gem.add_development_dependency 'pry'
24
24
  gem.add_development_dependency 'factory_girl', '4.2.0'
25
- gem.add_development_dependency 'bitcoin_testnet', '0.3.1'
25
+ gem.add_development_dependency 'bitcoin_testnet', '0.4.0'
26
26
  gem.add_development_dependency 'vcr', '2.4.0'
27
27
  gem.add_development_dependency 'webmock', '1.9.0'
28
28
  end
@@ -7,7 +7,8 @@ module BitWallet
7
7
  :confirmations,
8
8
  :id,
9
9
  :occurred_at,
10
- :received_at)
10
+ :received_at,
11
+ :address_str)
11
12
 
12
13
  def initialize(wallet, args)
13
14
  args = args.with_indifferent_access
@@ -1,3 +1,3 @@
1
1
  module BitWallet
2
- VERSION = '0.1.1'
2
+ VERSION = '0.2.0'
3
3
  end
@@ -11,7 +11,7 @@ module BitWallet
11
11
 
12
12
  def recent_transactions(options={})
13
13
  count = options.delete(:limit) || 10
14
- client.listtransactions(nil, count).map do |hash|
14
+ client.listtransactions('*', count).map do |hash|
15
15
  Transaction.new self, hash
16
16
  end
17
17
  end
@@ -114,21 +114,19 @@ describe BitWallet::Account, vcr: true do
114
114
  account_1.recent_transactions.size.should == 10
115
115
  end
116
116
 
117
- context 'when transaction limit is 5' do
118
- # FIXME when bitcoin-client this is resolved: https://github.com/sinisterchipmunk/bitcoin-client/issues/4
119
- it 'should list the 5 most recent transactions'
120
- # it 'should list the 5 most recent transactions' do
121
- # pending "Fix this when when..."
122
- # wallet = build(:wallet)
123
- # default_account = wallet.accounts.new('')
124
- # account_1 = wallet.accounts.new('1')
125
-
126
- # 1.upto(6).each do |n|
127
- # default_account.send_amount n, to: account_1.addresses.first
128
- # end
129
-
130
- # account_1.recent_transactions(limit: 5).size.should == 5
131
- # end
117
+ context 'when transaction limit is 6' do
118
+ it 'should list the 6 most recent transactions' do
119
+ wallet = build(:wallet)
120
+ default_account = wallet.accounts.new('')
121
+ account_1 = wallet.accounts.new('1')
122
+
123
+ 1.upto(8).each do |n|
124
+ default_account.send_amount n, to: account_1.addresses.first
125
+ end
126
+
127
+ transactions = account_1.recent_transactions(limit: 6)
128
+ transactions.size.should == 6
129
+ end
132
130
  end
133
131
  end
134
132
 
@@ -22,19 +22,17 @@ describe BitWallet::Wallet, vcr: true do
22
22
  wallet.recent_transactions.size.should == 10
23
23
  end
24
24
 
25
- # FIXME when bitcoin-client this is resolved: https://github.com/sinisterchipmunk/bitcoin-client/issues/4
26
- it 'should allow overriding of the transaction limit'
27
- # it 'should allow overriding of the transaction limit' do
28
- # wallet = build(:wallet)
29
- # default_account = wallet.accounts.new('')
30
- # account_1 = wallet.accounts.new('1')
31
-
32
- # 1.upto(11).each do |n|
33
- # default_account.send_amount n, to: account_1.addresses.first
34
- # end
35
-
36
- # wallet.recent_transactions(limit: 5).size.should == 5
37
- # end
25
+ it 'should allow overriding of the transaction limit' do
26
+ wallet = build(:wallet)
27
+ default_account = wallet.accounts.new('')
28
+ account_1 = wallet.accounts.new('1')
29
+
30
+ 1.upto(11).each do |n|
31
+ default_account.send_amount n, to: account_1.addresses.first
32
+ end
33
+
34
+ wallet.recent_transactions(limit: 5).size.should == 5
35
+ end
38
36
  end
39
37
 
40
38
  end
@@ -0,0 +1,447 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: http://admin1:123@localhost:19001/
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ! '{"method":"listaccounts","params":[1],"id":"jsonrpc"}'
9
+ headers:
10
+ Accept:
11
+ - ! '*/*; q=0.5, application/xml'
12
+ Accept-Encoding:
13
+ - gzip, deflate
14
+ Content-Length:
15
+ - '53'
16
+ User-Agent:
17
+ - Ruby
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Date:
24
+ - Sun, 07 Apr 2013 09:47:19 +0000
25
+ Connection:
26
+ - keep-alive
27
+ Content-Length:
28
+ - '73'
29
+ Content-Type:
30
+ - application/json
31
+ Server:
32
+ - bitcoin-json-rpc/v0.7.2-beta
33
+ body:
34
+ encoding: US-ASCII
35
+ string: ! '{"result":{"":8707.00000000,"1":0.00000000},"error":null,"id":"jsonrpc"}
36
+
37
+ '
38
+ http_version:
39
+ recorded_at: Sun, 07 Apr 2013 09:47:19 GMT
40
+ - request:
41
+ method: post
42
+ uri: http://admin1:123@localhost:19001/
43
+ body:
44
+ encoding: US-ASCII
45
+ string: ! '{"method":"getnewaddress","params":[""],"id":"jsonrpc"}'
46
+ headers:
47
+ Accept:
48
+ - ! '*/*; q=0.5, application/xml'
49
+ Accept-Encoding:
50
+ - gzip, deflate
51
+ Content-Length:
52
+ - '55'
53
+ User-Agent:
54
+ - Ruby
55
+ response:
56
+ status:
57
+ code: 200
58
+ message: OK
59
+ headers:
60
+ Date:
61
+ - Sun, 07 Apr 2013 09:47:19 +0000
62
+ Connection:
63
+ - keep-alive
64
+ Content-Length:
65
+ - '76'
66
+ Content-Type:
67
+ - application/json
68
+ Server:
69
+ - bitcoin-json-rpc/v0.7.2-beta
70
+ body:
71
+ encoding: US-ASCII
72
+ string: ! '{"result":"n2NtfCUEqT6KtzhLkWyGZGr358DUhUUU8D","error":null,"id":"jsonrpc"}
73
+
74
+ '
75
+ http_version:
76
+ recorded_at: Sun, 07 Apr 2013 09:47:19 GMT
77
+ - request:
78
+ method: post
79
+ uri: http://admin1:123@localhost:19001/
80
+ body:
81
+ encoding: US-ASCII
82
+ string: ! '{"method":"getnewaddress","params":["1"],"id":"jsonrpc"}'
83
+ headers:
84
+ Accept:
85
+ - ! '*/*; q=0.5, application/xml'
86
+ Accept-Encoding:
87
+ - gzip, deflate
88
+ Content-Length:
89
+ - '56'
90
+ User-Agent:
91
+ - Ruby
92
+ response:
93
+ status:
94
+ code: 200
95
+ message: OK
96
+ headers:
97
+ Date:
98
+ - Sun, 07 Apr 2013 09:47:19 +0000
99
+ Connection:
100
+ - keep-alive
101
+ Content-Length:
102
+ - '76'
103
+ Content-Type:
104
+ - application/json
105
+ Server:
106
+ - bitcoin-json-rpc/v0.7.2-beta
107
+ body:
108
+ encoding: US-ASCII
109
+ string: ! '{"result":"mhS8oM6SzVU9xU2gxG8GsZSRJmChNt7kEc","error":null,"id":"jsonrpc"}
110
+
111
+ '
112
+ http_version:
113
+ recorded_at: Sun, 07 Apr 2013 09:47:19 GMT
114
+ - request:
115
+ method: post
116
+ uri: http://admin1:123@localhost:19001/
117
+ body:
118
+ encoding: US-ASCII
119
+ string: ! '{"method":"sendfrom","params":["","mhS8oM6SzVU9xU2gxG8GsZSRJmChNt7kEc",1,0],"id":"jsonrpc"}'
120
+ headers:
121
+ Accept:
122
+ - ! '*/*; q=0.5, application/xml'
123
+ Accept-Encoding:
124
+ - gzip, deflate
125
+ Content-Length:
126
+ - '91'
127
+ User-Agent:
128
+ - Ruby
129
+ response:
130
+ status:
131
+ code: 200
132
+ message: OK
133
+ headers:
134
+ Date:
135
+ - Sun, 07 Apr 2013 09:47:20 +0000
136
+ Connection:
137
+ - keep-alive
138
+ Content-Length:
139
+ - '106'
140
+ Content-Type:
141
+ - application/json
142
+ Server:
143
+ - bitcoin-json-rpc/v0.7.2-beta
144
+ body:
145
+ encoding: US-ASCII
146
+ string: ! '{"result":"5dcbd48876f8dceca4038f3baba708ca9dbc35cab560faf761e395f4c6af968a","error":null,"id":"jsonrpc"}
147
+
148
+ '
149
+ http_version:
150
+ recorded_at: Sun, 07 Apr 2013 09:47:20 GMT
151
+ - request:
152
+ method: post
153
+ uri: http://admin1:123@localhost:19001/
154
+ body:
155
+ encoding: US-ASCII
156
+ string: ! '{"method":"sendfrom","params":["","mhS8oM6SzVU9xU2gxG8GsZSRJmChNt7kEc",2,0],"id":"jsonrpc"}'
157
+ headers:
158
+ Accept:
159
+ - ! '*/*; q=0.5, application/xml'
160
+ Accept-Encoding:
161
+ - gzip, deflate
162
+ Content-Length:
163
+ - '91'
164
+ User-Agent:
165
+ - Ruby
166
+ response:
167
+ status:
168
+ code: 200
169
+ message: OK
170
+ headers:
171
+ Date:
172
+ - Sun, 07 Apr 2013 09:47:20 +0000
173
+ Connection:
174
+ - keep-alive
175
+ Content-Length:
176
+ - '106'
177
+ Content-Type:
178
+ - application/json
179
+ Server:
180
+ - bitcoin-json-rpc/v0.7.2-beta
181
+ body:
182
+ encoding: US-ASCII
183
+ string: ! '{"result":"5a47c7f35978fd42f71604ad471644fa7acc2a6f05c154ec6ed82b3ad36e6501","error":null,"id":"jsonrpc"}
184
+
185
+ '
186
+ http_version:
187
+ recorded_at: Sun, 07 Apr 2013 09:47:20 GMT
188
+ - request:
189
+ method: post
190
+ uri: http://admin1:123@localhost:19001/
191
+ body:
192
+ encoding: US-ASCII
193
+ string: ! '{"method":"sendfrom","params":["","mhS8oM6SzVU9xU2gxG8GsZSRJmChNt7kEc",3,0],"id":"jsonrpc"}'
194
+ headers:
195
+ Accept:
196
+ - ! '*/*; q=0.5, application/xml'
197
+ Accept-Encoding:
198
+ - gzip, deflate
199
+ Content-Length:
200
+ - '91'
201
+ User-Agent:
202
+ - Ruby
203
+ response:
204
+ status:
205
+ code: 200
206
+ message: OK
207
+ headers:
208
+ Date:
209
+ - Sun, 07 Apr 2013 09:47:20 +0000
210
+ Connection:
211
+ - keep-alive
212
+ Content-Length:
213
+ - '106'
214
+ Content-Type:
215
+ - application/json
216
+ Server:
217
+ - bitcoin-json-rpc/v0.7.2-beta
218
+ body:
219
+ encoding: US-ASCII
220
+ string: ! '{"result":"d52f4f3f7f5b3aefd2ed468c56bc4d05685ac334308f30bff1d0a1785e37e8ee","error":null,"id":"jsonrpc"}
221
+
222
+ '
223
+ http_version:
224
+ recorded_at: Sun, 07 Apr 2013 09:47:20 GMT
225
+ - request:
226
+ method: post
227
+ uri: http://admin1:123@localhost:19001/
228
+ body:
229
+ encoding: US-ASCII
230
+ string: ! '{"method":"sendfrom","params":["","mhS8oM6SzVU9xU2gxG8GsZSRJmChNt7kEc",4,0],"id":"jsonrpc"}'
231
+ headers:
232
+ Accept:
233
+ - ! '*/*; q=0.5, application/xml'
234
+ Accept-Encoding:
235
+ - gzip, deflate
236
+ Content-Length:
237
+ - '91'
238
+ User-Agent:
239
+ - Ruby
240
+ response:
241
+ status:
242
+ code: 200
243
+ message: OK
244
+ headers:
245
+ Date:
246
+ - Sun, 07 Apr 2013 09:47:20 +0000
247
+ Connection:
248
+ - keep-alive
249
+ Content-Length:
250
+ - '106'
251
+ Content-Type:
252
+ - application/json
253
+ Server:
254
+ - bitcoin-json-rpc/v0.7.2-beta
255
+ body:
256
+ encoding: US-ASCII
257
+ string: ! '{"result":"6850acb01b446a42acc0b677128ee0654d34da2c032c7dadcdafecb021d4b677","error":null,"id":"jsonrpc"}
258
+
259
+ '
260
+ http_version:
261
+ recorded_at: Sun, 07 Apr 2013 09:47:20 GMT
262
+ - request:
263
+ method: post
264
+ uri: http://admin1:123@localhost:19001/
265
+ body:
266
+ encoding: US-ASCII
267
+ string: ! '{"method":"sendfrom","params":["","mhS8oM6SzVU9xU2gxG8GsZSRJmChNt7kEc",5,0],"id":"jsonrpc"}'
268
+ headers:
269
+ Accept:
270
+ - ! '*/*; q=0.5, application/xml'
271
+ Accept-Encoding:
272
+ - gzip, deflate
273
+ Content-Length:
274
+ - '91'
275
+ User-Agent:
276
+ - Ruby
277
+ response:
278
+ status:
279
+ code: 200
280
+ message: OK
281
+ headers:
282
+ Date:
283
+ - Sun, 07 Apr 2013 09:47:20 +0000
284
+ Connection:
285
+ - keep-alive
286
+ Content-Length:
287
+ - '106'
288
+ Content-Type:
289
+ - application/json
290
+ Server:
291
+ - bitcoin-json-rpc/v0.7.2-beta
292
+ body:
293
+ encoding: US-ASCII
294
+ string: ! '{"result":"37159bd122b9bb257e599145a171d301610a5762181e88c4cd5e05cdf2aea69a","error":null,"id":"jsonrpc"}
295
+
296
+ '
297
+ http_version:
298
+ recorded_at: Sun, 07 Apr 2013 09:47:20 GMT
299
+ - request:
300
+ method: post
301
+ uri: http://admin1:123@localhost:19001/
302
+ body:
303
+ encoding: US-ASCII
304
+ string: ! '{"method":"sendfrom","params":["","mhS8oM6SzVU9xU2gxG8GsZSRJmChNt7kEc",6,0],"id":"jsonrpc"}'
305
+ headers:
306
+ Accept:
307
+ - ! '*/*; q=0.5, application/xml'
308
+ Accept-Encoding:
309
+ - gzip, deflate
310
+ Content-Length:
311
+ - '91'
312
+ User-Agent:
313
+ - Ruby
314
+ response:
315
+ status:
316
+ code: 200
317
+ message: OK
318
+ headers:
319
+ Date:
320
+ - Sun, 07 Apr 2013 09:47:20 +0000
321
+ Connection:
322
+ - keep-alive
323
+ Content-Length:
324
+ - '106'
325
+ Content-Type:
326
+ - application/json
327
+ Server:
328
+ - bitcoin-json-rpc/v0.7.2-beta
329
+ body:
330
+ encoding: US-ASCII
331
+ string: ! '{"result":"9dbf773d8df00fa7b97334b2618f1047bbb6db71b18424967b2de1dcf70b667b","error":null,"id":"jsonrpc"}
332
+
333
+ '
334
+ http_version:
335
+ recorded_at: Sun, 07 Apr 2013 09:47:20 GMT
336
+ - request:
337
+ method: post
338
+ uri: http://admin1:123@localhost:19001/
339
+ body:
340
+ encoding: US-ASCII
341
+ string: ! '{"method":"sendfrom","params":["","mhS8oM6SzVU9xU2gxG8GsZSRJmChNt7kEc",7,0],"id":"jsonrpc"}'
342
+ headers:
343
+ Accept:
344
+ - ! '*/*; q=0.5, application/xml'
345
+ Accept-Encoding:
346
+ - gzip, deflate
347
+ Content-Length:
348
+ - '91'
349
+ User-Agent:
350
+ - Ruby
351
+ response:
352
+ status:
353
+ code: 200
354
+ message: OK
355
+ headers:
356
+ Date:
357
+ - Sun, 07 Apr 2013 09:47:20 +0000
358
+ Connection:
359
+ - keep-alive
360
+ Content-Length:
361
+ - '106'
362
+ Content-Type:
363
+ - application/json
364
+ Server:
365
+ - bitcoin-json-rpc/v0.7.2-beta
366
+ body:
367
+ encoding: US-ASCII
368
+ string: ! '{"result":"dbfd3c5a34da52f795f14a4bd14c322aa626cf451c8f71d1a2717e7417e1b8eb","error":null,"id":"jsonrpc"}
369
+
370
+ '
371
+ http_version:
372
+ recorded_at: Sun, 07 Apr 2013 09:47:20 GMT
373
+ - request:
374
+ method: post
375
+ uri: http://admin1:123@localhost:19001/
376
+ body:
377
+ encoding: US-ASCII
378
+ string: ! '{"method":"sendfrom","params":["","mhS8oM6SzVU9xU2gxG8GsZSRJmChNt7kEc",8,0],"id":"jsonrpc"}'
379
+ headers:
380
+ Accept:
381
+ - ! '*/*; q=0.5, application/xml'
382
+ Accept-Encoding:
383
+ - gzip, deflate
384
+ Content-Length:
385
+ - '91'
386
+ User-Agent:
387
+ - Ruby
388
+ response:
389
+ status:
390
+ code: 200
391
+ message: OK
392
+ headers:
393
+ Date:
394
+ - Sun, 07 Apr 2013 09:47:20 +0000
395
+ Connection:
396
+ - keep-alive
397
+ Content-Length:
398
+ - '106'
399
+ Content-Type:
400
+ - application/json
401
+ Server:
402
+ - bitcoin-json-rpc/v0.7.2-beta
403
+ body:
404
+ encoding: US-ASCII
405
+ string: ! '{"result":"82a6bf495fa4b5d72c3f2cf59cf9f9e8a185e04e32896e119ed4b26e38d2bfc5","error":null,"id":"jsonrpc"}
406
+
407
+ '
408
+ http_version:
409
+ recorded_at: Sun, 07 Apr 2013 09:47:20 GMT
410
+ - request:
411
+ method: post
412
+ uri: http://admin1:123@localhost:19001/
413
+ body:
414
+ encoding: US-ASCII
415
+ string: ! '{"method":"listtransactions","params":["1",6],"id":"jsonrpc"}'
416
+ headers:
417
+ Accept:
418
+ - ! '*/*; q=0.5, application/xml'
419
+ Accept-Encoding:
420
+ - gzip, deflate
421
+ Content-Length:
422
+ - '61'
423
+ User-Agent:
424
+ - Ruby
425
+ response:
426
+ status:
427
+ code: 200
428
+ message: OK
429
+ headers:
430
+ Date:
431
+ - Sun, 07 Apr 2013 09:47:20 +0000
432
+ Connection:
433
+ - keep-alive
434
+ Content-Length:
435
+ - '1481'
436
+ Content-Type:
437
+ - application/json
438
+ Server:
439
+ - bitcoin-json-rpc/v0.7.2-beta
440
+ body:
441
+ encoding: US-ASCII
442
+ string: ! '{"result":[{"account":"1","address":"mhS8oM6SzVU9xU2gxG8GsZSRJmChNt7kEc","category":"receive","amount":3.00000000,"confirmations":0,"txid":"d52f4f3f7f5b3aefd2ed468c56bc4d05685ac334308f30bff1d0a1785e37e8ee","time":1365328040,"timereceived":1365328040},{"account":"1","address":"mhS8oM6SzVU9xU2gxG8GsZSRJmChNt7kEc","category":"receive","amount":4.00000000,"confirmations":0,"txid":"6850acb01b446a42acc0b677128ee0654d34da2c032c7dadcdafecb021d4b677","time":1365328040,"timereceived":1365328040},{"account":"1","address":"mhS8oM6SzVU9xU2gxG8GsZSRJmChNt7kEc","category":"receive","amount":5.00000000,"confirmations":0,"txid":"37159bd122b9bb257e599145a171d301610a5762181e88c4cd5e05cdf2aea69a","time":1365328040,"timereceived":1365328040},{"account":"1","address":"mhS8oM6SzVU9xU2gxG8GsZSRJmChNt7kEc","category":"receive","amount":6.00000000,"confirmations":0,"txid":"9dbf773d8df00fa7b97334b2618f1047bbb6db71b18424967b2de1dcf70b667b","time":1365328040,"timereceived":1365328040},{"account":"1","address":"mhS8oM6SzVU9xU2gxG8GsZSRJmChNt7kEc","category":"receive","amount":7.00000000,"confirmations":0,"txid":"dbfd3c5a34da52f795f14a4bd14c322aa626cf451c8f71d1a2717e7417e1b8eb","time":1365328040,"timereceived":1365328040},{"account":"1","address":"mhS8oM6SzVU9xU2gxG8GsZSRJmChNt7kEc","category":"receive","amount":8.00000000,"confirmations":0,"txid":"82a6bf495fa4b5d72c3f2cf59cf9f9e8a185e04e32896e119ed4b26e38d2bfc5","time":1365328040,"timereceived":1365328040}],"error":null,"id":"jsonrpc"}
443
+
444
+ '
445
+ http_version:
446
+ recorded_at: Sun, 07 Apr 2013 09:47:20 GMT
447
+ recorded_with: VCR 2.4.0