diff --git a/chain/actors/builtin/builtin.go b/chain/actors/builtin/builtin.go index 093940b7c..116ed35d0 100644 --- a/chain/actors/builtin/builtin.go +++ b/chain/actors/builtin/builtin.go @@ -274,10 +274,10 @@ func IsPaymentChannelActor(c cid.Cid) bool { return false } -func IsEmbryoActor(c cid.Cid) bool { +func IsPlaceholderActor(c cid.Cid) bool { name, _, ok := actors.GetActorMetaByCode(c) if ok { - return name == manifest.EmbryoKey + return name == manifest.PlaceholderKey } return false diff --git a/chain/actors/builtin/builtin.go.template b/chain/actors/builtin/builtin.go.template index 8b2b67645..977217b1a 100644 --- a/chain/actors/builtin/builtin.go.template +++ b/chain/actors/builtin/builtin.go.template @@ -153,10 +153,10 @@ func IsPaymentChannelActor(c cid.Cid) bool { return false } -func IsEmbryoActor(c cid.Cid) bool { +func IsPlaceholderActor(c cid.Cid) bool { name, _, ok := actors.GetActorMetaByCode(c) if ok { - return name == manifest.EmbryoKey + return name == manifest.PlaceholderKey } return false diff --git a/chain/actors/builtin/registry.go b/chain/actors/builtin/registry.go index e309d8cc7..4ce48098d 100644 --- a/chain/actors/builtin/registry.go +++ b/chain/actors/builtin/registry.go @@ -14,7 +14,6 @@ import ( cron10 "github.com/filecoin-project/go-state-types/builtin/v10/cron" 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" @@ -22,6 +21,7 @@ import ( miner10 "github.com/filecoin-project/go-state-types/builtin/v10/miner" multisig10 "github.com/filecoin-project/go-state-types/builtin/v10/multisig" paych10 "github.com/filecoin-project/go-state-types/builtin/v10/paych" + placeholder10 "github.com/filecoin-project/go-state-types/builtin/v10/placeholder" power10 "github.com/filecoin-project/go-state-types/builtin/v10/power" reward10 "github.com/filecoin-project/go-state-types/builtin/v10/reward" system10 "github.com/filecoin-project/go-state-types/builtin/v10/system" @@ -361,10 +361,10 @@ func MakeRegistry(av actorstypes.Version) []RegistryEntry { methods: eam10.Methods, state: nil, }) - case manifest.EmbryoKey: + case manifest.PlaceholderKey: registry = append(registry, RegistryEntry{ code: codeID, - methods: embryo10.Methods, + methods: placeholder10.Methods, state: nil, }) case manifest.EthAccountKey: diff --git a/chain/actors/builtin/registry.go.template b/chain/actors/builtin/registry.go.template index 359e615d1..a63b00917 100644 --- a/chain/actors/builtin/registry.go.template +++ b/chain/actors/builtin/registry.go.template @@ -28,7 +28,7 @@ import ( {{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" + placeholder{{.}} "github.com/filecoin-project/go-state-types/builtin/v{{.}}/placeholder" ethaccount{{.}} "github.com/filecoin-project/go-state-types/builtin/v{{.}}/ethaccount" {{end}} {{end}} @@ -193,10 +193,10 @@ func MakeRegistry(av actorstypes.Version) []RegistryEntry { methods: eam{{.}}.Methods, state: nil, }) - case manifest.EmbryoKey: + case manifest.PlaceholderKey: registry = append(registry, RegistryEntry{ code: codeID, - methods: embryo{{.}}.Methods, + methods: placeholder{{.}}.Methods, state: nil, }) case manifest.EthAccountKey: diff --git a/chain/consensus/filcns/filecoin.go b/chain/consensus/filcns/filecoin.go index 49bd0fa2c..ec801ea85 100644 --- a/chain/consensus/filcns/filecoin.go +++ b/chain/consensus/filcns/filecoin.go @@ -441,7 +441,7 @@ func IsValidForSending(act *types.Actor) bool { return true } - if !builtin.IsEmbryoActor(act.Code) || act.Nonce != 0 || act.Address == nil || act.Address.Protocol() != address.Delegated { + if !builtin.IsPlaceholderActor(act.Code) || act.Nonce != 0 || act.Address == nil || act.Address.Protocol() != address.Delegated { return false } diff --git a/go.mod b/go.mod index 0648497c6..40d880fbd 100644 --- a/go.mod +++ b/go.mod @@ -44,7 +44,7 @@ require ( github.com/filecoin-project/go-legs v0.4.4 github.com/filecoin-project/go-padreader v0.0.1 github.com/filecoin-project/go-paramfetch v0.0.4 - github.com/filecoin-project/go-state-types v0.10.0-alpha-8 + github.com/filecoin-project/go-state-types v0.10.0-alpha-8.0.20230110024009-3a880f1517d4 github.com/filecoin-project/go-statemachine v1.0.2 github.com/filecoin-project/go-statestore v0.2.0 github.com/filecoin-project/go-storedcounter v0.1.0 diff --git a/go.sum b/go.sum index c86c999b0..56ae294fa 100644 --- a/go.sum +++ b/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.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.10.0-alpha-8 h1:BPUEnjs4eBjhX+WCeG/Mfpoc7umYVgXENur73PJ1cNc= -github.com/filecoin-project/go-state-types v0.10.0-alpha-8/go.mod h1:FPgQE05BFwZxKw/vCuIaIrzfJKo4RPQQMMPGd43dAFI= +github.com/filecoin-project/go-state-types v0.10.0-alpha-8.0.20230110024009-3a880f1517d4 h1:gn2wOJfq2Sij0sx4I5CNkTbBxCFa8At+PqOse+7IRzA= +github.com/filecoin-project/go-state-types v0.10.0-alpha-8.0.20230110024009-3a880f1517d4/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 v1.0.2 h1:421SSWBk8GIoCoWYYTE/d+qCWccgmRH0uXotXRDjUbc= github.com/filecoin-project/go-statemachine v1.0.2/go.mod h1:jZdXXiHa61n4NmgWFG4w8tnqgvZVHYbJ3yW7+y8bF54= diff --git a/itests/eth_account_abstraction_test.go b/itests/eth_account_abstraction_test.go index a9230cc52..b6ad48720 100644 --- a/itests/eth_account_abstraction_test.go +++ b/itests/eth_account_abstraction_test.go @@ -20,8 +20,8 @@ import ( ) // TestEthAccountAbstraction goes over the account abstraction workflow: -// - an embryo is created when it receives a message -// - the embryo turns into an EOA when it sends a message +// - an placeholder is created when it receives a message +// - the placeholder turns into an EOA when it sends a message func TestEthAccountAbstraction(t *testing.T) { kit.QuietMiningLogs() @@ -35,97 +35,97 @@ func TestEthAccountAbstraction(t *testing.T) { secpKey, err := key.GenerateKey(types.KTDelegated) require.NoError(t, err) - embryoAddress, err := client.WalletImport(ctx, &secpKey.KeyInfo) + placeholderAddress, err := client.WalletImport(ctx, &secpKey.KeyInfo) require.NoError(t, err) - fmt.Println(embryoAddress) + fmt.Println(placeholderAddress) - // create an embryo actor at the target address - msgCreateEmbryo := &types.Message{ + // create an placeholder actor at the target address + msgCreatePlaceholder := &types.Message{ From: client.DefaultKey.Address, - To: embryoAddress, + To: placeholderAddress, Value: abi.TokenAmount(types.MustParseFIL("100")), } - smCreateEmbryo, err := client.MpoolPushMessage(ctx, msgCreateEmbryo, nil) + smCreatePlaceholder, err := client.MpoolPushMessage(ctx, msgCreatePlaceholder, nil) require.NoError(t, err) - mLookup, err := client.StateWaitMsg(ctx, smCreateEmbryo.Cid(), 3, api.LookbackNoLimit, true) + mLookup, err := client.StateWaitMsg(ctx, smCreatePlaceholder.Cid(), 3, api.LookbackNoLimit, true) require.NoError(t, err) require.Equal(t, exitcode.Ok, mLookup.Receipt.ExitCode) - // confirm the embryo is an embryo - embryoActor, err := client.StateGetActor(ctx, embryoAddress, types.EmptyTSK) + // confirm the placeholder is an placeholder + placeholderActor, err := client.StateGetActor(ctx, placeholderAddress, types.EmptyTSK) require.NoError(t, err) - require.Equal(t, uint64(0), embryoActor.Nonce) - require.True(t, builtin.IsEmbryoActor(embryoActor.Code)) + require.Equal(t, uint64(0), placeholderActor.Nonce) + require.True(t, builtin.IsPlaceholderActor(placeholderActor.Code)) - // send a message from the embryo address - msgFromEmbryo := &types.Message{ - From: embryoAddress, + // send a message from the placeholder address + msgFromPlaceholder := &types.Message{ + From: placeholderAddress, // self-send because an "eth tx payload" can't be to a filecoin address? - To: embryoAddress, + To: placeholderAddress, } - msgFromEmbryo, err = client.GasEstimateMessageGas(ctx, msgFromEmbryo, nil, types.EmptyTSK) + msgFromPlaceholder, err = client.GasEstimateMessageGas(ctx, msgFromPlaceholder, nil, types.EmptyTSK) require.NoError(t, err) - txArgs, err := ethtypes.NewEthTxArgsFromMessage(msgFromEmbryo) + txArgs, err := ethtypes.NewEthTxArgsFromMessage(msgFromPlaceholder) require.NoError(t, err) digest, err := txArgs.ToRlpUnsignedMsg() require.NoError(t, err) - siggy, err := client.WalletSign(ctx, embryoAddress, digest) + siggy, err := client.WalletSign(ctx, placeholderAddress, digest) require.NoError(t, err) - smFromEmbryoCid, err := client.MpoolPush(ctx, &types.SignedMessage{Message: *msgFromEmbryo, Signature: *siggy}) + smFromPlaceholderCid, err := client.MpoolPush(ctx, &types.SignedMessage{Message: *msgFromPlaceholder, Signature: *siggy}) require.NoError(t, err) - mLookup, err = client.StateWaitMsg(ctx, smFromEmbryoCid, 3, api.LookbackNoLimit, true) + mLookup, err = client.StateWaitMsg(ctx, smFromPlaceholderCid, 3, api.LookbackNoLimit, true) require.NoError(t, err) require.Equal(t, exitcode.Ok, mLookup.Receipt.ExitCode) - // confirm ugly Embryo duckling has turned into a beautiful EthAccount swan + // confirm ugly Placeholder duckling has turned into a beautiful EthAccount swan - eoaActor, err := client.StateGetActor(ctx, embryoAddress, types.EmptyTSK) + eoaActor, err := client.StateGetActor(ctx, placeholderAddress, types.EmptyTSK) require.NoError(t, err) - require.False(t, builtin.IsEmbryoActor(eoaActor.Code)) + require.False(t, builtin.IsPlaceholderActor(eoaActor.Code)) require.True(t, builtin.IsEthAccountActor(eoaActor.Code)) require.Equal(t, uint64(1), eoaActor.Nonce) // Send another message, it should succeed without any code CID changes - msgFromEmbryo = &types.Message{ - From: embryoAddress, - To: embryoAddress, + msgFromPlaceholder = &types.Message{ + From: placeholderAddress, + To: placeholderAddress, Nonce: 1, } - msgFromEmbryo, err = client.GasEstimateMessageGas(ctx, msgFromEmbryo, nil, types.EmptyTSK) + msgFromPlaceholder, err = client.GasEstimateMessageGas(ctx, msgFromPlaceholder, nil, types.EmptyTSK) require.NoError(t, err) - txArgs, err = ethtypes.NewEthTxArgsFromMessage(msgFromEmbryo) + txArgs, err = ethtypes.NewEthTxArgsFromMessage(msgFromPlaceholder) require.NoError(t, err) digest, err = txArgs.ToRlpUnsignedMsg() require.NoError(t, err) - siggy, err = client.WalletSign(ctx, embryoAddress, digest) + siggy, err = client.WalletSign(ctx, placeholderAddress, digest) require.NoError(t, err) - smFromEmbryoCid, err = client.MpoolPush(ctx, &types.SignedMessage{Message: *msgFromEmbryo, Signature: *siggy}) + smFromPlaceholderCid, err = client.MpoolPush(ctx, &types.SignedMessage{Message: *msgFromPlaceholder, Signature: *siggy}) require.NoError(t, err) - mLookup, err = client.StateWaitMsg(ctx, smFromEmbryoCid, 3, api.LookbackNoLimit, true) + mLookup, err = client.StateWaitMsg(ctx, smFromPlaceholderCid, 3, api.LookbackNoLimit, true) require.NoError(t, err) require.Equal(t, exitcode.Ok, mLookup.Receipt.ExitCode) // confirm no changes in code CID - eoaActor, err = client.StateGetActor(ctx, embryoAddress, types.EmptyTSK) + eoaActor, err = client.StateGetActor(ctx, placeholderAddress, types.EmptyTSK) require.NoError(t, err) require.Equal(t, uint64(2), eoaActor.Nonce) - require.False(t, builtin.IsEmbryoActor(eoaActor.Code)) + require.False(t, builtin.IsPlaceholderActor(eoaActor.Code)) require.True(t, builtin.IsEthAccountActor(eoaActor.Code)) } diff --git a/itests/eth_deploy_test.go b/itests/eth_deploy_test.go index 3fb49087e..4ef55a14a 100644 --- a/itests/eth_deploy_test.go +++ b/itests/eth_deploy_test.go @@ -62,8 +62,8 @@ func TestDeployment(t *testing.T) { bal := client.EVM().AssertAddressBalanceConsistent(ctx, deployer) require.Equal(t, types.FromFil(10), bal) - // verify the deployer address is an embryo. - client.AssertActorType(ctx, deployer, manifest.EmbryoKey) + // verify the deployer address is an Placeholder. + client.AssertActorType(ctx, deployer, manifest.PlaceholderKey) gaslimit, err := client.EthEstimateGas(ctx, ethtypes.EthCall{ From: ðAddr, @@ -74,7 +74,7 @@ func TestDeployment(t *testing.T) { maxPriorityFeePerGas, err := client.EthMaxPriorityFeePerGas(ctx) require.NoError(t, err) - // now deploy a contract from the embryo, and validate it went well + // now deploy a contract from the placeholder, and validate it went well tx := ethtypes.EthTxArgs{ ChainID: build.Eip155ChainId, Value: big.Zero(), diff --git a/itests/fevm_address_test.go b/itests/fevm_address_test.go index 356328bef..41f4373c2 100644 --- a/itests/fevm_address_test.go +++ b/itests/fevm_address_test.go @@ -76,10 +76,10 @@ func TestAddressCreationBeforeDeploy(t *testing.T) { require.NoError(t, err) require.Equal(t, exitcode.Ok, mLookup.Receipt.ExitCode) - // Check if actor at new address is an embryo actor + // Check if actor at new address is an placeholder actor actor, err := client.StateGetActor(ctx, contractFilAddr, types.EmptyTSK) require.NoError(t, err) - require.True(t, builtin.IsEmbryoActor(actor.Code)) + require.True(t, builtin.IsPlaceholderActor(actor.Code)) // Create and deploy evm actor diff --git a/itests/kit/state.go b/itests/kit/state.go index 771ef84b0..e66576be3 100644 --- a/itests/kit/state.go +++ b/itests/kit/state.go @@ -15,7 +15,7 @@ import ( // AssertActorType verifies that the supplied address is an actor of the // specified type (as per its manifest key). func (f *TestFullNode) AssertActorType(ctx context.Context, addr address.Address, actorType string) { - // validate that an embryo was created + // validate that an placeholder was created act, err := f.StateGetActor(ctx, addr, types.EmptyTSK) require.NoError(f.t, err) diff --git a/node/impl/full/eth.go b/node/impl/full/eth.go index 606c07314..798fda040 100644 --- a/node/impl/full/eth.go +++ b/node/impl/full/eth.go @@ -636,7 +636,7 @@ func (a *EthModule) EthSendRawTransaction(ctx context.Context, rawTx ethtypes.Et _, err = a.StateAPI.StateGetActor(ctx, smsg.Message.To, types.EmptyTSK) if err != nil { // if actor does not exist on chain yet, set the method to 0 because - // embryos only implement method 0 + // placeholders only implement method 0 smsg.Message.Method = builtinactors.MethodSend }