paxful_client 0.2.0 → 0.3.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 +4 -4
- data/.github/workflows/ruby.yml +33 -0
- data/CHANGELOG.md +7 -1
- data/Gemfile.lock +2 -2
- data/lib/paxful_client.rb +6 -0
- data/lib/paxful_client/client.rb +1 -0
- data/lib/paxful_client/models/order_book.rb +13 -0
- data/lib/paxful_client/models/trade.rb +22 -0
- data/lib/paxful_client/requests/base_request.rb +27 -0
- data/lib/paxful_client/requests/get_balance_request.rb +3 -19
- data/lib/paxful_client/requests/get_completed_trades_request.rb +22 -0
- data/lib/paxful_client/responses/base_response.rb +20 -0
- data/lib/paxful_client/responses/get_completed_trades_response.rb +26 -0
- data/lib/paxful_client/version.rb +1 -1
- metadata +9 -3
- data/.travis.yml +0 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f4f2db608ddceb40e4e29da6a0361216a461969a95c8179515f04bd8b975f256
|
4
|
+
data.tar.gz: 2ead2910725c7649bae0015e049e5ea12f40a8ff29cccac24b3fcb25a4a1c403
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cf3ebdf5000d7fe7a3085cfa57166b0fa59174f6427b3d5cc2f3fffa03bf832a9f1f1fb12a420e93c8429032c2fe4d56392b01e3f580372f23ddd80176a99036
|
7
|
+
data.tar.gz: e8f72c926f62c588a1c7c71241d647e7d74823f089b51bcb97fc7a321f306fe28ebdfa2e540a87d5b337126a6ff7ec931d79992cc855765d2fd242f68ae67cb4
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# This workflow uses actions that are not certified by GitHub.
|
2
|
+
# They are provided by a third-party and are governed by
|
3
|
+
# separate terms of service, privacy policy, and support
|
4
|
+
# documentation.
|
5
|
+
# This workflow will download a prebuilt Ruby version, install dependencies and run tests with Rake
|
6
|
+
# For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby
|
7
|
+
|
8
|
+
name: Ruby
|
9
|
+
|
10
|
+
on:
|
11
|
+
push:
|
12
|
+
branches: [ master ]
|
13
|
+
pull_request:
|
14
|
+
branches: [ master ]
|
15
|
+
|
16
|
+
jobs:
|
17
|
+
test:
|
18
|
+
|
19
|
+
runs-on: ubuntu-latest
|
20
|
+
|
21
|
+
steps:
|
22
|
+
- uses: actions/checkout@v2
|
23
|
+
- name: Set up Ruby
|
24
|
+
# To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
|
25
|
+
# change this to (see https://github.com/ruby/setup-ruby#versioning):
|
26
|
+
# uses: ruby/setup-ruby@v1
|
27
|
+
uses: ruby/setup-ruby@ec106b438a1ff6ff109590de34ddc62c540232e0
|
28
|
+
with:
|
29
|
+
ruby-version: 2.6
|
30
|
+
- name: Install dependencies
|
31
|
+
run: bundle install
|
32
|
+
- name: Run tests
|
33
|
+
run: bundle exec rake
|
data/CHANGELOG.md
CHANGED
@@ -4,7 +4,13 @@ All notable changes to this project will be documented in this file.
|
|
4
4
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
5
5
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
6
6
|
|
7
|
-
## [
|
7
|
+
## [0.3.0] - 2020-10-12
|
8
|
+
### Added
|
9
|
+
- add `trade/completed` endpoint
|
10
|
+
- add `PaxfulClient::OrderBook` model
|
11
|
+
- add `PaxfulClient::Trade` model
|
12
|
+
|
13
|
+
## [0.2.0] - 2020-09-12
|
8
14
|
### Changed
|
9
15
|
- refactor `get_balance` request
|
10
16
|
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
paxful_client (0.
|
4
|
+
paxful_client (0.3.0)
|
5
5
|
activesupport
|
6
6
|
api_client_base
|
7
7
|
typhoeus
|
@@ -9,7 +9,7 @@ PATH
|
|
9
9
|
GEM
|
10
10
|
remote: https://rubygems.org/
|
11
11
|
specs:
|
12
|
-
activesupport (6.0.3.
|
12
|
+
activesupport (6.0.3.4)
|
13
13
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
14
14
|
i18n (>= 0.7, < 2)
|
15
15
|
minitest (~> 5.1)
|
data/lib/paxful_client.rb
CHANGED
@@ -6,9 +6,15 @@ require "active_support/core_ext/hash/indifferent_access"
|
|
6
6
|
require "openssl"
|
7
7
|
|
8
8
|
require "paxful_client/client"
|
9
|
+
require "paxful_client/models/order_book"
|
10
|
+
require "paxful_client/models/trade"
|
9
11
|
require "paxful_client/models/wallet"
|
12
|
+
require "paxful_client/requests/base_request"
|
10
13
|
require "paxful_client/requests/get_balance_request"
|
14
|
+
require "paxful_client/requests/get_completed_trades_request"
|
15
|
+
require "paxful_client/responses/base_response"
|
11
16
|
require "paxful_client/responses/get_balance_response"
|
17
|
+
require "paxful_client/responses/get_completed_trades_response"
|
12
18
|
|
13
19
|
module PaxfulClient
|
14
20
|
include APIClientBase::Base.module
|
data/lib/paxful_client/client.rb
CHANGED
@@ -0,0 +1,22 @@
|
|
1
|
+
module PaxfulClient
|
2
|
+
class Trade
|
3
|
+
|
4
|
+
include Virtus.model
|
5
|
+
|
6
|
+
attribute :status, String
|
7
|
+
attribute :trade_hash, String
|
8
|
+
attribute :offer_hash, String
|
9
|
+
attribute :offer_type, String
|
10
|
+
attribute :fiat_currency_code, String
|
11
|
+
attribute :crypto_currency_code, String
|
12
|
+
attribute :fiat_amount_requested, BigDecimal
|
13
|
+
attribute :crypto_amount_requested, BigDecimal
|
14
|
+
attribute :payment_method_name, String
|
15
|
+
attribute :started_at, String
|
16
|
+
attribute :ended_at, String
|
17
|
+
attribute :completed_at, String
|
18
|
+
attribute :seller, String
|
19
|
+
attribute :buyer, String
|
20
|
+
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module PaxfulClient
|
2
|
+
class BaseRequest
|
3
|
+
|
4
|
+
include APIClientBase::Request
|
5
|
+
|
6
|
+
attribute :key, String
|
7
|
+
attribute :secret, String
|
8
|
+
|
9
|
+
private
|
10
|
+
|
11
|
+
def body
|
12
|
+
nonce = Time.now.to_i
|
13
|
+
apiseal = OpenSSL::HMAC.hexdigest(
|
14
|
+
"SHA256",
|
15
|
+
secret,
|
16
|
+
"apikey=#{key}&nonce=#{nonce}",
|
17
|
+
)
|
18
|
+
|
19
|
+
[
|
20
|
+
"apikey=#{key}",
|
21
|
+
"nonce=#{nonce}",
|
22
|
+
"apiseal=#{apiseal}",
|
23
|
+
].join("&")
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
end
|
@@ -1,10 +1,5 @@
|
|
1
1
|
module PaxfulClient
|
2
|
-
class GetBalanceRequest
|
3
|
-
|
4
|
-
include APIClientBase::Request.module(action: :post)
|
5
|
-
|
6
|
-
attribute :key, String
|
7
|
-
attribute :secret, String
|
2
|
+
class GetBalanceRequest < BaseRequest
|
8
3
|
|
9
4
|
private
|
10
5
|
|
@@ -19,19 +14,8 @@ module PaxfulClient
|
|
19
14
|
}
|
20
15
|
end
|
21
16
|
|
22
|
-
def
|
23
|
-
|
24
|
-
apiseal = OpenSSL::HMAC.hexdigest(
|
25
|
-
"SHA256",
|
26
|
-
secret,
|
27
|
-
"apikey=#{key}&nonce=#{nonce}",
|
28
|
-
)
|
29
|
-
|
30
|
-
[
|
31
|
-
"apikey=#{key}",
|
32
|
-
"nonce=#{nonce}",
|
33
|
-
"apiseal=#{apiseal}",
|
34
|
-
].join("&")
|
17
|
+
def default_action
|
18
|
+
:post
|
35
19
|
end
|
36
20
|
|
37
21
|
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module PaxfulClient
|
2
|
+
class GetCompletedTradesRequest < BaseRequest
|
3
|
+
|
4
|
+
private
|
5
|
+
|
6
|
+
def path
|
7
|
+
"/trade/completed"
|
8
|
+
end
|
9
|
+
|
10
|
+
def headers
|
11
|
+
{
|
12
|
+
"Accept" => "application/json",
|
13
|
+
"Content-Type" => "text/plain",
|
14
|
+
}
|
15
|
+
end
|
16
|
+
|
17
|
+
def default_action
|
18
|
+
:post
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module PaxfulClient
|
2
|
+
class BaseResponse
|
3
|
+
|
4
|
+
include APIClientBase::Response.module
|
5
|
+
|
6
|
+
attribute :body, Object, lazy: true, default: :default_body
|
7
|
+
attribute :parsed_body, String, lazy: true, default: :default_parsed_body
|
8
|
+
|
9
|
+
private
|
10
|
+
|
11
|
+
def default_body
|
12
|
+
raw_response.body
|
13
|
+
end
|
14
|
+
|
15
|
+
def default_parsed_body
|
16
|
+
JSON.parse(body).with_indifferent_access
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module PaxfulClient
|
2
|
+
class GetCompletedTradesResponse < BaseResponse
|
3
|
+
|
4
|
+
attribute :order_book, PaxfulClient::OrderBook, lazy: true, default: :default_order_book
|
5
|
+
|
6
|
+
private
|
7
|
+
|
8
|
+
def default_order_book
|
9
|
+
status = parsed_body["status"]
|
10
|
+
timestamp = parsed_body["timestamp"]
|
11
|
+
args = parsed_body["data"]
|
12
|
+
|
13
|
+
order_book = OrderBook.new
|
14
|
+
order_book.status = status
|
15
|
+
order_book.timestamp = timestamp
|
16
|
+
order_book.count = args["count"]
|
17
|
+
order_book.page = args["page"]
|
18
|
+
order_book.trades = args["trades"].map do |trade_hash|
|
19
|
+
Trade.new(trade_hash)
|
20
|
+
end
|
21
|
+
|
22
|
+
order_book
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: paxful_client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mark Chavez
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-10-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: api_client_base
|
@@ -101,9 +101,9 @@ executables: []
|
|
101
101
|
extensions: []
|
102
102
|
extra_rdoc_files: []
|
103
103
|
files:
|
104
|
+
- ".github/workflows/ruby.yml"
|
104
105
|
- ".gitignore"
|
105
106
|
- ".rspec"
|
106
|
-
- ".travis.yml"
|
107
107
|
- CHANGELOG.md
|
108
108
|
- CODE_OF_CONDUCT.md
|
109
109
|
- Gemfile
|
@@ -115,9 +115,15 @@ files:
|
|
115
115
|
- bin/setup
|
116
116
|
- lib/paxful_client.rb
|
117
117
|
- lib/paxful_client/client.rb
|
118
|
+
- lib/paxful_client/models/order_book.rb
|
119
|
+
- lib/paxful_client/models/trade.rb
|
118
120
|
- lib/paxful_client/models/wallet.rb
|
121
|
+
- lib/paxful_client/requests/base_request.rb
|
119
122
|
- lib/paxful_client/requests/get_balance_request.rb
|
123
|
+
- lib/paxful_client/requests/get_completed_trades_request.rb
|
124
|
+
- lib/paxful_client/responses/base_response.rb
|
120
125
|
- lib/paxful_client/responses/get_balance_response.rb
|
126
|
+
- lib/paxful_client/responses/get_completed_trades_response.rb
|
121
127
|
- lib/paxful_client/version.rb
|
122
128
|
- paxful_client.gemspec
|
123
129
|
homepage: https://github.com/MarkFChavez/paxful_client-ruby
|