coinbase-sdk 0.0.13 → 0.0.16

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.
Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. data/lib/coinbase/address/external_address.rb +3 -166
  3. data/lib/coinbase/address/wallet_address.rb +51 -4
  4. data/lib/coinbase/address.rb +164 -0
  5. data/lib/coinbase/client/api/assets_api.rb +2 -2
  6. data/lib/coinbase/client/api/contract_events_api.rb +121 -0
  7. data/lib/coinbase/client/api/external_addresses_api.rb +85 -0
  8. data/lib/coinbase/client/api/networks_api.rb +85 -0
  9. data/lib/coinbase/client/api/stake_api.rb +361 -0
  10. data/lib/coinbase/client/api/webhooks_api.rb +286 -0
  11. data/lib/coinbase/client/models/address_historical_balance_list.rb +258 -0
  12. data/lib/coinbase/client/models/broadcast_staking_operation_request.rb +239 -0
  13. data/lib/coinbase/client/models/contract_event.rb +336 -0
  14. data/lib/coinbase/client/models/contract_event_list.rb +259 -0
  15. data/lib/coinbase/client/models/create_staking_operation_request.rb +274 -0
  16. data/lib/coinbase/client/models/create_transfer_request.rb +14 -4
  17. data/lib/coinbase/client/models/create_webhook_request.rb +282 -0
  18. data/lib/coinbase/client/models/ethereum_validator.rb +374 -0
  19. data/lib/coinbase/client/models/feature_set.rb +307 -0
  20. data/lib/coinbase/client/models/fetch_historical_staking_balances200_response.rb +258 -0
  21. data/lib/coinbase/client/models/get_validator200_response.rb +221 -0
  22. data/lib/coinbase/client/models/get_validator200_response_validator.rb +214 -0
  23. data/lib/coinbase/client/models/historical_balance.rb +273 -0
  24. data/lib/coinbase/client/models/network.rb +355 -0
  25. data/lib/coinbase/client/models/network_identifier.rb +44 -0
  26. data/lib/coinbase/client/models/sponsored_send.rb +338 -0
  27. data/lib/coinbase/client/models/staking_balance.rb +289 -0
  28. data/lib/coinbase/client/models/staking_context_context.rb +222 -74
  29. data/lib/coinbase/client/models/staking_operation.rb +15 -5
  30. data/lib/coinbase/client/models/staking_reward.rb +22 -6
  31. data/lib/coinbase/client/models/staking_reward_format.rb +2 -1
  32. data/lib/coinbase/client/models/staking_reward_usd_value.rb +257 -0
  33. data/lib/coinbase/client/models/transaction.rb +2 -2
  34. data/lib/coinbase/client/models/transaction_type.rb +2 -1
  35. data/lib/coinbase/client/models/transfer.rb +29 -24
  36. data/lib/coinbase/client/models/update_webhook_request.rb +289 -0
  37. data/lib/coinbase/client/models/validator_list_data.rb +216 -0
  38. data/lib/coinbase/client/models/wallet.rb +13 -16
  39. data/lib/coinbase/client/models/webhook.rb +299 -0
  40. data/lib/coinbase/client/models/webhook_event_filter.rb +236 -0
  41. data/lib/coinbase/client/models/webhook_event_type.rb +42 -0
  42. data/lib/coinbase/client/models/webhook_list.rb +244 -0
  43. data/lib/coinbase/client.rb +22 -3
  44. data/lib/coinbase/errors.rb +7 -0
  45. data/lib/coinbase/historical_balance.rb +53 -0
  46. data/lib/coinbase/middleware.rb +12 -0
  47. data/lib/coinbase/server_signer.rb +14 -3
  48. data/lib/coinbase/sponsored_send.rb +110 -0
  49. data/lib/coinbase/staking_balance.rb +86 -0
  50. data/lib/coinbase/staking_operation.rb +106 -5
  51. data/lib/coinbase/staking_reward.rb +18 -0
  52. data/lib/coinbase/trade.rb +1 -1
  53. data/lib/coinbase/transaction.rb +7 -3
  54. data/lib/coinbase/transfer.rb +56 -29
  55. data/lib/coinbase/wallet/data.rb +31 -0
  56. data/lib/coinbase/wallet.rb +91 -46
  57. data/lib/coinbase.rb +17 -4
  58. metadata +74 -2
