Skip to content

Commit

Permalink
update latest ruby client (#182)
Browse files Browse the repository at this point in the history
### What changed? Why?
follow up change to this PR
#181

#### Qualified Impact
<!-- Please evaluate what components could be affected and what the
impact would be if there was an
error. How would this error be resolved, e.g. rollback a deploy, push a
new fix, disable a feature
flag, etc... -->
  • Loading branch information
howard-at-cb authored Sep 10, 2024
1 parent 4f4dc9c commit 7abcd0a
Show file tree
Hide file tree
Showing 5 changed files with 118 additions and 87 deletions.
6 changes: 5 additions & 1 deletion lib/coinbase/address.rb
Original file line number Diff line number Diff line change
Expand Up @@ -248,12 +248,16 @@ def addresses_api
@addresses_api ||= Coinbase::Client::ExternalAddressesApi.new(Coinbase.configuration.api_client)
end

def balance_history_api
@balance_history_api ||= Coinbase::Client::BalanceHistoryApi.new(Coinbase.configuration.api_client)
end

def stake_api
@stake_api ||= Coinbase::Client::StakeApi.new(Coinbase.configuration.api_client)
end

def list_page(asset_id, page)
addresses_api.list_address_historical_balance(
balance_history_api.list_address_historical_balance(
network.normalized_id,
id,
Coinbase::Asset.primary_denomination(asset_id).to_s,
Expand Down
3 changes: 3 additions & 0 deletions lib/coinbase/client.rb
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,8 @@
Coinbase::Client.autoload :CreateWalletRequest, 'coinbase/client/models/create_wallet_request'
Coinbase::Client.autoload :CreateWalletRequestWallet, 'coinbase/client/models/create_wallet_request_wallet'
Coinbase::Client.autoload :CreateWebhookRequest, 'coinbase/client/models/create_webhook_request'
Coinbase::Client.autoload :ERC20TransferEvent, 'coinbase/client/models/erc20_transfer_event'
Coinbase::Client.autoload :ERC721TransferEvent, 'coinbase/client/models/erc721_transfer_event'
Coinbase::Client.autoload :Error, 'coinbase/client/models/error'
Coinbase::Client.autoload :EthereumTransaction, 'coinbase/client/models/ethereum_transaction'
Coinbase::Client.autoload :EthereumTransactionAccess, 'coinbase/client/models/ethereum_transaction_access'
Expand Down Expand Up @@ -102,6 +104,7 @@
# APIs
Coinbase::Client.autoload :AddressesApi, 'coinbase/client/api/addresses_api'
Coinbase::Client.autoload :AssetsApi, 'coinbase/client/api/assets_api'
Coinbase::Client.autoload :BalanceHistoryApi, 'coinbase/client/api/balance_history_api'
Coinbase::Client.autoload :ContractEventsApi, 'coinbase/client/api/contract_events_api'
Coinbase::Client.autoload :ContractInvocationsApi, 'coinbase/client/api/contract_invocations_api'
Coinbase::Client.autoload :ExternalAddressesApi, 'coinbase/client/api/external_addresses_api'
Expand Down
107 changes: 107 additions & 0 deletions lib/coinbase/client/api/balance_history_api.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
=begin
#Coinbase Platform API
#This is the OpenAPI 3.0 specification for the Coinbase Platform APIs, used in conjunction with the Coinbase Platform SDKs.
The version of the OpenAPI document: 0.0.1-alpha
Generated by: https://openapi-generator.tech
Generator version: 7.7.0
=end

require 'cgi'

module Coinbase::Client
class BalanceHistoryApi
attr_accessor :api_client

def initialize(api_client = ApiClient.default)
@api_client = api_client
end
# Get address balance history for asset
# List the historical balance of an asset in a specific address.
# @param network_id [String] The ID of the blockchain network
# @param address_id [String] The ID of the address to fetch the historical balance for.
# @param asset_id [String] The symbol of the asset to fetch the historical balance for.
# @param [Hash] opts the optional parameters
# @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.
# @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.
# @return [AddressHistoricalBalanceList]
def list_address_historical_balance(network_id, address_id, asset_id, opts = {})
data, _status_code, _headers = list_address_historical_balance_with_http_info(network_id, address_id, asset_id, opts)
data
end

# Get address balance history for asset
# List the historical balance of an asset in a specific address.
# @param network_id [String] The ID of the blockchain network
# @param address_id [String] The ID of the address to fetch the historical balance for.
# @param asset_id [String] The symbol of the asset to fetch the historical balance for.
# @param [Hash] opts the optional parameters
# @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.
# @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.
# @return [Array<(AddressHistoricalBalanceList, Integer, Hash)>] AddressHistoricalBalanceList data, response status code and response headers
def list_address_historical_balance_with_http_info(network_id, address_id, asset_id, opts = {})
if @api_client.config.debugging
@api_client.config.logger.debug 'Calling API: BalanceHistoryApi.list_address_historical_balance ...'
end
# verify the required parameter 'network_id' is set
if @api_client.config.client_side_validation && network_id.nil?
fail ArgumentError, "Missing the required parameter 'network_id' when calling BalanceHistoryApi.list_address_historical_balance"
end
# verify the required parameter 'address_id' is set
if @api_client.config.client_side_validation && address_id.nil?
fail ArgumentError, "Missing the required parameter 'address_id' when calling BalanceHistoryApi.list_address_historical_balance"
end
# verify the required parameter 'asset_id' is set
if @api_client.config.client_side_validation && asset_id.nil?
fail ArgumentError, "Missing the required parameter 'asset_id' when calling BalanceHistoryApi.list_address_historical_balance"
end
if @api_client.config.client_side_validation && !opts[:'page'].nil? && opts[:'page'].to_s.length > 5000
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.'
end

# resource path
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))

# query parameters
query_params = opts[:query_params] || {}
query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?

# header parameters
header_params = opts[:header_params] || {}
# HTTP header 'Accept' (if needed)
header_params['Accept'] = @api_client.select_header_accept(['application/json'])

# form parameters
form_params = opts[:form_params] || {}

# http body (model)
post_body = opts[:debug_body]

# return_type
return_type = opts[:debug_return_type] || 'AddressHistoricalBalanceList'

# auth_names
auth_names = opts[:debug_auth_names] || []

new_options = opts.merge(
:operation => :"BalanceHistoryApi.list_address_historical_balance",
:header_params => header_params,
:query_params => query_params,
:form_params => form_params,
:body => post_body,
:auth_names => auth_names,
:return_type => return_type
)

data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
if @api_client.config.debugging
@api_client.config.logger.debug "API called: BalanceHistoryApi#list_address_historical_balance\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
end
return data, status_code, headers
end
end
end
85 changes: 0 additions & 85 deletions lib/coinbase/client/api/external_addresses_api.rb
Original file line number Diff line number Diff line change
Expand Up @@ -94,91 +94,6 @@ def get_external_address_balance_with_http_info(network_id, address_id, asset_id
return data, status_code, headers
end

# Get address balance history for asset
# List the historical balance of an asset in a specific address.
# @param network_id [String] The ID of the blockchain network
# @param address_id [String] The ID of the address to fetch the historical balance for.
# @param asset_id [String] The symbol of the asset to fetch the historical balance for.
# @param [Hash] opts the optional parameters
# @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.
# @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.
# @return [AddressHistoricalBalanceList]
def list_address_historical_balance(network_id, address_id, asset_id, opts = {})
data, _status_code, _headers = list_address_historical_balance_with_http_info(network_id, address_id, asset_id, opts)
data
end

# Get address balance history for asset
# List the historical balance of an asset in a specific address.
# @param network_id [String] The ID of the blockchain network
# @param address_id [String] The ID of the address to fetch the historical balance for.
# @param asset_id [String] The symbol of the asset to fetch the historical balance for.
# @param [Hash] opts the optional parameters
# @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.
# @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.
# @return [Array<(AddressHistoricalBalanceList, Integer, Hash)>] AddressHistoricalBalanceList data, response status code and response headers
def list_address_historical_balance_with_http_info(network_id, address_id, asset_id, opts = {})
if @api_client.config.debugging
@api_client.config.logger.debug 'Calling API: ExternalAddressesApi.list_address_historical_balance ...'
end
# verify the required parameter 'network_id' is set
if @api_client.config.client_side_validation && network_id.nil?
fail ArgumentError, "Missing the required parameter 'network_id' when calling ExternalAddressesApi.list_address_historical_balance"
end
# verify the required parameter 'address_id' is set
if @api_client.config.client_side_validation && address_id.nil?
fail ArgumentError, "Missing the required parameter 'address_id' when calling ExternalAddressesApi.list_address_historical_balance"
end
# verify the required parameter 'asset_id' is set
if @api_client.config.client_side_validation && asset_id.nil?
fail ArgumentError, "Missing the required parameter 'asset_id' when calling ExternalAddressesApi.list_address_historical_balance"
end
if @api_client.config.client_side_validation && !opts[:'page'].nil? && opts[:'page'].to_s.length > 5000
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.'
end

# resource path
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))

