lotus/chain/actors/builtin/cron/cron.go

103 lines
2.1 KiB
Go
Raw Normal View History

package cron
import (
"github.com/filecoin-project/lotus/chain/actors"
"github.com/filecoin-project/lotus/chain/actors/adt"
"golang.org/x/xerrors"
2022-04-04 11:25:03 +00:00
"github.com/ipfs/go-cid"
builtin0 "github.com/filecoin-project/specs-actors/actors/builtin"
builtin2 "github.com/filecoin-project/specs-actors/v2/actors/builtin"
builtin3 "github.com/filecoin-project/specs-actors/v3/actors/builtin"
builtin4 "github.com/filecoin-project/specs-actors/v4/actors/builtin"
2021-05-27 10:27:47 +00:00
2021-05-06 05:44:11 +00:00
builtin5 "github.com/filecoin-project/specs-actors/v5/actors/builtin"
2021-09-15 15:22:25 +00:00
builtin6 "github.com/filecoin-project/specs-actors/v6/actors/builtin"
2021-11-04 15:59:29 +00:00
builtin7 "github.com/filecoin-project/specs-actors/v7/actors/builtin"
2022-03-01 03:57:40 +00:00
builtin8 "github.com/filecoin-project/specs-actors/v8/actors/builtin"
2022-04-04 11:25:03 +00:00
)
func MakeState(store adt.Store, av actors.Version) (State, error) {
switch av {
case actors.Version0:
return make0(store)
case actors.Version2:
return make2(store)
case actors.Version3:
return make3(store)
case actors.Version4:
return make4(store)
2021-05-27 10:27:47 +00:00
case actors.Version5:
return make5(store)
2021-09-15 15:22:25 +00:00
case actors.Version6:
return make6(store)
2021-11-04 15:59:29 +00:00
case actors.Version7:
return make7(store)
2022-03-01 03:57:40 +00:00
case actors.Version8:
return make8(store)
2022-04-04 11:25:03 +00:00
}
return nil, xerrors.Errorf("unknown actor version %d", av)
}
func GetActorCodeID(av actors.Version) (cid.Cid, error) {
2022-04-04 11:25:03 +00:00
if c, ok := actors.GetActorCodeID(av, "cron"); ok {
return c, nil
}
switch av {
case actors.Version0:
return builtin0.CronActorCodeID, nil
case actors.Version2:
return builtin2.CronActorCodeID, nil
case actors.Version3:
return builtin3.CronActorCodeID, nil
case actors.Version4:
return builtin4.CronActorCodeID, nil
2021-05-27 10:27:47 +00:00
case actors.Version5:
return builtin5.CronActorCodeID, nil
2021-09-15 15:22:25 +00:00
case actors.Version6:
return builtin6.CronActorCodeID, nil
2021-11-04 15:59:29 +00:00
case actors.Version7:
return builtin7.CronActorCodeID, nil
2022-03-01 03:57:40 +00:00
case actors.Version8:
return builtin8.CronActorCodeID, nil
}
return cid.Undef, xerrors.Errorf("unknown actor version %d", av)
}
var (
2022-03-01 03:57:40 +00:00
Address = builtin8.CronActorAddr
Methods = builtin8.MethodsCron
)
2022-04-04 11:25:03 +00:00
type State interface {
GetState() interface{}
}