cryptomate_api 0.1.4 → 0.2.0

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
  SHA256:
3
- metadata.gz: 665269594527cdc382621877f03ce9945b856cd13564bda1602db1025fda8691
4
- data.tar.gz: fe1fc8c40784ff932c02416be565846f6045dc8d3f06bd92185765fc2d4561aa
3
+ metadata.gz: '029b00c3b8c7a2e7659083238fa82c181269d650f9e4bb2615b60afa0b8e3e47'
4
+ data.tar.gz: 34cca9b36b988938110cd54b8e2637741f64194f69e55cbfd3bcf9c8dbbfac29
5
5
  SHA512:
6
- metadata.gz: 1b8d78e0075c9cb87a036aba6153cc5d5ef4f93e65e71346d749221a465b25808a400dd0fb874cf96435c54be05eaadba81006b3addef6fb9347674a8e515baf
7
- data.tar.gz: dc44a554406da97883282b4bd583d343a9c6cd7732d78dd78dad1e9ac8db942d934f4b1cc91646888cb7f987461a9e6410eba03ee3fe0da01bdfe3d1b7ee060a
6
+ metadata.gz: 859353f5ada4b053995c8752acb8641bb701267344373f584dcbb14bca8f626bf70d775fc2f894a63e7cb4b60a55df10fc1d5292910694bed6ebf994aa8a2545
7
+ data.tar.gz: effa9092de8200bbf583292928116729c2a9883966103e3c75de9fe0e105cfb9592194a5a430702ebbb4e0ba2a2b90bbdbb75a59acf617b0d22cfd08cc876673
data/.rubocop.yml CHANGED
@@ -1,13 +1,19 @@
1
1
  AllCops:
2
- TargetRubyVersion: 2.6
2
+ NewCops: enable
3
+ TargetRubyVersion: 3.1
3
4
 
4
- Style/StringLiterals:
5
- Enabled: true
6
- EnforcedStyle: double_quotes
5
+ Style/Documentation:
6
+ Enabled: false
7
7
 
8
- Style/StringLiteralsInInterpolation:
9
- Enabled: true
10
- EnforcedStyle: double_quotes
8
+ Naming/VariableNumber:
9
+ EnforcedStyle: snake_case
11
10
 
12
11
  Layout/LineLength:
13
12
  Max: 120
13
+ AllowedPatterns: ['(\A|\s)#'] # ignore comments
14
+
15
+ Lint/AmbiguousBlockAssociation:
16
+ Enabled: false
17
+
18
+ Naming/AccessorMethodName:
19
+ Enabled: false
data/CHANGELOG.md CHANGED
@@ -3,3 +3,10 @@
3
3
  ## [0.1.0] - 2023-11-04
4
4
 
5
5
  - Initial release
