monero 0.0.0.3 → 0.0.0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 46d9e1f4f3fa414f5ee98f81eff0587179e7d698
4
- data.tar.gz: abb4704507ed4f866e0f3a16e431777bdfcd5063
3
+ metadata.gz: bbd4e0ebaccaf5e0403f30225b9d4b0f86938ed7
4
+ data.tar.gz: '091d45b2d5e0d3f387377378b52bccfbadddd867'
5
5
  SHA512:
6
- metadata.gz: 7406a2206cb17cb7eb780d3a577f5cfe4f46996b777e8fc2588bbc5fb33ede0bbad0091418887c381edb53de1abf3de84b6b4683e6619ed106494f4b62eda111
7
- data.tar.gz: adf0f08579354a7ee9bafa3655323ab63dbd2648e16270d0a1e99b431c28567a44656a5eeb56a73ad1ada3767e0fff409e080fe0a18c857d83f5aefc4e8a185f
6
+ metadata.gz: cc029a7f1a811bedaa291cf0d66fe9f22c5d94e13033d8a2919aacbce10d901af59f5188ff80f6be8fde43d4ba7a95a6effd7d280cd0a03b50cc4518a0273908
7
+ data.tar.gz: cbf6720305f05f4cc0594bdae8c947ead71d644e96a2e3fd9da9e90b82a52c3f7346c21fb64bd9d0b6de54522a28df151ae1321c1ae020f9ccb7209f99640f1d
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- *updating and testing for 0.12 soon*
1
+ *updating and testing for 0.12 ~~soon~~ in progress*
2
2
 
3
3
  # Monero Ruby Client
4
4
 
@@ -24,7 +24,7 @@ For easy installation add `gem 'monero'` to your Gemfile or run `gem install mon
24
24
 
25
25
  Start your daemon `./monerod --testnet`
26
26
 
27
- Start your RPC Client `./monero-wallet-rpc --testnet --rpc-bind-port 18081 --rpc-bind-ip 127.0.0.1 --rpc-login username:password --log-level 4 --wallet-dir ./`
27
+ Start your RPC Client `./monero-wallet-rpc --testnet --rpc-bind-port 18081 --rpc-bind-ip 127.0.0.1 --rpc-login username:password --log-level 4`
28
28
 
29
29
  - To open a wallet at start use `--wallet-file filename` and `--password pass`
30
30
  - In case you need to access the client from another machine, you need to set `--confirm-external-bind`.
@@ -34,10 +34,10 @@ Start your RPC Client `./monero-wallet-rpc --testnet --rpc-bind-port 18081 --rp
34
34
  ## Getting started
35
35
 
36
36
  ### Configuration
37
- Monero.config.host = "127.0.0.1"
38
- Monero.config.port = "18081"
39
- Monero.config.username = "username"
40
- Monero.config.password = "password"
37
+ RPC.config.host = "127.0.0.1"
38
+ RPC.config.port = "18081"
39
+ RPC.config.username = "username"
40
+ RPC.config.password = "password"
41
41
 
42
42
 
43
43
 
@@ -50,33 +50,33 @@ ___
50
50
 
51
51
  Get the current address
52
52
 
53
- Monero::Wallet.address
53
+ RPC::Wallet.address
54
54
  => "9wm6oNA5nP3LnugTKRSwGJhW4vnYv8RAVdRvYyvbistbHUnojyTHyHcYpbZvbTZHDsi4rF1EK5TiYgnCN6FWM9HjTDpKXAE"
55
55
  ___
56
56
 
57
57
  Create a new address for a payment (integrated address)
58
58
 
59
- Monero::Wallet.make_integrated_address
59
+ RPC::Wallet.make_integrated_address
60
60
  => {"integrated_address"=>"A7TmpAyaPeZLnugTKRSwGJhW4vnYv8RAVdRvYyvbistbHUnojyTHyHcYpbZvbTZHDsi4rF1EK5TiYgnCN6FWM9HjfufSYUchQ8hH2R272H",
61
61
  "payment_id"=>"9d985c985ce58a8e"}
62
62
  ___
63
63
  To get the balance of the current wallet (we use the gem 'money')
64
64
 
65
- Monero::Wallet.balance
65
+ RPC::Wallet.balance
66
66
  # returns an ::XMR object which is just a shortcut for ::Money(amount, :xmr)
67
67
  => #<Money fractional:9980629640000 currency:XMR>
68
68
 
69
- Monero::Wallet.balance.format
69
+ RPC::Wallet.balance.format
70
70
  => "9.980629640000 XMR"