@@ -94,6 +94,91 @@ module Coinbase::Client
94
94
  return data, status_code, headers
95
95
  end
96
96
 
97
+ # Get address balance history for asset
98
+ # List the historical balance of an asset in a specific address.
99
+ # @param network_id [String] The ID of the blockchain network
100
+ # @param address_id [String] The ID of the address to fetch the historical balance for.
101
+ # @param asset_id [String] The symbol of the asset to fetch the historical balance for.
102
+ # @param [Hash] opts the optional parameters
103
+ # @option opts [Integer] :limit A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.
104
+ # @option opts [String] :page A cursor for pagination across multiple pages of results. Don't include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.
105
+ # @return [AddressHistoricalBalanceList]
106
+ def list_address_historical_balance(network_id, address_id, asset_id, opts = {})
107
+ data, _status_code, _headers = list_address_historical_balance_with_http_info(network_id, address_id, asset_id, opts)
108
+ data
109
+ end
110
+
111
+ # Get address balance history for asset
112
+ # List the historical balance of an asset in a specific address.
113
+ # @param network_id [String] The ID of the blockchain network
114
+ # @param address_id [String] The ID of the address to fetch the historical balance for.
115
+ # @param asset_id [String] The symbol of the asset to fetch the historical balance for.
116
+ # @param [Hash] opts the optional parameters
117
+ # @option opts [Integer] :limit A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.
118
+ # @option opts [String] :page A cursor for pagination across multiple pages of results. Don't include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.
119
+ # @return [Array<(AddressHistoricalBalanceList, Integer, Hash)>] AddressHistoricalBalanceList data, response status code and response headers
120
+ def list_address_historical_balance_with_http_info(network_id, address_id, asset_id, opts = {})
121
+ if @api_client.config.debugging
122
+ @api_client.config.logger.debug 'Calling API: ExternalAddressesApi.list_address_historical_balance ...'
123
+ end
124
+ # verify the required parameter 'network_id' is set
125
+ if @api_client.config.client_side_validation && network_id.nil?
126
+ fail ArgumentError, "Missing the required parameter 'network_id' when calling ExternalAddressesApi.list_address_historical_balance"
127
+ end
128
+ # verify the required parameter 'address_id' is set
129
+ if @api_client.config.client_side_validation && address_id.nil?
130
+ fail ArgumentError, "Missing the required parameter 'address_id' when calling ExternalAddressesApi.list_address_historical_balance"
131
+ end
132
+ # verify the required parameter 'asset_id' is set
133
+ if @api_client.config.client_side_validation && asset_id.nil?
134
+ fail ArgumentError, "Missing the required parameter 'asset_id' when calling ExternalAddressesApi.list_address_historical_balance"
135
+ end
136
+ if @api_client.config.client_side_validation && !opts[:'page'].nil? && opts[:'page'].to_s.length > 5000
137
+ fail ArgumentError, 'invalid value for "opts[:"page"]" when calling ExternalAddressesApi.list_address_historical_balance, the character length must be smaller than or equal to 5000.'
138
+ end
139
+
140
+ # resource path
141
+ local_var_path = '/v1/networks/{network_id}/addresses/{address_id}/balance_history/{asset_id}'.sub('{' + 'network_id' + '}', CGI.escape(network_id.to_s)).sub('{' + 'address_id' + '}', CGI.escape(address_id.to_s)).sub('{' + 'asset_id' + '}', CGI.escape(asset_id.to_s))
142
+
143
+ # query parameters
144
+ query_params = opts[:query_params] || {}
145
+ query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
146
+ query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
147
+
148
+ # header parameters
149
+ header_params = opts[:header_params] || {}
150
+ # HTTP header 'Accept' (if needed)
151
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
152
+
153
+ # form parameters
154
+ form_params = opts[:form_params] || {}
155
+
156
+ # http body (model)
157
+ post_body = opts[:debug_body]
158
+
159
+ # return_type
160
+ return_type = opts[:debug_return_type] || 'AddressHistoricalBalanceList'
161
+
162
+ # auth_names
163
+ auth_names = opts[:debug_auth_names] || []
164
+
165
+ new_options = opts.merge(
166
+ :operation => :"ExternalAddressesApi.list_address_historical_balance",
167
+ :header_params => header_params,
168
+ :query_params => query_params,
169
+ :form_params => form_params,
170
+ :body => post_body,
171
+ :auth_names => auth_names,
172
+ :return_type => return_type
173
+ )
174
+
175
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
176
+ if @api_client.config.debugging
177
+ @api_client.config.logger.debug "API called: ExternalAddressesApi#list_address_historical_balance\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
178
+ end
179
+ return data, status_code, headers
180
+ end
181
+
97
182
  # Get the balances of an external address
