coinbase-sdk 0.2.0 → 0.5.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.
Files changed (116) hide show
  1. checksums.yaml +4 -4
  2. data/lib/coinbase/address/wallet_address.rb +61 -0
  3. data/lib/coinbase/address.rb +25 -1
  4. data/lib/coinbase/client/api/addresses_api.rb +238 -8
  5. data/lib/coinbase/client/api/assets_api.rb +3 -3
  6. data/lib/coinbase/client/api/balance_history_api.rb +107 -0
  7. data/lib/coinbase/client/api/contract_events_api.rb +5 -5
  8. data/lib/coinbase/client/api/contract_invocations_api.rb +342 -0
  9. data/lib/coinbase/client/api/external_addresses_api.rb +24 -30
  10. data/lib/coinbase/client/api/networks_api.rb +3 -3
  11. data/lib/coinbase/client/api/server_signers_api.rb +8 -8
  12. data/lib/coinbase/client/api/stake_api.rb +7 -7
  13. data/lib/coinbase/client/api/trades_api.rb +6 -6
  14. data/lib/coinbase/client/api/transfers_api.rb +6 -6
  15. data/lib/coinbase/client/api/validators_api.rb +8 -8
  16. data/lib/coinbase/client/api/wallet_stake_api.rb +5 -5
  17. data/lib/coinbase/client/api/wallets_api.rb +11 -11
  18. data/lib/coinbase/client/api/webhooks_api.rb +6 -6
  19. data/lib/coinbase/client/api_client.rb +31 -25
  20. data/lib/coinbase/client/api_error.rb +2 -2
  21. data/lib/coinbase/client/configuration.rb +2 -2
  22. data/lib/coinbase/client/models/address.rb +2 -2
  23. data/lib/coinbase/client/models/address_balance_list.rb +2 -2
  24. data/lib/coinbase/client/models/address_historical_balance_list.rb +2 -2
  25. data/lib/coinbase/client/models/address_list.rb +2 -2
  26. data/lib/coinbase/client/models/address_transaction_list.rb +258 -0
  27. data/lib/coinbase/client/models/asset.rb +2 -2
  28. data/lib/coinbase/client/models/balance.rb +2 -2
  29. data/lib/coinbase/client/models/{user.rb → broadcast_contract_invocation_request.rb} +17 -26
  30. data/lib/coinbase/client/models/broadcast_staking_operation_request.rb +2 -2
  31. data/lib/coinbase/client/models/broadcast_trade_request.rb +2 -2
  32. data/lib/coinbase/client/models/broadcast_transfer_request.rb +2 -2
  33. data/lib/coinbase/client/models/build_staking_operation_request.rb +2 -2
  34. data/lib/coinbase/client/models/contract_event.rb +2 -2
  35. data/lib/coinbase/client/models/contract_event_list.rb +2 -2
  36. data/lib/coinbase/client/models/contract_invocation.rb +368 -0
  37. data/lib/coinbase/client/models/contract_invocation_list.rb +274 -0
  38. data/lib/coinbase/client/models/create_address_request.rb +2 -2
  39. data/lib/coinbase/client/models/create_contract_invocation_request.rb +276 -0
  40. data/lib/coinbase/client/models/create_payload_signature_request.rb +232 -0
  41. data/lib/coinbase/client/models/create_server_signer_request.rb +2 -2
  42. data/lib/coinbase/client/models/create_staking_operation_request.rb +2 -2
  43. data/lib/coinbase/client/models/create_trade_request.rb +2 -2
  44. data/lib/coinbase/client/models/create_transfer_request.rb +3 -3
  45. data/lib/coinbase/client/models/create_wallet_request.rb +2 -2
  46. data/lib/coinbase/client/models/create_wallet_request_wallet.rb +2 -2
  47. data/lib/coinbase/client/models/create_webhook_request.rb +30 -6
  48. data/lib/coinbase/client/models/erc20_transfer_event.rb +336 -0
  49. data/lib/coinbase/client/models/erc721_transfer_event.rb +336 -0
  50. data/lib/coinbase/client/models/error.rb +16 -6
  51. data/lib/coinbase/client/models/ethereum_transaction.rb +389 -0
  52. data/lib/coinbase/client/models/ethereum_transaction_access.rb +225 -0
  53. data/lib/coinbase/client/models/ethereum_transaction_access_list.rb +216 -0
  54. data/lib/coinbase/client/models/ethereum_transaction_flattened_trace.rb +378 -0
  55. data/lib/coinbase/client/models/ethereum_validator_metadata.rb +2 -2
  56. data/lib/coinbase/client/models/faucet_transaction.rb +2 -2
  57. data/lib/coinbase/client/models/feature_set.rb +2 -2
  58. data/lib/coinbase/client/models/fetch_historical_staking_balances200_response.rb +2 -2
  59. data/lib/coinbase/client/models/fetch_staking_rewards200_response.rb +2 -2
  60. data/lib/coinbase/client/models/fetch_staking_rewards_request.rb +2 -2
  61. data/lib/coinbase/client/models/get_staking_context_request.rb +2 -2
  62. data/lib/coinbase/client/models/historical_balance.rb +2 -2
  63. data/lib/coinbase/client/models/network.rb +4 -4
  64. data/lib/coinbase/client/models/network_identifier.rb +5 -3
  65. data/lib/coinbase/client/models/payload_signature.rb +335 -0
  66. data/lib/coinbase/client/models/payload_signature_list.rb +275 -0
  67. data/lib/coinbase/client/models/seed_creation_event.rb +2 -2
  68. data/lib/coinbase/client/models/seed_creation_event_result.rb +2 -2
  69. data/lib/coinbase/client/models/server_signer.rb +2 -2
  70. data/lib/coinbase/client/models/server_signer_event.rb +2 -2
  71. data/lib/coinbase/client/models/server_signer_event_event.rb +2 -2
  72. data/lib/coinbase/client/models/server_signer_event_list.rb +2 -2
  73. data/lib/coinbase/client/models/server_signer_list.rb +2 -2
  74. data/lib/coinbase/client/models/signature_creation_event.rb +2 -2
  75. data/lib/coinbase/client/models/signature_creation_event_result.rb +2 -2
  76. data/lib/coinbase/client/models/signed_voluntary_exit_message_metadata.rb +2 -2
  77. data/lib/coinbase/client/models/sponsored_send.rb +2 -2
  78. data/lib/coinbase/client/models/staking_balance.rb +2 -2
  79. data/lib/coinbase/client/models/staking_context.rb +2 -2
  80. data/lib/coinbase/client/models/staking_context_context.rb +2 -2
  81. data/lib/coinbase/client/models/staking_operation.rb +2 -2
  82. data/lib/coinbase/client/models/staking_operation_metadata.rb +2 -2
  83. data/lib/coinbase/client/models/staking_reward.rb +2 -2
  84. data/lib/coinbase/client/models/staking_reward_format.rb +2 -2
  85. data/lib/coinbase/client/models/staking_reward_usd_value.rb +2 -2
  86. data/lib/coinbase/client/models/trade.rb +2 -2
  87. data/lib/coinbase/client/models/trade_list.rb +2 -2
  88. data/lib/coinbase/client/models/transaction.rb +37 -8
  89. data/lib/coinbase/client/models/transaction_content.rb +104 -0
  90. data/lib/coinbase/client/models/transaction_type.rb +2 -2
  91. data/lib/coinbase/client/models/transfer.rb +2 -2
  92. data/lib/coinbase/client/models/transfer_list.rb +2 -2
  93. data/lib/coinbase/client/models/update_webhook_request.rb +3 -51
  94. data/lib/coinbase/client/models/validator.rb +2 -2
  95. data/lib/coinbase/client/models/validator_details.rb +2 -2
  96. data/lib/coinbase/client/models/validator_list.rb +2 -2
  97. data/lib/coinbase/client/models/validator_status.rb +2 -2
  98. data/lib/coinbase/client/models/wallet.rb +2 -2
  99. data/lib/coinbase/client/models/wallet_list.rb +2 -2
  100. data/lib/coinbase/client/models/webhook.rb +16 -6
  101. data/lib/coinbase/client/models/webhook_event_filter.rb +5 -5
  102. data/lib/coinbase/client/models/webhook_event_type.rb +2 -2
  103. data/lib/coinbase/client/models/webhook_list.rb +2 -2
  104. data/lib/coinbase/client/version.rb +2 -2
  105. data/lib/coinbase/client.rb +19 -4
  106. data/lib/coinbase/constants.rb +3 -0
  107. data/lib/coinbase/contract_invocation.rb +259 -0
  108. data/lib/coinbase/payload_signature.rb +181 -0
  109. data/lib/coinbase/transaction.rb +21 -0
  110. data/lib/coinbase/version.rb +1 -1
  111. data/lib/coinbase/wallet.rb +11 -1
  112. data/lib/coinbase/webhook.rb +17 -6
  113. data/lib/coinbase.rb +2 -0
  114. metadata +21 -5
  115. data/lib/coinbase/client/api/users_api.rb +0 -79
  116. data/lib/coinbase/client/models/feature.rb +0 -43
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: eb99df68459ac0ded3425479c79a09a0eb0aba9a9eb213939254b049e582f6d3
4
- data.tar.gz: c4bb9230a726749208267afae1ce4af39c198e619273c4c38c44fa08f3729e60
3
+ metadata.gz: b34f214c1b2a2802d9e6e08dd9cef8867a2b29636c933496b32e7336d898738a
4
+ data.tar.gz: a9d1dc3bf9e257f7432832ec3c70d165d09cc1c477c0d5ad4f34c54aba8e4e1f
5
5
  SHA512:
6
- metadata.gz: 41190c14711f7f1ce56ce668b60fc0e0319a9d1aa0b382f46242db330961a3bfda950ab4e619eb9202595ce172111da8eb3bcd4cb133ac030ca0bf2e4d7d6247
7
- data.tar.gz: a471b10bff8d80dda05183b855967907357c5f84feabc0ee40ed37b6ca081d4c6bb75d72e91a6edc8ca67fadcc3d30437db67ee16c557b89c22291f02bab01e0
6
+ metadata.gz: 4b2fc3edabfb7edd418e8f5be3e25b0701266206cc012bfb56c6e05b2879baac542ab636c21b80ac71d7871e62cf289c43618c6d5e51ec100cdfb9b49777963d
7
+ data.tar.gz: 37fea814fa12745645084442e21e1c443b57d78d24e9b314dc11e6921f590d8b4485b8ea6f774816bf851d8ec70e141ea1240fa9b2fa8f322867eb5a229e7260
@@ -95,6 +95,59 @@ module Coinbase
95
95
  trade
96
96
  end
97
97
 
98
+ # Invokes a contract method on the specified contract address, with the given ABI and arguments.
99
+ # @param contract_address [String] The address of the contract to invoke.
100
+ # @param abi [Array<Hash>] The ABI of the contract to invoke.
101
+ # @param method [String] The method to invoke on the contract.
102
+ # @param args [Hash] The arguments to pass to the contract method.
103
+ # The keys should be the argument names, and the values should be the argument values.
104
+ # @param amount [Integer, Float, BigDecimal] (Optional) The amount of the native Asset
105
+ # to send to a payable contract method.
106
+ # @param asset_id [Symbol] (Optional) The ID of the Asset to send to a payable contract method.
107
+ # The Asset must be a denomination of the native Asset. For Ethereum, :eth, :gwei, and :wei are supported.
108
+ # @return [Coinbase::ContractInvocation] The contract invocation object.
109
+ def invoke_contract(contract_address:, abi:, method:, args:, amount: nil, asset_id: nil)
110
+ ensure_can_sign!
111
+ ensure_sufficient_balance!(amount, asset_id) if amount && asset_id
112
+
113
+ invocation = ContractInvocation.create(
114
+ address_id: id,
115
+ wallet_id: wallet_id,
116
+ contract_address: contract_address,
117
+ abi: abi,
118
+ method: method,
119
+ args: args,
120
+ amount: amount,
121
+ asset_id: asset_id,
122
+ network: network
123
+ )
124
+
125
+ # If a server signer is managing keys, it will sign and broadcast the underlying transaction out of band.
126
+ return invocation if Coinbase.use_server_signer?
127
+
128
+ invocation.sign(@key)
129
+ invocation.broadcast!
130
+ invocation
131
+ end
132
+
133
+ # Signs the given unsigned payload.
134
+ # @param unsigned_payload [String] The hex-encoded hashed unsigned payload for the Address to sign.
135
+ # @return [Coinbase::PayloadSignature] The payload signature
136
+ def sign_payload(unsigned_payload:)
137
+ ensure_can_sign!
138
+
139
+ unless Coinbase.use_server_signer?
140
+ signature = Eth::Util.prefix_hex(@key.sign(Eth::Util.hex_to_bin(unsigned_payload)))
141
+ end
142
+
143
+ PayloadSignature.create(
144
+ wallet_id: wallet_id,
145
+ address_id: id,
146
+ unsigned_payload: unsigned_payload,
147
+ signature: signature
148
+ )
149
+ end
150
+
98
151
  # Stakes the given amount of the given Asset. The stake operation