71
71
 
72
72
  To get the unlocked balance, which is currently available
73
73
 
74
- Monero::Wallet.unlocked_balance
74
+ RPC::Wallet.unlocked_balance
75
75
  => #<Money fractional:10000 currency:XMR>
76
76
 
77
77
  To get both combined
78
78
 
79
- Monero::Wallet.getbalance
79
+ RPC::Wallet.getbalance
80
80
  => {"balance"=>9961213880000, "unlocked_balance"=>10000}
81
81
 
82
82
 
@@ -84,16 +84,16 @@ To get both combined
84
84
  ___
85
85
  To get the current block height
86
86
 
87
- Monero::Wallet.getheight
87
+ RPC::Wallet.getheight
88
88
  => 1008032
89
89
 
90
90
 
91
91
  ___
92
92
 
93
- Send XMR to an address via `Monero::Transfer.create`. If successfull you will get the transaction details. If not succesfull you'll get returned nil.
93
+ Send XMR to an address via `RPC::Transfer.create`. If successfull you will get the transaction details. If not succesfull you'll get returned nil.
94
94
 
95
95
  amount= 20075 #in atomic units. 1000000000000 == 1.0 XMR
96
- Monero::Transfer.create("A7TmpAyaPeZLnugTKRSwGJhW4vnYv8RAVdRvYyvbistbHUnojyTHyHcYpbZvbTZHDsi4rF1EK5TiYgnCN6FWM9HjfwGRvbCHYCZAaKSzDx", amount)
96
+ RPC::Transfer.create("A7TmpAyaPeZLnugTKRSwGJhW4vnYv8RAVdRvYyvbistbHUnojyTHyHcYpbZvbTZHDsi4rF1EK5TiYgnCN6FWM9HjfwGRvbCHYCZAaKSzDx", amount)
97
97
  => {"fee"=>19415760000,
98
98
  "tx_blob"=>"020001020005bbcf0896e3.......
99
99
 
@@ -112,7 +112,7 @@ To send payments to multiple recipients simply use an array of `[:recipient, :am
112
112
  {address:A7TmpAyaPeZLnugTKRSwGJhW4vnYv8RAVdRvYyvbistbHUnojyTHyHcYpbZvbTZHDsi4rF1EK5TiYgnCN6FWM9HjfrgPgAEasYGSVhUdwe amount: 442130000}
113
113
  ]
114
114
 
115
- Monero::Transfer.send_bulk(recipients, options)
115
+ RPC::Transfer.send_bulk(recipients, options)
116
116
 
117
117
  ___
118
118
 
@@ -1,24 +1,25 @@
1
1
  require 'money'
2
- require 'monero/config'
3
- require 'monero/payment'
4
- require 'monero/client'
5
- require 'monero/version'
6
- require 'monero/wallet'
7
- require 'monero/transfer'
2
+ require 'rpc/config'
3
+ require 'rpc/payment'
4
+ require 'rpc/client'
5
+ require 'rpc/version'
6
+ require 'rpc/wallet'
7
+ require 'rpc/transfer'
8
8
 
9
- module Monero
9
+ module RPC
10
10
  def self.config
11
- @@config ||= Monero::Config.instance
11
+ @@config ||= RPC::Config.instance
12
12
  end
13
13
  end
14
14
 
15
- # ActiveSupport.on_load(:active_record) do
16
- # include Monero::Model
17
- # end
18
-
19
15
  Money::Currency.register({ :priority => 1, :iso_code => "xmr", :iso_numeric => "846", :name => "Monero", :symbol => "XMR", :subunit => "", :subunit_to_unit => 1000000000000, :decimal_mark => ".", :thousands_separator => ""})
20
16
  #
21
- class XMR
22
- def self.new(amount); Money.new(amount, :xmr); end
23
- def to_s; Money.new(amount, :xmr).format.to_s; end
17
+
18
+ unless Object.const_defined?('XMR')
19
+
20
+ class XMR
21
+ def self.new(amount); Money.new(amount, :xmr); end
22
+ def to_s; Money.new(amount, :xmr).format.to_s; end
23
+ end
24
+
24
25
  end
@@ -1,4 +1,4 @@
1
- module Monero
1
+ module RPC
2
2
  class Client
3
3
  #class RequestError < StandardError; end
4
4
 
@@ -12,12 +12,12 @@ module Monero
12
12
 
13
13
  args = ""
14
14
  args << " -s"
15
- args << " -u #{Monero.config.username}:#{Monero.config.password} --digest"
15
+ args << " -u #{RPC.config.username}:#{RPC.config.password} --digest"
16
16
  args << " -X POST #{base_uri}/json_rpc"
17
17
  args << " -d '#{data}'"
18
18
  args << " -H 'Content-Type: application/json'"
19
19
 
20
- p "curl #{args}" if Monero.config.debug
20
+ p "curl #{args}" if RPC.config.debug
21
21
 
22
22
  json = JSON.parse(`curl #{args}`)
23
23
 
@@ -32,7 +32,7 @@ module Monero
32
32
  private
33
33
 
34
34
  def self.base_uri
35
- "http://#{Monero.config.host}:#{Monero.config.port}"
35
+ "http://#{RPC.config.host}:#{RPC.config.port}"
36
36
  end
37
37
 
38
38
  end
@@ -1,5 +1,5 @@
1
1
  require 'singleton'
2
- module Monero
2
+ module RPC
3
3
  class Config
4
4
  include Singleton
5
5
  attr_accessor :host, :port, :username, :password, :debug
@@ -1,4 +1,4 @@
1
- module Monero
1
+ module RPC
2
2
 
3
3
  class Payment
4
4
  end
@@ -22,7 +22,7 @@
22
22
  # get_tx_hex - boolean; Return the transaction as hex string after sending
23
23
 
24
24
 
25
- module Monero
25
+ module RPC
26
26
  # => {"integrated_address"=>"A7TmpAyaPeZLnugTKRSwGJhW4vnYv8RAVdRvYyvbistbHUnojyTHyHcYpbZvbTZHDsi4rF1EK5TiYgnCN6FWM9HjfwGRvbCHYCZAaKSzDx", "payment_id"=>"c7e7146b3335aa54"}
27
27
 
28
28
  class Transfer
@@ -48,7 +48,7 @@ module Monero
48
48
  payment_id: payment_id, get_tx_key: get_tx_key, priority: priority, do_not_relay: do_not_relay, get_tx_hex: get_tx_hex
49
49
  }