98
183
  # List all of the balances of an external address
99
184
  # @param network_id [String] The ID of the blockchain network
@@ -0,0 +1,85 @@
1
+ =begin
2
+ #Coinbase Platform API
3
+
4
+ #This is the OpenAPI 3.0 specification for the Coinbase Platform APIs, used in conjunction with the Coinbase Platform SDKs.
5
+
6
+ The version of the OpenAPI document: 0.0.1-alpha
7
+ Contact: yuga.cohler@coinbase.com
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.6.0
10
+
11
+ =end
12
+
13
+ require 'cgi'
14
+
15
+ module Coinbase::Client
16
+ class NetworksApi
17
+ attr_accessor :api_client
18
+
19
+ def initialize(api_client = ApiClient.default)
20
+ @api_client = api_client
21
+ end
22
+ # Get network by ID
23
+ # Get network
24
+ # @param network_id [String] The ID of the network to fetch.
25
+ # @param [Hash] opts the optional parameters
26
+ # @return [Network]
27
+ def get_network(network_id, opts = {})
28
+ data, _status_code, _headers = get_network_with_http_info(network_id, opts)
29
+ data
30
+ end
31
+
32
+ # Get network by ID
33
+ # Get network
34
+ # @param network_id [String] The ID of the network to fetch.
35
+ # @param [Hash] opts the optional parameters
36
+ # @return [Array<(Network, Integer, Hash)>] Network data, response status code and response headers
37
+ def get_network_with_http_info(network_id, opts = {})
38
+ if @api_client.config.debugging
39
+ @api_client.config.logger.debug 'Calling API: NetworksApi.get_network ...'
40
+ end
41
+ # verify the required parameter 'network_id' is set
42
+ if @api_client.config.client_side_validation && network_id.nil?
43
+ fail ArgumentError, "Missing the required parameter 'network_id' when calling NetworksApi.get_network"
44
+ end
45
+ # resource path
46
+ local_var_path = '/v1/networks/{network_id}'.sub('{' + 'network_id' + '}', CGI.escape(network_id.to_s))
47
+
48
+ # query parameters
49
+ query_params = opts[:query_params] || {}
50
+
51
+ # header parameters
52
+ header_params = opts[:header_params] || {}
53
+ # HTTP header 'Accept' (if needed)
54
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
55
+
56
+ # form parameters
57
+ form_params = opts[:form_params] || {}
58
+
59
+ # http body (model)
60
+ post_body = opts[:debug_body]
61
+
62
+ # return_type
63
+ return_type = opts[:debug_return_type] || 'Network'
64
+
65
+ # auth_names
66
+ auth_names = opts[:debug_auth_names] || []
67
+
68
+ new_options = opts.merge(
69
+ :operation => :"NetworksApi.get_network",
70
+ :header_params => header_params,
71
+ :query_params => query_params,
72
+ :form_params => form_params,
73
+ :body => post_body,
74
+ :auth_names => auth_names,
75
+ :return_type => return_type
76
+ )
77
+
78
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
79
+ if @api_client.config.debugging
80
+ @api_client.config.logger.debug "API called: NetworksApi#get_network\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
81
+ end
82
+ return data, status_code, headers
83
+ end
84
+ end
85
+ end
@@ -19,6 +19,92 @@ module Coinbase::Client
19
19
  def initialize(api_client = ApiClient.default)
