coinbase-sdk 0.0.16 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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