lotus/chain/actors/builtin/power/v0.go

45 lines
1.1 KiB
Go
Raw Normal View History

package power
import (
2020-09-14 12:17:45 +00:00
"github.com/filecoin-project/go-address"
"github.com/filecoin-project/go-state-types/abi"
"github.com/filecoin-project/specs-actors/actors/builtin/power"
2020-09-14 22:43:12 +00:00
"github.com/filecoin-project/specs-actors/actors/util/adt"
)
type v0State struct {
power.State
store adt.Store
}
func (s *v0State) TotalLocked() (abi.TokenAmount, error) {
return s.TotalPledgeCollateral, nil
}
2020-09-14 12:17:45 +00:00
2020-09-14 22:43:12 +00:00
func (s *v0State) TotalPower() (Claim, error) {
return Claim{
RawBytePower: s.TotalRawBytePower,
QualityAdjPower: s.TotalQualityAdjPower,
}, nil
}
2020-09-15 13:29:25 +00:00
func (s *v0State) MinerPower(addr address.Address) (Claim, bool, error) {
2020-09-14 22:43:12 +00:00
claims, err := adt.AsMap(s.store, s.Claims)
if err != nil {
2020-09-15 13:29:25 +00:00
return Claim{}, false, err
2020-09-14 22:43:12 +00:00
}
var claim power.Claim
2020-09-15 13:29:25 +00:00
ok, err := claims.Get(abi.AddrKey(addr), &claim)
if err != nil {
return Claim{}, false, err
2020-09-14 22:43:12 +00:00
}
return Claim{
RawBytePower: claim.RawBytePower,
QualityAdjPower: claim.QualityAdjPower,
2020-09-15 13:29:25 +00:00
}, ok, nil
2020-09-14 22:43:12 +00:00
}
func (s *v0State) MinerNominalPowerMeetsConsensusMinimum(a address.Address) (bool, error) {
return s.State.MinerNominalPowerMeetsConsensusMinimum(s.store, a)
2020-09-14 12:17:45 +00:00
}