rallet 0.1.4

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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: c83939720cfd00298725ba8fb26ec2552fb419a2
4
+ data.tar.gz: 511cfbf9475fa8fb4833528e4525bf2cfbeaa00e
5
+ SHA512:
6
+ metadata.gz: 59c62840231bbc502019bb47d5894706f108179235b86ae3818d058c6a863e0a502c81cbd325523530cd37c050c87c445cf917b0f5803d0049c0d5a7d38e939d
7
+ data.tar.gz: 0e6eacb9dec621bb39aa0c13399e7f121637b446e439168cd32ee127895afce61d6b07c11b00dfca593d7ace98c1d32c867ca1d619f612cbc8f502c5ba6eda32
data/.gitignore ADDED
@@ -0,0 +1,17 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /.git
4
+ /Gemfile.lock
5
+ /_yardoc/
6
+ /coverage/
7
+ /doc/
8
+ /pkg/
9
+ /spec/reports/
10
+ /tmp/
11
+ *.bundle
12
+ *.so
13
+ *.o
14
+ *.a
15
+ mkmf.log
16
+ .DS_Store
17
+ *.gem
data/.travis.yml ADDED
@@ -0,0 +1,6 @@
1
+ language: ruby
2
+ rvm:
3
+ - 1.9.3
4
+ - 2.0.0
5
+ - 2.1.0
6
+ - 2.2.0
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in rallet.gemspec
4
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2015 Mustafa TURAN
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,71 @@
1
+ # Rallet
2
+
3
+ [![Build Status](https://travis-ci.org/mustafaturan/rallet.png)](https://travis-ci.org/mustafaturan/rallet) [![Code Climate](https://codeclimate.com/github/mustafaturan/rallet.png)](https://codeclimate.com/github/mustafaturan/rallet)
4
+
5
+ A generalized JSONRPC client for crypto currencies.
6
+
7
+ ## Installation
8
+
9
+ Add this line to your application's Gemfile:
10
+
11
+ gem 'rallet'
12
+
13
+ And then execute:
14
+
15
+ $ bundle
16
+
17
+ Or install it yourself as:
18
+
19
+ $ gem install rallet
20
+
21
+ ## Usage
22
+
23
+ Rallet allows you to access all json rpc commands of your -virtual currency wallet- however, it is better to use allowed methods by adding it to specific usage.
24
+
25
+ ### JSONRPC Basic Usage (for all currencies)
26
+ client = Rallet::Client.new('http://user:pass@localhost:2082')
27
+ # get info command
28
+ client.request 'getinfo'
29
+
30
+ ### Currency Specific Usage (recommended, but for specific currencies)
31
+ All wallets which accepts same api calls of Bitcoin.
32
+
33
+ btc = Rallet::Wallets::Common.new('http://user:pass@localhost:2082')
34
+
35
+ # get info command
36
+ btc.getinfo
37
+
38
+ All getters can be used without get prefix(ruby style)
39
+ All setters can be used with '=' & without set prefix(ruby style)
40
+
41
+ btc.info
42
+
43
+
44
+ ### Adding Support For Currency Specific Usage
45
+ Rallet allows you to add your favorite currency commands to its usage.
46
+ Create a file:
47
+
48
+ your_fav_currency.rb
49
+
50
+ Paste the code block for your fav currency:
51
+
52
+ module Rallet
53
+ module Wallets
54
+ class YOUR_CURRENCY_CODE < ::Rallet::Wallets::Common
55
+ # add any other methods which not listed at ::Rallet::Wallets::Common class
56
+ end
57
+ end
58
+ end
59
+
60
+ ## Contributing
61
+
62
+ 1. Fork it
63
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
64
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
65
+ 4. Push to the branch (`git push origin my-new-feature`)
66
+ 5. Create new Pull Request
67
+
68
+
69
+ ## Copyright
70
+ Copyright © 2015 Mustafa Turan. See LICENSE for details.
71
+
data/Rakefile ADDED
@@ -0,0 +1,20 @@
1
+ require 'bundler/gem_tasks'
2
+ require 'rake'
3
+ require 'rake/testtask'
4
+
5
+ desc "Default Task"
6
+ task :default => [ :test ]
7
+
8
+ # Run the unit tests
9
+ desc "Run all unit tests"
10
+ Rake::TestTask.new do |t|
11
+ t.libs << 'lib'
12
+ t.test_files = FileList['test/unit/*_test.rb']
13
+ t.verbose = true
14
+ end
15
+
16
+ # Make a console for testing purposes
17
+ desc "Generate a test console"
18
+ task :console do
19
+ verbose( false ) { sh "irb -I lib/ -r 'rallet'" }
20
+ end
@@ -0,0 +1,32 @@
1
+ require 'rest_client'
2
+
3
+ module Rallet
4
+ class Client
5
+ attr_reader :uri
6
+
7
+ def initialize(service_url)
8
+ @uri = service_url
9
+ end
10
+
11
+ # Call any method with any args from RPC service
12
+ def request(name, *args)
13
+ if args && index = args.index(nil)
14
+ args = args[0...index]
15
+ end
16
+ request_body = { 'method' => name, 'params' => args, 'id' => 'jsonrpc' }.to_json
17
+ response = JSON.parse(make_request(request_body))
18
+ raise JSONRPCError, response['error'] if response['error']
19
+ response['result']
20
+ end
21
+
22
+ private
23
+ # Make RPC call
24
+ def make_request(request_body)
25
+ RestClient.post(@uri, request_body, content_type: :json)
26
+ end
27
+
28
+ # Error handler
29
+ class JSONRPCError < RuntimeError; end
30
+
31
+ end
32
+ end
@@ -0,0 +1,3 @@
1
+ module Rallet
2
+ VERSION = '0.1.4'
3
+ end
@@ -0,0 +1,332 @@
1
+ module Rallet
2
+ module Wallets
3
+ # Extracted from https://github.com/sinisterchipmunk/bitcoin-client/blob/master/lib/bitcoin-client/client.rb
4
+ # Date 4 Jan 2015
5
+ class Common
6
+ attr_reader :client
7
+
8
+ # Sample http://user:pass@localhost:2082
9
+ def initialize(service_url)
10
+ @client = Rallet::Client.new(service_url)
11
+ end
12
+
13
+ # Safely copies wallet.dat to destination, which can be a directory or a path with filename.
14
+ def backupwallet(destination)
15
+ @client.request 'backupwallet', destination
16
+ end
17
+
18
+ # Creates a multi-signature address and returns a json object
19
+ def createmultisig(nrequired, keys)
20
+ @client.request 'createmultisig', nrequired, keys
21
+ end
22
+
23
+ # nCreate a transaction spending given inputs
24
+ # (array of objects containing transaction id and output number), sending to given address(es)
25
+ def createrawtransaction(transactionid = nil, address_amount)
26
+ @client.request 'createrawtransaction', transactionid, address_amount
27
+ end
28
+
29
+ # Return a JSON object representing the serialized, hex-encoded transaction.
30
+ def decoderawtransaction(hexstring)
31
+ @client.request 'decoderawtransaction', hexstring
32
+ end
33
+
34
+ # Returns the account associated with the given address.
35
+ def getaccount(bitcoinaddress)
36
+ @client.request 'getaccount', bitcoinaddress
37
+ end
38
+
39
+ # Returns the current bitcoin address for receiving payments to this account.
40
+ def getaccountaddress(account)
41
+ @client.request 'getaccountaddress', account
42
+ end
43
+
44
+ # Returns the list of addresses for the given account.
45
+ def getaddressesbyaccount(account)
46
+ @client.request 'getaddressesbyaccount', account
47
+ end
48
+
49
+ # If +account+ is not specified, returns the server's total available balance.
50
+ # If +account+ is specified, returns the balance in the account.
51
+ def getbalance(account = nil, minconf = 1)
52
+ @client.request 'getbalance', account, minconf
53
+ end
54
+
55
+ def getbestblockhash
56
+ @client.request 'getbestblockhash'
57
+ end
58
+
59
+ # Dumps the block existing at specified height.
60
+ # Note: this is not available in the official release
61
+ def getblockbycount(height)
62
+ @client.request 'getblockbycount', height
63
+ end
64
+
65
+ # Dumps the block existing with specified hash.
66
+ def getblock(hash)
67
+ block = @client.request 'getblock', hash
68
+ block["time"] = Time.at(block["time"]).utc
69
+ block
70
+ end
71
+
72
+ # Returns the number of blocks in the longest block chain.
73
+ def getblockcount
74
+ @client.request 'getblockcount'
75
+ end
76
+
77
+ # Returns the block number of the latest block in the longest block chain.
78
+ def getblocknumber
79
+ @client.request 'getblocknumber'
80
+ end
81
+
82
+ # Returns hash of block in best-block-chain at <index>; index 0 is the genesis block
83
+ def getblockhash(index)
84
+ @client.request 'getblockhash', index
85
+ end
86
+
87
+ # Returns the number of connections to other nodes.
88
+ def getconnectioncount
89
+ @client.request 'getconnectioncount'
90
+ end
91
+
92
+ # Returns the proof-of-work difficulty as a multiple of the minimum difficulty.
93
+ def getdifficulty
94
+ @client.request 'getdifficulty'
95
+ end
96
+
97
+ # Returns true or false whether bitcoind is currently generating hashes
98
+ def getgenerate
99
+ @client.request 'getgenerate'
100
+ end
101
+
102
+ # Returns a recent hashes per second performance measurement while generating.
103
+ def gethashespersec
104
+ @client.request 'gethashespersec'
105
+ end
106
+
107
+ # Returns an object containing various state info.
108
+ def getinfo
109
+ @client.request 'getinfo'
110
+ end
111
+
112
+ # Returns data about each connected network node.
113
+ def getpeerinfo
114
+ @client.request 'getpeerinfo'
115
+ end
116
+
117
+ # Returns an object containing mining info.
118
+ def getmininginfo
119
+ @client.request 'getmininginfo'
120
+ end
121
+
122
+ # Returns a new bitcoin address for receiving payments. If +account+ is specified (recommended),
123
+ # it is added to the address book so payments received with the address will be credited to +account+.
124
+ def getnewaddress(account = nil)
125
+ @client.request 'getnewaddress', account
126
+ end
127
+
128
+ # Returns the total amount received by addresses with +account+ in transactions
129
+ # with at least +minconf+ confirmations.
130
+ def getreceivedbyaccount(account, minconf = 1)
131
+ @client.request 'getreceivedbyaccount', account, minconf
132
+ end
133
+
134
+ # Returns the total amount received by +bitcoinaddress+ in transactions with at least +minconf+ confirmations.
135
+ def getreceivedbyaddress(bitcoinaddress, minconf = 1)
136
+ @client.request 'getreceivedbyaddress', bitcoinaddress, minconf
137
+ end
138
+
139
+ # Get detailed information about +txid+
140
+ def gettransaction(txid)
141
+ @client.request 'gettransaction', txid
142
+ end
143
+
144
+ # Get raw transaction bout +txid+. It outputs the whole transaction chain by default in HEX. If you want JSON, set verbose to 1.
145
+ # When in the bitcoind config is set txindex=1, after reindexing, you can ask about any transaction (not included in your wallet), with this command.
146
+ def getrawtransaction(txid, verbose = 0)
147
+ @client.request 'getrawtransaction', txid, verbose
148
+ end
149
+
150
+ # Gets all mempool txs (pedning/waiting to be added in a block)
151
+ def getrawmempool
152
+ @client.request 'getrawmempool'
153
+ end
154
+ # If +data+ is not specified, returns formatted hash data to work on:
155
+ #
156
+ # :midstate => precomputed hash state after hashing the first half of the data
157
+ # :data => block data
158
+ # :hash1 => formatted hash buffer for second hash
159
+ # :target => little endian hash target
160
+ #
161
+ # If +data+ is specified, tries to solve the block and returns true if it was successful.
162
+ def getwork(data = nil)
163
+ @client.request 'getwork', data
164
+ end
165
+
166
+ # List commands, or get help for a command.
167
+ def help(command = nil)
168
+ @client.request 'help', command
169
+ end
170
+
171
+ # Adds a private key (as returned by dumpprivkey) to your wallet.
172
+ def importprivkey(bitcoinprivkey, label = nil, rescan = true)
173
+ @client.request 'importprivkey', bitcoinprivkey, label, rescan
174
+ end
175
+
176
+ # Returns Object that has account names as keys, account balances as values.
177
+ def listaccounts(minconf = 1)
178
+ @client.request 'listaccounts', minconf
179
+ end
180
+
181
+ # Returns an array of objects containing:
182
+ #
183
+ # :account => the account of the receiving addresses
184
+ # :amount => total amount received by addresses with this account
185
+ # :confirmations => number of confirmations of the most recent transaction included
186
+ #
187
+ def listreceivedbyaccount(minconf = 1, includeempty = false)
188
+ @client.request 'listreceivedbyaccount', minconf, includeempty
189
+ end
190
+
191
+ # Returns an array of objects containing:
192
+ #
193
+ # :address => receiving address
194
+ # :account => the account of the receiving address
195
+ # :amount => total amount received by the address
196
+ # :confirmations => number of confirmations of the most recent transaction included
197
+ #
198
+ # To get a list of accounts on the system, execute bitcoind listreceivedbyaddress 0 true
199
+ def listreceivedbyaddress(minconf = 1, includeempty = false)
200
+ @client.request 'listreceivedbyaddress', minconf, includeempty
201
+ end
202
+
203
+ # Returns up to +count+ most recent transactions for account +account+.
204
+ def listtransactions(account = '' , count = 10, from = 0)
205
+ @client.request 'listtransactions', account, count, from
206
+ end
207
+
208
+ # Returns transactions since <hash> block
209
+ def listsinceblock(hash)
210
+ @client.request 'listsinceblock', hash
211
+ end
212
+
213
+
214
+ # Move from one account in your wallet to another.
215
+ def move(fromaccount, toaccount, amount, minconf = 1, comment = nil)
216
+ @client.request 'move', fromaccount, toaccount, amount, minconf, comment
217
+ end
218
+
219
+ # Return count transactions with <address> present in their scriptSig, skipping skip at the beginning. The ordering is oldest transaction first; if skip is negative the order returned is newest transaction first and skip+1 transactions are skipped. If verbose=0 only txids are returned rather than the full transactions.
220
+ def searchrawtransactions(bitcoinaddress, verbose=1)
221
+ @client.request 'searchrawtransactions', bitcoinaddress, verbose
222
+ end
223
+
224
+ # +amount+ is a real and is rounded to 8 decimal places. Returns the transaction ID if successful.
225
+ def sendfrom(fromaccount, tobitcoinaddress, amount, minconf = 1, comment = nil, comment_to = nil)
226
+ @client.request 'sendfrom', fromaccount, tobitcoinaddress, amount, minconf, comment, comment_to
227
+ end
228
+
229
+ # Submits raw transaction (serialized, hex-encoded) to local node and network.
230
+ def sendrawtransaction(hexstring)
231
+ @client.request 'sendrawtransaction', hexstring
232
+ end
233
+ # +amount+ is a real and is rounded to 8 decimal places
234
+ def sendtoaddress(bitcoinaddress, amount, comment = nil, comment_to = nil)
235
+ @client.request 'sendtoaddress', bitcoinaddress, amount, comment, comment_to
236
+ end
237
+
238
+ def sendmany(fromaccount, addresses_amounts, minconf = 1, comment = nil)
239
+ @client.request 'sendmany', fromaccount, addresses_amounts, minconf, comment
240
+ end
241
+
242
+ # Sets the account associated with the given address.
243
+ def setaccount(bitcoinaddress, account)
244
+ @client.request 'setaccount', bitcoinaddress, account
245
+ end
246
+
247
+ # +generate+ is true or false to turn generation on or off.
248
+ # Generation is limited to +genproclimit+ processors, -1 is unlimited.
249
+ def setgenerate(generate, genproclimit = -1)
250
+ @client.request 'setgenerate', generate, genproclimit
251
+ end
252
+
253
+ # Sign inputs for raw transaction (serialized, hex-encoded).
254
+ def signrawtransaction(hexstring, transaction = nil, privatekey =nil, sighashtype = "ALL")
255
+ @client.request 'signrawtransaction', hexstring, transaction, privatekey, sighashtype
256
+ end
257
+
258
+ # Stop bitcoin server.
259
+ def stop
260
+ @client.request 'stop'
261
+ end
262
+
263
+ # Return information about +bitcoinaddress+.
264
+ def validateaddress(bitcoinaddress)
265
+ @client.request 'validateaddress', bitcoinaddress
266
+ end
267
+
268
+ # Sign a message using +bitcoinaddress+.
269
+ def signmessage(bitcoinaddress, message)
270
+ @client.request 'signmessage', bitcoinaddress, message
271
+ end
272
+
273
+ # Verify signature made by +bitcoinaddress+.
274
+ def verifymessage(bitcoinaddress, signature, message)
275
+ @client.request 'verifymessage', bitcoinaddress, signature, message
276
+ end
277
+
278
+ # Stores the wallet decryption key in memory for +timeout+ seconds.
279
+ def walletpassphrase(passphrase, timeout)
280
+ @client.request 'walletpassphrase', passphrase, timeout
281
+ end
282
+
283
+ # Removes the wallet encryption key from memory, locking the wallet.
284
+ # After calling this method, you will need to call walletpassphrase again
285
+ # before being able to call any methods which require the wallet to be
286
+ # unlocked.
287
+ def walletlock
288
+ @client.request 'walletlock'
289
+ end
290
+
291
+ alias account getaccount
292
+ alias account_address getaccountaddress
293
+ alias addresses_by_account getaddressesbyaccount
294
+ alias balance getbalance
295
+ alias bestblockhash getbestblockhash
296
+ alias block_by_count getblockbycount
297
+ alias block_count getblockcount
298
+ alias block_number getblocknumber
299
+ alias block_hash getblockhash
300
+ alias connection_count getconnectioncount
301
+ alias difficulty getdifficulty
302
+ alias generate? getgenerate
303
+ alias hashes_per_sec gethashespersec
304
+ alias info getinfo
305
+ alias peerinfo getpeerinfo
306
+ alias new_address getnewaddress
307
+ alias received_by_account getreceivedbyaccount
308
+ alias received_by_address getreceivedbyaddress
309
+ alias transaction gettransaction
310
+ alias rawtransaction getrawtransaction
311
+ alias work getwork
312
+ alias get_work getwork
313
+ alias accounts listaccounts
314
+ alias list_received_by_account listreceivedbyaccount
315
+ alias list_received_by_address listreceivedbyaddress
316
+ alias transactions listtransactions
317
+ alias list_transactions listtransactions
318
+ alias send_from sendfrom
319
+ alias send_to_address sendtoaddress
320
+ alias send_many sendmany
321
+ alias account= setaccount
322
+ alias set_account setaccount
323
+ alias generate= setgenerate
324
+ alias set_generate setgenerate
325
+ alias validate_address validateaddress
326
+ alias sign_message signmessage
327
+ alias verify_message verifymessage
328
+ alias search_raw_transactions searchrawtransactions
329
+ alias raw_mempool getrawmempool
330
+ end
331
+ end
332
+ end
@@ -0,0 +1,5 @@
1
+ require File.dirname(__FILE__) + '/wallets/common'
2
+ module Rallet
3
+ module Wallets
4
+ end
5
+ end
data/lib/rallet.rb ADDED
@@ -0,0 +1,6 @@
1
+ require File.dirname(__FILE__) + '/rallet/version'
2
+ require File.dirname(__FILE__) + '/rallet/client'
3
+ require File.dirname(__FILE__) + '/rallet/wallets'
4
+
5
+ module Rallet
6
+ end
data/rallet.gemspec ADDED
@@ -0,0 +1,24 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'rallet/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = 'rallet'
8
+ spec.version = Rallet::VERSION
9
+ spec.authors = ['Mustafa Turan']
10
+ spec.email = ['mustafaturan.net@gmail.com']
11
+ spec.description = %q{A generalized JSONRPC client for crypto currencies.}
12
+ spec.summary = spec.description
13
+ spec.homepage = 'https://github.com/mustafaturan/rallet'
14
+ spec.license = 'MIT'
15
+
16
+ spec.files = `git ls-files`.split($/)
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ['lib']
20
+
21
+ spec.add_runtime_dependency 'rest-client', '~> 1.7', '>= 1.7.2'
22
+ spec.add_development_dependency 'bundler', '~> 1.3'
23
+ spec.add_development_dependency 'rake', '~> 10.1'
24
+ end
@@ -0,0 +1,2 @@
1
+ require 'test/unit'
2
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib', 'rallet'))
metadata ADDED
@@ -0,0 +1,106 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rallet
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.4
5
+ platform: ruby
6
+ authors:
7
+ - Mustafa Turan
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-02-07 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rest-client
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.7'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 1.7.2
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '1.7'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 1.7.2
33
+ - !ruby/object:Gem::Dependency
34
+ name: bundler
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '1.3'
40
+ type: :development
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '1.3'
47
+ - !ruby/object:Gem::Dependency
48
+ name: rake
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '10.1'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '10.1'
61
+ description: A generalized JSONRPC client for crypto currencies.
62
+ email:
63
+ - mustafaturan.net@gmail.com
64
+ executables: []
65
+ extensions: []
66
+ extra_rdoc_files: []
67
+ files:
68
+ - ".gitignore"
69
+ - ".travis.yml"
70
+ - Gemfile
71
+ - LICENSE.txt
72
+ - README.md
73
+ - Rakefile
74
+ - lib/rallet.rb
75
+ - lib/rallet/client.rb
76
+ - lib/rallet/version.rb
77
+ - lib/rallet/wallets.rb
78
+ - lib/rallet/wallets/common.rb
79
+ - rallet.gemspec
80
+ - test/test_helper.rb
81
+ homepage: https://github.com/mustafaturan/rallet
82
+ licenses:
83
+ - MIT
84
+ metadata: {}
85
+ post_install_message:
86
+ rdoc_options: []
87
+ require_paths:
88
+ - lib
89
+ required_ruby_version: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - ">="
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ required_rubygems_version: !ruby/object:Gem::Requirement
95
+ requirements:
96
+ - - ">="
97
+ - !ruby/object:Gem::Version
98
+ version: '0'
99
+ requirements: []
100
+ rubyforge_project:
101
+ rubygems_version: 2.4.5
102
+ signing_key:
103
+ specification_version: 4
104
+ summary: A generalized JSONRPC client for crypto currencies.
105
+ test_files:
106
+ - test/test_helper.rb