50
50
 
51
- Monero::Client.request("transfer", options)
51
+ RPC::Client.request("transfer", options)
52
52
  end
53
53
 
54
54
  end
@@ -0,0 +1,3 @@
1
+ module RPC
2
+ VERSION = "0.0.0.4"
3
+ end
@@ -1,18 +1,22 @@
1
- module Monero
1
+ module RPC
2
2
 
3
3
  class Wallet
4
4
 
5
5
  def self.create_address(label="")
6
- Monero::Client.request("create_address", label: label)
6
+ RPC::Client.request("create_address", label: label)
7
7
  end
8
8
 
9
- def self.getaddress
10
- Monero::Client.request("getaddress")["address"]
9
+ def self.get_address
10
+ RPC::Client.request("get_address")["address"]
11
11
  end
12
12
  def self.address; getaddress; end
13
13
 
14
+ def self.get_addresses
15
+ RPC::Client.request("get_address")["addresses"]
16
+ end
17
+
14
18
  def self.getbalance
15
- Monero::Client.request("getbalance")
19
+ RPC::Client.request("getbalance")
16
20
  end
17
21
 
18
22
  def self.balance
@@ -24,16 +28,16 @@ module Monero
24
28
  end
25
29
 
26
30
  def self.getaddress
27
- Monero::Client.request("getaddress")["address"]
31
+ RPC::Client.request("getaddress")["address"]
28
32
  end
29
33
 
30
34
  def self.getheight
31
- Monero::Client.request("getheight")["height"]
35
+ RPC::Client.request("getheight")["height"]
32
36
  end
33
37
 
34
38
  def self.query_key(type)
35
39
  raise ArgumentError unless ["mnemonic", "view_key"].include?(type.to_s)
36
- Monero::Client.request("query_key", {key_type: type})["key"]
40
+ RPC::Client.request("query_key", {key_type: type})["key"]
37
41
  end
38
42
  def self.view_key; query_key(:view_key); end
39
43
  def self.mnemonic_seed; query_key(:mnemonic); end
@@ -42,19 +46,19 @@ module Monero
42
46
  def self.make_integrated_address(payment_id = "")
43
47
  # TODO
44
48
  # Check if payment_id is correct format
45
- Monero::Client.request("make_integrated_address", {payment_id: payment_id})
49
+ RPC::Client.request("make_integrated_address", {payment_id: payment_id})
46
50
  end
47
51
 
48
52
  def self.incoming_transfers(type)