6
+ - Modules included:
7
+ - [Management](https://cryptomate.me/docs/management)
8
+ - [MPC](https://cryptomate.me/docs/mpc)
9
+
10
+ ## [0.2.0] - 2023-11-30
11
+
12
+ - Added [Payments module](https://cryptomate.me/docs/payments)
data/Gemfile CHANGED
@@ -1,12 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- source "https://rubygems.org"
3
+ source 'https://rubygems.org'
4
4
 
5
5
  # Specify your gem's dependencies in cryptomate_api.gemspec
6
6
  gemspec
7
7
 
8
- gem "rake", "~> 13.0"
8
+ gem 'rake', '~> 13.0'
9
9
 
10
- gem "rspec", "~> 3.0"
10
+ gem 'rspec', '~> 3.0'
11
11
 
12
- gem "rubocop", "~> 1.21"
12
+ gem 'rubocop', '~> 1.21'
data/Gemfile.lock ADDED
@@ -0,0 +1,67 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ cryptomate_api (0.2.2)
5
+ httparty (~> 0.18)
6
+
7
+ GEM
8
+ remote: https://rubygems.org/
9
+ specs:
10
+ ast (2.4.2)
11
+ diff-lcs (1.5.0)
12
+ httparty (0.21.0)
13
+ mini_mime (>= 1.0.0)
14
+ multi_xml (>= 0.5.2)
15
+ json (2.6.3)
16
+ language_server-protocol (3.17.0.3)
17
+ mini_mime (1.1.5)
18
+ multi_xml (0.6.0)
19
+ parallel (1.23.0)
20
+ parser (3.2.2.4)
21
+ ast (~> 2.4.1)
22
+ racc
23
+ racc (1.7.3)
24
+ rainbow (3.1.1)
25
+ rake (13.1.0)
26
+ regexp_parser (2.8.2)
27
+ rexml (3.2.6)
28
+ rspec (3.12.0)
29
+ rspec-core (~> 3.12.0)
30
+ rspec-expectations (~> 3.12.0)
31
+ rspec-mocks (~> 3.12.0)
32
+ rspec-core (3.12.2)
33
+ rspec-support (~> 3.12.0)
34
+ rspec-expectations (3.12.3)
35
+ diff-lcs (>= 1.2.0, < 2.0)
36
+ rspec-support (~> 3.12.0)
37
+ rspec-mocks (3.12.6)
38
+ diff-lcs (>= 1.2.0, < 2.0)
39
+ rspec-support (~> 3.12.0)
40
+ rspec-support (3.12.1)
41
+ rubocop (1.57.2)
42
+ json (~> 2.3)
43
+ language_server-protocol (>= 3.17.0)
44
+ parallel (~> 1.10)
45
+ parser (>= 3.2.2.4)
46
+ rainbow (>= 2.2.2, < 4.0)
47
+ regexp_parser (>= 1.8, < 3.0)
48
+ rexml (>= 3.2.5, < 4.0)
49
+ rubocop-ast (>= 1.28.1, < 2.0)
50
+ ruby-progressbar (~> 1.7)
51
+ unicode-display_width (>= 2.4.0, < 3.0)
52
+ rubocop-ast (1.30.0)
53
+ parser (>= 3.2.1.0)
54
+ ruby-progressbar (1.13.0)
55
+ unicode-display_width (2.5.0)
56
+
57
+ PLATFORMS
58
+ x86_64-darwin-22
59
+
60
+ DEPENDENCIES
61
+ cryptomate_api!
62
+ rake (~> 13.0)
63
+ rspec (~> 3.0)
64
+ rubocop (~> 1.21)
65
+
66
+ BUNDLED WITH
67
+ 2.4.10
data/Rakefile CHANGED
@@ -1,11 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "bundler/gem_tasks"
4
- require "rspec/core/rake_task"
3
+ require 'bundler/gem_tasks'
4
+ require 'rspec/core/rake_task'
5
5
 
6
6
  RSpec::Core::RakeTask.new(:spec)
7
7
 
8
- require "rubocop/rake_task"
8
+ require 'rubocop/rake_task'
9
9
 
10
10
  RuboCop::RakeTask.new
11
11
 
@@ -1,31 +1,34 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative "lib/cryptomate_api/version"
3
+ require_relative 'lib/cryptomate_api/version'
4
4
 
5
5
  Gem::Specification.new do |spec|
6
- spec.name = "cryptomate_api"
6
+ spec.name = 'cryptomate_api'
7
7
  spec.version = CryptomateApi::VERSION
8
- spec.authors = ["Matias Albarello"]
9
- spec.email = ["matias.albarello@gmail.com"]
10
- spec.licenses = ["MIT"]
8
+ spec.authors = ['Matias Albarello']
9
+ spec.email = ['matias.albarello@gmail.com']
10
+ spec.licenses = ['MIT']
11
11
 
12
- spec.summary = "Ruby client for the CryptoMate API."
13
- spec.description = "Provides a Ruby interface to the CryptoMate API, allowing easy access to cryptocurrency data and transaction operations. Supports retrieving currency details, creating and fetching transactions, and managing user information."
14
- spec.homepage = "https://github.com/matiasalbarello/cryptomate_api"
15
- spec.required_ruby_version = ">= 2.6.0"
12
+ spec.summary = 'Ruby client for the CryptoMate API.'
13
+ spec.description = 'Provides a Ruby interface to the CryptoMate API, allowing easy access to cryptocurrency data and \
14
+ transaction operations. Supports retrieving currency details, creating and fetching transactions, \
15
+ and managing user information.'
16
+ spec.homepage = 'https://github.com/matiasalbarello/cryptomate_api'
17
+ spec.required_ruby_version = '>= 3.1'
16
18
 
17
- spec.metadata["homepage_uri"] = spec.homepage
18
- spec.metadata["source_code_uri"] = spec.homepage
19
- spec.metadata["changelog_uri"] = "#{spec.homepage}/blob/main/CHANGELOG.md"
19
+ spec.metadata['homepage_uri'] = spec.homepage
20
+ spec.metadata['source_code_uri'] = spec.homepage
21
+ spec.metadata['changelog_uri'] = "#{spec.homepage}/blob/main/CHANGELOG.md"
20
22
 
21
23
  spec.files = Dir.chdir(__dir__) do
22
24
  `git ls-files -z`.split("\x0").reject do |f|
23
25
  (File.expand_path(f) == __FILE__) || f.start_with?(*%w[bin/ test/ spec/ features/ .git .circleci appveyor])
24
26
  end
25
27
  end
26
- spec.bindir = "exe"
28
+ spec.bindir = 'exe'
27
29
  spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
28
- spec.require_paths = ["lib"]
30
+ spec.require_paths = ['lib']
29
31
 
30
- spec.add_dependency "httparty", "~> 0.18"
32
+ spec.add_dependency 'httparty', '~> 0.18'
33
+ spec.metadata['rubygems_mfa_required'] = 'true'
31
34
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'httparty'
2
4
 
3
5
  module CryptomateApi
@@ -9,7 +11,7 @@ module CryptomateApi
9
11
  CryptomateApi.configuration ||= CryptomateApi::Configuration.new
10
12
  @api_key = CryptomateApi.configuration.api_key
11
13
  self.class.base_uri CryptomateApi.configuration.base_uri
12
- self.class.headers "x-api-key" => "#{@api_key}"
14
+ self.class.headers 'x-api-key' => @api_key
13
15
  end
14
16
  end
15
- end
17
+ end
@@ -16,7 +16,7 @@ module CryptomateApi
16
16
  # }
17
17
  # ]
18
18
  def get_all_blockchains
19
- self.class.get("/management/blockchains/list")
19
+ self.class.get('/management/blockchains/list')
20
20
  end
21
21
  end
22
22
  end
@@ -16,7 +16,7 @@ module CryptomateApi
16
16
  # "webhook_url": "string",
17
17
  # }
18
18
  def get_clients
19
- self.class.get("/management/clients")
19
+ self.class.get('/management/clients')
20
20
  end
21
21
 
22
22
  # Update Webhook-Url
@@ -29,7 +29,7 @@ module CryptomateApi
29
29
  # "webhook_url": "string"
30
30
  # }
31
31
  def update_webhook_url(webhook_url)
32
- self.class.patch("/management/clients/webhook-url", body: { webhook_url: }.to_json)
32
+ self.class.patch('/management/clients/webhook-url', body: { webhook_url: }.to_json)
33
33
  end
34
34
 
35
35
  # Update Client-Information
@@ -44,7 +44,7 @@ module CryptomateApi
44
44
  # "webhook_url": "string"
45
45
  # }
46
46
  def update_client_information(name, email, webhook_url)
47
- self.class.put("/management/clients", body: { name:, email:, webhook_url: }.to_json)
47
+ self.class.put('/management/clients', body: { name:, email:, webhook_url: }.to_json)
48
48
  end
49
49
 
50
50
  # Update Payment Address
@@ -56,7 +56,7 @@ module CryptomateApi
56
56
  # "address": "string",
57
57
  # }
58
58
  def update_payment_address(address, blockchain)
59
- self.class.patch("/management/clients/payment-treasury", body: { address:, blockchain: }.to_json)
59
+ self.class.patch('/management/clients/payment-treasury', body: { address:, blockchain: }.to_json)
60
60
  end
61
61
  end
62
62
  end
@@ -24,7 +24,7 @@ module CryptomateApi
24
24
  # @param [String] blockchain (Id of the blockchain.)
25
25
  # Response: None
26
26
  def set_payment_destination(address, blockchain)
27
- self.class.post("/management/configurations/payments", body: { address:, blockchain: }.to_json)
27
+ self.class.post('/management/configurations/payments', body: { address:, blockchain: }.to_json)
28
28
  end
29
29
 
30
30
  # Delete payment destination
@@ -61,7 +61,7 @@ module CryptomateApi
61
61
  # }
62
62
  # }
63
63
  def create_credential(api_key, operation_id)
64
- self.class.post("/management/credentials", body: { api_key:, operation_id: }.to_json)
64
+ self.class.post('/management/credentials', body: { api_key:, operation_id: }.to_json)
65
65
  end
66
66
 
67
67
  # Modifies a credential by ID.
@@ -16,7 +16,7 @@ module CryptomateApi
16
16
  # }
17
17
  # ]
18
18
  def get_all_keys
19
- self.class.get("/management/keys/list")
19
+ self.class.get('/management/keys/list')
20
20
  end
21
21
 
22
22
  # Get a specific key
@@ -43,7 +43,7 @@ module CryptomateApi
43
43
  # }
44
44
  # ]
45
45
  def create_key(name)
46
- self.class.post("/management/keys/create", body: { name: }.to_json)
46
+ self.class.post('/management/keys/create', body: { name: }.to_json)
47
47
  end
48
48
 
49
49
  # Modify a key
@@ -15,7 +15,7 @@ module CryptomateApi
15
15
  # }
16
16
  # ]
17
17
  def get_all_operations
18
- self.class.get("/management/operations/list")
18
+ self.class.get('/management/operations/list')
19
19
  end
20
20
 
21
21
  # Get a specific operation
@@ -23,7 +23,7 @@ module CryptomateApi
23
23
  # ]
24
24
  # }
25
25
  def get_all_accounts
26
- self.class.get("/mpc/accounts/list")
26
+ self.class.get('/mpc/accounts/list')
27
27
  end
28
28
 
29
29
  # Create an account
@@ -36,7 +36,7 @@ module CryptomateApi
36
36
  # "wallets": []
37
37
  # }
38
38
  def create_account(alias_name)
39
- self.class.post("/mpc/accounts/create", body: { alias: alias_name }.to_json)
39
+ self.class.post('/mpc/accounts/create', body: { alias: alias_name }.to_json)
40
40
  end
41
41
 
42
42
  # Edit account: Modifies the account information.
@@ -0,0 +1,62 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CryptomateApi
4
+ # The Payments tool is designed to create payments in specific assets through a secure escrow wallet system.
5
+ # To use this module, you will first need to set up your `payment_address` on the Management API. This address is where you want to receive your funds once the payment is complete.
6
+
7
+ # Once you have set up your `payment_address`, you can use the Payments API to create payments in the following steps:
8
+
9
+ # 1. Create a payment intent: is a representation of a payment that is being processed. To create a payment intent, you will need to specify the following information:
10
+ # a. The amount of the payment
11
+ # b. The address of the asset in which the payment is to be made (Check listed token API from this section)
12
+ # c. The blockchain where your assets exists (Check get blockchain from the Management API)
13
+ # 2. Send the customer the address returned by this service.
14
+
15
+ # Once the customer has completed the payment, you will receive a webhook notification (configurable in Management API).
16
+ # This notification will contain the status of the payment.
17
+ #
18
+ class Payment < Base
19
+ # Creates a new payment request.
20
+ # https://cryptomate.me/docs/payments#create-payments-request
21
+ # @param [String] token_address (Address of the contract from the token to transfer.)
22
+ # @param [double] amount (Amount of the selected asset to be payed.)
23
+ # @param [String] blockchain (Blockchain to create the payment.)
24
+ # Response:
25
+ # {
26
+ # "id": "String",
27
+ # "token_address": "String",
28
+ # "wallet_address": "String",
29
+ # "amount": "Decimal",
30
+ # }
31
+ def create_payments_request(token_address, amount, blockchain)
32
+ self.class.post('/commerce/payments/create', body: { token_address:, amount:, blockchain: }.to_json)
33
+ end
34
+
35
+ # Returns all the pending payments.
36
+ # https://cryptomate.me/docs/payments#pending-payments
37
+ # Response:
38
+ # [
39
+ # {
40
+ # "id": "String",
41
+ # "token_address": "String",
42
+ # "wallet_address": "String",
43
+ # "amount": "Decimal",
44
+ # }
45
+ # ]
46
+ def pending_payments
47
+ self.class.get('/commerce/payments/list')
48
+ end
49
+
50
+ # Retrieves all the listed tokens to create payments. In the response you will see the token name and it's address on the blockchain.
51
+ # https://cryptomate.me/docs/payments#get-listed-tokens
52
+ # @param [String] blockchain (Blockchain to get the listed tokens.)
53
+ # Response:
54
+ # {
55
+ # "Token name 1": "String",
56
+ # "Token name 2": "String",
57
+ # }
58
+ def get_listed_tokens(blockchain)
59
+ self.class.get("/commerce/payments/#{blockchain}/tokens")
60
+ end
61
+ end
62
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module CryptomateApi
4
- VERSION = "0.1.4"
4
+ VERSION = '0.2.0'
5
5
  end
@@ -2,8 +2,9 @@
2
2
 
3
3
  require_relative 'cryptomate_api/configuration'
4
4
  require_relative 'cryptomate_api/base'
5
+ require_relative 'cryptomate_api/payment'
5
6
 
6
- Dir[File.join(__dir__, 'cryptomate_api/{management,mpc,nft}/**/*.rb')].sort.each { |file| require file }
7
+ Dir[File.join(__dir__, 'cryptomate_api/{management,mpc}/**/*.rb')].each { |file| require file }
7
8
 
8
9
  module CryptomateApi
9
10
  class Error < StandardError; end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cryptomate_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matias Albarello
@@ -24,9 +24,10 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0.18'
27
- description: Provides a Ruby interface to the CryptoMate API, allowing easy access
28
- to cryptocurrency data and transaction operations. Supports retrieving currency
29
- details, creating and fetching transactions, and managing user information.
27
+ description: |-
28
+ Provides a Ruby interface to the CryptoMate API, allowing easy access to cryptocurrency data and \
29
+ transaction operations. Supports retrieving currency details, creating and fetching transactions, \
30
+ and managing user information.
30
31
  email:
31
32
  - matias.albarello@gmail.com
32
33
  executables: []
@@ -38,6 +39,7 @@ files:
38
39
  - CHANGELOG.md
39
40
  - CODE_OF_CONDUCT.md
40
41
  - Gemfile
42
+ - Gemfile.lock
41
43
  - README.md
42
44
  - Rakefile
43
45
  - cryptomate_api.gemspec
@@ -52,6 +54,7 @@ files:
52
54
  - lib/cryptomate_api/management/operation.rb
53
55
  - lib/cryptomate_api/mpc/account.rb
54
56
  - lib/cryptomate_api/mpc/wallet.rb
57
+ - lib/cryptomate_api/payment.rb
55
58
  - lib/cryptomate_api/version.rb
56
59
  - sig/cryptomate_api.rbs
57
60
  homepage: https://github.com/matiasalbarello/cryptomate_api
@@ -61,6 +64,7 @@ metadata:
61
64
  homepage_uri: https://github.com/matiasalbarello/cryptomate_api
62
65
  source_code_uri: https://github.com/matiasalbarello/cryptomate_api
63
66
  changelog_uri: https://github.com/matiasalbarello/cryptomate_api/blob/main/CHANGELOG.md
67
+ rubygems_mfa_required: 'true'
64
68
  post_install_message:
65
69
  rdoc_options: []
66
70
  require_paths:
@@ -69,7 +73,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
69
73
  requirements:
70
74
  - - ">="
71
75
  - !ruby/object:Gem::Version
72
- version: 2.6.0
76
+ version: '3.1'
73
77
  required_rubygems_version: !ruby/object:Gem::Requirement
74
78
  requirements:
75
79
  - - ">="