bittrex-enterprise 0.1.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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: e2e5017cf52aae7b40cdfd73476a59ed0fbfee048946c5bf66556570c3927d6a
4
+ data.tar.gz: e608bcab6dc763b91395e9a4109c391a0ac616dab7af48b8eb028f55fcf6b3a8
5
+ SHA512:
6
+ metadata.gz: 10f6f44bbcdac296519b2306232ae954892af23c7399b1876ca63b14bddb5babc4e86659e5909ada494b4408d2056ac769fceb87698e8277f7a12af9216aa745
7
+ data.tar.gz: 3c9194e3f28433f3f1ad9674ef6c11c5ff4e969e34c20bb08cc9ba307abdd63891c546e00da0b97f16de8e5cbdd2ede8919cd95104548f44655b1e7e1531cefc
data/.gitignore ADDED
@@ -0,0 +1,12 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /_yardoc/
4
+ /coverage/
5
+ /doc/
6
+ /pkg/
7
+ /spec/reports/
8
+ /tmp/
9
+
10
+ # rspec failure tracking
11
+ .rspec_status
12
+ bittrex-enterprise-*.gem
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --format documentation
2
+ --color
3
+ --require spec_helper
data/Gemfile ADDED
@@ -0,0 +1,6 @@
1
+ source 'https://rubygems.org'
2
+
3
+ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
4
+
5
+ # Specify your gem's dependencies in bittrex-enterprise.gemspec
6
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,67 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ bittrex-enterprise (0.1.0)
5
+ addressable (~> 2.6)
6
+ httparty (~> 0.17)
7
+ json (~> 2.2)
8
+ openssl (~> 2.1)
9
+
10
+ GEM
11
+ remote: https://rubygems.org/
12
+ specs:
13
+ addressable (2.6.0)
14
+ public_suffix (>= 2.0.2, < 4.0)
15
+ ansi (1.5.0)
16
+ diff-lcs (1.3)
17
+ docile (1.3.2)
18
+ httparty (0.17.0)
19
+ mime-types (~> 3.0)
20
+ multi_xml (>= 0.5.2)
21
+ json (2.2.0)
22
+ mime-types (3.2.2)
23
+ mime-types-data (~> 3.2015)
24
+ mime-types-data (3.2019.0331)
25
+ multi_xml (0.6.0)
26
+ openssl (2.1.2)
27
+ public_suffix (3.1.0)
28
+ rake (10.5.0)
29
+ rspec (3.8.0)
30
+ rspec-core (~> 3.8.0)
31
+ rspec-expectations (~> 3.8.0)
32
+ rspec-mocks (~> 3.8.0)
33
+ rspec-core (3.8.1)
34
+ rspec-support (~> 3.8.0)
35
+ rspec-expectations (3.8.4)
36
+ diff-lcs (>= 1.2.0, < 2.0)
37
+ rspec-support (~> 3.8.0)
38
+ rspec-mocks (3.8.1)
39
+ diff-lcs (>= 1.2.0, < 2.0)
40
+ rspec-support (~> 3.8.0)
41
+ rspec-support (3.8.2)
42
+ simplecov (0.16.1)
43
+ docile (~> 1.1)
44
+ json (>= 1.8, < 3)
45
+ simplecov-html (~> 0.10.0)
46
+ simplecov-console (0.5.0)
47
+ ansi
48
+ simplecov
49
+ terminal-table
50
+ simplecov-html (0.10.2)
51
+ terminal-table (1.8.0)
52
+ unicode-display_width (~> 1.1, >= 1.1.1)
53
+ unicode-display_width (1.6.0)
54
+
55
+ PLATFORMS
56
+ ruby
57
+
58
+ DEPENDENCIES
59
+ bittrex-enterprise!
60
+ bundler (~> 1.16)
61
+ rake (~> 10.0)
62
+ rspec (~> 3.0)
63
+ simplecov (~> 0.16.0)
64
+ simplecov-console (~> 0.5.0)
65
+
66
+ BUNDLED WITH
67
+ 1.16.6
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2019 Vertbase
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,118 @@
1
+ # BittrexEnterprise
2
+
3
+ A simple Ruby gem for the Bittrex.com v3 API protocol.
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ ```ruby
10
+ gem 'bittrex-enterprise'
11
+ ```
12
+
13
+ And then execute:
14
+
15
+ $ bundle
16
+
17
+ Or install it yourself as:
18
+
19
+ $ gem install bittrex-enterprise
20
+
21
+ ## Usage
22
+
23
+ ### Load the gem
24
+ ```
25
+ require 'bittrex-enterprise'
26
+ ```
27
+
28
+ ### Setup your Bittrex API key
29
+
30
+ ```
31
+ BittrexEnterprise.setup do |config|
32
+ config.key = 'BITTREX_KEY'
33
+ config.secret = 'BITTREX_SECRET'
34
+ end
35
+ ```
36
+
37
+ ### Use the gem
38
+
39
+ This gem methods are named after the official Bittrex v3 Beta API Documentation: https://bittrex.github.io/api/v3
40
+
41
+ ```
42
+ # NO AUTH REQUIRED
43
+
44
+ ## Currencies
45
+
46
+ BittrexEnterprise::Currencies.list
47
+ BittrexEnterprise::Currencies.info
48
+
49
+ ## Markets
50
+
51
+ BittrexEnterprise::Markets.list
52
+ BittrexEnterprise::Markets.summaries
53
+ BittrexEnterprise::Markets.info
54
+ BittrexEnterprise::Markets.summary
55
+ BittrexEnterprise::Markets.order_book
56
+ BittrexEnterprise::Markets.trades
57
+ BittrexEnterprise::Markets.ticker
58
+ BittrexEnterprise::Markets.candles
59
+
60
+ ## Ping
61
+
62
+ BittrexEnterprise::Ping.send
63
+
64
+ # AUTH REQUIRED
65
+
66
+ ## Account
67
+
68
+ BittrexEnterprise::Account.retrieve
69
+
70
+ ## Addresses
71
+
72
+ BittrexEnterprise::Addresses.list
73
+ BittrexEnterprise::Addresses.create
74
+ BittrexEnterprise::Addresses.status
75
+
76
+ ## Balances
77
+
78
+ BittrexEnterprise::Balances.list
79
+ BittrexEnterprise::Balances.info
80
+
81
+ ## Deposits
82
+
83
+ BittrexEnterprise::Deposits.open
84
+ BittrexEnterprise::Deposits.closed
85
+ BittrexEnterprise::Deposits.by_tx_id
86
+ BittrexEnterprise::Deposits.retrieve
87
+
88
+ ## Orders
89
+
90
+ BittrexEnterprise::Orders.open
91
+ BittrexEnterprise::Orders.closed
92
+ BittrexEnterprise::Orders.retrieve
93
+ BittrexEnterprise::Orders.cancel
94
+ BittrexEnterprise::Orders.create
95
+
96
+ ## SubAccounts
97
+
98
+ BittrexEnterprise::SubAccounts.list
99
+ BittrexEnterprise::SubAccounts.create
100
+ BittrexEnterprise::SubAccounts.retrieve
101
+
102
+ ## Transfers
103
+
104
+ BittrexEnterprise::Transfers.sent
105
+ BittrexEnterprise::Transfers.received
106
+ BittrexEnterprise::Transfers.retrieve
107
+ BittrexEnterprise::Transfers.create
108
+
109
+ ## Withdrawals
110
+
111
+ BittrexEnterprise::Withdrawals.open
112
+ BittrexEnterprise::Withdrawals.closed
113
+ BittrexEnterprise::Withdrawals.by_tx_id
114
+ BittrexEnterprise::Withdrawals.retrieve
115
+ BittrexEnterprise::Withdrawals.cancel
116
+ BittrexEnterprise::Withdrawals.create
117
+
118
+ ```
data/bin/console ADDED
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'bundler/setup'
4
+ require 'bittrex_enterprise'
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ # BittrexEnterprise.setup do |config|
14
+ # config.key = ENV['BITTREX_KEY']
15
+ # config.secret = ENV['BITTREX_SECRET']
16
+ # end
17
+
18
+ require 'irb'
19
+ 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
@@ -0,0 +1,34 @@
1
+
2
+ lib = File.expand_path('lib', __dir__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'bittrex-enterprise/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = 'bittrex-enterprise'
8
+ spec.version = BittrexEnterprise::VERSION
9
+ spec.licenses = ['MIT']
10
+ spec.authors = ['Vertbase']
11
+ spec.email = ['dev@vertbase.com']
12
+
13
+ spec.summary = 'Ruby implementation of the Bittrex v3 API'
14
+ spec.description = 'Ruby implementation of the Bittrex v3 API'
15
+ spec.homepage = 'https://github.com/vertbase/bittrex-enterprise'
16
+
17
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
18
+ f.match(%r{^(test|spec|features)/})
19
+ end
20
+ spec.bindir = 'exe'
21
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
22
+ spec.require_paths = ['lib']
23
+
24
+ spec.add_dependency 'addressable', '~> 2.6'
25
+ spec.add_dependency 'json', '~> 2.2'
26
+ spec.add_dependency 'openssl', '~> 2.1'
27
+ spec.add_dependency 'httparty', '~> 0.17'
28
+
29
+ spec.add_development_dependency 'bundler', '~> 1.16'
30
+ spec.add_development_dependency 'rake', '~> 10.0'
31
+ spec.add_development_dependency 'rspec', '~> 3.0'
32
+ spec.add_development_dependency 'simplecov', '~> 0.16.0'
33
+ spec.add_development_dependency 'simplecov-console', '~> 0.5.0'
34
+ end
@@ -0,0 +1,19 @@
1
+ module BittrexEnterprise
2
+ class Account
3
+ include ApiHelpers
4
+
5
+ # ==============================================================================================
6
+ # AUTH REQUIRED ================================================================================
7
+ # ==============================================================================================
8
+
9
+ # ----------------------------------------- RETRIEVE -----------------------------------------
10
+ # Retrieve information for the account associated with the request. For now, it only echoes
11
+ # the subaccount if one was specified in the header, which can be used to verify that one is
12
+ # operating on the intended account. More fields will be added later.
13
+ # --------------------------------------------------------------------------------------------
14
+ def self.retrieve
15
+ get_signed 'account'
16
+ end
17
+
18
+ end
19
+ end
@@ -0,0 +1,41 @@
1
+ module BittrexEnterprise
2
+ class Addresses
3
+ include ApiHelpers
4
+
5
+ # ==============================================================================================
6
+ # AUTH REQUIRED ================================================================================
7
+ # ==============================================================================================
8
+
9
+ # -------------------------------------- LIST ------------------------------------------------
10
+ # List deposit addresses that have been requested or provisioned.
11
+ # --------------------------------------------------------------------------------------------
12
+ def self.list
13
+ get_signed 'addresses'
14
+ end
15
+
16
+
17
+ # -------------------------------------- CREATE ----------------------------------------------
18
+ # Request provisioning of a deposit address for a currency for which no address has been
19
+ # requested or provisioned.
20
+ #
21
+ # ------ PARAMS ------
22
+ # currency_symbol - string - required - the currency ID to provision a new address for
23
+ # --------------------------------------------------------------------------------------------
24
+ def self.create(currency_symbol)
25
+ post_signed 'addresses', currencySymbol: currency_symbol
26
+ end
27
+
28
+
29
+ # -------------------------------------- STATUS ----------------------------------------------
30
+ # Retrieve the status of the deposit address for a particular currency for which one has
31
+ # been requested or provisioned.
32
+ # ------ PARAMS ------
33
+ # currency_symbol - string - required - symbol of the currency to retrieve the deposit
34
+ # address for
35
+ # --------------------------------------------------------------------------------------------
36
+ def self.status(currency_symbol)
37
+ get_signed 'addresses/{currencySymbol}', currencySymbol: currency_symbol
38
+ end
39
+
40
+ end
41
+ end
@@ -0,0 +1,122 @@
1
+ module ApiHelpers
2
+ def self.included(base)
3
+ base.extend(ClassMethods)
4
+ end
5
+
6
+ module ClassMethods
7
+ def base_uri
8
+ 'https://api.bittrex.com/v3/'
9
+ end
10
+
11
+ def get(api_group, params = {})
12
+ params.compact!
13
+ api_group, params = setup_params(api_group, params)
14
+
15
+ begin
16
+ response = HTTParty.get(base_uri + api_group, query: params)
17
+ res_hash response
18
+ rescue => e
19
+ res_hash e.response
20
+ end
21
+ end
22
+
23
+ def get_signed(api_group, params = {})
24
+ params.compact!
25
+ api_group, params = setup_params(api_group, params)
26
+
27
+ url = base_uri + api_group
28
+
29
+ headers = setup_headers(url)
30
+
31
+ begin
32
+ response = HTTParty.get(url, {query: params, headers: headers})
33
+ res_hash response
34
+ rescue => e
35
+ res_hash e.response
36
+ end
37
+ end
38
+
39
+ def post_signed(api_group, params = {})
40
+ params.compact!
41
+ api_group, params = setup_params(api_group, params)
42
+
43
+ url = base_uri + api_group
44
+
45
+ headers = setup_headers(url)
46
+
47
+ begin
48
+ response = HTTParty.post(url, {body: params, headers: headers})
49
+ res_hash response
50
+ rescue => e
51
+ res_hash e.response
52
+ end
53
+ end
54
+
55
+ def delete_signed(api_group)
56
+ params.compact!
57
+ api_group, params = setup_params(api_group, params)
58
+
59
+ url = base_uri + api_group
60
+
61
+ headers = setup_headers(url)
62
+
63
+ begin
64
+ response = HTTParty.delete(url, {body: params, headers: headers})
65
+ res_hash response
66
+ rescue => e
67
+ res_hash e.response
68
+ end
69
+ end
70
+
71
+ def setup_params(api_group, params)
72
+ matchArr = api_group.match(/{(\D*)}/)&.captures
73
+ if matchArr
74
+ matchArr.each do |m|
75
+ api_group.gsub!("{#{m}}", params.delete(m.to_sym))
76
+ end
77
+ end
78
+ [api_group, params]
79
+ end
80
+
81
+ def setup_headers(uri, content='')
82
+ api_key = BittrexEnterprise.configuration.key
83
+ api_timestamp = DateTime.now.strftime('%Q')
84
+ api_content_hash = create_content_sign(content)
85
+ puts "CONTENT HASH: #{api_content_hash.inspect}"
86
+ api_subaccount_id = '' # TODO: make this work with Subaccounts
87
+ pre_sign = [api_timestamp, uri, 'GET', api_content_hash, api_subaccount_id].join('')
88
+ puts "PRE_SIGN: #{pre_sign.inspect}"
89
+ api_signature = create_sign_hmac(pre_sign)
90
+ puts "SIGNED SIG: #{api_signature.inspect}"
91
+
92
+ headers = {
93
+ "Content-Type": 'application/json',
94
+ "Api-Key": api_key,
95
+ "Api-Timestamp": api_timestamp,
96
+ "Api-Content-Hash": api_content_hash,
97
+ "Api-Signature": api_signature
98
+ }
99
+
100
+ # headers['Api-Subaccount-Id'] = api_subaccount_id if api_subaccount_id
101
+
102
+ headers
103
+ end
104
+
105
+ def create_sign_hmac(pre_sign)
106
+ OpenSSL::HMAC.hexdigest('sha512', BittrexEnterprise.configuration.secret, pre_sign) #.to_s
107
+ end
108
+
109
+ def create_content_sign(content)
110
+ Digest::SHA512.hexdigest(content.to_s)
111
+ end
112
+
113
+ def res_hash(res)
114
+ data = JSON.parse(res.body)
115
+ data.extend DeepSymbolizable
116
+ #### IF YOU WANT THE RAW RESPONSE IN ADDITION TO THE DATA USE THIS
117
+ #### { data: data.deep_symbolize, res: res }
118
+ #### INSTEAD OF THE FOLLOWING LINE
119
+ { data: data.deep_symbolize }
120
+ end
121
+ end
122
+ end
@@ -0,0 +1,31 @@
1
+ module BittrexEnterprise
2
+ class Balances
3
+ include ApiHelpers
4
+
5
+ # ==============================================================================================
6
+ # AUTH REQUIRED ================================================================================
7
+ # ==============================================================================================
8
+
9
+ # ---------------------------------------- LIST ----------------------------------------------
10
+ # List account balances across available currencies. Returns a Balance entry for each
11
+ # currency for which there is either a balance or an address.
12
+ # --------------------------------------------------------------------------------------------
13
+ def self.list
14
+ get_signed 'balances'
15
+ end
16
+
17
+
18
+ # --------------------------------------- INFO -----------------------------------------------
19
+ # Retrieve account balance for a specific currency. Request will always succeed when the
20
+ # currency exists, regardless of whether there is a balance or address.
21
+ #
22
+ # ------ PARAMS ------
23
+ # currency_symbol: string - required - unique symbol of the currency to retrieve the
24
+ # account balance for
25
+ # --------------------------------------------------------------------------------------------
26
+ def self.info(currency_symbol)
27
+ get_signed 'currencies/{currencySymbol}', currencySymbol: currency_symbol
28
+ end
29
+
30
+ end
31
+ end
@@ -0,0 +1,28 @@
1
+ module BittrexEnterprise
2
+ class Currencies
3
+ include ApiHelpers
4
+
5
+ # ==============================================================================================
6
+ # PUBLIC METHODS - NO AUTH REQUIRED ============================================================
7
+ # ==============================================================================================
8
+
9
+ # ------------------------------------- LIST -------------------------------------------------
10
+ # List currencies
11
+ # --------------------------------------------------------------------------------------------
12
+ def self.list
13
+ get 'currencies'
14
+ end
15
+
16
+
17
+ # ------------------------------------ INFO --------------------------------------------------
18
+ # Retrieve info on a specified currency.
19
+ #
20
+ # ------ PARAMS ------
21
+ # symbol: string - required - symbol of the currency to retrieve
22
+ # --------------------------------------------------------------------------------------------
23
+ def self.info(symbol)
24
+ get 'currencies/{symbol}', symbol: symbol
25
+ end
26
+
27
+ end
28
+ end
@@ -0,0 +1,78 @@
1
+ module BittrexEnterprise
2
+ class Deposits
3
+ include ApiHelpers
4
+
5
+ # ==============================================================================================
6
+ # AUTH REQUIRED ================================================================================
7
+ # ==============================================================================================
8
+
9
+ # ------------------------------------------ OPEN --------------------------------------------
10
+ # List open deposits. Results are sorted in inverse order of UpdatedAt, and are limited to
11
+ # the first 1000.
12
+ #
13
+ # ------ PARAMS ------ PARAMS MUST BE PASSED AS KEY VALUE PAIRS
14
+ # status - string enum [PENDING] - optional - filter by an open deposit status
15
+ # currencySymbol - string - optional - filter by currency
16
+ # --------------------------------------------------------------------------------------------
17
+ def self.open(params={})
18
+ get_signed 'deposits/open', params
19
+ end
20
+
21
+
22
+ # ----------------------------------------- CLOSED -------------------------------------------
23
+ # List closed deposits. StartDate and EndDate filters apply to the CompletedAt field.
24
+ # Pagination and the sort order of the results are in inverse order of the CompletedAt field.
25
+ #
26
+ # ------ PARAMS ------ PARAMS MUST BE PASSED AS KEY VALUE PAIRS
27
+ # status - string enum [COMPLETED, ORPHANED, INVALIDATED] - optional - filter by deposit status
28
+ #
29
+ # currencySymbol - string - optional - filter by currency
30
+ #
31
+ # nextPageToken - string - The unique identifier of the item that the resulting query result
32
+ # should start after, in the sort order of the given endpoint. Used for traversing
33
+ # a paginated set in the forward direction. (May only be specified if PreviousPageToken
34
+ # is not specified.)
35
+ #
36
+ # previousPageToken - string - The unique identifier of the item that the resulting query
37
+ # result should end before, in the sort order of the given endpoint. Used for traversing
38
+ # a paginated set in the reverse direction. (May only be specified if NextPageToken is
39
+ # not specified.)
40
+ #
41
+ # pageSize - integer - maximum number of items to retrieve -- default 100, minimum 1, maximum 200
42
+ #
43
+ # startDate - string(date-time) - Filters out results before this timestamp. In ISO 8601 format
44
+ # (e.g., "2019-01-02T16:23:45Z"). Precision beyond one second is not supported. Use
45
+ # pagination parameters for more precise filtering.
46
+ #
47
+ # endDate - string(date-time) - Filters out result after this timestamp. Uses the same format
48
+ # as StartDate. Either, both, or neither of StartDate and EndDate can be set. The only
49
+ # constraint on the pair is that, if both are set, then EndDate cannot be before StartDate.
50
+ # --------------------------------------------------------------------------------------------
51
+ def self.closed(params={})
52
+ get_signed 'deposits/closed', params
53
+ end
54
+
55
+
56
+ # ---------------------------------- BY TRANSACTION ID ---------------------------------------
57
+ # Retrieves all deposits for this account with the given TxId
58
+ #
59
+ # ------ PARAMS ------
60
+ # tx_id - string - required - the transaction id to lookup
61
+ # --------------------------------------------------------------------------------------------
62
+ def self.by_tx_id(tx_id)
63
+ get_signed 'deposits/ByTxId/{tdId}', txId: tx_id
64
+ end
65
+
66
+
67
+ # --------------------------------------- RETRIEVE -------------------------------------------
68
+ # Retrieve information for a specific deposit.
69
+ #
70
+ # ------ PARAMS ------
71
+ # deposit_id - string - required - (guid-formatted string) - ID of the deposit to retrieve
72
+ # --------------------------------------------------------------------------------------------
73
+ def self.retrieve(deposit_id)
74
+ get_signed 'deposits/{depositId}', depositId: deposit_id
75
+ end
76
+
77
+ end
78
+ end