coinbase-sdk 0.0.16 → 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.
Files changed (119) hide show
  1. checksums.yaml +4 -4
  2. data/lib/coinbase/address/wallet_address.rb +24 -17
  3. data/lib/coinbase/address.rb +17 -19
  4. data/lib/coinbase/asset.rb +11 -8
  5. data/lib/coinbase/client/api/addresses_api.rb +1 -1
  6. data/lib/coinbase/client/api/assets_api.rb +1 -1
  7. data/lib/coinbase/client/api/contract_events_api.rb +18 -10
  8. data/lib/coinbase/client/api/external_addresses_api.rb +1 -1
  9. data/lib/coinbase/client/api/networks_api.rb +1 -1
  10. data/lib/coinbase/client/api/server_signers_api.rb +1 -1
  11. data/lib/coinbase/client/api/stake_api.rb +1 -242
  12. data/lib/coinbase/client/api/trades_api.rb +1 -1
  13. data/lib/coinbase/client/api/transfers_api.rb +1 -1
  14. data/lib/coinbase/client/api/users_api.rb +1 -1
  15. data/lib/coinbase/client/api/validators_api.rb +3 -3
  16. data/lib/coinbase/client/api/wallet_stake_api.rb +263 -0
  17. data/lib/coinbase/client/api/wallets_api.rb +1 -1
  18. data/lib/coinbase/client/api/webhooks_api.rb +1 -1
  19. data/lib/coinbase/client/api_client.rb +1 -1
  20. data/lib/coinbase/client/api_error.rb +1 -1
  21. data/lib/coinbase/client/configuration.rb +11 -1
  22. data/lib/coinbase/client/models/address.rb +22 -5
  23. data/lib/coinbase/client/models/address_balance_list.rb +1 -1
  24. data/lib/coinbase/client/models/address_historical_balance_list.rb +1 -1
  25. data/lib/coinbase/client/models/address_list.rb +1 -1
  26. data/lib/coinbase/client/models/asset.rb +1 -1
  27. data/lib/coinbase/client/models/balance.rb +1 -1
  28. data/lib/coinbase/client/models/broadcast_staking_operation_request.rb +1 -1
  29. data/lib/coinbase/client/models/broadcast_trade_request.rb +1 -1
  30. data/lib/coinbase/client/models/broadcast_transfer_request.rb +1 -1
  31. data/lib/coinbase/client/models/build_staking_operation_request.rb +1 -1
  32. data/lib/coinbase/client/models/contract_event.rb +100 -9
  33. data/lib/coinbase/client/models/contract_event_list.rb +1 -1
  34. data/lib/coinbase/client/models/create_address_request.rb +15 -5
  35. data/lib/coinbase/client/models/create_server_signer_request.rb +1 -1
  36. data/lib/coinbase/client/models/create_staking_operation_request.rb +1 -1
  37. data/lib/coinbase/client/models/create_trade_request.rb +1 -1
  38. data/lib/coinbase/client/models/create_transfer_request.rb +1 -1
  39. data/lib/coinbase/client/models/create_wallet_request.rb +1 -1
  40. data/lib/coinbase/client/models/create_wallet_request_wallet.rb +1 -1
  41. data/lib/coinbase/client/models/create_webhook_request.rb +1 -1
  42. data/lib/coinbase/client/models/error.rb +1 -1
  43. data/lib/coinbase/client/models/ethereum_validator_metadata.rb +12 -12
  44. data/lib/coinbase/client/models/faucet_transaction.rb +1 -1
  45. data/lib/coinbase/client/models/feature.rb +3 -2
  46. data/lib/coinbase/client/models/feature_set.rb +1 -1
  47. data/lib/coinbase/client/models/fetch_historical_staking_balances200_response.rb +1 -1
  48. data/lib/coinbase/client/models/fetch_staking_rewards200_response.rb +1 -1
  49. data/lib/coinbase/client/models/fetch_staking_rewards_request.rb +1 -1
  50. data/lib/coinbase/client/models/get_staking_context_request.rb +1 -1
  51. data/lib/coinbase/client/models/historical_balance.rb +1 -1
  52. data/lib/coinbase/client/models/network.rb +15 -5
  53. data/lib/coinbase/client/models/network_identifier.rb +1 -1
  54. data/lib/coinbase/client/models/seed_creation_event.rb +1 -1
  55. data/lib/coinbase/client/models/seed_creation_event_result.rb +1 -1
  56. data/lib/coinbase/client/models/server_signer.rb +1 -1
  57. data/lib/coinbase/client/models/server_signer_event.rb +1 -1
  58. data/lib/coinbase/client/models/server_signer_event_event.rb +1 -1
  59. data/lib/coinbase/client/models/server_signer_event_list.rb +1 -1
  60. data/lib/coinbase/client/models/server_signer_list.rb +1 -1
  61. data/lib/coinbase/client/models/signature_creation_event.rb +1 -1
  62. data/lib/coinbase/client/models/signature_creation_event_result.rb +1 -1
  63. data/lib/coinbase/client/models/signed_voluntary_exit_message_metadata.rb +1 -1
  64. data/lib/coinbase/client/models/sponsored_send.rb +1 -1
  65. data/lib/coinbase/client/models/staking_balance.rb +1 -1
  66. data/lib/coinbase/client/models/staking_context.rb +1 -1
  67. data/lib/coinbase/client/models/staking_context_context.rb +1 -1
  68. data/lib/coinbase/client/models/staking_operation.rb +3 -3
  69. data/lib/coinbase/client/models/staking_operation_metadata.rb +1 -1
  70. data/lib/coinbase/client/models/staking_reward.rb +1 -1
  71. data/lib/coinbase/client/models/staking_reward_format.rb +1 -1
  72. data/lib/coinbase/client/models/staking_reward_usd_value.rb +1 -1
  73. data/lib/coinbase/client/models/trade.rb +1 -1
  74. data/lib/coinbase/client/models/trade_list.rb +1 -1
  75. data/lib/coinbase/client/models/transaction.rb +16 -6
  76. data/lib/coinbase/client/models/transaction_type.rb +1 -1
  77. data/lib/coinbase/client/models/transfer.rb +1 -1
  78. data/lib/coinbase/client/models/transfer_list.rb +1 -1
  79. data/lib/coinbase/client/models/update_webhook_request.rb +1 -1
  80. data/lib/coinbase/client/models/user.rb +1 -1
  81. data/lib/coinbase/client/models/validator.rb +24 -3
  82. data/lib/coinbase/client/models/validator_details.rb +1 -1
  83. data/lib/coinbase/client/models/validator_list.rb +1 -1
  84. data/lib/coinbase/client/models/validator_status.rb +52 -0
  85. data/lib/coinbase/client/models/wallet.rb +1 -1
  86. data/lib/coinbase/client/models/wallet_list.rb +1 -1
  87. data/lib/coinbase/client/models/webhook.rb +1 -1
  88. data/lib/coinbase/client/models/webhook_event_filter.rb +1 -1
  89. data/lib/coinbase/client/models/webhook_event_type.rb +1 -1
  90. data/lib/coinbase/client/models/webhook_list.rb +1 -1
  91. data/lib/coinbase/client/version.rb +1 -1
  92. data/lib/coinbase/client.rb +3 -1
  93. data/lib/coinbase/constants.rb +0 -10
  94. data/lib/coinbase/contract_event.rb +104 -0
  95. data/lib/coinbase/correlation.rb +30 -0
  96. data/lib/coinbase/destination.rb +11 -9
  97. data/lib/coinbase/errors.rb +7 -0
  98. data/lib/coinbase/middleware.rb +2 -0
  99. data/lib/coinbase/network.rb +103 -20
  100. data/lib/coinbase/smart_contract.rb +106 -0
  101. data/lib/coinbase/staking_balance.rb +11 -5
  102. data/lib/coinbase/staking_operation.rb +134 -36
  103. data/lib/coinbase/staking_reward.rb +1 -1
  104. data/lib/coinbase/trade.rb +10 -9
  105. data/lib/coinbase/transaction.rb +6 -0
  106. data/lib/coinbase/transfer.rb +11 -10
  107. data/lib/coinbase/validator.rb +18 -10
  108. data/lib/coinbase/version.rb +5 -0
  109. data/lib/coinbase/wallet.rb +137 -145
  110. data/lib/coinbase/webhook.rb +181 -0
  111. data/lib/coinbase.rb +50 -19
  112. metadata +9 -9
  113. data/lib/coinbase/client/models/ethereum_validator.rb +0 -374
  114. data/lib/coinbase/client/models/get_validator200_response.rb +0 -221
  115. data/lib/coinbase/client/models/get_validator200_response_validator.rb +0 -214
  116. data/lib/coinbase/client/models/native_eth_staking_context.rb +0 -254
  117. data/lib/coinbase/client/models/partial_eth_staking_context.rb +0 -254
  118. data/lib/coinbase/client/models/validator_list_data.rb +0 -216
  119. data/lib/coinbase/user.rb +0 -65
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: addb2d81db155719e42cf1c4057498fc8094fcf436e3a67276870b3ff77a2d69
4
- data.tar.gz: 6e1a0078557be2d0fe83979c66ec9415e77edbef0b6f72ef510d69aaf7580041
3
+ metadata.gz: 1c8786bfb21ed8e6e8533244582389e90f94a7b5587b4995666ad5e02424fb30
4
+ data.tar.gz: cb4dca1f054511410761372ced09d65491ee38e21b1d9ad8b2fb90ce08e80869
5
5
  SHA512:
