coinbase-sdk 0.1.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (114) hide show
  1. checksums.yaml +4 -4
  2. data/lib/coinbase/address/wallet_address.rb +60 -4
  3. data/lib/coinbase/address.rb +35 -9
  4. data/lib/coinbase/client/api/addresses_api.rb +234 -1
  5. data/lib/coinbase/client/api/assets_api.rb +1 -1
  6. data/lib/coinbase/client/api/contract_events_api.rb +1 -1
  7. data/lib/coinbase/client/api/contract_invocations_api.rb +342 -0
  8. data/lib/coinbase/client/api/external_addresses_api.rb +83 -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 -1
  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 +1 -1
  16. data/lib/coinbase/client/api/wallet_stake_api.rb +1 -1
  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 +1 -1
  22. data/lib/coinbase/client/models/address.rb +1 -1
  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/address_transaction_list.rb +258 -0
  27. data/lib/coinbase/client/models/asset.rb +1 -1
  28. data/lib/coinbase/client/models/balance.rb +1 -1
  29. data/lib/coinbase/client/models/broadcast_contract_invocation_request.rb +222 -0
  30. data/lib/coinbase/client/models/broadcast_staking_operation_request.rb +1 -1
  31. data/lib/coinbase/client/models/broadcast_trade_request.rb +1 -1
  32. data/lib/coinbase/client/models/broadcast_transfer_request.rb +1 -1
  33. data/lib/coinbase/client/models/build_staking_operation_request.rb +1 -1
  34. data/lib/coinbase/client/models/contract_event.rb +1 -1
  35. data/lib/coinbase/client/models/contract_event_list.rb +1 -1
  36. data/lib/coinbase/client/models/contract_invocation.rb +351 -0
  37. data/lib/coinbase/client/models/contract_invocation_list.rb +274 -0
  38. data/lib/coinbase/client/models/create_address_request.rb +1 -1
  39. data/lib/coinbase/client/models/create_contract_invocation_request.rb +266 -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 +1 -1
  42. data/lib/coinbase/client/models/create_staking_operation_request.rb +1 -1
  43. data/lib/coinbase/client/models/create_trade_request.rb +1 -1
  44. data/lib/coinbase/client/models/create_transfer_request.rb +1 -1
  45. data/lib/coinbase/client/models/create_wallet_request.rb +1 -1
  46. data/lib/coinbase/client/models/create_wallet_request_wallet.rb +1 -1
  47. data/lib/coinbase/client/models/create_webhook_request.rb +29 -5
  48. data/lib/coinbase/client/models/error.rb +1 -1
  49. data/lib/coinbase/client/models/ethereum_transaction.rb +389 -0
  50. data/lib/coinbase/client/models/ethereum_transaction_access.rb +225 -0
  51. data/lib/coinbase/client/models/ethereum_transaction_access_list.rb +216 -0
  52. data/lib/coinbase/client/models/ethereum_transaction_flattened_trace.rb +378 -0
  53. data/lib/coinbase/client/models/ethereum_validator_metadata.rb +1 -1
  54. data/lib/coinbase/client/models/faucet_transaction.rb +1 -1
  55. data/lib/coinbase/client/models/feature_set.rb +1 -1
  56. data/lib/coinbase/client/models/fetch_historical_staking_balances200_response.rb +1 -1
  57. data/lib/coinbase/client/models/fetch_staking_rewards200_response.rb +1 -1
  58. data/lib/coinbase/client/models/fetch_staking_rewards_request.rb +1 -1
  59. data/lib/coinbase/client/models/get_staking_context_request.rb +1 -1
  60. data/lib/coinbase/client/models/historical_balance.rb +1 -1
  61. data/lib/coinbase/client/models/network.rb +3 -3
  62. data/lib/coinbase/client/models/network_identifier.rb +3 -2
  63. data/lib/coinbase/client/models/payload_signature.rb +335 -0
  64. data/lib/coinbase/client/models/payload_signature_list.rb +275 -0
  65. data/lib/coinbase/client/models/seed_creation_event.rb +1 -1
  66. data/lib/coinbase/client/models/seed_creation_event_result.rb +1 -1
  67. data/lib/coinbase/client/models/server_signer.rb +1 -1
  68. data/lib/coinbase/client/models/server_signer_event.rb +1 -1
  69. data/lib/coinbase/client/models/server_signer_event_event.rb +1 -1
  70. data/lib/coinbase/client/models/server_signer_event_list.rb +1 -1
  71. data/lib/coinbase/client/models/server_signer_list.rb +1 -1
  72. data/lib/coinbase/client/models/signature_creation_event.rb +1 -1
  73. data/lib/coinbase/client/models/signature_creation_event_result.rb +1 -1
  74. data/lib/coinbase/client/models/signed_voluntary_exit_message_metadata.rb +1 -1
  75. data/lib/coinbase/client/models/sponsored_send.rb +1 -1
  76. data/lib/coinbase/client/models/staking_balance.rb +1 -1
  77. data/lib/coinbase/client/models/staking_context.rb +1 -1
  78. data/lib/coinbase/client/models/staking_context_context.rb +1 -1
  79. data/lib/coinbase/client/models/staking_operation.rb +1 -1
  80. data/lib/coinbase/client/models/staking_operation_metadata.rb +1 -1
  81. data/lib/coinbase/client/models/staking_reward.rb +1 -1
  82. data/lib/coinbase/client/models/staking_reward_format.rb +1 -1
  83. data/lib/coinbase/client/models/staking_reward_usd_value.rb +1 -1
  84. data/lib/coinbase/client/models/trade.rb +1 -1
  85. data/lib/coinbase/client/models/trade_list.rb +1 -1
  86. data/lib/coinbase/client/models/transaction.rb +36 -7
  87. data/lib/coinbase/client/models/transaction_content.rb +104 -0
  88. data/lib/coinbase/client/models/transaction_type.rb +1 -1
  89. data/lib/coinbase/client/models/transfer.rb +1 -1
  90. data/lib/coinbase/client/models/transfer_list.rb +1 -1
  91. data/lib/coinbase/client/models/update_webhook_request.rb +2 -50
  92. data/lib/coinbase/client/models/user.rb +1 -1
  93. data/lib/coinbase/client/models/validator.rb +1 -1
  94. data/lib/coinbase/client/models/validator_details.rb +1 -1
  95. data/lib/coinbase/client/models/validator_list.rb +1 -1
  96. data/lib/coinbase/client/models/validator_status.rb +1 -1
  97. data/lib/coinbase/client/models/wallet.rb +1 -1
  98. data/lib/coinbase/client/models/wallet_list.rb +1 -1
  99. data/lib/coinbase/client/models/webhook.rb +15 -5
  100. data/lib/coinbase/client/models/webhook_event_filter.rb +1 -1
  101. data/lib/coinbase/client/models/webhook_event_type.rb +1 -1
  102. data/lib/coinbase/client/models/webhook_list.rb +1 -1
  103. data/lib/coinbase/client/version.rb +1 -1
  104. data/lib/coinbase/client.rb +15 -1
  105. data/lib/coinbase/constants.rb +3 -0
  106. data/lib/coinbase/contract_invocation.rb +234 -0
  107. data/lib/coinbase/payload_signature.rb +181 -0
  108. data/lib/coinbase/staking_operation.rb +26 -0
  109. data/lib/coinbase/transaction.rb +21 -0
  110. data/lib/coinbase/version.rb +1 -1
  111. data/lib/coinbase/wallet.rb +12 -7
  112. data/lib/coinbase/webhook.rb +17 -6
  113. data/lib/coinbase.rb +2 -0
  114. metadata +18 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7282200e25117b148ba99b4fa055c604edfdfa41b66e2632ba7107b2ae21fc7f
