Class: Katapaty::Party

Inherits:
Object
  • Object
show all
Defined in:
lib/katapaty/party.rb

Class Method Summary collapse

Class Method Details

.address_token_balance(address:, token:, proxy: false) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/katapaty/party.rb', line 12

def address_token_balance(address:, token:, proxy: false)
  filters_params = {
    "filters": [
      { "field": 'address', "op": '==', "value": address },
      { "field": 'asset', "op": '==', "value": token }
    ]
  }
  if proxy
    response = Katapaty::Block.proxy_to_cp(method: :get_balances, params: filters_params)
  else
    response = request('get_balances', filters_params)
  end
  return 0 if response.blank?
  response.first['quantity'].to_i
end

.btc_unconfirm_balance(address) ⇒ Object



48
49
50
# File 'lib/katapaty/party.rb', line 48

def btc_unconfirm_balance(address)
  (unspent_txouts(address).map { |a| a['amount'] }.sum.to_d * 1e8).to_i
end

.create_order(payload) ⇒ Object



44
45
46
# File 'lib/katapaty/party.rb', line 44

def create_order(payload)
  request('create_order', payload)
end

.create_send(payload) ⇒ Object



40
41
42
# File 'lib/katapaty/party.rb', line 40

def create_send(payload)
  request('create_send', payload)
end

.get_asset_info(assets) ⇒ Object



28
29
30
# File 'lib/katapaty/party.rb', line 28

def get_asset_info(assets)
  request('get_asset_info', { assets: assets })
end

.get_blocks(block_indexes) ⇒ Object



32
33
34
# File 'lib/katapaty/party.rb', line 32

def get_blocks(block_indexes)
  request('get_blocks', { block_indexes: block_indexes })
end

.get_running_infoObject



8
9
10
# File 'lib/katapaty/party.rb', line 8

def get_running_info
  request('get_running_info')
end

.getrawtransaction(tx_hash) ⇒ Object



36
37
38
# File 'lib/katapaty/party.rb', line 36

def getrawtransaction(tx_hash)
  request('getrawtransaction', { tx_hash: tx_hash })
end

.method_missing(name, *args) ⇒ Object



67
68
69
70
# File 'lib/katapaty/party.rb', line 67

def method_missing(name, *args)
  args = args.nil? ? {} : args.first
  request(name, args)
end

.request(method_name, payload = {}) ⇒ Object



56
57
58
59
60
61
62
63
64
65
# File 'lib/katapaty/party.rb', line 56

def request(method_name, payload={})
  client = RestClient::Resource.new(Katapaty.configuration.counterparty_url, timeout: Katapaty.configuration.timeout)
  request = { method: method_name.to_s, params: payload, jsonrpc: '2.0', id: '0' }.to_json
  response = JSON.parse client.post(request,
                                    accept: 'json',
                                    content_type: 'json' )
  raise Katapaty::JsonResponseError.new response if response.has_key? 'code'
  raise Katapaty::ResponseError.new response['error'] if response.has_key? 'error'
  response['result']
end

.unspent_txouts(address) ⇒ Object



52
53
54
# File 'lib/katapaty/party.rb', line 52

def unspent_txouts(address)
  request(:get_unspent_txouts, { address: address, unconfirmed: true })
end