Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add/check methods for Init, EVM, EAM, and ethaccount actors #132

Open
geoff-vball opened this issue Dec 13, 2022 · 2 comments
Open

Add/check methods for Init, EVM, EAM, and ethaccount actors #132

geoff-vball opened this issue Dec 13, 2022 · 2 comments
Assignees

Comments

@geoff-vball
Copy link
Contributor

geoff-vball commented Dec 13, 2022

We need to make sure this repo fully aligns with the changes introduced to the v10 actors in the various FIPs landing in the nv18 upgrade. We know that we have:

  • Four new actors: the EAM, EVM, EthAccount, and Placeholder actors

  • State changes to the init actor

  • New methods on many of the actors (see FIP-0050).

  • We should confirm that the method lists in builtin/methods.go and the individual methods.go files are correct wrt the actual actors in builtin-actors.

  • We should confirm that for each of these methods, the method types (both input params and return) are correctly captured here.

  • We should confirm that the new actors are correctly represented here in terms of both the methods and state types.

  • (optional) We should do a sanity check over all existing actors as well, and confirm that their state and method types are correct.

@snissn snissn changed the title Add/check methods for Init, EVM, EAM, and EEOA actors Add/check methods for Init, EVM, EAM, and ethaccount actors Feb 8, 2023
@snissn
Copy link
Contributor

snissn commented Feb 9, 2023

below are snippets from my notes that had potential issues, chat tomorrow through them @arajasek !

for evm ConstructorParams we can change the eth address type to [20]byte from []byte or possibly use an even more specific type

type ConstructorParams struct {
Creator []byte // XXX should be eth address? or is bytes ok? // XXX how about [20]byte or created a type
Initcode []byte
}

XXX do we want to enforce length 32 as the return type in go
evm 4 GetBytecodeHash func(*abi.EmptyValue) *abi.CborBytes
pub struct BytecodeHash(#[serde(with = "strict_bytes")] [u8; 32]);
pub fn bytecode_hash(rt: &mut impl Runtime) -> Result<BytecodeHash, ActorError> {

evm 5 GetStorageAt func(*evm.GetStorageAtParams) *abi.CborBytes
XXX looks like U256 vs []byte
pub struct GetStorageAtParams {
pub storage_key: U256,
}
type GetStorageAtParams struct {
StorageKey []byte
}

ethaccount 3726118371 UniversalReceiverHook func(*abi.CborBytesTransparent) *abi.EmptyValue
//XXX doesn't exist in rust but exists in go - easy to remove

@jennijuju
Copy link
Member

can we close this now?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
No open projects
Status: 📋 Nice To Haves
Development

No branches or pull requests

3 participants