99
152
  # may take a few minutes to complete in the case when infrastructure is spun up.
100
153
  # @param amount [Integer, Float, BigDecimal] The amount of the Asset to stake.
@@ -179,6 +232,14 @@ module Coinbase
179
232
  Trade.list(wallet_id: wallet_id, address_id: id)
180
233
  end
181
234
 
235
+ # Enumerates the payload signatures associated with the address.
236
+ # The result is an enumerator that lazily fetches from the server, and can be iterated over,
237
+ # converted to an array, etc...
238
+ # @return [Enumerable<Coinbase::PayloadSignature>] Enumerator that returns the address's payload signatures
239
+ def payload_signatures
240
+ PayloadSignature.list(wallet_id: wallet_id, address_id: id)
241
+ end
242
+
182
243
  # Returns a String representation of the WalletAddress.
183
244
  # @return [String] a String representation of the WalletAddress
184
245
  def to_s
@@ -72,6 +72,18 @@ module Coinbase
72
72
  end
73
73
  end
74
74
 
75
+ # Enumerates the transactions of address.
76
+ # The result is an enumerator that lazily fetches from the server, and can be iterated over,
77
+ # converted to an array, etc...
78
+ # @return [Enumerable<Coinbase::HistoricalBalance>] Enumerator that returns historical_balance
79
+ def transactions
80
+ Coinbase::Pagination.enumerate(
81
+ ->(page) { list_transaction_page(page) }
82
+ ) do |transaction|
83
+ Coinbase::Transaction.new(transaction)
84
+ end
85
+ end
86
+
75
87
  # Requests funds for the address from the faucet and returns the faucet transaction.
