lotus/chain/actors/builtin/system/system.go

102 lines
2.1 KiB
Go
Raw Normal View History

package system
import (
"github.com/filecoin-project/lotus/chain/actors/adt"
2022-04-04 11:25:03 +00:00
"github.com/filecoin-project/lotus/chain/actors"
"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
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
)
var (
2022-03-01 03:57:40 +00:00
Address = builtin8.SystemActorAddr
)
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, "system"); ok {
return c, nil
}
switch av {
case actors.Version0:
return builtin0.SystemActorCodeID, nil
case actors.Version2:
return builtin2.SystemActorCodeID, nil
case actors.Version3:
return builtin3.SystemActorCodeID, nil
case actors.Version4:
return builtin4.SystemActorCodeID, nil
2021-05-27 10:27:47 +00:00
case actors.Version5:
return builtin5.SystemActorCodeID, nil
2021-09-15 15:22:25 +00:00
case actors.Version6:
return builtin6.SystemActorCodeID, nil
2021-11-04 15:59:29 +00:00
case actors.Version7:
return builtin7.SystemActorCodeID, nil
2022-03-01 03:57:40 +00:00
case actors.Version8:
return builtin8.SystemActorCodeID, nil
}
return cid.Undef, xerrors.Errorf("unknown actor version %d", av)
}
type State interface {
GetState() interface{}
}