# query parameters
query_params = opts[:query_params] || {}
query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?

# header parameters
header_params = opts[:header_params] || {}
# HTTP header 'Accept' (if needed)
header_params['Accept'] = @api_client.select_header_accept(['application/json'])

# form parameters
form_params = opts[:form_params] || {}

# http body (model)
post_body = opts[:debug_body]

# return_type
return_type = opts[:debug_return_type] || 'AddressHistoricalBalanceList'

# auth_names
auth_names = opts[:debug_auth_names] || []

new_options = opts.merge(
:operation => :"ExternalAddressesApi.list_address_historical_balance",
:header_params => header_params,
:query_params => query_params,
:form_params => form_params,
:body => post_body,
:auth_names => auth_names,
:return_type => return_type
)

data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
if @api_client.config.debugging
@api_client.config.logger.debug "API called: ExternalAddressesApi#list_address_historical_balance\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
end
return data, status_code, headers
end

# List transactions for an address.
# List all transactions that interact with the address.
# @param network_id [String] The ID of the blockchain network
Expand Down
4 changes: 3 additions & 1 deletion spec/support/shared_examples/address_balances.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,11 @@

shared_examples 'an address that supports balance queries' do |_operation|
let(:external_addresses_api) { instance_double(Coinbase::Client::ExternalAddressesApi) }
let(:balance_history_api) { instance_double(Coinbase::Client::BalanceHistoryApi) }

before do
allow(Coinbase::Client::ExternalAddressesApi).to receive(:new).and_return(external_addresses_api)
allow(Coinbase::Client::BalanceHistoryApi).to receive(:new).and_return(balance_history_api)
end

describe '#balances' do
Expand Down Expand Up @@ -114,7 +116,7 @@
end

before do
allow(external_addresses_api)
allow(balance_history_api)
.to receive(:list_address_historical_balance)
.with(normalized_network_id, address_id, primary_denomination, { limit: 100, page: nil })
.and_return(response)
Expand Down

0 comments on commit 7abcd0a

Please sign in to comment.