76
88
  # This is only supported on testnet networks.
77
89
  # @param asset_id [Symbol] The ID of the Asset to transfer to the wallet.
@@ -236,17 +248,29 @@ module Coinbase
236
248
  @addresses_api ||= Coinbase::Client::ExternalAddressesApi.new(Coinbase.configuration.api_client)
237
249
  end
238
250
 
251
+ def balance_history_api
252
+ @balance_history_api ||= Coinbase::Client::BalanceHistoryApi.new(Coinbase.configuration.api_client)
253
+ end
254
+
239
255
  def stake_api
240
256
  @stake_api ||= Coinbase::Client::StakeApi.new(Coinbase.configuration.api_client)
241
257
  end
242
258
 
243
259
  def list_page(asset_id, page)
244
- addresses_api.list_address_historical_balance(
260
+ balance_history_api.list_address_historical_balance(
245
261
  network.normalized_id,
246
262
  id,
247
263
  Coinbase::Asset.primary_denomination(asset_id).to_s,
248
264
  { limit: DEFAULT_PAGE_LIMIT, page: page }
249
265
  )
250
266
  end
267
+
268
+ def list_transaction_page(page)
269
+ addresses_api.list_address_transactions(
270
+ network.normalized_id,
271
+ id,
272
+ { limit: DEFAULT_TRANSACTION_PAGE_LIMIT, page: page }
273
+ )
274
+ end
251
275
  end
252
276
  end
@@ -4,9 +4,9 @@
4
4
  #This is the OpenAPI 3.0 specification for the Coinbase Platform APIs, used in conjunction with the Coinbase Platform SDKs.
5
5
 
6
6
  The version of the OpenAPI document: 0.0.1-alpha
7
- Contact: yuga.cohler@coinbase.com
7
+
8
8
  Generated by: https://openapi-generator.tech
9
- Generator version: 7.7.0
9
+ Generator version: 7.8.0
10
10
 
11
11
  =end
12
12
 
@@ -53,7 +53,7 @@ module Coinbase::Client
53
53
  # header parameters
54
54
  header_params = opts[:header_params] || {}
55
55
  # HTTP header 'Accept' (if needed)
56
- header_params['Accept'] = @api_client.select_header_accept(['application/json'])
56
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
57
57
  # HTTP header 'Content-Type'
58
58
  content_type = @api_client.select_header_content_type(['application/json'])
59
59
  if !content_type.nil?
@@ -89,6 +89,82 @@ module Coinbase::Client
89
89
  return data, status_code, headers
90
90
  end
91
91
 
92
+ # Create a new payload signature.
93
+ # Create a new payload signature with an address.
94
+ # @param wallet_id [String] The ID of the wallet the address belongs to.
95
+ # @param address_id [String] The onchain address of the address to sign the payload with.
96
+ # @param [Hash] opts the optional parameters
97
+ # @option opts [CreatePayloadSignatureRequest] :create_payload_signature_request
98
+ # @return [PayloadSignature]
99
+ def create_payload_signature(wallet_id, address_id, opts = {})
100
+ data, _status_code, _headers = create_payload_signature_with_http_info(wallet_id, address_id, opts)
101
+ data
102
+ end
103
+
104
+ # Create a new payload signature.
105
+ # Create a new payload signature with an address.
106
+ # @param wallet_id [String] The ID of the wallet the address belongs to.
107
+ # @param address_id [String] The onchain address of the address to sign the payload with.
108
+ # @param [Hash] opts the optional parameters
109
+ # @option opts [CreatePayloadSignatureRequest] :create_payload_signature_request
110
+ # @return [Array<(PayloadSignature, Integer, Hash)>] PayloadSignature data, response status code and response headers
111
+ def create_payload_signature_with_http_info(wallet_id, address_id, opts = {})
112
+ if @api_client.config.debugging
113
+ @api_client.config.logger.debug 'Calling API: AddressesApi.create_payload_signature ...'
114
+ end
115
+ # verify the required parameter 'wallet_id' is set
116
+ if @api_client.config.client_side_validation && wallet_id.nil?
117
+ fail ArgumentError, "Missing the required parameter 'wallet_id' when calling AddressesApi.create_payload_signature"
118
+ end
119
+ # verify the required parameter 'address_id' is set
120
+ if @api_client.config.client_side_validation && address_id.nil?
121
+ fail ArgumentError, "Missing the required parameter 'address_id' when calling AddressesApi.create_payload_signature"
122
+ end
123
+ # resource path
124
+ local_var_path = '/v1/wallets/{wallet_id}/addresses/{address_id}/payload_signatures'.sub('{' + 'wallet_id' + '}', CGI.escape(wallet_id.to_s)).sub('{' + 'address_id' + '}', CGI.escape(address_id.to_s))
125
+
126
+ # query parameters
127
+ query_params = opts[:query_params] || {}
128
+
129
+ # header parameters
130
+ header_params = opts[:header_params] || {}
131
+ # HTTP header 'Accept' (if needed)
132
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
133
+ # HTTP header 'Content-Type'
134
+ content_type = @api_client.select_header_content_type(['application/json'])
135
+ if !content_type.nil?
136
+ header_params['Content-Type'] = content_type
137
+ end
138
+
139
+ # form parameters
140
+ form_params = opts[:form_params] || {}
141
+
142
+ # http body (model)
143
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(opts[:'create_payload_signature_request'])
144
+
145
+ # return_type
146
+ return_type = opts[:debug_return_type] || 'PayloadSignature'
147
+
148
+ # auth_names
149
+ auth_names = opts[:debug_auth_names] || []
150
+
151
+ new_options = opts.merge(
152
+ :operation => :"AddressesApi.create_payload_signature",
153
+ :header_params => header_params,
154
+ :query_params => query_params,
155
+ :form_params => form_params,
156
+ :body => post_body,
157
+ :auth_names => auth_names,
158
+ :return_type => return_type
159
+ )
160
+
161
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
162
+ if @api_client.config.debugging
163
+ @api_client.config.logger.debug "API called: AddressesApi#create_payload_signature\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
164
+ end
165
+ return data, status_code, headers
166
+ end
167
+
92
168
  # Get address by onchain address
93
169
  # Get address
94
170
  # @param wallet_id [String] The ID of the wallet the address belongs to.
@@ -127,7 +203,7 @@ module Coinbase::Client
127
203
  # header parameters
128
204
  header_params = opts[:header_params] || {}
129
205
  # HTTP header 'Accept' (if needed)
130
- header_params['Accept'] = @api_client.select_header_accept(['application/json'])
206
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
131
207
 
132
208
  # form parameters
133
209
  form_params = opts[:form_params] || {}
@@ -202,7 +278,7 @@ module Coinbase::Client
202
278
  # header parameters
203
279
  header_params = opts[:header_params] || {}
204
280
  # HTTP header 'Accept' (if needed)
205
- header_params['Accept'] = @api_client.select_header_accept(['application/json'])
281
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
206
282
 
207
283
  # form parameters
208
284
  form_params = opts[:form_params] || {}
@@ -233,6 +309,81 @@ module Coinbase::Client
233
309
  return data, status_code, headers
234
310
  end
235
311
 
312
+ # Get payload signature.
313
+ # Get payload signature.
314
+ # @param wallet_id [String] The ID of the wallet the address belongs to.
315
+ # @param address_id [String] The onchain address of the address that signed the payload.
316
+ # @param payload_signature_id [String] The ID of the payload signature to fetch.
317
+ # @param [Hash] opts the optional parameters
318
+ # @return [PayloadSignature]
319
+ def get_payload_signature(wallet_id, address_id, payload_signature_id, opts = {})
320
+ data, _status_code, _headers = get_payload_signature_with_http_info(wallet_id, address_id, payload_signature_id, opts)
321
+ data
322
+ end
323
+
324
+ # Get payload signature.
325
+ # Get payload signature.
326
+ # @param wallet_id [String] The ID of the wallet the address belongs to.
327
+ # @param address_id [String] The onchain address of the address that signed the payload.
328
+ # @param payload_signature_id [String] The ID of the payload signature to fetch.
329
+ # @param [Hash] opts the optional parameters
330
+ # @return [Array<(PayloadSignature, Integer, Hash)>] PayloadSignature data, response status code and response headers
331
+ def get_payload_signature_with_http_info(wallet_id, address_id, payload_signature_id, opts = {})
332
+ if @api_client.config.debugging
333
+ @api_client.config.logger.debug 'Calling API: AddressesApi.get_payload_signature ...'
334
+ end
335
+ # verify the required parameter 'wallet_id' is set
336
+ if @api_client.config.client_side_validation && wallet_id.nil?
337
+ fail ArgumentError, "Missing the required parameter 'wallet_id' when calling AddressesApi.get_payload_signature"
338
+ end
339
+ # verify the required parameter 'address_id' is set
340
+ if @api_client.config.client_side_validation && address_id.nil?
341
+ fail ArgumentError, "Missing the required parameter 'address_id' when calling AddressesApi.get_payload_signature"
342
+ end
343
+ # verify the required parameter 'payload_signature_id' is set
344
+ if @api_client.config.client_side_validation && payload_signature_id.nil?
345
+ fail ArgumentError, "Missing the required parameter 'payload_signature_id' when calling AddressesApi.get_payload_signature"
346
+ end
347
+ # resource path
348
+ local_var_path = '/v1/wallets/{wallet_id}/addresses/{address_id}/payload_signatures/{payload_signature_id}'.sub('{' + 'wallet_id' + '}', CGI.escape(wallet_id.to_s)).sub('{' + 'address_id' + '}', CGI.escape(address_id.to_s)).sub('{' + 'payload_signature_id' + '}', CGI.escape(payload_signature_id.to_s))
349
+
350
+ # query parameters
351
+ query_params = opts[:query_params] || {}
352
+
353
+ # header parameters
354
+ header_params = opts[:header_params] || {}
355
+ # HTTP header 'Accept' (if needed)
356
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
357
+
358
+ # form parameters
359
+ form_params = opts[:form_params] || {}
360
+
361
+ # http body (model)
362
+ post_body = opts[:debug_body]
363
+
364
+ # return_type
365
+ return_type = opts[:debug_return_type] || 'PayloadSignature'
366
+
367
+ # auth_names
368
+ auth_names = opts[:debug_auth_names] || []
369
+
370
+ new_options = opts.merge(
371
+ :operation => :"AddressesApi.get_payload_signature",
372
+ :header_params => header_params,
373
+ :query_params => query_params,
374
+ :form_params => form_params,
375
+ :body => post_body,
376
+ :auth_names => auth_names,
377
+ :return_type => return_type
378
+ )
379
+
380
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
381
+ if @api_client.config.debugging
382
+ @api_client.config.logger.debug "API called: AddressesApi#get_payload_signature\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
383
+ end
384
+ return data, status_code, headers
385
+ end
386
+
236
387
  # Get all balances for address
237
388
  # Get address balances
238
389
  # @param wallet_id [String] The ID of the wallet to fetch the balances for
@@ -278,7 +429,7 @@ module Coinbase::Client
278
429
  # header parameters
279
430
  header_params = opts[:header_params] || {}
280
431
  # HTTP header 'Accept' (if needed)
281
- header_params['Accept'] = @api_client.select_header_accept(['application/json'])
432
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
282
433
 
283
434
  # form parameters
284
435
  form_params = opts[:form_params] || {}
@@ -351,7 +502,7 @@ module Coinbase::Client
351
502
  # header parameters
352
503
  header_params = opts[:header_params] || {}
353
504
  # HTTP header 'Accept' (if needed)
354
- header_params['Accept'] = @api_client.select_header_accept(['application/json'])
505
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
355
506
 
356
507
  # form parameters
357
508
  form_params = opts[:form_params] || {}
@@ -382,6 +533,85 @@ module Coinbase::Client
382
533
  return data, status_code, headers
383
534
  end
384
535
 
536
+ # List payload signatures for an address.
537
+ # List payload signatures for an address.
538
+ # @param wallet_id [String] The ID of the wallet the address belongs to.
539
+ # @param address_id [String] The onchain address of the address whose payload signatures to fetch.
540
+ # @param [Hash] opts the optional parameters
541
+ # @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.
542
+ # @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.
543
+ # @return [PayloadSignatureList]
544
+ def list_payload_signatures(wallet_id, address_id, opts = {})
545
+ data, _status_code, _headers = list_payload_signatures_with_http_info(wallet_id, address_id, opts)
546
+ data
547
+ end
548
+
549
+ # List payload signatures for an address.
550
+ # List payload signatures for an address.
551
+ # @param wallet_id [String] The ID of the wallet the address belongs to.
552
+ # @param address_id [String] The onchain address of the address whose payload signatures to fetch.
553
+ # @param [Hash] opts the optional parameters
554
+ # @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.
555
+ # @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.
556
+ # @return [Array<(PayloadSignatureList, Integer, Hash)>] PayloadSignatureList data, response status code and response headers
557
+ def list_payload_signatures_with_http_info(wallet_id, address_id, opts = {})
558
+ if @api_client.config.debugging
559
+ @api_client.config.logger.debug 'Calling API: AddressesApi.list_payload_signatures ...'
560
+ end
561
+ # verify the required parameter 'wallet_id' is set
562
+ if @api_client.config.client_side_validation && wallet_id.nil?
563
+ fail ArgumentError, "Missing the required parameter 'wallet_id' when calling AddressesApi.list_payload_signatures"
564
+ end
565
+ # verify the required parameter 'address_id' is set
566
+ if @api_client.config.client_side_validation && address_id.nil?
567
+ fail ArgumentError, "Missing the required parameter 'address_id' when calling AddressesApi.list_payload_signatures"
568
+ end
569
+ if @api_client.config.client_side_validation && !opts[:'page'].nil? && opts[:'page'].to_s.length > 5000
570
+ fail ArgumentError, 'invalid value for "opts[:"page"]" when calling AddressesApi.list_payload_signatures, the character length must be smaller than or equal to 5000.'
571
+ end
572
+
573
+ # resource path
574
+ local_var_path = '/v1/wallets/{wallet_id}/addresses/{address_id}/payload_signatures'.sub('{' + 'wallet_id' + '}', CGI.escape(wallet_id.to_s)).sub('{' + 'address_id' + '}', CGI.escape(address_id.to_s))
575
+
576
+ # query parameters
577
+ query_params = opts[:query_params] || {}
578
+ query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
579
+ query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
580
+
581
+ # header parameters
582
+ header_params = opts[:header_params] || {}
583
+ # HTTP header 'Accept' (if needed)
584
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
585
+
586
+ # form parameters
587
+ form_params = opts[:form_params] || {}
588
+
589
+ # http body (model)
590
+ post_body = opts[:debug_body]
591
+
592
+ # return_type
593
+ return_type = opts[:debug_return_type] || 'PayloadSignatureList'
594
+
595
+ # auth_names
596
+ auth_names = opts[:debug_auth_names] || []
597
+
598
+ new_options = opts.merge(
599
+ :operation => :"AddressesApi.list_payload_signatures",
600
+ :header_params => header_params,
601
+ :query_params => query_params,
602
+ :form_params => form_params,
603
+ :body => post_body,
604
+ :auth_names => auth_names,
605
+ :return_type => return_type
606
+ )
607
+
608
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
609
+ if @api_client.config.debugging
610
+ @api_client.config.logger.debug "API called: AddressesApi#list_payload_signatures\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
611
+ end
612
+ return data, status_code, headers
613
+ end
614
+
385
615
  # Request faucet funds for onchain address.
386
616
  # Request faucet funds to be sent to onchain address.
387
617
  # @param wallet_id [String] The ID of the wallet the address belongs to.
@@ -423,7 +653,7 @@ module Coinbase::Client
423
653
  # header parameters
424
654
  header_params = opts[:header_params] || {}
425
655
  # HTTP header 'Accept' (if needed)
426
- header_params['Accept'] = @api_client.select_header_accept(['application/json'])
656
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
427
657
 
428
658
  # form parameters
429
659
  form_params = opts[:form_params] || {}
@@ -4,9 +4,9 @@
4
4
  #This is the OpenAPI 3.0 specification for the Coinbase Platform APIs, used in conjunction with the Coinbase Platform SDKs.
5
5
 
6
6
  The version of the OpenAPI document: 0.0.1-alpha
7
- Contact: yuga.cohler@coinbase.com
7
+
8
8
  Generated by: https://openapi-generator.tech
9
- Generator version: 7.7.0
9
+ Generator version: 7.8.0
10
10
 
11
11
  =end
12
12
 
@@ -57,7 +57,7 @@ module Coinbase::Client
57
57
  # header parameters
58
58
  header_params = opts[:header_params] || {}
59
59
  # HTTP header 'Accept' (if needed)
60
- header_params['Accept'] = @api_client.select_header_accept(['application/json'])
60
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
61
61
 
62
62
  # form parameters
63
63
  form_params = opts[:form_params] || {}
@@ -0,0 +1,107 @@
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
+
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.8.0
10
+
11
+ =end
12
+
13
+ require 'cgi'
14
+
15
+ module Coinbase::Client
16
+ class BalanceHistoryApi
17
+ attr_accessor :api_client
18
+
19
+ def initialize(api_client = ApiClient.default)
20
+ @api_client = api_client
21
+ end
22
+ # Get address balance history for asset
23
+ # List the historical balance of an asset in a specific address.
24
+ # @param network_id [String] The ID of the blockchain network
25
+ # @param address_id [String] The ID of the address to fetch the historical balance for.
26
+ # @param asset_id [String] The symbol of the asset to fetch the historical balance for.
27
+ # @param [Hash] opts the optional parameters
28
+ # @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.
29
+ # @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.
30
+ # @return [AddressHistoricalBalanceList]
31
+ def list_address_historical_balance(network_id, address_id, asset_id, opts = {})
32
+ data, _status_code, _headers = list_address_historical_balance_with_http_info(network_id, address_id, asset_id, opts)
33
+ data
34
+ end
35
+
36
+ # Get address balance history for asset
37
+ # List the historical balance of an asset in a specific address.
38
+ # @param network_id [String] The ID of the blockchain network
39
+ # @param address_id [String] The ID of the address to fetch the historical balance for.
40
+ # @param asset_id [String] The symbol of the asset to fetch the historical balance for.
41
+ # @param [Hash] opts the optional parameters
42
+ # @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.
43
+ # @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.
44
+ # @return [Array<(AddressHistoricalBalanceList, Integer, Hash)>] AddressHistoricalBalanceList data, response status code and response headers
45
+ def list_address_historical_balance_with_http_info(network_id, address_id, asset_id, opts = {})
46
+ if @api_client.config.debugging
47
+ @api_client.config.logger.debug 'Calling API: BalanceHistoryApi.list_address_historical_balance ...'
48
+ end
49
+ # verify the required parameter 'network_id' is set
50
+ if @api_client.config.client_side_validation && network_id.nil?
51
+ fail ArgumentError, "Missing the required parameter 'network_id' when calling BalanceHistoryApi.list_address_historical_balance"
52
+ end
53
+ # verify the required parameter 'address_id' is set
54
+ if @api_client.config.client_side_validation && address_id.nil?
55
+ fail ArgumentError, "Missing the required parameter 'address_id' when calling BalanceHistoryApi.list_address_historical_balance"
56
+ end
57
+ # verify the required parameter 'asset_id' is set
58
+ if @api_client.config.client_side_validation && asset_id.nil?
59
+ fail ArgumentError, "Missing the required parameter 'asset_id' when calling BalanceHistoryApi.list_address_historical_balance"
60
+ end
61
+ if @api_client.config.client_side_validation && !opts[:'page'].nil? && opts[:'page'].to_s.length > 5000
62
+ fail ArgumentError, 'invalid value for "opts[:"page"]" when calling BalanceHistoryApi.list_address_historical_balance, the character length must be smaller than or equal to 5000.'
63
+ end
64
+
65
+ # resource path
66
+ 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))
67
+
68
+ # query parameters
69
+ query_params = opts[:query_params] || {}
70
+ query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
71
+ query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
72
+
73
+ # header parameters
74
+ header_params = opts[:header_params] || {}
75
+ # HTTP header 'Accept' (if needed)
76
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
77
+
78
+ # form parameters
79
+ form_params = opts[:form_params] || {}
80
+
81
+ # http body (model)
82
+ post_body = opts[:debug_body]
83
+
84
+ # return_type
85
+ return_type = opts[:debug_return_type] || 'AddressHistoricalBalanceList'
86
+
87
+ # auth_names
88
+ auth_names = opts[:debug_auth_names] || []
89
+
90
+ new_options = opts.merge(
91
+ :operation => :"BalanceHistoryApi.list_address_historical_balance",
92
+ :header_params => header_params,
93
+ :query_params => query_params,
94
+ :form_params => form_params,
95
+ :body => post_body,
96
+ :auth_names => auth_names,
97
+ :return_type => return_type
98
+ )
99
+
100
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
101
+ if @api_client.config.debugging
102
+ @api_client.config.logger.debug "API called: BalanceHistoryApi#list_address_historical_balance\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
103
+ end
104
+ return data, status_code, headers
105
+ end
106
+ end
107
+ end
@@ -4,9 +4,9 @@
4
4
  #This is the OpenAPI 3.0 specification for the Coinbase Platform APIs, used in conjunction with the Coinbase Platform SDKs.
