update embryo to placehodler
This commit is contained in:
parent
72c04caae9
commit
cb49edf29d
@ -274,10 +274,10 @@ func IsPaymentChannelActor(c cid.Cid) bool {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
func IsEmbryoActor(c cid.Cid) bool {
|
func IsPlaceholderActor(c cid.Cid) bool {
|
||||||
name, _, ok := actors.GetActorMetaByCode(c)
|
name, _, ok := actors.GetActorMetaByCode(c)
|
||||||
if ok {
|
if ok {
|
||||||
return name == manifest.EmbryoKey
|
return name == manifest.PlaceholderKey
|
||||||
}
|
}
|
||||||
|
|
||||||
return false
|
return false
|
||||||
|
@ -153,10 +153,10 @@ func IsPaymentChannelActor(c cid.Cid) bool {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
func IsEmbryoActor(c cid.Cid) bool {
|
func IsPlaceholderActor(c cid.Cid) bool {
|
||||||
name, _, ok := actors.GetActorMetaByCode(c)
|
name, _, ok := actors.GetActorMetaByCode(c)
|
||||||
if ok {
|
if ok {
|
||||||
return name == manifest.EmbryoKey
|
return name == manifest.PlaceholderKey
|
||||||
}
|
}
|
||||||
|
|
||||||
return false
|
return false
|
||||||
|
@ -14,7 +14,6 @@ import (
|
|||||||
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"
|
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"
|
ethaccount10 "github.com/filecoin-project/go-state-types/builtin/v10/ethaccount"
|
||||||
evm10 "github.com/filecoin-project/go-state-types/builtin/v10/evm"
|
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"
|
||||||
@ -22,6 +21,7 @@ import (
|
|||||||
miner10 "github.com/filecoin-project/go-state-types/builtin/v10/miner"
|
miner10 "github.com/filecoin-project/go-state-types/builtin/v10/miner"
|
||||||
multisig10 "github.com/filecoin-project/go-state-types/builtin/v10/multisig"
|
multisig10 "github.com/filecoin-project/go-state-types/builtin/v10/multisig"
|
||||||
paych10 "github.com/filecoin-project/go-state-types/builtin/v10/paych"
|
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"
|
power10 "github.com/filecoin-project/go-state-types/builtin/v10/power"
|
||||||
reward10 "github.com/filecoin-project/go-state-types/builtin/v10/reward"
|
reward10 "github.com/filecoin-project/go-state-types/builtin/v10/reward"
|
||||||
system10 "github.com/filecoin-project/go-state-types/builtin/v10/system"
|
system10 "github.com/filecoin-project/go-state-types/builtin/v10/system"
|
||||||
@ -361,10 +361,10 @@ func MakeRegistry(av actorstypes.Version) []RegistryEntry {
|
|||||||
methods: eam10.Methods,
|
methods: eam10.Methods,
|
||||||
state: nil,
|
state: nil,
|
||||||
})
|
})
|
||||||
case manifest.EmbryoKey:
|
case manifest.PlaceholderKey:
|
||||||
registry = append(registry, RegistryEntry{
|
registry = append(registry, RegistryEntry{
|
||||||
code: codeID,
|
code: codeID,
|
||||||
methods: embryo10.Methods,
|
methods: placeholder10.Methods,
|
||||||
state: nil,
|
state: nil,
|
||||||
})
|
})
|
||||||
case manifest.EthAccountKey:
|
case manifest.EthAccountKey:
|
||||||
|
@ -28,7 +28,7 @@ import (
|
|||||||
{{if (ge . 10)}}
|
{{if (ge . 10)}}
|
||||||
evm{{.}} "github.com/filecoin-project/go-state-types/builtin/v{{.}}/evm"
|
evm{{.}} "github.com/filecoin-project/go-state-types/builtin/v{{.}}/evm"
|
||||||
eam{{.}} "github.com/filecoin-project/go-state-types/builtin/v{{.}}/eam"
|
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"
|
ethaccount{{.}} "github.com/filecoin-project/go-state-types/builtin/v{{.}}/ethaccount"
|
||||||
{{end}}
|
{{end}}
|
||||||
{{end}}
|
{{end}}
|
||||||
@ -193,10 +193,10 @@ func MakeRegistry(av actorstypes.Version) []RegistryEntry {
|
|||||||
methods: eam{{.}}.Methods,
|
methods: eam{{.}}.Methods,
|
||||||
state: nil,
|
state: nil,
|
||||||
})
|
})
|
||||||
case manifest.EmbryoKey:
|
case manifest.PlaceholderKey:
|
||||||
registry = append(registry, RegistryEntry{
|
registry = append(registry, RegistryEntry{
|
||||||
code: codeID,
|
code: codeID,
|
||||||
methods: embryo{{.}}.Methods,
|
methods: placeholder{{.}}.Methods,
|
||||||
state: nil,
|
state: nil,
|
||||||
})
|
})
|
||||||
case manifest.EthAccountKey:
|
case manifest.EthAccountKey:
|
||||||
|
@ -441,7 +441,7 @@ func IsValidForSending(act *types.Actor) bool {
|
|||||||
return true
|
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
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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-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-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-8 h1:BPUEnjs4eBjhX+WCeG/Mfpoc7umYVgXENur73PJ1cNc=
|
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/go.mod h1:FPgQE05BFwZxKw/vCuIaIrzfJKo4RPQQMMPGd43dAFI=
|
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 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=
|
||||||
|
@ -20,8 +20,8 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
// TestEthAccountAbstraction goes over the account abstraction workflow:
|
// TestEthAccountAbstraction goes over the account abstraction workflow:
|
||||||
// - an embryo is created when it receives a message
|
// - an placeholder is created when it receives a message
|
||||||
// - the embryo turns into an EOA when it sends a message
|
// - the placeholder turns into an EOA when it sends a message
|
||||||
func TestEthAccountAbstraction(t *testing.T) {
|
func TestEthAccountAbstraction(t *testing.T) {
|
||||||
kit.QuietMiningLogs()
|
kit.QuietMiningLogs()
|
||||||
|
|
||||||
@ -35,97 +35,97 @@ func TestEthAccountAbstraction(t *testing.T) {
|
|||||||
secpKey, err := key.GenerateKey(types.KTDelegated)
|
secpKey, err := key.GenerateKey(types.KTDelegated)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
embryoAddress, err := client.WalletImport(ctx, &secpKey.KeyInfo)
|
placeholderAddress, err := client.WalletImport(ctx, &secpKey.KeyInfo)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
fmt.Println(embryoAddress)
|
fmt.Println(placeholderAddress)
|
||||||
|
|
||||||
// create an embryo actor at the target address
|
// create an placeholder actor at the target address
|
||||||
msgCreateEmbryo := &types.Message{
|
msgCreatePlaceholder := &types.Message{
|
||||||
From: client.DefaultKey.Address,
|
From: client.DefaultKey.Address,
|
||||||
To: embryoAddress,
|
To: placeholderAddress,
|
||||||
Value: abi.TokenAmount(types.MustParseFIL("100")),
|
Value: abi.TokenAmount(types.MustParseFIL("100")),
|
||||||
}
|
}
|
||||||
smCreateEmbryo, err := client.MpoolPushMessage(ctx, msgCreateEmbryo, nil)
|
smCreatePlaceholder, err := client.MpoolPushMessage(ctx, msgCreatePlaceholder, nil)
|
||||||
require.NoError(t, err)
|
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.NoError(t, err)
|
||||||
require.Equal(t, exitcode.Ok, mLookup.Receipt.ExitCode)
|
require.Equal(t, exitcode.Ok, mLookup.Receipt.ExitCode)
|
||||||
|
|
||||||
// confirm the embryo is an embryo
|
// confirm the placeholder is an placeholder
|
||||||
embryoActor, err := client.StateGetActor(ctx, embryoAddress, types.EmptyTSK)
|
placeholderActor, err := client.StateGetActor(ctx, placeholderAddress, types.EmptyTSK)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
require.Equal(t, uint64(0), embryoActor.Nonce)
|
require.Equal(t, uint64(0), placeholderActor.Nonce)
|
||||||
require.True(t, builtin.IsEmbryoActor(embryoActor.Code))
|
require.True(t, builtin.IsPlaceholderActor(placeholderActor.Code))
|
||||||
|
|
||||||
// send a message from the embryo address
|
// send a message from the placeholder address
|
||||||
msgFromEmbryo := &types.Message{
|
msgFromPlaceholder := &types.Message{
|
||||||
From: embryoAddress,
|
From: placeholderAddress,
|
||||||
// self-send because an "eth tx payload" can't be to a filecoin address?
|
// 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)
|
require.NoError(t, err)
|
||||||
|
|
||||||
txArgs, err := ethtypes.NewEthTxArgsFromMessage(msgFromEmbryo)
|
txArgs, err := ethtypes.NewEthTxArgsFromMessage(msgFromPlaceholder)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
digest, err := txArgs.ToRlpUnsignedMsg()
|
digest, err := txArgs.ToRlpUnsignedMsg()
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
siggy, err := client.WalletSign(ctx, embryoAddress, digest)
|
siggy, err := client.WalletSign(ctx, placeholderAddress, digest)
|
||||||
require.NoError(t, err)
|
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)
|
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.NoError(t, err)
|
||||||
require.Equal(t, exitcode.Ok, mLookup.Receipt.ExitCode)
|
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.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.True(t, builtin.IsEthAccountActor(eoaActor.Code))
|
||||||
require.Equal(t, uint64(1), eoaActor.Nonce)
|
require.Equal(t, uint64(1), eoaActor.Nonce)
|
||||||
|
|
||||||
// Send another message, it should succeed without any code CID changes
|
// Send another message, it should succeed without any code CID changes
|
||||||
|
|
||||||
msgFromEmbryo = &types.Message{
|
msgFromPlaceholder = &types.Message{
|
||||||
From: embryoAddress,
|
From: placeholderAddress,
|
||||||
To: embryoAddress,
|
To: placeholderAddress,
|
||||||
Nonce: 1,
|
Nonce: 1,
|
||||||
}
|
}
|
||||||
|
|
||||||
msgFromEmbryo, err = client.GasEstimateMessageGas(ctx, msgFromEmbryo, nil, types.EmptyTSK)
|
msgFromPlaceholder, err = client.GasEstimateMessageGas(ctx, msgFromPlaceholder, nil, types.EmptyTSK)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
txArgs, err = ethtypes.NewEthTxArgsFromMessage(msgFromEmbryo)
|
txArgs, err = ethtypes.NewEthTxArgsFromMessage(msgFromPlaceholder)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
digest, err = txArgs.ToRlpUnsignedMsg()
|
digest, err = txArgs.ToRlpUnsignedMsg()
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
siggy, err = client.WalletSign(ctx, embryoAddress, digest)
|
siggy, err = client.WalletSign(ctx, placeholderAddress, digest)
|
||||||
require.NoError(t, err)
|
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)
|
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.NoError(t, err)
|
||||||
require.Equal(t, exitcode.Ok, mLookup.Receipt.ExitCode)
|
require.Equal(t, exitcode.Ok, mLookup.Receipt.ExitCode)
|
||||||
|
|
||||||
// confirm no changes in code CID
|
// 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.NoError(t, err)
|
||||||
require.Equal(t, uint64(2), eoaActor.Nonce)
|
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))
|
require.True(t, builtin.IsEthAccountActor(eoaActor.Code))
|
||||||
}
|
}
|
||||||
|
@ -62,8 +62,8 @@ func TestDeployment(t *testing.T) {
|
|||||||
bal := client.EVM().AssertAddressBalanceConsistent(ctx, deployer)
|
bal := client.EVM().AssertAddressBalanceConsistent(ctx, deployer)
|
||||||
require.Equal(t, types.FromFil(10), bal)
|
require.Equal(t, types.FromFil(10), bal)
|
||||||
|
|
||||||
// verify the deployer address is an embryo.
|
// verify the deployer address is an Placeholder.
|
||||||
client.AssertActorType(ctx, deployer, manifest.EmbryoKey)
|
client.AssertActorType(ctx, deployer, manifest.PlaceholderKey)
|
||||||
|
|
||||||
gaslimit, err := client.EthEstimateGas(ctx, ethtypes.EthCall{
|
gaslimit, err := client.EthEstimateGas(ctx, ethtypes.EthCall{
|
||||||
From: ðAddr,
|
From: ðAddr,
|
||||||
@ -74,7 +74,7 @@ func TestDeployment(t *testing.T) {
|
|||||||
maxPriorityFeePerGas, err := client.EthMaxPriorityFeePerGas(ctx)
|
maxPriorityFeePerGas, err := client.EthMaxPriorityFeePerGas(ctx)
|
||||||
require.NoError(t, err)
|
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{
|
tx := ethtypes.EthTxArgs{
|
||||||
ChainID: build.Eip155ChainId,
|
ChainID: build.Eip155ChainId,
|
||||||
Value: big.Zero(),
|
Value: big.Zero(),
|
||||||
|
@ -76,10 +76,10 @@ func TestAddressCreationBeforeDeploy(t *testing.T) {
|
|||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
require.Equal(t, exitcode.Ok, mLookup.Receipt.ExitCode)
|
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)
|
actor, err := client.StateGetActor(ctx, contractFilAddr, types.EmptyTSK)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
require.True(t, builtin.IsEmbryoActor(actor.Code))
|
require.True(t, builtin.IsPlaceholderActor(actor.Code))
|
||||||
|
|
||||||
// Create and deploy evm actor
|
// Create and deploy evm actor
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@ import (
|
|||||||
// AssertActorType verifies that the supplied address is an actor of the
|
// AssertActorType verifies that the supplied address is an actor of the
|
||||||
// specified type (as per its manifest key).
|
// specified type (as per its manifest key).
|
||||||
func (f *TestFullNode) AssertActorType(ctx context.Context, addr address.Address, actorType string) {
|
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)
|
act, err := f.StateGetActor(ctx, addr, types.EmptyTSK)
|
||||||
require.NoError(f.t, err)
|
require.NoError(f.t, err)
|
||||||
|
|
||||||
|
@ -636,7 +636,7 @@ func (a *EthModule) EthSendRawTransaction(ctx context.Context, rawTx ethtypes.Et
|
|||||||
_, err = a.StateAPI.StateGetActor(ctx, smsg.Message.To, types.EmptyTSK)
|
_, err = a.StateAPI.StateGetActor(ctx, smsg.Message.To, types.EmptyTSK)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
// if actor does not exist on chain yet, set the method to 0 because
|
// 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
|
smsg.Message.Method = builtinactors.MethodSend
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user