rippler 0.0.7 → 0.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/README.md CHANGED
@@ -34,7 +34,11 @@ Rippler also provides additional commands that print out human-readable output:
34
34
 
35
35
  $ rippler history account:molecular
36
36
 
37
- This one prints account history in a human-readable format.
37
+ This one prints any account history in a human-readable format.
38
+
39
+ $ rippler balances account:bitstamp
40
+
41
+ This one prints out all outstanding balances (debit/credit IOUs and XRP) for a specific account. For example, you can see who holds Bitstamp BTC and fiat IOUs, and how much.
38
42
 
39
43
  $ rippler monitor streams:[ledger,transactions]
40
44
 
data/lib/rippler.rb CHANGED
@@ -10,6 +10,7 @@ require 'rippler/money'
10
10
  require 'rippler/account'
11
11
  require 'rippler/ledger'
12
12
  require 'rippler/transaction'
13
+ require 'rippler/line'
13
14
 
14
15
  module Rippler
15
16
  extend Rippler::Utils
@@ -108,6 +109,26 @@ module Rippler
108
109
  end
109
110
  end
110
111
 
112
+ # Retrieve non-trivial balances (IOUs and XRP) for a given Ripple account
113
+ def self.balances params
114
+ # Request IOU trust lines and balances
115
+ reply = request( {'command' => "account_lines",
116
+ 'account' => DEFAULT_ACCT,
117
+ }.merge(params) )
118
+ lines = reply["result"]["lines"]
119
+
120
+ # Request account info (with XRP balance)
121
+ reply = request( {'command' => "account_info",
122
+ 'account' => DEFAULT_ACCT,
123
+ }.merge(params) )
124
+ xrp_balance = Account(reply["result"]["account_data"]).balance
125
+
126
+ lines.map do |line|
127
+ line = Line.new(line)
128
+ line.to_s if line.balance.to_f.abs > 0.00001
129
+ end.compact.push("XRP balance: #{xrp_balance}")
130
+ end
131
+
111
132
  # Retrieve account transactions history, print out nicely formatted transactions
112
133
  def self.history params