6
- metadata.gz: 22648511bb07f598908f4b81fc87a8d06279e122b809d21a294e38b48cd54c65490a7c5009ebf6e013baffd8de7fba174017dbe6f75777e489646d9b735c885a
7
- data.tar.gz: 623ecc923feb473a6a491ae07a536216ac5bf7f5648bf6e9eab8eca956ce88232973d98a376c67a61f71fade05587ba6e07300f7766d7ba3436397fce55ea994
6
+ metadata.gz: 2226115a66b26e4bd42429506b91ce04617440e4ce79744eddea43881d53b6814341e110fb4adf0e6967ef7e2ee57b5f13aacb44d074bb170564808bc86ec216
7
+ data.tar.gz: 7ee730264721461357d56f0ad7e0630036ca85d28ab120101c6813e64fca9427d919fc1a35d8c49ffc39cf1eb9a8ca34fa492211c4c86397afd88a82f685f0c8
@@ -52,7 +52,7 @@ module Coinbase
52
52
  amount: amount,
53
53
  asset_id: asset_id,
54
54
  destination: destination,
55
- network_id: network_id,
55
+ network: network,
56
56
  wallet_id: wallet_id,
57
57
  gasless: gasless
58
58
  )
@@ -80,7 +80,7 @@ module Coinbase
80
80
  amount: amount,
