Merge pull request #9958 from filecoin-project/asr/fevm-registry
Add new FEVM actors to the registry
This commit is contained in:
commit
77b235df90
@ -13,6 +13,10 @@ import (
|
|||||||
account10 "github.com/filecoin-project/go-state-types/builtin/v10/account"
|
account10 "github.com/filecoin-project/go-state-types/builtin/v10/account"
|
||||||
cron10 "github.com/filecoin-project/go-state-types/builtin/v10/cron"
|
cron10 "github.com/filecoin-project/go-state-types/builtin/v10/cron"
|
||||||
datacap10 "github.com/filecoin-project/go-state-types/builtin/v10/datacap"
|
datacap10 "github.com/filecoin-project/go-state-types/builtin/v10/datacap"
|
||||||
|
eam10 "github.com/filecoin-project/go-state-types/builtin/v10/eam"
|
||||||
|
embryo10 "github.com/filecoin-project/go-state-types/builtin/v10/embryo"
|
||||||
|
ethaccount10 "github.com/filecoin-project/go-state-types/builtin/v10/ethaccount"
|
||||||
|
evm10 "github.com/filecoin-project/go-state-types/builtin/v10/evm"
|
||||||
_init10 "github.com/filecoin-project/go-state-types/builtin/v10/init"
|
_init10 "github.com/filecoin-project/go-state-types/builtin/v10/init"
|
||||||
market10 "github.com/filecoin-project/go-state-types/builtin/v10/market"
|
market10 "github.com/filecoin-project/go-state-types/builtin/v10/market"
|
||||||
miner10 "github.com/filecoin-project/go-state-types/builtin/v10/miner"
|
miner10 "github.com/filecoin-project/go-state-types/builtin/v10/miner"
|
||||||
@ -265,6 +269,7 @@ func MakeRegistry(av actorstypes.Version) []RegistryEntry {
|
|||||||
methods: datacap9.Methods,
|
methods: datacap9.Methods,
|
||||||
state: new(datacap9.State),
|
state: new(datacap9.State),
|
||||||
})
|
})
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -343,6 +348,32 @@ func MakeRegistry(av actorstypes.Version) []RegistryEntry {
|
|||||||
methods: datacap10.Methods,
|
methods: datacap10.Methods,
|
||||||
state: new(datacap10.State),
|
state: new(datacap10.State),
|
||||||
})
|
})
|
||||||
|
|
||||||
|
case manifest.EvmKey:
|
||||||
|
registry = append(registry, RegistryEntry{
|
||||||
|
code: codeID,
|
||||||
|
methods: evm10.Methods,
|
||||||
|
state: new(evm10.State),
|
||||||
|
})
|
||||||
|
case manifest.EamKey:
|
||||||
|
registry = append(registry, RegistryEntry{
|
||||||
|
code: codeID,
|
||||||
|
methods: eam10.Methods,
|
||||||
|
state: nil,
|
||||||
|
})
|
||||||
|
case manifest.EmbryoKey:
|
||||||
|
registry = append(registry, RegistryEntry{
|
||||||
|
code: codeID,
|
||||||
|
methods: embryo10.Methods,
|
||||||
|
state: nil,
|
||||||
|
})
|
||||||
|
case manifest.EthAccountKey:
|
||||||
|
registry = append(registry, RegistryEntry{
|
||||||
|
code: codeID,
|
||||||
|
methods: ethaccount10.Methods,
|
||||||
|
state: nil,
|
||||||
|
})
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -25,6 +25,12 @@ import (
|
|||||||
{{if (ge . 9)}}
|
{{if (ge . 9)}}
|
||||||
datacap{{.}} "github.com/filecoin-project/go-state-types/builtin/v{{.}}/datacap"
|
datacap{{.}} "github.com/filecoin-project/go-state-types/builtin/v{{.}}/datacap"
|
||||||
{{end}}
|
{{end}}
|
||||||
|
{{if (ge . 10)}}
|
||||||
|
evm{{.}} "github.com/filecoin-project/go-state-types/builtin/v{{.}}/evm"
|
||||||
|
eam{{.}} "github.com/filecoin-project/go-state-types/builtin/v{{.}}/eam"
|
||||||
|
embryo{{.}} "github.com/filecoin-project/go-state-types/builtin/v{{.}}/embryo"
|
||||||
|
ethaccount{{.}} "github.com/filecoin-project/go-state-types/builtin/v{{.}}/ethaccount"
|
||||||
|
{{end}}
|
||||||
{{end}}
|
{{end}}
|
||||||
"github.com/filecoin-project/go-state-types/cbor"
|
"github.com/filecoin-project/go-state-types/cbor"
|
||||||
rtt "github.com/filecoin-project/go-state-types/rt"
|
rtt "github.com/filecoin-project/go-state-types/rt"
|
||||||
@ -174,6 +180,32 @@ func MakeRegistry(av actorstypes.Version) []RegistryEntry {
|
|||||||
methods: datacap{{.}}.Methods,
|
methods: datacap{{.}}.Methods,
|
||||||
state: new(datacap{{.}}.State),
|
state: new(datacap{{.}}.State),
|
||||||
}){{end}}
|
}){{end}}
|
||||||
|
{{if (ge . 10)}}
|
||||||
|
case manifest.EvmKey:
|
||||||
|
registry = append(registry, RegistryEntry{
|
||||||
|
code: codeID,
|
||||||
|
methods: evm{{.}}.Methods,
|
||||||
|
state: new(evm{{.}}.State),
|
||||||
|
})
|
||||||
|
case manifest.EamKey:
|
||||||
|
registry = append(registry, RegistryEntry{
|
||||||
|
code: codeID,
|
||||||
|
methods: eam{{.}}.Methods,
|
||||||
|
state: nil,
|
||||||
|
})
|
||||||
|
case manifest.EmbryoKey:
|
||||||
|
registry = append(registry, RegistryEntry{
|
||||||
|
code: codeID,
|
||||||
|
methods: embryo{{.}}.Methods,
|
||||||
|
state: nil,
|
||||||
|
})
|
||||||
|
case manifest.EthAccountKey:
|
||||||
|
registry = append(registry, RegistryEntry{
|
||||||
|
code: codeID,
|
||||||
|
methods: ethaccount{{.}}.Methods,
|
||||||
|
state: nil,
|
||||||
|
})
|
||||||
|
{{end}}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
{{end}}
|
{{end}}
|
||||||
|
@ -284,17 +284,16 @@ func DecodeParams(b []byte, out interface{}) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func DumpActorState(i *ActorRegistry, act *types.Actor, b []byte) (interface{}, error) {
|
func DumpActorState(i *ActorRegistry, act *types.Actor, b []byte) (interface{}, error) {
|
||||||
// Account & Embryo code special case
|
|
||||||
if builtin.IsAccountActor(act.Code) || builtin.IsEmbryoActor(act.Code) {
|
|
||||||
return nil, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
actInfo, ok := i.actors[act.Code]
|
actInfo, ok := i.actors[act.Code]
|
||||||
if !ok {
|
if !ok {
|
||||||
return nil, xerrors.Errorf("state type for actor %s not found", act.Code)
|
return nil, xerrors.Errorf("state type for actor %s not found", act.Code)
|
||||||
}
|
}
|
||||||
|
|
||||||
um := actInfo.vmActor.State()
|
um := actInfo.vmActor.State()
|
||||||
|
if um == nil {
|
||||||
|
// TODO: I would like to assert that we have the empty object here
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
if err := um.UnmarshalCBOR(bytes.NewReader(b)); err != nil {
|
if err := um.UnmarshalCBOR(bytes.NewReader(b)); err != nil {
|
||||||
return nil, xerrors.Errorf("unmarshaling actor state: %w", err)
|
return nil, xerrors.Errorf("unmarshaling actor state: %w", err)
|
||||||
}
|
}
|
||||||
|
2
go.mod
2
go.mod
@ -44,7 +44,7 @@ require (
|
|||||||
github.com/filecoin-project/go-legs v0.4.4
|
github.com/filecoin-project/go-legs v0.4.4
|
||||||
github.com/filecoin-project/go-padreader v0.0.1
|
github.com/filecoin-project/go-padreader v0.0.1
|
||||||
github.com/filecoin-project/go-paramfetch v0.0.4
|
github.com/filecoin-project/go-paramfetch v0.0.4
|
||||||
github.com/filecoin-project/go-state-types v0.10.0-alpha.7
|
github.com/filecoin-project/go-state-types v0.10.0-alpha-8
|
||||||
github.com/filecoin-project/go-statemachine v1.0.2
|
github.com/filecoin-project/go-statemachine v1.0.2
|
||||||
github.com/filecoin-project/go-statestore v0.2.0
|
github.com/filecoin-project/go-statestore v0.2.0
|
||||||
github.com/filecoin-project/go-storedcounter v0.1.0
|
github.com/filecoin-project/go-storedcounter v0.1.0
|
||||||
|
4
go.sum
4
go.sum
@ -356,8 +356,8 @@ github.com/filecoin-project/go-state-types v0.1.0/go.mod h1:ezYnPf0bNkTsDibL/psS
|
|||||||
github.com/filecoin-project/go-state-types v0.1.6/go.mod h1:UwGVoMsULoCK+bWjEdd/xLCvLAQFBC7EDT477SKml+Q=
|
github.com/filecoin-project/go-state-types v0.1.6/go.mod h1:UwGVoMsULoCK+bWjEdd/xLCvLAQFBC7EDT477SKml+Q=
|
||||||
github.com/filecoin-project/go-state-types v0.1.8/go.mod h1:UwGVoMsULoCK+bWjEdd/xLCvLAQFBC7EDT477SKml+Q=
|
github.com/filecoin-project/go-state-types v0.1.8/go.mod h1:UwGVoMsULoCK+bWjEdd/xLCvLAQFBC7EDT477SKml+Q=
|
||||||
github.com/filecoin-project/go-state-types v0.1.10/go.mod h1:UwGVoMsULoCK+bWjEdd/xLCvLAQFBC7EDT477SKml+Q=
|
github.com/filecoin-project/go-state-types v0.1.10/go.mod h1:UwGVoMsULoCK+bWjEdd/xLCvLAQFBC7EDT477SKml+Q=
|
||||||
github.com/filecoin-project/go-state-types v0.10.0-alpha.7 h1:CnHwzDJpeixx1FLHtlp3iDv2j346qFDYa0w99mSt9A4=
|
github.com/filecoin-project/go-state-types v0.10.0-alpha-8 h1:BPUEnjs4eBjhX+WCeG/Mfpoc7umYVgXENur73PJ1cNc=
|
||||||
github.com/filecoin-project/go-state-types v0.10.0-alpha.7/go.mod h1:FPgQE05BFwZxKw/vCuIaIrzfJKo4RPQQMMPGd43dAFI=
|
github.com/filecoin-project/go-state-types v0.10.0-alpha-8/go.mod h1:FPgQE05BFwZxKw/vCuIaIrzfJKo4RPQQMMPGd43dAFI=
|
||||||
github.com/filecoin-project/go-statemachine v0.0.0-20200925024713-05bd7c71fbfe/go.mod h1:FGwQgZAt2Gh5mjlwJUlVB62JeYdo+if0xWxSEfBD9ig=
|
github.com/filecoin-project/go-statemachine v0.0.0-20200925024713-05bd7c71fbfe/go.mod h1:FGwQgZAt2Gh5mjlwJUlVB62JeYdo+if0xWxSEfBD9ig=
|
||||||
github.com/filecoin-project/go-statemachine v1.0.2 h1:421SSWBk8GIoCoWYYTE/d+qCWccgmRH0uXotXRDjUbc=
|
github.com/filecoin-project/go-statemachine v1.0.2 h1:421SSWBk8GIoCoWYYTE/d+qCWccgmRH0uXotXRDjUbc=
|
||||||
github.com/filecoin-project/go-statemachine v1.0.2/go.mod h1:jZdXXiHa61n4NmgWFG4w8tnqgvZVHYbJ3yW7+y8bF54=
|
github.com/filecoin-project/go-statemachine v1.0.2/go.mod h1:jZdXXiHa61n4NmgWFG4w8tnqgvZVHYbJ3yW7+y8bF54=
|
||||||
|
Loading…
Reference in New Issue
Block a user