20
20
  @api_client = api_client
21
21
  end
22
+ # Broadcast a staking operation
23
+ # Broadcast a staking operation.
24
+ # @param wallet_id [String] The ID of the wallet the address belongs to.
25
+ # @param address_id [String] The ID of the address the staking operation belongs to.
26
+ # @param staking_operation_id [String] The ID of the staking operation to broadcast.
27
+ # @param broadcast_staking_operation_request [BroadcastStakingOperationRequest]
28
+ # @param [Hash] opts the optional parameters
29
+ # @return [StakingOperation]
30
+ def broadcast_staking_operation(wallet_id, address_id, staking_operation_id, broadcast_staking_operation_request, opts = {})
31
+ data, _status_code, _headers = broadcast_staking_operation_with_http_info(wallet_id, address_id, staking_operation_id, broadcast_staking_operation_request, opts)
32
+ data
33
+ end
34
+
35
+ # Broadcast a staking operation
36
+ # Broadcast a staking operation.
37
+ # @param wallet_id [String] The ID of the wallet the address belongs to.
38
+ # @param address_id [String] The ID of the address the staking operation belongs to.
39
+ # @param staking_operation_id [String] The ID of the staking operation to broadcast.
40
+ # @param broadcast_staking_operation_request [BroadcastStakingOperationRequest]
41
+ # @param [Hash] opts the optional parameters
42
+ # @return [Array<(StakingOperation, Integer, Hash)>] StakingOperation data, response status code and response headers
43
+ def broadcast_staking_operation_with_http_info(wallet_id, address_id, staking_operation_id, broadcast_staking_operation_request, opts = {})
44
+ if @api_client.config.debugging
45
+ @api_client.config.logger.debug 'Calling API: StakeApi.broadcast_staking_operation ...'
46
+ end
47
+ # verify the required parameter 'wallet_id' is set
48
+ if @api_client.config.client_side_validation && wallet_id.nil?
49
+ fail ArgumentError, "Missing the required parameter 'wallet_id' when calling StakeApi.broadcast_staking_operation"
50
+ end
51
+ # verify the required parameter 'address_id' is set
52
+ if @api_client.config.client_side_validation && address_id.nil?
53
+ fail ArgumentError, "Missing the required parameter 'address_id' when calling StakeApi.broadcast_staking_operation"
54
+ end
55
+ # verify the required parameter 'staking_operation_id' is set
56
+ if @api_client.config.client_side_validation && staking_operation_id.nil?
57
+ fail ArgumentError, "Missing the required parameter 'staking_operation_id' when calling StakeApi.broadcast_staking_operation"
58
+ end
59
+ # verify the required parameter 'broadcast_staking_operation_request' is set
60
+ if @api_client.config.client_side_validation && broadcast_staking_operation_request.nil?
61
+ fail ArgumentError, "Missing the required parameter 'broadcast_staking_operation_request' when calling StakeApi.broadcast_staking_operation"
62
+ end
63
+ # resource path
64
+ local_var_path = '/v1/wallets/{wallet_id}/addresses/{address_id}/staking_operations/{staking_operation_id}/broadcast'.sub('{' + 'wallet_id' + '}', CGI.escape(wallet_id.to_s)).sub('{' + 'address_id' + '}', CGI.escape(address_id.to_s)).sub('{' + 'staking_operation_id' + '}', CGI.escape(staking_operation_id.to_s))
65
+
66
+ # query parameters
67
+ query_params = opts[:query_params] || {}
68
+
69
+ # header parameters
70
+ header_params = opts[:header_params] || {}
71
+ # HTTP header 'Accept' (if needed)
72
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
73
+ # HTTP header 'Content-Type'
74
+ content_type = @api_client.select_header_content_type(['application/json'])
75
+ if !content_type.nil?
76
+ header_params['Content-Type'] = content_type
77
+ end
78
+
79
+ # form parameters
80
+ form_params = opts[:form_params] || {}
81
+
82
+ # http body (model)
83
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(broadcast_staking_operation_request)
84
+
85
+ # return_type
86
+ return_type = opts[:debug_return_type] || 'StakingOperation'
87
+
88
+ # auth_names
89
+ auth_names = opts[:debug_auth_names] || []
90
+
91
+ new_options = opts.merge(
92
+ :operation => :"StakeApi.broadcast_staking_operation",
93
+ :header_params => header_params,
94
+ :query_params => query_params,
95
+ :form_params => form_params,
96
+ :body => post_body,
97
+ :auth_names => auth_names,
98
+ :return_type => return_type
99
+ )
100
+
101
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
102
+ if @api_client.config.debugging
103
+ @api_client.config.logger.debug "API called: StakeApi#broadcast_staking_operation\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
104
+ end
105
+ return data, status_code, headers
106
+ end
107
+
22
108
  # Build a new staking operation