81
81
  from_asset_id: from_asset_id,
82
82
  to_asset_id: to_asset_id,
83
- network_id: network_id,
83
+ network: network,
84
84
  wallet_id: wallet_id
85
85
  )
86
86
 
@@ -100,11 +100,16 @@ module Coinbase
100
100
  # @param asset_id [Symbol] The ID of the Asset to stake. For Ether, :eth, :gwei, and :wei are supported.
101
101
  # @param mode [Symbol] The staking mode. Defaults to :default.
102
102
  # @param options [Hash] Additional options for the stake operation
103
+ # @param interval_seconds [Integer] The number of seconds to wait between polling for updates. Defaults to 5.
104
+ # @param timeout_seconds [Integer] The number of seconds to wait before timing out. Defaults to 600.
103
105
  # @return [Coinbase::StakingOperation] The staking operation
104
- def stake(amount, asset_id, mode: :default, options: {})
106
+ # @raise [Timeout::Error] if the Staking Operation takes longer than the given timeout.
107
+ def stake(amount, asset_id, mode: :default, options: {}, interval_seconds: 5, timeout_seconds: 600)
105
108
  validate_can_perform_staking_action!(amount, asset_id, 'stakeable_balance', mode, options)
106
109
 
107
- complete_staking_operation(amount, asset_id, 'stake', mode: mode, options: options)
110
+ op = StakingOperation.create(amount, network, asset_id, id, wallet_id, 'stake', mode, options)
111
+
112
+ op.complete(@key, interval_seconds: interval_seconds, timeout_seconds: timeout_seconds)
108
113
  end
