katapaty 1.0.1 → 1.0.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7faa8bbe0c0e547df2c14ade4982d29f762647200aa9579ed9187b3017035c6e
4
- data.tar.gz: dcb1ca619afd043c2221061e48d5c7b982e7134c104cd03aece1b10976485486
3
+ metadata.gz: 8eb028f176c05a743d9cc340132c736b4a99a846244c07dc11c2807d484675b3
4
+ data.tar.gz: b59262cd1ee71fd0726a541cff262b4dba2e8fbb898da029bf0c0fb99a309c2c
5
5
  SHA512:
6
- metadata.gz: 7ce59540a459b53639af90501b1f8a5152ef3e3ddc96b27663b7592c08f2c855e3e76e2fa37b2277dd5108df92767e2b427d2b3e4dcf5891aecea349a09c52f9
7
- data.tar.gz: 41000a79a5d335cc06de1c36ccd9024c5e461b1f0bace3e7591690cccc7775c9065dfb748ffa784ab0632f18d3dadee3ee3df5f0f0558508456baf178aee3423
6
+ metadata.gz: 29a27392bdd0688ef8a2461c3378e15d408a22e6df1ca6fbc42d8f9b5a946347c3d65af4e4416ab67f79fb9f789e0f45e61af7b338f70eb014daba862be06fe4
7
+ data.tar.gz: e8f70a0877121a2f923a6b5fe396991a84274e3532fd6ae88077e4f97f2343e7d44bf72738315553785f3f37e5704aeee557b1b428d0aa5946f040fdda5938de
data/README.md CHANGED
@@ -33,6 +33,8 @@ Katapaty.configure do |config|
33
33
  config.block_password = '1234'
34
34
  config.block_host = 'public.coindaddy.io'
35
35
  config.block_port = 14100
36
+
37
+ config.ssl = true
36
38
  end
37
39
  ```
38
40
 
@@ -45,6 +47,8 @@ Katapaty::Party.create_send(
45
47
  asset: "LONGDD",
46
48
  quantity: 50000
47
49
  )
50
+
51
+ Katapaty::Block.proxy_to_cp(method: :get_running_info)
48
52
  ```
49
53
 
50
54
  Check methods here: https://counterparty.io/docs/api/#read-api-function-reference
@@ -21,7 +21,7 @@ Gem::Specification.new do |spec|
21
21
  spec.require_paths = ["lib"]
22
22
 
23
23
  spec.add_development_dependency 'bundler', "~> 1.16"
24
- spec.add_development_dependency 'rake', "~> 10.0"
24
+ spec.add_development_dependency 'rake'
25
25
  spec.add_development_dependency 'rspec', "~> 3.0"
26
26
  spec.add_development_dependency 'pry-rails'
27
27
  spec.add_development_dependency 'fakeweb'
@@ -1,24 +1,40 @@
1
1
  #
2
2
  # Counterblock APIs
3
3
  #
4
+ #
4
5
  module Katapaty
5
6
  class Block
6
7
  class << self
7
8
 
8
- def request(method_name, payload={})
9
+ def request(method_name, params={})
9
10
  client = RestClient::Resource.new Katapaty.configuration.counterblock_url
10
- request = { method: method_name, params: payload, jsonrpc: '2.0', id: '0' }.to_json
11
- response = JSON.parse client.post(request,
12
- accept: 'json',
13
- content_type: 'json' )
11
+ request = { method: method_name, params: params, jsonrpc: '2.0', id: '0' }.to_json
12
+ response = JSON.parse client.post(
13
+ request,
14
+ accept: 'json',
15
+ content_type: 'json'
16
+ )
14
17
  raise JsonResponseError.new response if response.has_key? 'code'
15
18
  raise ResponseError.new response['error'] if response.has_key? 'error'
16
19
  response['result']
17
20
  end
18
21
 
19
22
  def method_missing(name, *args)
20
- args = args.nil? ? {} : args.first
21
- request(name, args)
23
+ params = args.nil? ? {} : args.first
24
+ request(name, params)
25
+ end
26
+
27
+ def proxy_to_cp(method:, params: {})
28
+ client = RestClient::Resource.new Katapaty.configuration.counterblock_url
29
+ request = { method: :proxy_to_counterpartyd, params: { method: method, params: params }, jsonrpc: '2.0', id: '0' }.to_json
30
+ response = JSON.parse client.post(
31
+ request,
32
+ accept: 'json',
33
+ content_type: 'json'
34
+ )
35
+ raise JsonResponseError.new response if response.has_key? 'code'
36
+ raise ResponseError.new response['error'] if response.has_key? 'error'
37
+ response['result']
22
38
  end