23
109
  # Build a new staking operation
24
110
  # @param build_staking_operation_request [BuildStakingOperationRequest]
@@ -87,6 +173,206 @@ module Coinbase::Client
87
173
  return data, status_code, headers
88
174
  end
89
175
 
176
+ # Create a new staking operation for an address
177
+ # Create a new staking operation.
178
+ # @param wallet_id [String] The ID of the wallet the address belongs to.
179
+ # @param address_id [String] The ID of the address to create the staking operation for.
180
+ # @param create_staking_operation_request [CreateStakingOperationRequest]
181
+ # @param [Hash] opts the optional parameters
182
+ # @return [StakingOperation]
183
+ def create_staking_operation(wallet_id, address_id, create_staking_operation_request, opts = {})
184
+ data, _status_code, _headers = create_staking_operation_with_http_info(wallet_id, address_id, create_staking_operation_request, opts)
185
+ data
186
+ end
187
+
188
+ # Create a new staking operation for an address
189
+ # Create a new staking operation.
190
+ # @param wallet_id [String] The ID of the wallet the address belongs to.
191
+ # @param address_id [String] The ID of the address to create the staking operation for.
192
+ # @param create_staking_operation_request [CreateStakingOperationRequest]
193
+ # @param [Hash] opts the optional parameters
194
+ # @return [Array<(StakingOperation, Integer, Hash)>] StakingOperation data, response status code and response headers
195
+ def create_staking_operation_with_http_info(wallet_id, address_id, create_staking_operation_request, opts = {})
196
+ if @api_client.config.debugging
197
+ @api_client.config.logger.debug 'Calling API: StakeApi.create_staking_operation ...'
198
+ end
199
+ # verify the required parameter 'wallet_id' is set
200
+ if @api_client.config.client_side_validation && wallet_id.nil?
201
+ fail ArgumentError, "Missing the required parameter 'wallet_id' when calling StakeApi.create_staking_operation"
202
+ end
203
+ # verify the required parameter 'address_id' is set
204
+ if @api_client.config.client_side_validation && address_id.nil?
205
+ fail ArgumentError, "Missing the required parameter 'address_id' when calling StakeApi.create_staking_operation"
206
+ end
207
+ # verify the required parameter 'create_staking_operation_request' is set
208
+ if @api_client.config.client_side_validation && create_staking_operation_request.nil?
209
+ fail ArgumentError, "Missing the required parameter 'create_staking_operation_request' when calling StakeApi.create_staking_operation"
210
+ end
211
+ # resource path
212
+ local_var_path = '/v1/wallets/{wallet_id}/addresses/{address_id}/staking_operations'.sub('{' + 'wallet_id' + '}', CGI.escape(wallet_id.to_s)).sub('{' + 'address_id' + '}', CGI.escape(address_id.to_s))
213
+
214
+ # query parameters
215
+ query_params = opts[:query_params] || {}
216
+
217
+ # header parameters
218
+ header_params = opts[:header_params] || {}
219
+ # HTTP header 'Accept' (if needed)
220
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
221
+ # HTTP header 'Content-Type'
222
+ content_type = @api_client.select_header_content_type(['application/json'])
223
+ if !content_type.nil?
224
+ header_params['Content-Type'] = content_type
225
+ end
226
+
227
+ # form parameters
228
+ form_params = opts[:form_params] || {}
229
+
230
+ # http body (model)
231
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(create_staking_operation_request)
232
+
233
+ # return_type
234
+ return_type = opts[:debug_return_type] || 'StakingOperation'
235
+
236
+ # auth_names
237
+ auth_names = opts[:debug_auth_names] || []
238
+
239
+ new_options = opts.merge(
240
+ :operation => :"StakeApi.create_staking_operation",
241
+ :header_params => header_params,
242
+ :query_params => query_params,
243
+ :form_params => form_params,
244
+ :body => post_body,
245
+ :auth_names => auth_names,
246
+ :return_type => return_type
247
+ )
248
+
249
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
250
+ if @api_client.config.debugging
251
+ @api_client.config.logger.debug "API called: StakeApi#create_staking_operation\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
252
+ end
253
+ return data, status_code, headers
254
+ end
255
+
256
+ # Fetch historical staking balances
257
+ # Fetch historical staking balances for given address.
258
+ # @param network_id [String] The ID of the blockchain network.
259
+ # @param asset_id [String] The ID of the asset for which the historical staking balances are being fetched.
260
+ # @param address_id [String] The onchain address for which the historical staking balances are being fetched.
261
+ # @param start_time [Time] The start time of this historical staking balance period.
262
+ # @param end_time [Time] The end time of this historical staking balance period.
263
+ # @param [Hash] opts the optional parameters
264
+ # @option opts [Integer] :limit A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 50.
265
+ # @option opts [String] :page A cursor for pagination across multiple pages of results. Don&#39;t include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.
266
+ # @return [FetchHistoricalStakingBalances200Response]
267
+ def fetch_historical_staking_balances(network_id, asset_id, address_id, start_time, end_time, opts = {})
268
+ data, _status_code, _headers = fetch_historical_staking_balances_with_http_info(network_id, asset_id, address_id, start_time, end_time, opts)
269
+ data
270
+ end
271
+
272
+ # Fetch historical staking balances
273
+ # Fetch historical staking balances for given address.
274
+ # @param network_id [String] The ID of the blockchain network.
275
+ # @param asset_id [String] The ID of the asset for which the historical staking balances are being fetched.
276
+ # @param address_id [String] The onchain address for which the historical staking balances are being fetched.
277
+ # @param start_time [Time] The start time of this historical staking balance period.
278
+ # @param end_time [Time] The end time of this historical staking balance period.
279
+ # @param [Hash] opts the optional parameters
280
+ # @option opts [Integer] :limit A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 50.
281
+ # @option opts [String] :page A cursor for pagination across multiple pages of results. Don&#39;t include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.
282
+ # @return [Array<(FetchHistoricalStakingBalances200Response, Integer, Hash)>] FetchHistoricalStakingBalances200Response data, response status code and response headers
283
+ def fetch_historical_staking_balances_with_http_info(network_id, asset_id, address_id, start_time, end_time, opts = {})
284
+ if @api_client.config.debugging
285
+ @api_client.config.logger.debug 'Calling API: StakeApi.fetch_historical_staking_balances ...'
286
+ end
287
+ # verify the required parameter 'network_id' is set
288
+ if @api_client.config.client_side_validation && network_id.nil?
289
+ fail ArgumentError, "Missing the required parameter 'network_id' when calling StakeApi.fetch_historical_staking_balances"
290
+ end
291
+ if @api_client.config.client_side_validation && network_id.to_s.length > 5000
292
+ fail ArgumentError, 'invalid value for "network_id" when calling StakeApi.fetch_historical_staking_balances, the character length must be smaller than or equal to 5000.'
293
+ end
294
+
295
+ # verify the required parameter 'asset_id' is set
296
+ if @api_client.config.client_side_validation && asset_id.nil?
297
+ fail ArgumentError, "Missing the required parameter 'asset_id' when calling StakeApi.fetch_historical_staking_balances"
298
+ end
299
+ if @api_client.config.client_side_validation && asset_id.to_s.length > 5000
300
+ fail ArgumentError, 'invalid value for "asset_id" when calling StakeApi.fetch_historical_staking_balances, the character length must be smaller than or equal to 5000.'
301
+ end
302
+
303
+ # verify the required parameter 'address_id' is set
304
+ if @api_client.config.client_side_validation && address_id.nil?
305
+ fail ArgumentError, "Missing the required parameter 'address_id' when calling StakeApi.fetch_historical_staking_balances"
306
+ end
307
+ if @api_client.config.client_side_validation && address_id.to_s.length > 5000
308
+ fail ArgumentError, 'invalid value for "address_id" when calling StakeApi.fetch_historical_staking_balances, the character length must be smaller than or equal to 5000.'
309
+ end
310
+
311
+ # verify the required parameter 'start_time' is set
312
+ if @api_client.config.client_side_validation && start_time.nil?
313
+ fail ArgumentError, "Missing the required parameter 'start_time' when calling StakeApi.fetch_historical_staking_balances"
314
+ end
315
+ if @api_client.config.client_side_validation && start_time.to_s.length > 5000
316
+ fail ArgumentError, 'invalid value for "start_time" when calling StakeApi.fetch_historical_staking_balances, the character length must be smaller than or equal to 5000.'
317
+ end
318
+
319
+ # verify the required parameter 'end_time' is set
320
+ if @api_client.config.client_side_validation && end_time.nil?
321
+ fail ArgumentError, "Missing the required parameter 'end_time' when calling StakeApi.fetch_historical_staking_balances"
322
+ end
323
+ if @api_client.config.client_side_validation && end_time.to_s.length > 5000
324
+ fail ArgumentError, 'invalid value for "end_time" when calling StakeApi.fetch_historical_staking_balances, the character length must be smaller than or equal to 5000.'
325
+ end
326
+
327
+ if @api_client.config.client_side_validation && !opts[:'page'].nil? && opts[:'page'].to_s.length > 5000
328
+ fail ArgumentError, 'invalid value for "opts[:"page"]" when calling StakeApi.fetch_historical_staking_balances, the character length must be smaller than or equal to 5000.'
329
+ end
330
+
331
+ # resource path
332
+ local_var_path = '/v1/networks/{network_id}/addresses/{address_id}/stake/balances'.sub('{' + 'network_id' + '}', CGI.escape(network_id.to_s)).sub('{' + 'address_id' + '}', CGI.escape(address_id.to_s))
333
+
334
+ # query parameters
335
+ query_params = opts[:query_params] || {}
336
+ query_params[:'asset_id'] = asset_id
337
+ query_params[:'start_time'] = start_time
338
+ query_params[:'end_time'] = end_time
339
+ query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
340
+ query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
341
+
342
+ # header parameters
343
+ header_params = opts[:header_params] || {}
344
+ # HTTP header 'Accept' (if needed)
345
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
346
+
347
+ # form parameters
348
+ form_params = opts[:form_params] || {}
349
+
350
+ # http body (model)
351
+ post_body = opts[:debug_body]
352
+
353
+ # return_type
354
+ return_type = opts[:debug_return_type] || 'FetchHistoricalStakingBalances200Response'
355
+
356
+ # auth_names
357
+ auth_names = opts[:debug_auth_names] || []
358
+
359
+ new_options = opts.merge(
360
+ :operation => :"StakeApi.fetch_historical_staking_balances",
361
+ :header_params => header_params,
362
+ :query_params => query_params,
363
+ :form_params => form_params,
364
+ :body => post_body,
365
+ :auth_names => auth_names,
366
+ :return_type => return_type
367
+ )
368
+
369
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
370
+ if @api_client.config.debugging
371
+ @api_client.config.logger.debug "API called: StakeApi#fetch_historical_staking_balances\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
372
+ end
373
+ return data, status_code, headers
374
+ end
375
+
90
376
  # Fetch staking rewards