4
- data.tar.gz: a8ea9dc85e68fc0f40397e8f00f0007a5dc6d8952b1d59e2b674b86921ae5da2
3
+ metadata.gz: d296ec1c6b60e1074b171eb5d32135a3942be0266348e42e101290b283039b9d
4
+ data.tar.gz: 1d0115be59726c67bb29e0b6415e1e20c211a82a2d8330490c56e8e0255e3f74
5
5
  SHA512:
6
- metadata.gz: d2f7da4368fd8c033b0566e1bf0851b7c5d9fdde368995d53923cd1535113b7ae9dba55aafaf4e6ec22f4525e7ad80399fa470b77d0dd1326ca6cf71fe1d3bcf
7
- data.tar.gz: 1bcfa5eb7782d6946f11c4ca60a65a05c92805ac737529b9ad4ca4136b1e0a5b1f9bceb9a4a042367fc846307510badb96f74ffe3433c210285ee93b4fdf34ff
6
+ metadata.gz: 53d7ed283905e7336527d319b1a5ec025a912fc6f90beadd4de75aefaf8774d93d17a4767e40b04a4a45b306c99d11ec3f08cb64c1a78d503dd2a2b8fc1e1e1d
7
+ data.tar.gz: 46ae9c2699993a68c51cb5a1941733810429372c5cb41e08ccb1e4f0628f3366b8862604235d376970120057252a35ea77c9ef64ad9581b7925ead4bc5d8d979
@@ -95,11 +95,57 @@ module Coinbase
95
95
  trade
