Skip to content

Commit

Permalink
split into two FIPs; WIP.
Browse files Browse the repository at this point in the history
  • Loading branch information
raulk committed Dec 16, 2022
1 parent f775764 commit b3c7516
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 40 deletions.
20 changes: 5 additions & 15 deletions FIPS/fip-nnnn-eam-eeoa.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
---
fip: <to be assigned>
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: <URL>
status: Draft
type: Technical Core
Expand All @@ -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

Expand Down
45 changes: 20 additions & 25 deletions FIPS/fip-nnnn-evm-runtime.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
---
fip: <to be assigned>
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: <URL>
status: Draft
type: Technical Core
Expand All @@ -22,41 +21,36 @@ 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)
- [Method number `2` (`InvokeContract`)](#method-number-2-invokecontract)
- [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)
Expand All @@ -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)
Expand Down Expand Up @@ -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)

Expand Down Expand Up @@ -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.

Expand Down

0 comments on commit b3c7516

Please sign in to comment.