buda 0.1.4.0.1 → 0.1.4.0.4

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: 23006cfbbf3807694c9a39c4e28ac34683778e073a26430adb217d42b15e9695
4
- data.tar.gz: e6dffdf36580ca3998f0873cb8a455fc7d1fee110b170e23ba2f72b3589e3c56
3
+ metadata.gz: fdc15eb6001b9c923419a9985835dcd3e7962e4e667135066d90714e3b8038a8
4
+ data.tar.gz: 9910e867b55e96625c2dedeb573297b00cfeac86ebc4792170fcfa085a3b48ef
5
5
  SHA512:
6
- metadata.gz: 141403db1a3fdd436b726b84bda3e0ef471b16ffbe165c18950d6a6a2fda5f12312432ee0a655fa4b123f9788fbce2aa7ff00b9bedc82b68397e1ebd5fdc4baa
7
- data.tar.gz: 4ba772a36838a7918e312219a3118777909d806d81bcaab528f4ce327adb4d6831d863d159d72c598b5ed5f30594244c5179901361dd3a32fa9c99fb82b9c519
6
+ metadata.gz: e842e8ef9b05b581f4f733565f49bb186e580d0fcd79f3be2bb51b2aeacd1989233717639a1754a36c21180d9be14b204c44e4bc6bb948f17e74f174eb9cff2e
7
+ data.tar.gz: 77f8652261520842f9a4d22e1fa2633d565d011e755352511cebaf3f73f74799f4ddfe94ee3af210c49301027ccdc4dd455978ba8d3d1b3c685bf4b95fa86d50
data/.rubocop.yml CHANGED
@@ -2,5 +2,5 @@ require:
2
2
  - rubocop-performance
3
3
  - rubocop-rspec
4
4
  AllCops:
5
- TargetRubyVersion: 2.5
5
+ TargetRubyVersion: 2.7.3
6
6
  NewCops: enable
@@ -0,0 +1 @@
1
+ {}
data/Gemfile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source 'https://rubygems.org'
2
4
 
3
5
  # Specify your gem's dependencies in fintoc.gemspec
data/Rakefile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rake'
2
4
  require 'rubocop/rake_task'
3
5
 
@@ -8,9 +10,6 @@ rescue LoadError
8
10
  puts 'although not required, bundler is recommended for running the tests'
9
11
  end
10
12
  task default: :spec
11
- require 'rspec/core/rake_task'
12
- RSpec::Core::RakeTask.new(:spec)
13
- require 'rubocop/rake_task'
14
13
  RuboCop::RakeTask.new do |task|
15
14
  task.requires << 'rubocop-performance'
16
15
  task.requires << 'rubocop-rspec'
data/bin/console ADDED
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ require 'bundler/setup'
5
+ require 'buda'
6
+
7
+ # You can add fixtures and/or initialization code here to make experimenting
8
+ # with your gem easier. You can also use a different console, if you like.
9
+
10
+ # (If you use this, don't forget to add pry to your Gemfile!)
11
+ # require "pry"
12
+ # Pry.start
13
+
14
+ require 'irb'
15
+ IRB.start(__FILE__)
data/bin/setup ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
data/buda.gemspec CHANGED
@@ -1,20 +1,23 @@
1
+ # frozen_string_literal: true
2
+
1
3
  Gem::Specification.new do |s|
2
4
  s.name = 'buda'
3
- s.version = '0.1.4.0.1'
4
- s.summary = 'Fintual.cl client'
5
+ s.version = '0.1.4.0.4'
6
+ s.summary = 'buda.com client'
5
7
  s.description = 'A simple client for buda.com api'
6
8
  s.authors = ['Alfredo Enrione']
7
9
  s.email = 'aenrione@protonmail.com'
8
10
  s.homepage =
9
11
  'https://rubygems.org/gems/buda'
10
12
  s.license = 'MIT'