96
96
  end
97
97
 
98
- # Stakes the given amount of the given Asset
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
+ # @return [Coinbase::ContractInvocation] The contract invocation object.
105
+ def invoke_contract(contract_address:, abi:, method:, args:)
106
+ ensure_can_sign!
107
+
108
+ invocation = ContractInvocation.create(
109
+ address_id: id,
110
+ wallet_id: wallet_id,
111
+ contract_address: contract_address,
112
+ abi: abi,
113
+ method: method,
114
+ args: args
115
+ )
116
+
117
+ # If a server signer is managing keys, it will sign and broadcast the underlying transaction out of band.
118
+ return invocation if Coinbase.use_server_signer?
119
+
120
+ invocation.sign(@key)
121
+ invocation.broadcast!
122
+ invocation
123
+ end
124
+
125
+ # Signs the given unsigned payload.
126
+ # @param unsigned_payload [String] The hex-encoded hashed unsigned payload for the Address to sign.
127
+ # @return [Coinbase::PayloadSignature] The payload signature
128
+ def sign_payload(unsigned_payload:)
129
+ ensure_can_sign!
130
+
131
+ unless Coinbase.use_server_signer?
132
+ signature = Eth::Util.prefix_hex(@key.sign(Eth::Util.hex_to_bin(unsigned_payload)))
133
+ end
134
+
135
+ PayloadSignature.create(
136
+ wallet_id: wallet_id,
137
+ address_id: id,
138
+ unsigned_payload: unsigned_payload,
139
+ signature: signature
140
+ )
141
+ end
142
+
143
+ # Stakes the given amount of the given Asset. The stake operation
144
+ # may take a few minutes to complete in the case when infrastructure is spun up.
99
145
  # @param amount [Integer, Float, BigDecimal] The amount of the Asset to stake.
100
146
  # @param asset_id [Symbol] The ID of the Asset to stake. For Ether, :eth, :gwei, and :wei are supported.
101
147
  # @param mode [Symbol] The staking mode. Defaults to :default.
102
- # @param options [Hash] Additional options for the stake operation
148
+ # @param options [Hash] (Optional) Additional options for the stake operation. ({StakingOperation#create see_more})
103
149
  # @param interval_seconds [Integer] The number of seconds to wait between polling for updates. Defaults to 5.
104
150
  # @param timeout_seconds [Integer] The number of seconds to wait before timing out. Defaults to 600.
105
151
  # @return [Coinbase::StakingOperation] The staking operation
@@ -116,7 +162,8 @@ module Coinbase
116
162
  # @param amount [Integer, Float, BigDecimal] The amount of the Asset to unstake.
117
163
  # @param asset_id [Symbol] The ID of the Asset to stake. For Ether, :eth, :gwei, and :wei are supported.
118
164
  # @param mode [Symbol] The staking mode. Defaults to :default.
119
- # @param options [Hash] Additional options for the stake operation
165
+ # @param options [Hash] (Optional) Additional options for the unstake operation.
166
+ # ({StakingOperation#create see_more})
120
167
  # @param interval_seconds [Integer] The number of seconds to wait between polling for updates. Defaults to 5.
121
168
  # @param timeout_seconds [Integer] The number of seconds to wait before timing out. Defaults to 600.
122
169
  # @return [Coinbase::StakingOperation] The staking operation
@@ -133,7 +180,8 @@ module Coinbase
133
180
  # @param amount [Integer, Float, BigDecimal] The amount of the Asset to claim.
134
181
  # @param asset_id [Symbol] The ID of the Asset to stake. For Ether, :eth, :gwei, and :wei are supported.
135
182
  # @param mode [Symbol] The staking mode. Defaults to :default.
136
- # @param options [Hash] Additional options for the stake operation
183
+ # @param options [Hash] (Optional) Additional options for the claim_stake operation.
184
+ # ({StakingOperation#create see_more})
137
185
  # @param interval_seconds [Integer] The number of seconds to wait between polling for updates. Defaults to 5.
138
186
  # @param timeout_seconds [Integer] The number of seconds to wait before timing out. Defaults to 600.
139
187
  # @return [Coinbase::StakingOperation] The staking operation
