diff --git a/FIPS/fip-nnnn-eam-eeoa.md b/FIPS/fip-nnnn-eam-eeoa.md index 700674c4..085e3420 100644 --- a/FIPS/fip-nnnn-eam-eeoa.md +++ b/FIPS/fip-nnnn-eam-eeoa.md @@ -1,8 +1,7 @@ --- fip: -title: Filecoin EVM runtime (FEVM) -author: Raúl Kripalani (@raulk), Steven Allen (@stebalien), Dimitris Vyzovitis (@vyzo), Aayush Rajasekaran (@arajasek) -Akosh Farkash (@aakoshh) +title: Ethereum Address Manager (EAM) and Ethereum Externally Owned Account (EEOA) +author: Raúl Kripalani (@raulk), Steven Allen (@stebalien) discussions-to: status: Draft type: Technical Core @@ -15,22 +14,13 @@ replaces: N/A # Ethereum Address Manager (EAM) and Ethereum Externally Owned Account (EEOA) - ## Simple Summary -## Abstract - +TODO. -Foreign runtimes often make assumptions on the environment. One such assumption -has to do with addressing schemes. To support native Ethereum addressing, this -FIP introduces the Ethereum Address Manager actor (2), which leverages the f4 -addressing class introduced in FIP-0048 to assign Ethereum-compatible addresses -to EVM smart contracts. +## Abstract -Validation of native Ethereum transactions is enabled by the Ethereum Account -actor (3), which represents Ethereum Externally-Owned Accounts in Filecoin. It -currently acts like a placeholder for a more sophisticated future version of an -Account Abstraction system. +TODO. ## Change Motivation diff --git a/FIPS/fip-nnnn-evm-runtime.md b/FIPS/fip-nnnn-evm-runtime.md index 432a7055..7320c543 100644 --- a/FIPS/fip-nnnn-evm-runtime.md +++ b/FIPS/fip-nnnn-evm-runtime.md @@ -1,8 +1,7 @@ --- fip: title: Filecoin EVM runtime (FEVM) -author: Raúl Kripalani (@raulk), Steven Allen (@stebalien), Dimitris Vyzovitis (@vyzo), Aayush Rajasekaran (@arajasek) -Akosh Farkash (@aakoshh) +author: Raúl Kripalani (@raulk), Steven Allen (@stebalien) discussions-to: status: Draft type: Technical Core @@ -22,8 +21,9 @@ replaces: N/A - [Simple Summary](#simple-summary) - [Abstract](#abstract) - [Change Motivation](#change-motivation) -- [Specification: EVM runtime actor](#specification-evm-runtime-actor) - - [Deployment](#deployment) +- [Specification](#specification) + - [Installation](#installation) + - [Prototype actor](#prototype-actor) - [State](#state) - [Actor interface (methods)](#actor-interface-methods) - [Method number `0` (`Constructor`)](#method-number-0-constructor) @@ -31,32 +31,26 @@ replaces: N/A - [Method number `3` (`GetBytecode`)](#method-number-3-getbytecode) - [Method number `4` (`GetStorageAt`)](#method-number-4-getstorageat) - [Method number `5` (`InvokeContractDelegate`)](#method-number-5-invokecontractdelegate) - - [Method numbers >= 1024**](#method-numbers--1024) - - [Smart contract deployment](#smart-contract-deployment) - - [Smart contract execution](#smart-contract-execution) - - [Cross-contract calls](#cross-contract-calls) - - [Ethereum addressing](#ethereum-addressing) + - [Method numbers >= 1024 (`HandleFilecoinMethod`)**](#method-numbers--1024-handlefilecoinmethod) + - [Addressing](#addressing) + - [Ethereum zero address](#ethereum-zero-address) - [Opcode support](#opcode-support) - [Opcodes without remarks](#opcodes-without-remarks) - [Opcodes with remarks](#opcodes-with-remarks) - [Precompiles](#precompiles) - - [Gas](#gas) + - [Ethereum precompiles](#ethereum-precompiles) + - [Filecoin precompiles](#filecoin-precompiles) + - [Migration](#migration) + - [Other considerations](#other-considerations) + - [Historical support](#historical-support) + - [Transaction types](#transaction-types) + - [Native currency](#native-currency) - [Errors](#errors) -- [Specification: Ethereum Address Manager (EAM)](#specification-ethereum-address-manager-eam) - - [Deployment](#deployment-1) - - [Procedure](#procedure) - - [State](#state-1) - - [Actor interface (methods)](#actor-interface-methods-1) - - [Method number `1` (`Create`)](#method-number-1-create) - - [Method number `2` (`Create2`)](#method-number-2-create2) -- [Specification: Ethereum Externally Owned Account (EEOA)](#specification-ethereum-externally-owned-account-eeoa) -- [Specification: Ethereum JSON-RPC API](#specification-ethereum-json-rpc-api) -- [Specification: Filecoin Virtual Machine changes](#specification-filecoin-virtual-machine-changes) - - [Added syscalls](#added-syscalls) - - [Removed syscalls](#removed-syscalls) + - [Filecoin Virtual Machine changes](#filecoin-virtual-machine-changes) + - [Added syscalls](#added-syscalls) + - [Removed syscalls](#removed-syscalls) - [Changed syscalls](#changed-syscalls) - [New externs](#new-externs) - - [Memory limits](#memory-limits) - [Client changes](#client-changes) - [Tipset CID](#tipset-cid) - [Actor events](#actor-events) @@ -66,6 +60,7 @@ replaces: N/A - [Security Considerations](#security-considerations) - [Incentive Considerations](#incentive-considerations) - [Product Considerations](#product-considerations) + - [Gas](#gas) - [Implementation](#implementation) - [Appendix A: Notable differences between FEVM and EVM for smart contract developers](#appendix-a-notable-differences-between-fevm-and-evm-for-smart-contract-developers) - [Appendix B: Upgrades](#appendix-b-upgrades) @@ -129,7 +124,7 @@ EVM storage (u256 => u256 map) is backed by a specialized data structure based o Contrary to traditional EVM storage, the KAMT is an enumerable data structure. However, no operations are provided for smart contracts to enumerate keys, at least not at this stage. This property merely facilitates external observability and debuggability. -TODO: specify these optimizations, or the KAMT. +TODO: specify the KAMT. ### Actor interface (methods) @@ -474,7 +469,7 @@ _Errors_ ### Other considerations -#### Historical support +#### Historical support EVM opcode and precompile support is restricted to the Ethereum Paris fork. Historical Ethereum behaviors are not supported.