109
114
 
110
115
  # Unstakes the given amount of the given Asset
@@ -112,11 +117,16 @@ module Coinbase
112
117
  # @param asset_id [Symbol] The ID of the Asset to stake. For Ether, :eth, :gwei, and :wei are supported.
113
118
  # @param mode [Symbol] The staking mode. Defaults to :default.
114
119
  # @param options [Hash] Additional options for the stake operation
120
+ # @param interval_seconds [Integer] The number of seconds to wait between polling for updates. Defaults to 5.
121
+ # @param timeout_seconds [Integer] The number of seconds to wait before timing out. Defaults to 600.
115
122
  # @return [Coinbase::StakingOperation] The staking operation
116
- def unstake(amount, asset_id, mode: :default, options: {})
123
+ # @raise [Timeout::Error] if the Staking Operation takes longer than the given timeout.
124
+ def unstake(amount, asset_id, mode: :default, options: {}, interval_seconds: 5, timeout_seconds: 600)
117
125
  validate_can_perform_staking_action!(amount, asset_id, 'unstakeable_balance', mode, options)
118
126
 
119
- complete_staking_operation(amount, asset_id, 'unstake', mode: mode, options: options)
127
+ op = StakingOperation.create(amount, network, asset_id, id, wallet_id, 'unstake', mode, options)
128
+
129
+ op.complete(@key, interval_seconds: interval_seconds, timeout_seconds: timeout_seconds)
120
130
  end
121
131
 
122
132
  # Claims the given amount of the given Asset
@@ -124,11 +134,16 @@ module Coinbase
124
134
  # @param asset_id [Symbol] The ID of the Asset to stake. For Ether, :eth, :gwei, and :wei are supported.
125
135
  # @param mode [Symbol] The staking mode. Defaults to :default.
126
136
  # @param options [Hash] Additional options for the stake operation
137
+ # @param interval_seconds [Integer] The number of seconds to wait between polling for updates. Defaults to 5.
138
+ # @param timeout_seconds [Integer] The number of seconds to wait before timing out. Defaults to 600.
127
139
  # @return [Coinbase::StakingOperation] The staking operation
128
- def claim_stake(amount, asset_id, mode: :default, options: {})
140
+ # @raise [Timeout::Error] if the Staking Operation takes longer than the given timeout.
141
+ def claim_stake(amount, asset_id, mode: :default, options: {}, interval_seconds: 5, timeout_seconds: 600)
129
142
  validate_can_perform_staking_action!(amount, asset_id, 'claimable_balance', mode, options)
130
143
 
131
- complete_staking_operation(amount, asset_id, 'claim_stake', mode: mode, options: options)
144
+ op = StakingOperation.create(amount, network, asset_id, id, wallet_id, 'claim_stake', mode, options)
145
+
146
+ op.complete(@key, interval_seconds: interval_seconds, timeout_seconds: timeout_seconds)
132
147
  end
133
148
 
134
149
  # Returns whether the Address has a private key backing it to sign transactions.
@@ -164,7 +179,7 @@ module Coinbase
164
179
  # Returns a String representation of the WalletAddress.
165
180
  # @return [String] a String representation of the WalletAddress
166
181
  def to_s
167
- "Coinbase::Address{id: '#{id}', network_id: '#{network_id}', wallet_id: '#{wallet_id}'}"
182
+ "Coinbase::Address{id: '#{id}', network_id: '#{network.id}', wallet_id: '#{wallet_id}'}"
168
183
  end
169
184
 
170
185
  private
@@ -183,13 +198,5 @@ module Coinbase
183
198
 
184
199
  raise InsufficientFundsError.new(amount, current_balance)
185
200
  end