23
39
  end
24
40
  end
@@ -1,22 +1,31 @@
1
1
  module Katapaty
2
2
  class Configuration
3
3
  attr_accessor :username,
4
- :password,
5
- :host,
6
- :port,
7
- :block_username,
8
- :block_password,
9
- :block_host,
10
- :block_port
4
+ :password,
5
+ :host,
6
+ :port,
7
+ :block_username,
8
+ :block_password,
9
+ :block_host,
10
+ :block_port,
11
+ :ssl
11
12
 
12
13
  def counterparty_url
13
14
  return 'http://rpc:1234@public.coindaddy.io:14000/api/' unless @host
14
- "http://#{@username}:#{@password}@#{@host}:#{@port}/api/"
15
+ "#{protocol}://#{@username}:#{CGI.escape(@password)}@#{@host}:#{@port}/api/"
15
16
  end
16
17
 
17
18
  def counterblock_url
18
19
  return 'http://rpc:1234@public.coindaddy.io:14100/api/' unless @block_host
19
- "http://#{@block_username}:#{@block_password}@#{@block_host}:#{@block_port}/api/"
20
+ authen = ''
21
+ authen = "#{@block_username}:#{CGI.escape(@block_password)}@" if @block_username
22
+ "#{protocol}://#{authen}#{@block_host}:#{@block_port}/api/"
23
+ end
24
+
25
+ private
26
+
27
+ def protocol
28
+ @ssl ? 'https' : 'http'
20
29
  end
21
30
  end
22
31
  end
@@ -9,11 +9,20 @@ module Katapaty
9
9
  request('get_running_info')
10
10
  end
11
11
 
12
- def address_token_balance(address, token_name)
13
- rs = request('get_balances', {"filters": [{ "field": 'address', "op": '==', "value": address },
14
- { "field": 'asset', "op": '==', "value": token_name }]})
15
- return 0 if rs.blank?
16
- rs.first['quantity'].to_i
12
+ def address_token_balance(address:, token:, proxy: false)
13
+ filters_params = {
14
+ "filters": [
15
+ { "field": 'address', "op": '==', "value": address },
16
+ { "field": 'asset', "op": '==', "value": token }
17
+ ]
18
+ }
19
+ if proxy
20
+ response = Katapaty::Block.proxy_to_cp(method: :get_balances, params: filters_params)
21
+ else
22
+ response = request('get_balances', filters_params)
23
+ end
24
+ return 0 if response.blank?
25
+ response.first['quantity'].to_i
17
26
  end
18
27
 
19
28
  def get_asset_info(assets)
@@ -48,8 +57,8 @@ module Katapaty
48
57
  client = RestClient::Resource.new Katapaty.configuration.counterparty_url
49
58
  request = { method: method_name.to_s, params: payload, jsonrpc: '2.0', id: '0' }.to_json
50
59
  response = JSON.parse client.post(request,
51
- accept: 'json',
52
- content_type: 'json' )
60
+ accept: 'json',
61
+ content_type: 'json' )
53
62
  raise Katapaty::JsonResponseError.new response if response.has_key? 'code'
54
63
  raise Katapaty::ResponseError.new response['error'] if response.has_key? 'error'
55
64
  response['result']
@@ -1,3 +1,3 @@
1
1
  module Katapaty
2
- VERSION = "1.0.1"
2
+ VERSION = "1.0.6"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: katapaty
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - longhoang.wkm
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-09-10 00:00:00.000000000 Z
11
+ date: 2020-10-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -28,16 +28,16 @@ dependencies:
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '10.0'
33
+ version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: '10.0'
40
+ version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -150,7 +150,7 @@ dependencies:
150
150
  - - ">="
151
151
  - !ruby/object:Gem::Version
152
152
  version: '0'
153
- description:
153
+ description:
154
154
  email:
155
155
  - longhoang@wakumo.vn
156
156
  executables: []
@@ -178,7 +178,7 @@ homepage: https://github.com/longhoangwkm/katapaty
178
178
  licenses:
179
179
  - MIT
180
180
  metadata: {}
181
- post_install_message:
181
+ post_install_message:
182
182
  rdoc_options: []
183
183
  require_paths:
184
184
  - lib
@@ -193,8 +193,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
193
193
  - !ruby/object:Gem::Version
194
194
  version: '0'
195
195
  requirements: []
196
- rubygems_version: 3.0.3
197
- signing_key:
196
+ rubygems_version: 3.1.3
197
+ signing_key:
198
198
  specification_version: 4
199
199
  summary: A ruby gem for communicating with a Counterparty (Bitcoin / XCP) API server
200
200
  test_files: []