lotus/chain/actors/builtin/reward/reward.go

59 lines
1.8 KiB
Go
Raw Normal View History

2020-09-15 21:55:48 +00:00
package reward
import (
2020-09-17 06:42:39 +00:00
"github.com/filecoin-project/go-state-types/abi"
2020-09-22 04:12:07 +00:00
reward0 "github.com/filecoin-project/specs-actors/actors/builtin/reward"
2020-09-15 21:55:48 +00:00
"golang.org/x/xerrors"
"github.com/filecoin-project/go-state-types/cbor"
builtin0 "github.com/filecoin-project/specs-actors/actors/builtin"
2020-09-19 03:46:03 +00:00
builtin1 "github.com/filecoin-project/specs-actors/v2/actors/builtin"
2020-09-15 21:55:48 +00:00
"github.com/filecoin-project/lotus/chain/actors/adt"
2020-09-15 23:47:58 +00:00
"github.com/filecoin-project/lotus/chain/actors/builtin"
2020-09-15 21:55:48 +00:00
"github.com/filecoin-project/lotus/chain/types"
)
var Address = builtin0.RewardActorAddr
2020-09-15 21:55:48 +00:00
func Load(store adt.Store, act *types.Actor) (st State, err error) {
switch act.Code {
case builtin0.RewardActorCodeID:
out := state0{store: store}
2020-09-15 21:55:48 +00:00
err := store.Get(store.Context(), act.Head, &out)
if err != nil {
return nil, err
}
return &out, nil
2020-09-19 03:46:03 +00:00
case builtin1.RewardActorCodeID:
out := state1{store: store}
err := store.Get(store.Context(), act.Head, &out)
if err != nil {
return nil, err
}
return &out, nil
2020-09-15 21:55:48 +00:00
}
return nil, xerrors.Errorf("unknown actor code %s", act.Code)
}
type State interface {
cbor.Marshaler
2020-09-15 23:47:58 +00:00
2020-09-17 08:17:14 +00:00
ThisEpochBaselinePower() (abi.StoragePower, error)
2020-09-18 20:43:14 +00:00
ThisEpochReward() (abi.StoragePower, error)
ThisEpochRewardSmoothed() (builtin.FilterEstimate, error)
EffectiveBaselinePower() (abi.StoragePower, error)
EffectiveNetworkTime() (abi.ChainEpoch, error)
2020-09-17 08:17:14 +00:00
TotalStoragePowerReward() (abi.TokenAmount, error)
2020-09-18 20:43:14 +00:00
CumsumBaseline() (abi.StoragePower, error)
CumsumRealized() (abi.StoragePower, error)
InitialPledgeForPower(abi.StoragePower, abi.TokenAmount, *builtin.FilterEstimate, abi.TokenAmount) (abi.TokenAmount, error)
PreCommitDepositForPower(builtin.FilterEstimate, abi.StoragePower) (abi.TokenAmount, error)
2020-09-15 21:55:48 +00:00
}
2020-09-22 04:12:07 +00:00
type AwardBlockRewardParams = reward0.AwardBlockRewardParams