186
-
187
- def complete_staking_operation(amount, asset_id, action, mode: :default, options: {})
188
- op = StakingOperation.create(amount, network_id, asset_id, id, wallet_id, action, mode, options)
189
- op.transactions.each do |transaction|
190
- transaction.sign(@key)
191
- end
192
- op.broadcast!
193
- end
194
201
  end
195
202
  end
@@ -1,25 +1,23 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Coinbase
4
- # A representation of a blockchain Address, which is a user-controlled account on a Network. Addresses are used to
5
- # send and receive Assets.
6
- # @attr_reader [Symbol] network_id The Network ID
7
- # @attr_reader [String] id The onchain Address ID
4
+ # A representation of a blockchain Address, which is a user-controlled account on a Network.
5
+ # Addresses are used to send and receive Assets.
8
6
  class Address
9
- attr_reader :network_id, :id
7
+ attr_reader :network, :id
10
8
 
11
9
  # Returns a new Address object.
12
- # @param network_id [Symbol] The Network ID
10
+ # @param network [Coinbase::Network, Symbol] The Network or Network ID
13
11
  # @param id [String] The onchain Address ID
14
- def initialize(network_id, id)
15
- @network_id = Coinbase.to_sym(network_id)
12
+ def initialize(network, id)
13
+ @network = Coinbase::Network.from_id(network)
16
14
  @id = id
17
15
  end
18
16
 
19
17
  # Returns a String representation of the Address.
20
18
  # @return [String] a String representation of the Address
21
19
  def to_s
22
- "Coinbase::Address{id: '#{id}', network_id: '#{network_id}'}"
20
+ Coinbase.pretty_print_object(self.class, id: id, network_id: network.id)
23
21
  end
24
22
 
25
23
  # Same as to_s.
@@ -39,7 +37,7 @@ module Coinbase
39
37
  # in ETH.
40
38
  def balances
41
39
  response = Coinbase.call_api do
42
- addresses_api.list_external_address_balances(Coinbase.normalize_network(network_id), id)
40
+ addresses_api.list_external_address_balances(network.normalized_id, id)
43
41
  end
44
42
 
45
43
  Coinbase::BalanceMap.from_balances(response.data)
@@ -51,7 +49,7 @@ module Coinbase
51
49
  def balance(asset_id)
52
50
  response = Coinbase.call_api do
53
51
  addresses_api.get_external_address_balance(
54
- Coinbase.normalize_network(network_id),
52
+ network.normalized_id,
55
53
  id,
56
54
  Coinbase::Asset.primary_denomination(asset_id).to_s
57
55
  )
@@ -82,7 +80,7 @@ module Coinbase
82
80
  def faucet
83
81
  Coinbase.call_api do
84
82
  Coinbase::FaucetTransaction.new(
85
- addresses_api.request_external_faucet_funds(Coinbase.normalize_network(network_id), id)
83
+ addresses_api.request_external_faucet_funds(network.normalized_id, id)
86
84
  )
87
85
  end
88
86
  end
@@ -97,7 +95,7 @@ module Coinbase
97
95
  def build_stake_operation(amount, asset_id, mode: :default, options: {})
98
96
  validate_can_perform_staking_action!(amount, asset_id, 'stakeable_balance', mode, options)
99
97
 
100
- StakingOperation.build(amount, network_id, asset_id, id, 'stake', mode, options)
98
+ StakingOperation.build(amount, network, asset_id, id, 'stake', mode, options)
101
99
  end
102
100
 
103
101
  # Builds an unstake operation for the supplied asset.
@@ -109,7 +107,7 @@ module Coinbase
109
107
  def build_unstake_operation(amount, asset_id, mode: :default, options: {})
110
108
  validate_can_perform_staking_action!(amount, asset_id, 'unstakeable_balance', mode, options)
111
109
 
112
- StakingOperation.build(amount, network_id, asset_id, id, 'unstake', mode, options)
110
+ StakingOperation.build(amount, network, asset_id, id, 'unstake', mode, options)
113
111
  end
114
112
 
115
113
  # Builds a claim_stake operation for the supplied asset.
@@ -121,7 +119,7 @@ module Coinbase
121
119
  def build_claim_stake_operation(amount, asset_id, mode: :default, options: {})