91
377
  # Fetch staking rewards for a list of addresses
92
378
  # @param fetch_staking_rewards_request [FetchStakingRewardsRequest]
@@ -307,5 +593,80 @@ module Coinbase::Client
307
593
  end
308
594
  return data, status_code, headers
309
595
  end
596
+
597
+ # Get the latest state of a staking operation
598
+ # Get the latest state of a staking operation.
599
+ # @param wallet_id [String] The ID of the wallet the address belongs to
600
+ # @param address_id [String] The ID of the address to fetch the staking operation for.
601
+ # @param staking_operation_id [String] The ID of the staking operation.
602
+ # @param [Hash] opts the optional parameters
603
+ # @return [StakingOperation]
604
+ def get_staking_operation(wallet_id, address_id, staking_operation_id, opts = {})
605
+ data, _status_code, _headers = get_staking_operation_with_http_info(wallet_id, address_id, staking_operation_id, opts)
606
+ data
607
+ end
608
+
609
+ # Get the latest state of a staking operation
610
+ # Get the latest state of a staking operation.
611
+ # @param wallet_id [String] The ID of the wallet the address belongs to
612
+ # @param address_id [String] The ID of the address to fetch the staking operation for.
613
+ # @param staking_operation_id [String] The ID of the staking operation.
614
+ # @param [Hash] opts the optional parameters
615
+ # @return [Array<(StakingOperation, Integer, Hash)>] StakingOperation data, response status code and response headers
616
+ def get_staking_operation_with_http_info(wallet_id, address_id, staking_operation_id, opts = {})
617
+ if @api_client.config.debugging
618
+ @api_client.config.logger.debug 'Calling API: StakeApi.get_staking_operation ...'
619
+ end
620
+ # verify the required parameter 'wallet_id' is set
621
+ if @api_client.config.client_side_validation && wallet_id.nil?
622
+ fail ArgumentError, "Missing the required parameter 'wallet_id' when calling StakeApi.get_staking_operation"
623
+ end
624
+ # verify the required parameter 'address_id' is set
625
+ if @api_client.config.client_side_validation && address_id.nil?
626
+ fail ArgumentError, "Missing the required parameter 'address_id' when calling StakeApi.get_staking_operation"
627
+ end
628
+ # verify the required parameter 'staking_operation_id' is set
629
+ if @api_client.config.client_side_validation && staking_operation_id.nil?
630
+ fail ArgumentError, "Missing the required parameter 'staking_operation_id' when calling StakeApi.get_staking_operation"
631
+ end
632
+ # resource path
633
+ local_var_path = '/v1/wallets/{wallet_id}/addresses/{address_id}/staking_operations/{staking_operation_id}'.sub('{' + 'wallet_id' + '}', CGI.escape(wallet_id.to_s)).sub('{' + 'address_id' + '}', CGI.escape(address_id.to_s)).sub('{' + 'staking_operation_id' + '}', CGI.escape(staking_operation_id.to_s))
634
+
635
+ # query parameters
636
+ query_params = opts[:query_params] || {}
637
+
638
+ # header parameters
639
+ header_params = opts[:header_params] || {}
640
+ # HTTP header 'Accept' (if needed)
641
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
642
+
643
+ # form parameters
644
+ form_params = opts[:form_params] || {}
645
+
646
+ # http body (model)
647
+ post_body = opts[:debug_body]
648
+
649
+ # return_type
650
+ return_type = opts[:debug_return_type] || 'StakingOperation'
651
+
652
+ # auth_names
653
+ auth_names = opts[:debug_auth_names] || []
654
+
655
+ new_options = opts.merge(
656
+ :operation => :"StakeApi.get_staking_operation",
657
+ :header_params => header_params,
658
+ :query_params => query_params,
659
+ :form_params => form_params,
660
+ :body => post_body,
661
+ :auth_names => auth_names,
662
+ :return_type => return_type
663
+ )
664
+
665
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
666
+ if @api_client.config.debugging
667
+ @api_client.config.logger.debug "API called: StakeApi#get_staking_operation\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
668
+ end
669
+ return data, status_code, headers
670
+ end
310
671
  end
311
672
  end