buda 0.0.0 → 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: 796ca70fb64170e768e952558c775263ba8ae90b8be229f1ccffe2369a406363
4
- data.tar.gz: cfd9936ab950257b456a499272bf483b59032e4e25613041326afd51c078fe25
3
+ metadata.gz: fdc15eb6001b9c923419a9985835dcd3e7962e4e667135066d90714e3b8038a8
4
+ data.tar.gz: 9910e867b55e96625c2dedeb573297b00cfeac86ebc4792170fcfa085a3b48ef
5
5
  SHA512:
6
- metadata.gz: 49040c0c76983eddd0efee5baa4207216129d274b8d7590ec6e60a55ea5db15c1ac4213f2558bb252bb2b37fc252503d950f12ac34d0914061ba8681f97f037f
7
- data.tar.gz: c3f78daac6a143d651cf7de4755759ca9f641f3e2aad63239c65105aaa2bcf69e831f868321f4420c413507fd2ed0cc81ed5e35ddee420edd3555022b97c8272
6
+ metadata.gz: e842e8ef9b05b581f4f733565f49bb186e580d0fcd79f3be2bb51b2aeacd1989233717639a1754a36c21180d9be14b204c44e4bc6bb948f17e74f174eb9cff2e
7
+ data.tar.gz: 77f8652261520842f9a4d22e1fa2633d565d011e755352511cebaf3f73f74799f4ddfe94ee3af210c49301027ccdc4dd455978ba8d3d1b3c685bf4b95fa86d50
data/.gitignore ADDED
@@ -0,0 +1,14 @@
1
+ *.gem
2
+ coverage/*
3
+ Gemfile.lock
4
+ *~
5
+ .bundle
6
+ .rvmrc
7
+ log/*
8
+ measurement/*
9
+ pkg/*
10
+ .DS_Store
11
+ .env
12
+ spec/dummy/tmp/*
13
+ spec/dummy/log/*.log
14
+ demo.rb
data/.rubocop.yml ADDED
@@ -0,0 +1,6 @@
1
+ require:
2
+ - rubocop-performance
3
+ - rubocop-rspec
4
+ AllCops:
5
+ TargetRubyVersion: 2.7.3
6
+ NewCops: enable
@@ -0,0 +1 @@
1
+ {}
data/Gemfile ADDED
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ source 'https://rubygems.org'
4
+
5
+ # Specify your gem's dependencies in fintoc.gemspec
6
+ gemspec
7
+
8
+ group :test do
9
+ gem 'tzinfo-data', platforms: %i[mingw mswin x64_mingw jruby]
10
+ end
data/Rakefile ADDED
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rake'
4
+ require 'rubocop/rake_task'
5
+
6
+ begin
7
+ require 'bundler/setup'
8
+ Bundler::GemHelper.install_tasks
9
+ rescue LoadError
10
+ puts 'although not required, bundler is recommended for running the tests'
11
+ end
12
+ task default: :spec
13
+ RuboCop::RakeTask.new do |task|
14
+ task.requires << 'rubocop-performance'
15
+ task.requires << 'rubocop-rspec'
16
+ end
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 ADDED
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = 'buda'
5
+ s.version = '0.1.4.0.4'
6
+ s.summary = 'buda.com client'
7
+ s.description = 'A simple client for buda.com api'
8
+ s.authors = ['Alfredo Enrione']
9
+ s.email = 'aenrione@protonmail.com'
10
+ s.homepage =
11
+ 'https://rubygems.org/gems/buda'
12
+ s.license = 'MIT'
13
+ s.required_ruby_version = Gem::Requirement.new('>= 2.7.3')
14
+ s.add_dependency 'http'
15
+ s.add_dependency 'json'
16
+ s.files = Dir.chdir(File.expand_path(__dir__)) do
17
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
18
+ end
19
+ s.bindir = 'exe'
20
+ s.executables = s.files.grep(%r{^exe/}) { |f| File.basename(f) }
21
+ s.require_paths = ['lib']
22
+ s.metadata['rubygems_mfa_required'] = 'true'
23
+ end
@@ -0,0 +1,138 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'http'
4
+ require 'buda/utils'
5
+ require 'buda/errors'
6
+ require 'buda/constants'
7
+ require 'buda/version'
8
+ require 'buda/resources/balance'
9
+ require 'buda/resources/deposit'
10
+ require 'buda/resources/withdrawal'
11
+ require 'buda/resources/market'
12
+ require 'json'
13
+ require 'net/http'
14
+ require 'net/https'
15
+
16
+ module Buda
17
+ # Client component to make the requests and get data
18
+ class Client
19
+ def initialize(api_key, api_secret)
20
+ @api_key = api_key
21
+ @api_secret = api_secret
22
+ @user_agent = "buda-ruby/#{Buda::VERSION}"
23
+ @headers = {
24
+ 'Content-Type': 'application/json', 'X-SBTC-APIKEY': @api_key,
25
+ 'User-Agent': @user_agent
26
+ }
27
+ @default_params = {}
28
+ end
29
+
30
+ def get
31
+ request('get')
32
+ end
33
+
34
+ def delete
35
+ request('delete')
36
+ end
37
+
38
+ def request(method)
39
+ proc do |resource, is_private, **kwargs|
40
+ parameters = params(method, **kwargs)
41
+ response = make_request(method, resource, parameters, is_private)
42
+ content = JSON.parse(response.body, symbolize_names: true)
43
+
44
+ # raise_custom_error(content[:error]) if response.status.client_error? || response.status.server_error?
45
+
46
+ content
47
+ end
48
+ end
49
+
50
+ def balances
51
+ result = get.call('balances', true)[:balances]
52
+ balances = []
53
+ result&.each do |balance|
54
+ balances << Balance.new(**balance)
55
+ end
56
+ balances
57
+ end
58
+
59
+ def get_balance(balance_id)
60
+ result = get.call("balances/#{balance_id}", true)[:balance]
61
+ Balance.new(**result)
62
+ end
63
+
64
+ def get_market(market_id)
65
+ market = get.call("markets/#{market_id.upcase}")[:market]
66
+ ticker = get.call("markets/#{market_id.upcase}/ticker")[:ticker]
67
+ new_market = Market.new(**market)
68
+ new_market.set_ticker(**ticker)
69
+ new_market
70
+ end
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
+
90
+ def to_s
91
+ visible_chars = 4
92
+ hidden_part = '*' * (@api_key.size - visible_chars)
93
+ visible_key = @api_key.slice(0, visible_chars)
94
+ "Client(🔑=#{hidden_part + visible_key}"
95
+ end
96
+
97
+ private
98
+
99
+ def client
100
+ @client ||= Net::HTTP
101
+ end
102
+
103
+ def make_request(method, resource, _parameters, is_private)
104
+ uri = URI.parse("#{Buda::Constants::SCHEME}#{Buda::Constants::BASE_URL}#{resource}")
105
+ https = Net::HTTP.new(uri.host, uri.port)
106
+ https.use_ssl = true
107
+ if is_private
108
+ req = Net::HTTP::Get.new(uri.path, @headers)
109
+ req['X-SBTC-SIGNATURE'] = sign(method.upcase, uri.path, '')
110
+ req['X-SBTC-NONCE'] = nonce
111
+ else
112
+ req = Net::HTTP::Get.new(uri.path)
113
+ end
114
+ https.request(req)
115
+ end
116
+
117
+ def params(method, **kwargs)
118
+ if method == 'get'
119
+ { params: { **@default_params, **kwargs } }
120
+ else
121
+ { json: { **@default_params, **kwargs } }
122
+ end
123
+ end
124
+
125
+ def raise_custom_error(error)
126
+ raise error_class(error[:code]).new(error[:message], error[:doc_url])
127
+ end
128
+
129
+ def nonce
130
+ (Time.now.to_i * (10**6)).to_s
131
+ end
132
+
133
+ def sign(method, path, _body)
134
+ prep = "#{method} #{path} #{nonce}"
135
+ OpenSSL::HMAC.hexdigest('SHA384', @api_secret, prep)
136
+ end
137
+ end
138
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Constant values for the client
4
+ module Buda
5
+ module Constants
6
+ FIELDSUBS = [%w[id id_], %w[type type_]].freeze
7
+ GENERAL_DOC_URL = 'https://api.buda.com/'
8
+ SCHEME = 'https://'
9
+ BASE_URL = 'www.buda.com/api/v2/'
10
+ end
11
+ end
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'buda/constants'
4
+
5
+ module Buda
6
+ module Errors
7
+ # Error definitions for handling wrong requests
8
+ class BudaError < StandardError
9
+ def initialize(message, doc_url = Buda::Constants::GENERAL_DOC_URL)
10
+ super()
11
+ @message = message
12
+ @doc_url = doc_url
13
+ end
14
+
15
+ def message
16
+ "\n#{@message}\n Please check the docs at: #{@doc_url}"
17
+ end
18
+
19
+ def to_s
20
+ message
21
+ end
22
+ end
23
+
24
+ class InvalidRequestError < BudaError; end
25
+ class LinkError < BudaError; end
26
+ class AuthenticationError < BudaError; end
27
+ class InstitutionError < BudaError; end
28
+ class ApiError < BudaError; end
29
+ class MissingResourceError < BudaError; end
30
+ class InvalidLinkTokenError < BudaError; end
31
+ class InvalidUsernameError < BudaError; end
32
+ class InvalidHolderTypeError < BudaError; end
33
+ class MissingParameterError < BudaError; end
34
+ class EmptyStringError < BudaError; end
35
+ class UnrecognizedRequestError < BudaError; end
36
+ class InvalidDateError < BudaError; end
37
+ class InvalidCredentialsError < BudaError; end
38
+ class LockedCredentialsError < BudaError; end
39
+ class InvalidApiKeyError < BudaError; end
40
+ class UnavailableInstitutionError < BudaError; end
41
+ class InternalServerError < BudaError; end
42
+ end
43
+ end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Buda
4
+ # for handling the total balance
5
+ class Balance
6
+ attr_reader :id, :available, :current, :frozen, :pending
7
+
8
+ def initialize(id:, available_amount:, amount:, frozen_amount:, pending_withdraw_amount:, **)
9
+ @id = id
10
+ @available = available_amount[0]
11
+ @current = amount[0]
12
+ @frozen = frozen_amount[0]
13
+ @pending = pending_withdraw_amount[0]
14
+ end
15
+
16
+ def to_s
17
+ "#{id}: #{@current} (#{@available})"
18
+ end
19
+
20
+ def inspect
21
+ "<Balance #{@current} (#{@available})>"
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Buda
4
+ # Client component to make the requests and get data
5
+ class Client
6
+ attr_reader :id, :amount
7
+
8
+ def initialize(id, amount)
9
+ @id = id
10
+ @amount = amount
11
+ end
12
+
13
+ def to_s
14
+ "#{@amount} (#{@id})"
15
+ end
16
+
17
+ def inspect
18
+ "<Currency #{@amount} (#{@id})>"
19
+ end
20
+ end
21
+ end
@@ -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
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'ticker'
4
+
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
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
17
+
18
+ def set_ticker(**ticker)
19
+ @ticker = Buda::Ticker.new(**ticker)
20
+ end
21
+
22
+ def to_s
23
+ "#{@name} (#{@id})"
24
+ end
25
+
26
+ def inspect
27
+ "<Market #{@name} (#{@id})>"
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
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
25
+
26
+ def inspect
27
+ "<Ticker #{@market_id} (#{@last_price})>"
28
+ end
29
+ end
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 ADDED
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Buda
4
+ # A handful of run-of-the-mill utilities
5
+ module Utils
6
+ module_function
7
+
8
+ # Get a flat Array out of a list of lists of Iterables(Enumerators)
9
+ #
10
+ def flatten(sequences)
11
+ Enumerator::Chain.new(*sequences).to_a
12
+ end
13
+
14
+ # If the key exists, you will get that key-value pair.
15
+ #
16
+ # @param dict_ [Hash] the hash to pick from
17
+ # @param key [String] the key to look at
18
+ # @return [Hash] the key-value pair or an empty hash
19
+ def pick(dict_, key)
20
+ key = key.to_sym
21
+ if dict_.key?(key)
22
+ { "#{key}": dict_[key] }
23
+ else
24
+ {}
25
+ end
26
+ end
27
+
28
+ # Get a pluralized noun with its appropiate quantifier
29
+ #
30
+ # @param amount [Integer]
31
+ # @param noun [String] the noun to pluralize
32
+ # @param suffix [String]
33
+ # @return [String]
34
+ def pluralize(amount, noun, suffix = 's')
35
+ quantifier = amount or 'no'
36
+ "#{quantifier} #{amount == 1 ? noun : noun + suffix}"
37
+ end
38
+
39
+ # Transform a snake-cased name to its pascal-cased version.
40
+ #
41
+ # @param name [String]
42
+ # @return [String]
43
+ def snake_to_pascal(name)
44
+ name.split('_').map(&:capitalize).join
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Buda
4
+ VERSION = '0.1.0'
5
+ end
data/lib/buda.rb CHANGED
@@ -1,5 +1,8 @@
1
- class Buda
2
- def self.hi
3
- puts "Hello world!"
4
- end
1
+ # frozen_string_literal: true
2
+
3
+ require 'buda/version'
4
+ require 'buda/client'
5
+
6
+ # Main Module
7
+ module Buda
5
8
  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.0.0
4
+ version: 0.1.4.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alfredo Enrione
8
8
  autorequire:
9
- bindir: bin
9
+ bindir: exe
10
10
  cert_chain: []
11
- date: 2022-01-25 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
@@ -38,17 +38,40 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
- description: A simple api client for buda.com
41
+ description: A simple client for buda.com api
42
42
  email: aenrione@protonmail.com
43
43
  executables: []
44
44
  extensions: []
45
45
  extra_rdoc_files: []
46
46
  files:
47
+ - ".gitignore"
48
+ - ".rubocop.yml"
49
+ - ".vscode/settings.json"
50
+ - Gemfile
51
+ - Rakefile
52
+ - bin/console
53
+ - bin/setup
54
+ - buda.gemspec
47
55
  - lib/buda.rb
56
+ - lib/buda/client.rb
57
+ - lib/buda/constants.rb
58
+ - lib/buda/errors.rb
59
+ - lib/buda/resources/balance.rb
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
64
+ - lib/buda/resources/market.rb
65
+ - lib/buda/resources/ticker.rb
66
+ - lib/buda/resources/withdrawal.rb
67
+ - lib/buda/resources/withdrawal_data.rb
68
+ - lib/buda/utils.rb
69
+ - lib/buda/version.rb
48
70
  homepage: https://rubygems.org/gems/buda
49
71
  licenses:
50
72
  - MIT
51
- metadata: {}
73
+ metadata:
74
+ rubygems_mfa_required: 'true'
52
75
  post_install_message:
53
76
  rdoc_options: []
54
77
  require_paths:
@@ -57,7 +80,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
57
80
  requirements:
58
81
  - - ">="
59
82
  - !ruby/object:Gem::Version
60
- version: 2.3.0
83
+ version: 2.7.3
61
84
  required_rubygems_version: !ruby/object:Gem::Requirement
62
85
  requirements:
63
86
  - - ">="
@@ -67,5 +90,5 @@ requirements: []
67
90
  rubygems_version: 3.1.6
68
91
  signing_key:
69
92
  specification_version: 4
70
- summary: Hola!
93
+ summary: buda.com client
71
94
  test_files: []