122
120
  validate_can_perform_staking_action!(amount, asset_id, 'claimable_balance', mode, options)
123
121
 
124
- StakingOperation.build(amount, network_id, asset_id, id, 'claim_stake', mode, options)
122
+ StakingOperation.build(amount, network, asset_id, id, 'claim_stake', mode, options)
125
123
  end
126
124
 
127
125
  # Retrieves the balances used for staking for the supplied asset.
@@ -137,7 +135,7 @@ module Coinbase
137
135
  stake_api.get_staking_context(
138
136
  {
139
137
  asset_id: asset_id,
140
- network_id: Coinbase.normalize_network(network_id),
138
+ network_id: network.normalized_id,
141
139
  address_id: id,
142
140
  options: {
143
141
  mode: mode
@@ -197,7 +195,7 @@ module Coinbase
197
195
  # @return [Enumerable<Coinbase::StakingReward>] The staking rewards
198
196
  def staking_rewards(asset_id, start_time: DateTime.now.prev_week(1), end_time: DateTime.now, format: :usd)
199
197
  StakingReward.list(
200
- network_id,
198
+ network,
201
199
  asset_id,
202
200
  [id],
203
201
  start_time: start_time,
@@ -213,7 +211,7 @@ module Coinbase
213
211
  # @return [Enumerable<Coinbase::StakingBalance>] The staking rewards
214
212
  def historical_staking_balances(asset_id, start_time: DateTime.now.prev_week(1), end_time: DateTime.now)
215
213
  StakingBalance.list(
216
- network_id,
214
+ network,
217
215
  asset_id,
218
216
  id,
219
217
  start_time: start_time,
@@ -238,7 +236,7 @@ module Coinbase
238
236
 
239
237
  def list_page(asset_id, page)
240
238
  addresses_api.list_address_historical_balance(
241
- Coinbase.normalize_network(network_id),
239
+ network.normalized_id,
242
240
  id,
243
241
  Coinbase::Asset.primary_denomination(asset_id).to_s,
244
242
  { limit: DEFAULT_PAGE_LIMIT, page: page }
@@ -35,7 +35,7 @@ module Coinbase
35
35
  end
36
36
 
37
37
  new(
38
- network_id: Coinbase.to_sym(asset_model.network_id),
38
+ network: Coinbase.to_sym(asset_model.network_id),
39
39
  asset_id: asset_id || Coinbase.to_sym(asset_model.asset_id),
40
40
  address_id: asset_model.contract_address,
41
41
  decimals: decimals
@@ -43,12 +43,15 @@ module Coinbase
43
43
  end
44
44
 
45
45
  # Fetches the Asset with the provided Asset ID.
46
+ # @param network [Coinbase::Network, Symbol] The Network or Network ID
46
47
  # @param asset_id [Symbol] The Asset ID
47
48
  # @return [Coinbase::Asset] The Asset
48
- def fetch(network_id, asset_id)
49
+ def fetch(network, asset_id)
50
+ network = Coinbase::Network.from_id(network)
51
+
49
52
  asset_model = Coinbase.call_api do
50
53
  assets_api.get_asset(
51
- Coinbase.normalize_network(network_id),
54
+ network.normalized_id,
52
55
  primary_denomination(asset_id).to_s
53
56
  )
54
57
  end
@@ -65,18 +68,18 @@ module Coinbase
65
68
 
66
69
  # Returns a new Asset object. Do not use this method. Instead, use the Asset constants defined in
67
70
  # the Coinbase module.
68
- # @param network_id [Symbol] The ID of the Network to which the Asset belongs
71
+ # @param network [Symbol] The Network or Network ID to which the Asset belongs
69
72
  # @param asset_id [Symbol] The Asset ID
70
73
  # @param address_id [String] (Optional) The Asset's address ID, if one exists
71
74
  # @param decimals [Integer] (Optional) The number of decimal places the Asset uses
72
- def initialize(network_id:, asset_id:, decimals:, address_id: nil)
73
- @network_id = network_id
75
+ def initialize(network:, asset_id:, decimals:, address_id: nil)
76
+ @network = Coinbase::Network.from_id(network)
74
77
  @asset_id = asset_id
75
78
  @address_id = address_id
76
79
  @decimals = decimals
77
80
  end
78
81
 
79
- attr_reader :network_id, :asset_id, :address_id, :decimals
82
+ attr_reader :network, :asset_id, :address_id, :decimals
80
83
 
81
84
  # Converts the amount of the Asset from atomic to whole units.
82
85
  # @param atomic_amount [Integer, Float, BigDecimal] The atomic amount to convert to whole units.
@@ -103,7 +106,7 @@ module Coinbase
103
106
  # Returns a string representation of the Asset.
104
107
  # @return [String] a string representation of the Asset
105
108
  def to_s
106
- "Coinbase::Asset{network_id: '#{network_id}', asset_id: '#{asset_id}', decimals: '#{decimals}'" \
109
+ "Coinbase::Asset{network_id: '#{network.id}', asset_id: '#{asset_id}', decimals: '#{decimals}'" \
107
110
  "#{address_id.nil? ? '' : ", address_id: '#{address_id}'"}}"
108
111
  end
109
112
 
@@ -6,7 +6,7 @@
6
6
  The version of the OpenAPI document: 0.0.1-alpha
7
7
  Contact: yuga.cohler@coinbase.com
8
8
  Generated by: https://openapi-generator.tech
9
- Generator version: 7.6.0
9
+ Generator version: 7.7.0
10
10
 
11
11
  =end
12
12
 
@@ -6,7 +6,7 @@
6
6
  The version of the OpenAPI document: 0.0.1-alpha
7
7
  Contact: yuga.cohler@coinbase.com
8
8
  Generated by: https://openapi-generator.tech
9
- Generator version: 7.6.0
9
+ Generator version: 7.7.0
10
10
 
11
11
  =end
12
12
 
@@ -6,7 +6,7 @@
6
6
  The version of the OpenAPI document: 0.0.1-alpha
7
7
  Contact: yuga.cohler@coinbase.com
8
8
  Generated by: https://openapi-generator.tech
9
- Generator version: 7.6.0
9
+ Generator version: 7.7.0
10
10
 
11
11
  =end
12
12
 
@@ -24,15 +24,15 @@ module Coinbase::Client
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
26
26
  # @param contract_address [String] EVM address of the smart contract (42 characters, including &#39;0x&#39;, in lowercase)
27
+ # @param contract_name [String] Case-sensitive name of the specific contract within the project
28
+ # @param event_name [String] Case-sensitive name of the event to filter for in the contract&#39;s logs
27
29
  # @param from_block_height [Integer] Lower bound of the block range to query (inclusive)
28
30
  # @param to_block_height [Integer] Upper bound of the block range to query (inclusive)
29
31
  # @param [Hash] opts the optional parameters
30
- # @option opts [String] :contract_name Case-sensitive name of the specific contract within the project
31
- # @option opts [String] :event_name Case-sensitive name of the event to filter for in the contract&#39;s logs
32
32
  # @option opts [String] :next_page Pagination token for retrieving the next set of results
33
33
  # @return [ContractEventList]
34
- def list_contract_events(network_id, protocol_name, contract_address, from_block_height, to_block_height, opts = {})
35
- data, _status_code, _headers = list_contract_events_with_http_info(network_id, protocol_name, contract_address, from_block_height, to_block_height, opts)
34
+ def list_contract_events(network_id, protocol_name, contract_address, contract_name, event_name, from_block_height, to_block_height, opts = {})
35
+ data, _status_code, _headers = list_contract_events_with_http_info(network_id, protocol_name, contract_address, contract_name, event_name, from_block_height, to_block_height, opts)
36
36
  data
37
37
  end
38
38
 
@@ -41,14 +41,14 @@ module Coinbase::Client
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
43
43
  # @param contract_address [String] EVM address of the smart contract (42 characters, including &#39;0x&#39;, in lowercase)
44
+ # @param contract_name [String] Case-sensitive name of the specific contract within the project
45
+ # @param event_name [String] Case-sensitive name of the event to filter for in the contract&#39;s logs
44
46
  # @param from_block_height [Integer] Lower bound of the block range to query (inclusive)
45
47
  # @param to_block_height [Integer] Upper bound of the block range to query (inclusive)
46
48
  # @param [Hash] opts the optional parameters
47
- # @option opts [String] :contract_name Case-sensitive name of the specific contract within the project
48
- # @option opts [String] :event_name Case-sensitive name of the event to filter for in the contract&#39;s logs
49
49
  # @option opts [String] :next_page Pagination token for retrieving the next set of results
50
50
  # @return [Array<(ContractEventList, Integer, Hash)>] ContractEventList data, response status code and response headers
51
- def list_contract_events_with_http_info(network_id, protocol_name, contract_address, from_block_height, to_block_height, opts = {})
51
+ def list_contract_events_with_http_info(network_id, protocol_name, contract_address, contract_name, event_name, from_block_height, to_block_height, opts = {})
52
52
  if @api_client.config.debugging
53
53
  @api_client.config.logger.debug 'Calling API: ContractEventsApi.list_contract_events ...'
54
54
  end
@@ -64,6 +64,14 @@ module Coinbase::Client
64
64
  if @api_client.config.client_side_validation && contract_address.nil?
65
65
  fail ArgumentError, "Missing the required parameter 'contract_address' when calling ContractEventsApi.list_contract_events"
66
66
  end
67
+ # verify the required parameter 'contract_name' is set
68
+ if @api_client.config.client_side_validation && contract_name.nil?
69
+ fail ArgumentError, "Missing the required parameter 'contract_name' when calling ContractEventsApi.list_contract_events"
70
+ end
71
+ # verify the required parameter 'event_name' is set
72
+ if @api_client.config.client_side_validation && event_name.nil?
73
+ fail ArgumentError, "Missing the required parameter 'event_name' when calling ContractEventsApi.list_contract_events"
74
+ end
67
75
  # verify the required parameter 'from_block_height' is set
68
76
  if @api_client.config.client_side_validation && from_block_height.nil?
69
77
  fail ArgumentError, "Missing the required parameter 'from_block_height' when calling ContractEventsApi.list_contract_events"
@@ -78,10 +86,10 @@ module Coinbase::Client
78
86
  # query parameters
79
87
  query_params = opts[:query_params] || {}
80
88
  query_params[:'protocol_name'] = protocol_name
89
+ query_params[:'contract_name'] = contract_name
90
+ query_params[:'event_name'] = event_name
81
91
  query_params[:'from_block_height'] = from_block_height
82
92
  query_params[:'to_block_height'] = to_block_height
83
- query_params[:'contract_name'] = opts[:'contract_name'] if !opts[:'contract_name'].nil?
84
- query_params[:'event_name'] = opts[:'event_name'] if !opts[:'event_name'].nil?
85
93
  query_params[:'next_page'] = opts[:'next_page'] if !opts[:'next_page'].nil?
86
94
 
87
95
  # header parameters
@@ -6,7 +6,7 @@
6
6
  The version of the OpenAPI document: 0.0.1-alpha
7
7
  Contact: yuga.cohler@coinbase.com
8
8
  Generated by: https://openapi-generator.tech
9
- Generator version: 7.6.0
9
+ Generator version: 7.7.0
10
10
 
11
11
  =end
12
12
 
@@ -6,7 +6,7 @@
6
6
  The version of the OpenAPI document: 0.0.1-alpha
7
7
  Contact: yuga.cohler@coinbase.com
8
8
  Generated by: https://openapi-generator.tech
9
- Generator version: 7.6.0
9
+ Generator version: 7.7.0
10
10
 
11
11
  =end
12
12
 
@@ -6,7 +6,7 @@
6
6
  The version of the OpenAPI document: 0.0.1-alpha
7
7
  Contact: yuga.cohler@coinbase.com
8
8
  Generated by: https://openapi-generator.tech
9
- Generator version: 7.6.0
9
+ Generator version: 7.7.0
10
10
 
11
11
  =end
12
12