49
53
  raise ArgumentError unless ["all", "available", "unavailable"].include?(type.to_s)
50
- json = Monero::Client.request("incoming_transfers", {transfer_type: type})
54
+ json = RPC::Client.request("incoming_transfers", {transfer_type: type})
51
55
  json["transfers"] || []
52
56
  end
53
57
 
54
58
  def self.get_payments(payment_id)
55
- payments = Monero::Client.request("get_payments", {payment_id: payment_id})["payments"] || []
59
+ payments = RPC::Client.request("get_payments", {payment_id: payment_id})["payments"] || []
56
60
  # TODO
57
- # make it a Monero::Payment that hase a amount as XMR and confirmations (getheight - tx.block_height)
61
+ # make it a RPC::Payment that hase a amount as XMR and confirmations (getheight - tx.block_height)
58
62
  payments.map{|x| Payment.from_raw(x) }
59
63
  end
60
64
 
@@ -79,11 +83,11 @@ module Monero
79
83
 
80
84
  options = {in: f_in, out: out, pending: pending, failed: failed, pool: pool, filter_by_height: filter_by_height, min_height: min_height, max_height: max_height}
81
85
 
82
- Monero::Client.request("get_transfers", options)
86
+ RPC::Client.request("get_transfers", options)
83
87
  end
84
88
 
85
89
  def self.get_transfer_by_txid(txid)
86
- Monero::Client.request("get_transfer_by_txid", {txid: txid })
90
+ RPC::Client.request("get_transfer_by_txid", {txid: txid })
87
91
  end
88
92
 
89
93
  # creates a wallet and uses it
@@ -92,14 +96,14 @@ module Monero
92
96
  # TODO
93
97
  # language correct format?
94
98
  options = { filename: filename, password: password, language: language }
95
- !! Monero::Client.request("create_wallet", options)
99
+ !! RPC::Client.request("create_wallet", options)
96
100
  end
97
101
  singleton_class.send(:alias_method, :create, :create_wallet)
98
102
 
99
103
  # returns current balance if open successfull
100
104
  def self.open_wallet(filename, password="")
101
105
  options = { filename: filename, password: password}
102
- if Monero::Client.request("open_wallet", options)
106
+ if RPC::Client.request("open_wallet", options)
103
107
  balance
104
108
  else
105
109
  false
@@ -109,7 +113,7 @@ module Monero
109
113
 
110
114
  # stops current RPC process!
111
115
  def self.stop_wallet
112
- Monero::Client.close!
116
+ RPC::Client.close!
113
117
  end
114
118
  singleton_class.send(:alias_method, :close, :stop_wallet)
115
119
 
@@ -1,11 +1,11 @@
1
1
  # coding: utf-8
2
2
  lib = File.expand_path('../lib', __FILE__)
3
3
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'monero/version'
4
+ require 'rpc/version'
5
5
 
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = "monero"
8
- spec.version = Monero::VERSION
8
+ spec.version = RPC::VERSION
9
9
  spec.authors = ["Tim Kretschmer"]
10
10
  spec.email = ["tim@krtschmr.de"]
11
11
  spec.description = %q{A Monero-Wallet-RPC ruby client}
@@ -24,5 +24,5 @@ Gem::Specification.new do |spec|
24
24
 
25
25
  spec.required_rubygems_version = '>= 1.3.6'
26
26
 
27
- spec.add_dependency "money"
27
+ spec.add_dependency "money"
28
28
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: monero
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.0.3
4
+ version: 0.0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tim Kretschmer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-04-22 00:00:00.000000000 Z
11
+ date: 2018-04-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -76,13 +76,12 @@ files:
76
76
  - ".gitignore"
77
77
  - README.md
78
78
  - lib/monero.rb
79
- - lib/monero/client.rb
80
- - lib/monero/config.rb
81
- - lib/monero/payment.rb
82
- - lib/monero/transfer.rb
83
- - lib/monero/version.rb
84
- - lib/monero/wallet.rb
85
- - lib/xmr.rb
79
+ - lib/rpc/client.rb
80
+ - lib/rpc/config.rb
81
+ - lib/rpc/payment.rb
82
+ - lib/rpc/transfer.rb
83
+ - lib/rpc/version.rb
84
+ - lib/rpc/wallet.rb
86
85
  - monero.gemspec
87
86
  homepage: ''
88
87
  licenses:
@@ -1,3 +0,0 @@
1
- module Monero
2
- VERSION = "0.0.0.3"
3
- end
data/lib/xmr.rb DELETED
File without changes