5
5
 
6
6
  The version of the OpenAPI document: 0.0.1-alpha
7
- Contact: yuga.cohler@coinbase.com
7
+
8
8
  Generated by: https://openapi-generator.tech
9
- Generator version: 7.7.0
9
+ Generator version: 7.8.0
10
10
 
11
11
  =end
12
12
 
@@ -19,7 +19,7 @@ module Coinbase::Client
19
19
  def initialize(api_client = ApiClient.default)
20
20
  @api_client = api_client
21
21
  end
22
- # Get contract events
22
+ # List contract events
23
23
  # Retrieve events for a specific contract
24
24
  # @param network_id [String] Unique identifier for the blockchain network
25
25
  # @param protocol_name [String] Case-sensitive name of the blockchain protocol
@@ -36,7 +36,7 @@ module Coinbase::Client
36
36
  data
37
37
  end
38
38
 
39
- # Get contract events
39
+ # List contract events
40
40
  # Retrieve events for a specific contract
41
41
  # @param network_id [String] Unique identifier for the blockchain network
42
42
  # @param protocol_name [String] Case-sensitive name of the blockchain protocol
@@ -95,7 +95,7 @@ module Coinbase::Client
95
95
  # header parameters
96
96
  header_params = opts[:header_params] || {}
97
97
  # HTTP header 'Accept' (if needed)
98
- header_params['Accept'] = @api_client.select_header_accept(['application/json'])
98
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
99
99
 
100
100
  # form parameters
101
101
  form_params = opts[:form_params] || {}