@@ -176,6 +224,14 @@ module Coinbase
176
224
  Trade.list(wallet_id: wallet_id, address_id: id)
177
225
  end
178
226
 
227
+ # Enumerates the payload signatures associated with the address.
228
+ # The result is an enumerator that lazily fetches from the server, and can be iterated over,
229
+ # converted to an array, etc...
230
+ # @return [Enumerable<Coinbase::PayloadSignature>] Enumerator that returns the address's payload signatures
231
+ def payload_signatures
232
+ PayloadSignature.list(wallet_id: wallet_id, address_id: id)
233
+ end
234
+
179
235
  # Returns a String representation of the WalletAddress.
180
236
  # @return [String] a String representation of the WalletAddress
181
237
  def to_s
@@ -72,15 +72,30 @@ 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.
89
+ # @param asset_id [Symbol] The ID of the Asset to transfer to the wallet.
77
90
  # @return [Coinbase::FaucetTransaction] The successful faucet transaction
78
91
  # @raise [Coinbase::FaucetLimitReachedError] If the faucet limit has been reached for the address or user.
79
92
  # @raise [Coinbase::Client::ApiError] If an unexpected error occurs while requesting faucet funds.
80
- def faucet
93
+ def faucet(asset_id: nil)
94
+ opts = { asset_id: asset_id }.compact
95
+
81
96
  Coinbase.call_api do
82
97
  Coinbase::FaucetTransaction.new(
83
- addresses_api.request_external_faucet_funds(network.normalized_id, id)
98
+ addresses_api.request_external_faucet_funds(network.normalized_id, id, opts)
84
99
  )
85
100
  end
86
101
  end
@@ -90,7 +105,7 @@ module Coinbase
90
105
  # @param amount [Integer,String,BigDecimal] The amount of the asset to stake
91
106
  # @param asset_id [Symbol] The asset to stake
92
107
  # @param mode [Symbol] The staking mode. Defaults to :default.
93
- # @param options [Hash] Additional options for the stake operation
108
+ # @param options [Hash] (Optional) Additional options for the stake operation. ({StakingOperation#build see_more})
94
109
  # @return [Coinbase::StakingOperation] The stake operation
95
110
  def build_stake_operation(amount, asset_id, mode: :default, options: {})
96
111
  validate_can_perform_staking_action!(amount, asset_id, 'stakeable_balance', mode, options)
@@ -102,7 +117,7 @@ module Coinbase
102
117
  # @param amount [Integer,String,BigDecimal] The amount of the asset to unstake
103
118
  # @param asset_id [Symbol] The asset to unstake
104
119
  # @param mode [Symbol] The staking mode. Defaults to :default.
105
- # @param options [Hash] Additional options for the unstake operation
120
+ # @param options [Hash] (Optional) Additional options for the unstake operation. ({StakingOperation#build see_more})
106
121
  # @return [Coinbase::StakingOperation] The unstake operation
107
122
  def build_unstake_operation(amount, asset_id, mode: :default, options: {})
108
123
  validate_can_perform_staking_action!(amount, asset_id, 'unstakeable_balance', mode, options)
@@ -114,7 +129,8 @@ module Coinbase
114
129
  # @param amount [Integer,String,BigDecimal] The amount of the asset to claim
115
130
  # @param asset_id [Symbol] The asset to claim
116
131
  # @param mode [Symbol] The staking mode. Defaults to :default.
117
- # @param options [Hash] Additional options for the claim_stake operation
132
+ # @param options [Hash] (Optional) Additional options for the claim_stake operation.
133
+ # ({StakingOperation#build see_more})
118
134
  # @return [Coinbase::StakingOperation] The claim_stake operation
119
135
  def build_claim_stake_operation(amount, asset_id, mode: :default, options: {})
120
136
  validate_can_perform_staking_action!(amount, asset_id, 'claimable_balance', mode, options)
@@ -125,7 +141,9 @@ module Coinbase
125
141
  # Retrieves the balances used for staking for the supplied asset.
126
142
  # @param asset_id [Symbol] The asset to retrieve staking balances for
127
143
  # @param mode [Symbol] The staking mode. Defaults to :default.
128
- # @param options [Hash] Additional options for the staking operation
144
+ # @param options [Hash] (Optional) Additional options for fetching the staking balances
145
+ # @option options [String] (Optional) :validator_pub_keys List of comma separated validator public keys to retrieve
146
+ # staking balances for. (default: all validators) [asset_id: :eth, mode: :native]
129
147
  # @return [Hash] The staking balances
