Class: Coinbase::StakingReward
- Inherits:
-
Object
- Object
- Coinbase::StakingReward
- Defined in:
- lib/coinbase/staking_reward.rb
Overview
A representation of a staking reward earned on a network for a given asset.
Class Method Summary collapse
-
.list(network_id, asset_id, address_ids, start_time: DateTime.now.prev_month(1), end_time: DateTime.now, format: :usd) ⇒ Enumerable<Coinbase::StakingReward>
Returns a list of StakingRewards for the provided network, asset, and addresses.
- .list_page(network_id, asset_id, address_ids, start_time, end_time, page, format) ⇒ Object
- .stake_api ⇒ Object
Instance Method Summary collapse
-
#amount ⇒ BigDecimal
Returns the amount of the StakingReward.
-
#date ⇒ Time
Returns the date of the StakingReward.
-
#initialize(model, asset, format) ⇒ StakingReward
constructor
Returns a new StakingReward object.
-
#inspect ⇒ String
Same as to_s.
-
#to_s ⇒ String
Returns a string representation of the StakingReward.
Constructor Details
#initialize(model, asset, format) ⇒ StakingReward
Returns a new StakingReward object.
30 31 32 33 34 |
# File 'lib/coinbase/staking_reward.rb', line 30 def initialize(model, asset, format) @model = model @asset = asset @format = format end |
Class Method Details
.list(network_id, asset_id, address_ids, start_time: DateTime.now.prev_month(1), end_time: DateTime.now, format: :usd) ⇒ Enumerable<Coinbase::StakingReward>
Returns a list of StakingRewards for the provided network, asset, and addresses.
16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/coinbase/staking_reward.rb', line 16 def self.list(network_id, asset_id, address_ids, start_time: DateTime.now.prev_month(1), end_time: DateTime.now, format: :usd) asset = Coinbase.call_api do Asset.fetch(network_id, asset_id) end Coinbase::Pagination.enumerate( ->(page) { list_page(network_id, asset_id, address_ids, start_time, end_time, page, format) } ) do |staking_reward| new(staking_reward, asset, format) end end |
.list_page(network_id, asset_id, address_ids, start_time, end_time, page, format) ⇒ Object
66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/coinbase/staking_reward.rb', line 66 def self.list_page(network_id, asset_id, address_ids, start_time, end_time, page, format) req = { network_id: Coinbase.normalize_network(network_id), asset_id: asset_id, address_ids: address_ids, start_time: start_time.iso8601, end_time: end_time.iso8601, format: format, next_page: page } stake_api.fetch_staking_rewards(req) end |
.stake_api ⇒ Object
62 63 64 |
# File 'lib/coinbase/staking_reward.rb', line 62 def self.stake_api Coinbase::Client::StakeApi.new(Coinbase.configuration.api_client) end |
Instance Method Details
#amount ⇒ BigDecimal
Returns the amount of the StakingReward.
38 39 40 41 42 |
# File 'lib/coinbase/staking_reward.rb', line 38 def amount return BigDecimal(@model.amount.to_i) / BigDecimal(100) if @format == :usd @asset.from_atomic_amount(@model.amount.to_i) end |
#date ⇒ Time
Returns the date of the StakingReward.
46 47 48 |
# File 'lib/coinbase/staking_reward.rb', line 46 def date @model.date end |
#inspect ⇒ String
Same as to_s.
58 59 60 |
# File 'lib/coinbase/staking_reward.rb', line 58 def inspect to_s end |
#to_s ⇒ String
Returns a string representation of the StakingReward.
52 53 54 |
# File 'lib/coinbase/staking_reward.rb', line 52 def to_s "Coinbase::StakingReward{amount: '#{amount}'}" end |