113
134
  reply = request( {'command' => "account_tx",
@@ -2,12 +2,30 @@ module Rippler
2
2
  class Account
3
3
  include Rippler::Utils
4
4
 
5
- attr_accessor :address
5
+ attr_accessor :address, :balance, :flags
6
6
 
7
7
  # String: "evoorhees" or "rpfxDFsjDNtzSBCALKuWoWMkpRp4vxvgrG"
8
- def initialize name_or_address
9
- @address = Rippler::Contacts[name_or_address] || name_or_address
10
- @name = Rippler::Addresses[@address]
8
+ # Hash:
9
+ # {"Account"=>"rUvpjNBcnt4DLKEVA2XyvJi1YGCfp2EPtk",
10
+ # "Balance"=>"199999990",
11
+ # "Flags"=>0,
12
+ # "LedgerEntryType"=>"AccountRoot",
13
+ # "OwnerCount"=>0,
14
+ # "PreviousTxnID"=>"14DBB4EBF6BE71439CE776446337A7E789EB4205D55F1731622DD225AF950BE2",
15
+ # "PreviousTxnLgrSeq"=>338219,
16
+ # "Sequence"=>2,
17
+ # "index"=>"71EE27781DE11E4D3E44052E1264C9F5E01F3F2BC0F5D9A890099914C5031C91"}
18
+ def initialize data
19
+ case data
20
+ when String
21
+ @address = Rippler::Contacts[data] || data
22
+ @name = Rippler::Addresses[@address]
23
+ when Hash
24
+ @address = data["Account"]
25
+ @name = Rippler::Addresses[@address]
26
+ @balance = Money(data["Balance"])
27
+ @flags = data["Flags"]
28
+ end
11
29
  end
12
30
 
13
31
  def name
@@ -4,12 +4,13 @@ module Rippler
4
4
  OpenCoin rJR7gjNe3DpJ7kpB4CHBxjDKfwVMpTKPpj
5
5
  OpenCoin.1 r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV
6
6
 
7
- bitstamp rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B
8
- bitstamp_hotwallet rrpNnNLKrartuEqfJGpqyDwPj1AFPg9vn1
9
7
  weex_btc rpvfJ4mR6QQAeogpXEKnuyGBx8mYCSnYZi
10
8
  weex_aud rBcYpuDT1aXNo4jnqczWJTytKGdBGufsre
11
9
  weex_cad r47RkFi1Ew3LvCNKT6ufw3ZCyj5AJiLHi9
12
10
  weex_usd r9vbV3EHvXWjSkeQ6CAcYVPGeq7TuiXY2X
11
+ bitstamp rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B
12
+ bitstamp.hotwallet rrpNnNLKrartuEqfJGpqyDwPj1AFPg9vn1
13
+ bitstamp.NejcKodric rphasxS8Q5p5TLTpScQCBhh5HfJfPbM2M8
13
14
 
14
15
  TTBit rGwUWgN5BEg3QGNY3RX2HfYowjUTZdid3E
15
16
  BankOfZed ra88Lr8fyo9cUTuyjVFMTrvTSBU93erjyh
@@ -103,6 +104,14 @@ module Rippler
103
104
  Jaques rLVMPwKBxungSYQgiN7HmTa9ndiXSbgzhV
104
105
  Geraintjdotcom rNiS1vbeca2p7WxRwA1oS4WtnxXLB9MHsU
105
106
  icey rDACCWyQyqfuvt9WxCWBZyqgBEMijLseZm
107
+ thatbluedude rLnCJbgbivWYavZXCdaJ7asHPP31RyXPdk
108
+ montana rUMub4tmRpNRfognEeTcwW5rEbXwrgZLwd
109
+ Cookie_Monster raww2VncvFyPvPCY8xnmb1AoqRxUWb6VdN
110
+ CarlosL rE9hpRfFFqWGxpGYA8bC6GkroRCr4mLLcq
111
+ greendave rPGpKXPSSxwvkpNXM5BtRRFWYjLP1ibH9D
112
+ Darkneo rfQdhMCnjWRP1fd1amNQwe49sMmXgR3uYq
113
+ veteranBtc rUvpjNBcnt4DLKEVA2XyvJi1YGCfp2EPtk
114
+ templeofshadows rJCCwPsVANVfEgQEB2bsEiaTF86cr9fdw4
106
115
 
107
116
  molecular rpH3zuMch2GrrYX724xGWwbMGwiQ5RbSAU
108
117
  Ente rNEtVs4kNeESF5HbWCDZMYcWwKZ5iKwUEr
@@ -145,6 +154,7 @@ module Rippler
145
154
  Schleicher rGGxDC8VZ7zHmVKt6XK6sc7fUziNtvohWC
146
155
  ripper234 rhQ7mQ1JJKygoxh7SoCaKNZB4GufdCRiH3
147
156
  alexkravets rKQLJpoBagwGiE7LVcY8YfDfE6EUREJjeq
157
+ alexkravets.1 rnLkaEfjiiyLKkKwUrjYxWNuysB2z7ja2Z
148
158
  comboy rLHMoLsuLhg1Q741bHNjv7jhMqr6karoG7
149
159
  djbaniel rNnLFDCRrAtuESodmwamAasMBZqCmkqQH9
150
160
  wyodude rwJBiKfYKRFX59GykztmGdedUvmV64LpaK
@@ -375,6 +385,56 @@ module Rippler
375
385
  drawingthesun rBpSXnvCUkG6cAtk1KxaRKvM7wPcrJot5s
376
386
  _bh rPtfQWdcdhuL9eNeNv5YfmekSX3K7vJHbG
377
387
  mazi rhdAw3LiEfWWmSrbnZG3udsN7PoWKT56Qo
388
+ imanikin rEQLRKCwfHX6CJ9BnqBZmzwCVxMs3yNjGq
389
+ AmitabhS rUy6q3TxE4iuVWMpzycrQfD5uZok51g1cq
390
+ jed rHTxKLzRbniScyQFGMb3NodmxA848W8dKM
391
+ wiggi rnfP45Y8G24MaD3Atr2Gt1rYMJFRKbLrpu
392
+ brunozisterer rDrZuE8YjYnU7C1s4nm1u3VmNjEyxacVHU
393
+ walruscode rwmg65FXDmAZpBVBuhW6XRJTUuc33jwQgN
394
+ DannyM rnziParaNb8nsU4aruQdwYE3j5jUcqjzFm
395
+ magnebit rQrUJLNcjnaZJjqMjaiPHxGa7eipzyf7b
396
+ coinft rngJ9Co6MPZxJcyepRv2hMPV1HqaeGCdVU
397
+ w1R903.oushri rUNgGdWJDyyK4MeKzZdUvDZCBM528tXNb1
398
+ coderrr rfMPPvVmb3T3SMaVxsGYDHjbyac66aRN21
399
+ freeworm rnC6kokbPHcBAxcrVUjUmJdTAXVkyBWU4v
400
+ redmallorca r3eWvbX3UxtbqdQ6qFVeUnF7aMYBnea7zz
401
+ Face rJXpVEfEbiBkxFCLB1SdQCU7HQcpmVjU1U
402
+ osmosis r2oU84CFuT4MgmrDejBaoyHNvovpMSPiA
403
+ bpd rLCvFaWk9WkJCCyg9Byvwbe9gxn1pnMLWL
404
+ pof rhcZbS2CAVZ9jTE4WGujuztwJAgztGCLRH
405
+ theomar rK3mQg14stixU8yZzeKkvPXsi4btfX11BY
406
+ Carandiru rXJDPhk2tNumsqAnNkWQ79YpQeREaSriK
407
+ BitcoinForLiberty rUhRc8wx912YH617j8egv7nLcwNX5G8ry1
408
+ phantastisch rDmU6omZ7RWqcp1m5GNXY2BdRibFC5rGHF
409
+ bigbox rEFko7T56fAkp2az6pXxkpfqqbCSAjcosW
410
+ katp rG2bkX4MV5kMdNkKzzrgVEjeudAz2b3dgY
411
+ m0mchil rDNa6N2YsP9SGNoJdbNj1McViMDyxkdqsB
412
+ cabin rPUZ2yrr94nXbamcoaZ9U9ABMo8VMXxRwt
413
+ arrowdebreu rE2f4i2j8ooUBUKM6jZmwmkjLigwsy5yvP
414
+ prophecynine r9WcJzZE7SegMX2Eoczx6bjQ5kACGbA5BY
415
+ honolululu r4mxrHNPjCqRufGUhD28SAJ4DHD363m8ZJ
416
+ btcash rPHzZKcjGHss9MMmt6nQiARbKZBNpJesr4
417
+ kingmidas r4xF86D31qByMFKwg2WTpQ9aD7E15Gxqmy
418
+ vhaasteren rJ76yEA3MjG6foR7Np2gCxkSSe6cRy5fsH
419
+ OneMiner rPXh6UrSBuLzzqKksZchqM4nC67EhfNnAW
420
+ phasor rnFqZzWEi5mEaM7Sra1ZSbAJuYPFYi5Ung
421
+ nave rPkWfq4WTRey3vuRtXPwEwN9PBF3qEPWDt
422
+ SuperTramp rEaYSdRcqphHGGcpcnjyCefJKiDnevaZT4
423
+ 4461462665 rnghnHTtDmdKBunkiYn3LH3jKg7bpQ4KmX
424
+ gwillen r3hQEumtyv77Zp1Brw8fWuaVVSK7etMVEe
425
+ conroe64 rKQ2Db6JmHF6PBoy7u9uBpn7geQDA4pQrM
426
+ GlobalBTC rwjL7pxE8MxgGRG2idm7pySBnowrQ7QL84
427
+ sputnik rp9rFPvgYSqKVC3Aibz8r8chHoHW5hfV3S
428
+ db rDALX7uHNUxPmfySY4ENdMiQ9uim12uBpg
429
+ bitcoins5411 rEVbH32GDhDrPPF6bZUXLeBc8sgsUpCsJY
430
+ CyanSlowly rBMJup7diEYhHgAXKZATGmVxzEEqYyWumZ
431
+ rube7x rsbzdffvgZo3HJFnxJCdF52zTDoFNE8KMf
432
+ fancy_pants rGrVrXUL11cfbB2A4XdVHeVtcEmHmTZQ23
433
+ OJsimpson rhBKQBvsyDnSnLgU5D1DcbNKq34To6G2Mr
434
+ overrisk99 rfMwkq3bxP3ZQcDzFHQspFZWvKQEaMvQL6
435
+ Nevermore123 rDYdoGbQLCch5xSfbZTYnh1ctjTFBNA65h
436
+ miguel rKSNsGJSQWy2pQcWc8tP5e4n8umCqyj5FY
437
+ ssbtoday rPuCSJKRBX5iU7gKo6RyxSBUpmSJ3VFmhz
378
438
 
379
439
  X.FortKnox.1 rhWnKQ79moM7wkk2b9RpufDzhbHw7YLc6d
380
440
  X.FortKnox.2 r9PbKbYisKN1DSwaZ7jp6ZsKmfk1yCFAAi
@@ -410,7 +470,43 @@ module Rippler
410
470
  X.12 rwCYkXihZPm7dWuPCXoS3WXap7vbnZ8uzB
411
471
  X.13 rwHpLXGBMxUUqenPBaPugBfoVtgQy19nRE
412
472
  X.14 rpMwfz4c8FRxjqQhxLxbKzqkXdgkenFg8B
413
- ]]
473
+ X.15 rEWDpTUVU9fZZtzrywAUE6D6UcFzu6hFdE
474
+ X.16 rUGNvasUuxLiPL5RXvfZXW8HjBtSHZgqgz
475
+ X.17 rPyuHFYDwYMGJ5xhMbzfYeikx7ARV3ExvF
476
+ X.18 r4MZrGMPEHfxGNQHR92BJo5hU9BiqMsTej
477
+ X.19 rnT9PFSfAnWyj2fd7D5TCoCyCYbK4n356A
478
+ X.20 rnW7DHtmZGJk4uhGTSU2BW3iPCPWb2xegg
479
+ X.21 rUrdFHbrEKWNQQ444zcTLrThjcnHCw2FPu
480
+ X.22 r49nVgaYSDuU7GEQh4mF1nyjsXSVRcUHsr
481
+ X.23 rf8kg7r5Fc8cCszGdD2jeUZt2FrgQd76BS
482
+ X.24 r9aRw8p1jHtR9XhDAE22TjtM7PdupNXhkx
483
+ X.25 rwdLV79WzXmFuzP2cBwTG6mtXcfSnCjtoF
484
+ X.26 r3ZXkbKVkCcwtSRbX5Rqz9VveyZDuXSs5G
485
+ X.27 rakv2tqjdLLuPu5g5j4F5JW21Q4LNLc6Vn
486
+ X.28 rnwRcxX4JpHnPjTJpaDH8YZzRPTphvsHbE
487
+ X.29 rKWFsTLRPrgC8KDC7fCqQRzDsvajgcM1Tp
488
+ X.30 r4mscDrVMQz2on2px31aV5e5ouHeRPn8oy
489
+ X.31 rHnxRmkRdL4NsAoxqN1xwKDuW49uosM3HL
490
+ X.32 r3o9bK8Re9XZpFwZC6jXGwKBuhoLss9Mhc
491
+ X.33 rKuuVUKA14roSPTuquQTo7nmWZN8EsfxpT
492
+ X.34 r9dshc2F8SqBdqXSmQHjsSoPN42PLB37ud
493
+ X.35 rnxnLRYWt6yiHC413MWwUeXJ4AZpQKShUg
494
+ X.36 rNJRm1VQZZuczrVHjgUSB9Y6kpMopLdADo
495
+ X.37 r3iLZXAAmuRQnt4hYQUcoXiSkrSAmHjcKW
496
+ X.38 raXgrRqLeDFRjFbXXJd3vQgjymoLkbzic5
497
+ X.39 r9VUjVRKEFyBNmFRKPCjHbjYUv8QvJ5xyu
498
+ X.40 rs5Kyt6CoYsYx5E6HVpcKGQjVa6trzrBa4
499
+ X.41 r9LVrQDxq9R4mSN2XezNDAXbAeUtRwBrvu
500
+ X.42 rMPNPj8nwiKsBNTRRMGtgRnAdXK17Wvuep
501
+ X.43 rh9uD31E8B3nWbPCGNVNkTE1QzA2486Yom
502
+ X.44 rHrck4S1n9kmyWyFPJHAegLKtRFNmwC2ic
503
+ X.45 rjcDqW25DCTpAUnKi9T8aiMe32vEy8JHt
504
+ X.46 rh5PSrnbYZ31ZVRWNgcEZDNhTmV61rshVK
505
+ X.47 rhBKQBvsyDnSnLgU5D1DcbNKq34To6G2Mr
506
+ X.48 r3RVftuvnhuWyTykK2R2XaD6vepwyfnCYs
507
+ X.49 rLDwkvrMVbbJ9WLaXpNaPM9k9AinJwNPSg
508
+ X.50 rhMb2LRHvyouHMF9WoWMJ29mdDTUgEdiA5
509
+ ]] # X.*** signifies anonymous account that is active in Ripple
414
510
 
415
511
  Addresses = Contacts.invert
416
512
  end
@@ -0,0 +1,10 @@
1
+ module Rippler
2
+ # Line is a relationship between 2 Ripple accounts. It may have limit and balance.
3
+ class Line < OpenStruct
4
+ include Rippler::Utils
5
+
6
+ def to_s
7
+ "Account: #{Account(account)} balance: #{balance}/#{currency}, limits: #{limit_peer}/#{limit}"
8
+ end
9
+ end
10
+ end
@@ -1,3 +1,3 @@
1
1
  module Rippler
2
- VERSION = "0.0.7"
2
+ VERSION = "0.0.8"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rippler
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-03-09 00:00:00.000000000 Z
12
+ date: 2013-03-12 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: faye-websocket
@@ -46,6 +46,7 @@ files:
46
46
  - lib/rippler/account.rb
47
47
  - lib/rippler/contacts.rb
48
48
  - lib/rippler/ledger.rb
49
+ - lib/rippler/line.rb
49
50
  - lib/rippler/money.rb
50
51
  - lib/rippler/transaction.rb
51
52
  - lib/rippler/utils.rb