130
148
  # @return [BigDecimal] :stakeable_balance The amount of the asset that can be staked
131
149
  # @return [BigDecimal] :unstakeable_balance The amount of the asset that is currently staked and cannot be unstaked
@@ -163,7 +181,7 @@ module Coinbase
163
181
  # Retrieves the stakeable balance for the supplied asset.
164
182
  # @param asset_id [Symbol] The asset to retrieve the stakeable balance for
165
183
  # @param mode [Symbol] The staking mode. Defaults to :default.
166
- # @param options [Hash] Additional options for the staking operation
184
+ # @param options [Hash] Additional options for fetching the stakeable balance
167
185
  # @return [BigDecimal] The stakeable balance
168
186
  def stakeable_balance(asset_id, mode: :default, options: {})
169
187
  staking_balances(asset_id, mode: mode, options: options)[:stakeable_balance]
@@ -172,7 +190,7 @@ module Coinbase
172
190
  # Retrieves the unstakeable balance for the supplied asset.
173
191
  # @param asset_id [Symbol] The asset to retrieve the unstakeable balance for
174
192
  # @param mode [Symbol] The staking mode. Defaults to :default.
175
- # @param options [Hash] Additional options for the staking operation
193
+ # @param options [Hash] Additional options for fetching the unstakeable balance
176
194
  # @return [BigDecimal] The unstakeable balance
177
195
  def unstakeable_balance(asset_id, mode: :default, options: {})
178
196
  staking_balances(asset_id, mode: mode, options: options)[:unstakeable_balance]
@@ -181,7 +199,7 @@ module Coinbase
181
199
  # Retrieves the claimable balance for the supplied asset.
182
200
  # @param asset_id [Symbol] The asset to retrieve the claimable balance for
183
201
  # @param mode [Symbol] The staking mode. Defaults to :default.
184
- # @param options [Hash] Additional options for the staking operation
202
+ # @param options [Hash] Additional options for fetching the claimable balance
185
203
  # @return [BigDecimal] The claimable balance
186
204
  def claimable_balance(asset_id, mode: :default, options: {})
187
205
  staking_balances(asset_id, mode: mode, options: options)[:claimable_balance]
@@ -242,5 +260,13 @@ module Coinbase
242
260
  { limit: DEFAULT_PAGE_LIMIT, page: page }
243
261
  )
244
262
  end
263
+
264
+ def list_transaction_page(page)
265
+ addresses_api.list_address_transactions(
266
+ network.normalized_id,
267
+ id,
268
+ { limit: DEFAULT_TRANSACTION_PAGE_LIMIT, page: page }
269
+ )
270
+ end
245
271
  end
246
272
  end
@@ -4,7 +4,7 @@
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
9
  Generator version: 7.7.0
10
10
 
@@ -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'])
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.
@@ -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'])
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
@@ -382,11 +533,91 @@ 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'])
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.
388
618
  # @param address_id [String] The onchain address of the address that is being fetched.
389
619
  # @param [Hash] opts the optional parameters
620
+ # @option opts [String] :asset_id The ID of the asset to transfer from the faucet.
390
621
  # @return [FaucetTransaction]
391
622
  def request_faucet_funds(wallet_id, address_id, opts = {})
392
623
  data, _status_code, _headers = request_faucet_funds_with_http_info(wallet_id, address_id, opts)
@@ -398,6 +629,7 @@ module Coinbase::Client
398
629
  # @param wallet_id [String] The ID of the wallet the address belongs to.
399
630
  # @param address_id [String] The onchain address of the address that is being fetched.
400
631
  # @param [Hash] opts the optional parameters
632
+ # @option opts [String] :asset_id The ID of the asset to transfer from the faucet.
401
633
  # @return [Array<(FaucetTransaction, Integer, Hash)>] FaucetTransaction data, response status code and response headers
402
634
  def request_faucet_funds_with_http_info(wallet_id, address_id, opts = {})
403
635
  if @api_client.config.debugging
@@ -416,6 +648,7 @@ module Coinbase::Client
416
648
 
417
649
  # query parameters
418
650
  query_params = opts[:query_params] || {}
651
+ query_params[:'asset_id'] = opts[:'asset_id'] if !opts[:'asset_id'].nil?
419
652
 
420
653
  # header parameters
421
654
  header_params = opts[:header_params] || {}
@@ -4,7 +4,7 @@
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
9
  Generator version: 7.7.0
10
10
 
@@ -4,7 +4,7 @@
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
9
  Generator version: 7.7.0
10
10