11
- s.required_ruby_version = Gem::Requirement.new('>= 2.3.0')
13
+ s.required_ruby_version = Gem::Requirement.new('>= 2.7.3')
12
14
  s.add_dependency 'http'
13
15
  s.add_dependency 'json'
14
16
  s.files = Dir.chdir(File.expand_path(__dir__)) do
15
17
  `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
16
- end
18
+ end
17
19
  s.bindir = 'exe'
18
20
  s.executables = s.files.grep(%r{^exe/}) { |f| File.basename(f) }
19
21
  s.require_paths = ['lib']
22
+ s.metadata['rubygems_mfa_required'] = 'true'
20
23
  end
data/lib/buda/client.rb CHANGED
@@ -6,6 +6,8 @@ require 'buda/errors'
6
6
  require 'buda/constants'
7
7
  require 'buda/version'
8
8
  require 'buda/resources/balance'
9
+ require 'buda/resources/deposit'
10
+ require 'buda/resources/withdrawal'
9
11
  require 'buda/resources/market'
10
12
  require 'json'
11
13
  require 'net/http'
@@ -48,15 +50,17 @@ module Buda
48
50
  def balances
49
51
  result = get.call('balances', true)[:balances]
50
52
  balances = []
51
- unless result.nil?
52
- result.each do |balance|
53
- new_balance = Balance.new(**balance)
54
- balances << new_balance
55
- end
53
+ result&.each do |balance|
54
+ balances << Balance.new(**balance)
56
55
  end
57
56
  balances
58
57
  end
59
58
 
59
+ def get_balance(balance_id)
60
+ result = get.call("balances/#{balance_id}", true)[:balance]
61
+ Balance.new(**result)
62
+ end
63
+
60
64
  def get_market(market_id)
61
65
  market = get.call("markets/#{market_id.upcase}")[:market]
62
66
  ticker = get.call("markets/#{market_id.upcase}/ticker")[:ticker]
@@ -65,6 +69,24 @@ module Buda
65
69
  new_market
66
70
  end
67
71
 
72
+ def deposits(currency)
73
+ result = get.call("currencies/#{currency}/deposits", true)[:deposits]
74
+ deposits = []
75
+ result&.each do |deposit|
76
+ deposits << Deposit.new(**deposit)
77
+ end
78
+ deposits
79
+ end
80
+
81
+ def withdrawals(currency)
82
+ result = get.call("currencies/#{currency}/withdrawals", true)[:withdrawals]
83
+ withdrawals = []
84
+ result&.each do |withdrawal|
85
+ withdrawals << Withdrawal.new(**withdrawal)
86
+ end
87
+ withdrawals
88
+ end
89
+
68
90
  def to_s
69
91
  visible_chars = 4
70
92
  hidden_part = '*' * (@api_key.size - visible_chars)
@@ -3,7 +3,7 @@
3
3
  module Buda
4
4
  # for handling the total balance
5
5
  class Balance
6
- attr_reader :id, :available, :amount, :frozen, :pending
6
+ attr_reader :id, :available, :current, :frozen, :pending
7
7
 
8
8
  def initialize(id:, available_amount:, amount:, frozen_amount:, pending_withdraw_amount:, **)
9
9
  @id = id
@@ -0,0 +1,45 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'deposit_data'
4
+
5
+ module Buda
6
+ # for handling deposited amount
7
+ class Deposit
8
+ attr_reader :id, :created_at, :amount, :currency,
9
+ :fee, :state, :deposit_data, :account_id,
10
+ :user_id, :order_id, :order_type, :state_reason,
11
+ :expected_arrival_time, :reserve_name, :reserve_code
12
+
13
+ def initialize(
14
+ id:, created_at:, amount:, currency:,
15
+ fee:, state:, account_id:, user_id:,
16
+ order_id:, order_type:, state_reason:,
17
+ expected_arrival_time:, reserve_name:, reserve_code:,
18
+ deposit_data:, **
19
+ )
20
+ @id = id
21
+ @created_at = created_at
22
+ @amount = amount[0]
23
+ @currency = currency
24
+ @fee = fee
25
+ @state = state
26
+ @account_id = account_id
27
+ @user_id = user_id
28
+ @order_id = order_id
29
+ @order_type = order_type
30
+ @state_reason = state_reason
31
+ @expected_arrival_time = expected_arrival_time
32
+ @reserve_name = reserve_name
33
+ @reserve_code = reserve_code
34
+ @deposit_data = DepositData.new(**deposit_data)
35
+ end
36
+
37
+ def to_s
38
+ "#{@amount} (#{@currency})"
39
+ end
40
+
41
+ def inspect
42
+ "<Deposit #{@amount} (#{@currency})>"
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Buda
4
+ # for handling deposit_data of Deposit Class
5
+ class DepositData
6
+ attr_reader :type, :upload_url, :created_at, :update_at,
7
+ :tx_hash, :address, :method
8
+
9
+ def initialize(
10
+ type:, upload_url:, created_at:,
11
+ updated_at:, **kwargs
12
+ )
13
+ @type = type
14
+ @upload_url = upload_url
15
+ @created_at = created_at
16
+ @updated_at = updated_at
17
+ @method = kwargs[:method]
18
+ @address = kwargs[:address]
19
+ @tx_hash = kwargs[:tx_hash]
20
+ end
21
+
22
+ def to_s
23
+ "#{@type} (#{@created_at.to_date})"
24
+ end
25
+
26
+ def inspect
27
+ "<DepositData #{@type} (#{@created_at.to_date})>"
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Buda
4
+ # for handling the total balance
5
+ class FiatAccount
6
+ attr_reader :id, :account_number, :created_at, :account_type,
7
+ :currency
8
+
9
+ def initialize(**kwargs)
10
+ @id = kwargs[:id]
11
+ @account_number = kwargs[:account_number]
12
+ @created_at = kwargs[:created_at]
13
+ @account_type = kwargs[:account_type]
14
+ @bank_id = kwargs[:bank_id]
15
+ @currency = kwargs[:currency]
16
+ @document_number = kwargs[:document_number]
17
+ @email = kwargs[:email]
18
+ @phone = kwargs[:phone]
19
+ @national_number_identifier = kwargs[:national_number_identifier]
20
+ @bank_name = kwargs[:bank_name]
21
+ @updated_at = kwargs[:updated_at]
22
+ @inter_bank_number = kwargs[:inter_bank_number]
23
+ @source_account = kwargs[:source_account]
24
+ end
25
+
26
+ def to_s
27
+ "#{@bank_name} (#{@account_number})"
28
+ end
29
+
30
+ def inspect
31
+ "<FiatAccount #{@bank_name} (#{@account_number})>"
32
+ end
33
+ end
34
+ end
@@ -1,30 +1,30 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'buda/resources/ticker'
3
+ require_relative 'ticker'
4
4
 
5
5
  module Buda
6
- # for handling the total balance
7
- class Market
8
- attr_reader :id, :name, :base_currency, :quote_currency, :minimum_order_amount, :ticker
6
+ # for handling the total balance
7
+ class Market
8
+ attr_reader :id, :name, :base_currency, :quote_currency, :minimum_order_amount, :ticker
9
9
 
10
- def initialize(id:, name:, base_currency:, quote_currency:, minimum_order_amount:, **)
11
- @id = id
12
- @name = name
13
- @base_currency = base_currency
14
- @quote_currency = quote_currency
15
- @minimum_order_amount = minimum_order_amount
16
- end
10
+ def initialize(id:, name:, base_currency:, quote_currency:, minimum_order_amount:, **)
11
+ @id = id
12
+ @name = name
13
+ @base_currency = base_currency
14
+ @quote_currency = quote_currency
15
+ @minimum_order_amount = minimum_order_amount
16
+ end
17
17
 
18
- def set_ticker(**ticker)
19
- @ticker = Buda::Ticker.new(**ticker)
20
- end
18
+ def set_ticker(**ticker)
19
+ @ticker = Buda::Ticker.new(**ticker)
20
+ end
21
21
 
22
- def to_s
23
- "#{@name} (#{@id})"
24
- end
22
+ def to_s
23
+ "#{@name} (#{@id})"
24
+ end
25
25
 
26
- def inspect
27
- "<Market #{@name} (#{@id})>"
28
- end
26
+ def inspect
27
+ "<Market #{@name} (#{@id})>"
29
28
  end
29
+ end
30
30
  end
@@ -1,31 +1,30 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Buda
4
- # for handling the total balance
5
- class Ticker
6
- attr_reader :market_id, :last_price, :min_ask, :volume,
7
- :max_bid,:price_variation_7d, :price_variation_24h
8
-
9
- def initialize(market_id:,
10
- last_price:, min_ask:,
11
- max_bid:, volume:,
12
- price_variation_24h:, price_variation_7d:, **)
13
- @market_id = market_id
14
- @last_price = last_price[0]
15
- @min_ask = min_ask
16
- @max_bid = max_bid
17
- @price_variation_24h = price_variation_24h
18
- @volume = volume
19
- @price_variation_7d = price_variation_7d
20
- end
21
-
22
- def to_s
23
- "#{@market_id} (#{@last_price})"
24
- end
4
+ # for handling the total balance
5
+ class Ticker
6
+ attr_reader :market_id, :last_price, :min_ask, :volume,
7
+ :max_bid, :price_variation_7d, :price_variation_24h
25
8
 
26
- def inspect
27
- "<Ticker #{@market_id} (#{@last_price})>"
28
- end
9
+ def initialize(market_id:,
10
+ last_price:, min_ask:,
11
+ max_bid:, volume:,
12
+ price_variation_24h:, price_variation_7d:, **)
13
+ @market_id = market_id
14
+ @last_price = last_price[0]
15
+ @min_ask = min_ask
16
+ @max_bid = max_bid
17
+ @price_variation_24h = price_variation_24h
18
+ @volume = volume
19
+ @price_variation_7d = price_variation_7d
20
+ end
21
+
22
+ def to_s
23
+ "#{@market_id} (#{@last_price})"
24
+ end
25
+
26
+ def inspect
27
+ "<Ticker #{@market_id} (#{@last_price})>"
29
28
  end
30
29
  end
31
-
30
+ end
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'withdrawal_data'
4
+
5
+ module Buda
6
+ # for handling the total balance
7
+ class Withdrawal
8
+ attr_reader :id, :created_at, :amount, :currency,
9
+ :fee, :state, :deposit_data, :account_id,
10
+ :user_id, :order_id, :order_type, :state_reason,
11
+ :expected_arrival_time, :reserve_name, :reserve_code
12
+
13
+ def initialize(**kwargs)
14
+ @id = kwargs[:id]
15
+ @uuid = kwargs[:uuid]
16
+ @currency = kwargs[:currency]
17
+ @created_at = kwargs[:created_at]
18
+ @forced_reason = kwargs[:forced_reason]
19
+ @account_id = kwargs[:account_id]
20
+ @user_id = kwargs[:user_id]
21
+ @expected_execution_time = kwargs[:expected_execution_time]
22
+ @expected_arrival_time = kwargs[:expected_arrival_time]
23
+ @hold_execution = kwargs[:hold_execution]
24
+ @amount = kwargs[:amount][0]
25
+ @fee = kwargs[:fee]
26
+ @usd_amount = kwargs[:usd_amount]
27
+ @deposit_data = WithdrawalData.new(**kwargs[:withdrawal_data])
28
+ end
29
+
30
+ def to_s
31
+ "#{@amount} (#{@currency})"
32
+ end
33
+
34
+ def inspect
35
+ "<Withdrawal #{@amount} (#{@currency})>"
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'buda/resources/fiat_account'
4
+
5
+ module Buda
6
+ # for handling the total balance
7
+ class WithdrawalData
8
+ attr_reader :type, :id, :created_at, :update_at,
9
+ :tx_hash, :target_address, :statement_ref,
10
+ :fiat_account
11
+
12
+ def initialize(**kwargs)
13
+ @type = kwargs[:type]
14
+ @id = kwargs[:id]
15
+ @statement_ref = kwargs[:statement_ref]
16
+ @created_at = kwargs[:created_at]
17
+ @updated_at = kwargs[:updated_at]
18
+ @target_address = kwargs[:target_address]
19
+ @tx_hash = kwargs[:tx_hash]
20
+ @fiat_account = FiatAccount.new(**kwargs[:fiat_account]) if kwargs[:fiat_account]
21
+ end
22
+
23
+ def to_s
24
+ "#{@type} (#{@created_at})"
25
+ end
26
+
27
+ def inspect
28
+ "<WithdrawalData #{@type} (#{@created_at})>"
29
+ end
30
+ end
31
+ end
data/lib/buda/utils.rb CHANGED
@@ -41,7 +41,7 @@ module Buda
41
41
  # @param name [String]
42
42
  # @return [String]
43
43
  def snake_to_pascal(name)
44
- name.split('_').map(&:capitalize).join('')
44
+ name.split('_').map(&:capitalize).join
45
45
  end
46
46
  end
47
47
  end
data/lib/buda/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Buda
4
- VERSION = '0.1.1'
4
+ VERSION = '0.1.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: buda
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4.0.1
4
+ version: 0.1.4.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alfredo Enrione
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-01-27 00:00:00.000000000 Z
11
+ date: 2022-05-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: http
@@ -46,8 +46,11 @@ extra_rdoc_files: []
46
46
  files:
47
47
  - ".gitignore"
48
48
  - ".rubocop.yml"
49
+ - ".vscode/settings.json"
49
50
  - Gemfile
50
51
  - Rakefile
52
+ - bin/console
53
+ - bin/setup
51
54
  - buda.gemspec
52
55
  - lib/buda.rb
53
56
  - lib/buda/client.rb
@@ -55,14 +58,20 @@ files:
55
58
  - lib/buda/errors.rb
56
59
  - lib/buda/resources/balance.rb
57
60
  - lib/buda/resources/currency.rb
61
+ - lib/buda/resources/deposit.rb
62
+ - lib/buda/resources/deposit_data.rb
63
+ - lib/buda/resources/fiat_account.rb
58
64
  - lib/buda/resources/market.rb
59
65
  - lib/buda/resources/ticker.rb
66
+ - lib/buda/resources/withdrawal.rb
67
+ - lib/buda/resources/withdrawal_data.rb
60
68
  - lib/buda/utils.rb
61
69
  - lib/buda/version.rb
62
70
  homepage: https://rubygems.org/gems/buda
63
71
  licenses:
64
72
  - MIT
65
- metadata: {}
73
+ metadata:
74
+ rubygems_mfa_required: 'true'
66
75
  post_install_message:
67
76
  rdoc_options: []
68
77
  require_paths:
@@ -71,15 +80,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
71
80
  requirements:
72
81
  - - ">="
73
82
  - !ruby/object:Gem::Version
74
- version: 2.3.0
83
+ version: 2.7.3
75
84
  required_rubygems_version: !ruby/object:Gem::Requirement
76
85
  requirements:
77
86
  - - ">="
78
87
  - !ruby/object:Gem::Version
79
88
  version: '0'
80
89
  requirements: []
81
- rubygems_version: 3.3.5
90
+ rubygems_version: 3.1.6
82
91
  signing_key:
83
92
  specification_version: 4
84
- summary: Fintual.cl client
93
+ summary: buda.com client
85
94
  test_files: []