Skip to content

Commit 4f6d005

Browse files
authored
Merge pull request #185 from crytic/learnevm-chains
[WIP] Add EVM-compatible chains - Learn EVM
2 parents 66ed46b + e1970d1 commit 4f6d005

File tree

6 files changed

+117
-3
lines changed

6 files changed

+117
-3
lines changed

README.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ Follow our guidelines and best practices to write secure smart contracts.
1212
- [Secure development workflow](./development-guidelines/workflow.md): A rough, high-level process to follow while you write code
1313
- [Token integration checklist](./development-guidelines/token_integration.md): What to check when interacting with arbitrary token
1414
- [Learn EVM](./learn_evm): EVM technical knowledge
15+
- [Forks <> EIPs](./learn_evm/eips_forks.md): Summarize the EIPs included in each Ethereum fork
16+
- [Forks <> CIPs](./learn_evm/cips_forks.md): Summarize the CIPs and EIPs included in each Celo fork *(EVM-compatible chain)*
17+
- [Upgrades <> TIPs](./learn_evm/tips_upgrades.md): Summarize the TIPs included in each TRON upgrade *(EVM-compatible chain)*
18+
- [Forks <> BEPs](./learn_evm/beps_forks.md): Summarize the BEPs included in each BSC fork *(EVM-compatible chain)*
1519
- [EIPs - forks](./learn_evm/eips_forks.md): summarize the EIPs included in each fork
1620
- [EVM Opcodes](./learn_evm/evm_opcodes.md): Details on all EVM opcodes
1721
- [Not so smart contracts](./not-so-smart-contracts): Examples of smart contract common issues. Each issue contains a description, an example and recommendations
@@ -22,10 +26,10 @@ Follow our guidelines and best practices to write secure smart contracts.
2226
- [Solana](./not-so-smart-contracts/solana)
2327
- [Program analysis](./program-analysis): How to use automated tools to secure contracts
2428
- [Echidna](./program-analysis/echidna): a fuzzer that will check your contract's properties.
25-
- [Slither](./program-analysis/slither): a static analyzer avaialable through a CLI and scriptable interface.
29+
- [Slither](./program-analysis/slither): a static analyzer available through a CLI and scriptable interface.
2630
- [Manticore](./program-analysis/manticore): a symbolic execution engine that can prove the correctness properties.
2731
- For each tool, this training material will provide:
2832
- a theoretical introduction, a walkthrough of its API, and a set of exercises.
2933
- exercises expected to require ~two hours to practically learn its operation.
3034
- [Resources](./resources): Various online resources
31-
- [Trail of Bits blogposts](./resources/tob_blogposts.md) List of blockchain related blogpost made by Trail of Bits
35+
- [Trail of Bits blogposts](./resources/tob_blogposts.md): List of blockchain related blogposts made by Trail of Bits

learn_evm/README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,6 @@
33
List of EVM technical knowledge
44

55
- [Forks <> EIPs](eips_forks.md): Summarize the EIPs included in each fork
6+
- [Forks <> CIPs](cips_forks.md): Summarize the CIPs and EIPs included in each Celo fork *(EVM-compatible chain)*
7+
- [Upgrades <> TIPs](tips_upgrades.md): Summarize the TIPs included in each TRON upgrade *(EVM-compatible chain)*
8+
- [Forks <> BEPs](beps_forks.md): Summarize the BEPs included in each BSC fork *(EVM-compatible chain)*

learn_evm/beps_forks.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
The following lists every BEP associated to a Binance Smart Chain fork.
2+
3+
| Release | BEP | What it does
4+
|---|---|---|
5+
[v1.0.6](https://github.com/bnb-chain/bsc/releases/tag/v1.0.6) | [84](https://github.com/bnb-chain/BEPs/blob/master/BEP84.md) | Issue/bind BEP2 with existing BEP20 tokens
6+
[v1.1.5](https://github.com/bnb-chain/bsc/releases/tag/v1.1.5) | [93](https://github.com/bnb-chain/BEPs/blob/master/BEP93.md) | Introduces new block syncing protocol
7+
[v1.1.5](https://github.com/bnb-chain/bsc/releases/tag/v1.1.5) | [95](https://github.com/bnb-chain/BEPs/blob/master/BEP95.md) | Creates real-time burning mechanism
8+
[v1.1.11](https://github.com/bnb-chain/bsc/releases/tag/v1.1.11) | [127](https://github.com/bnb-chain/BEPs/blob/master/BEP127.md) | Creates "Temporary Maintenance" mode for validators
9+
[v1.1.11](https://github.com/bnb-chain/bsc/releases/tag/v1.1.11) | [131](https://github.com/bnb-chain/BEPs/blob/master/BEP131.md) | Increase validator set with "Candidate" validators
10+
[v1.1.18](https://github.com/bnb-chain/bsc/releases/tag/v1.1.11) | [153](https://github.com/bnb-chain/BEPs/blob/master/BEP153.md) | Creates native staking protocol

learn_evm/cips_forks.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
The following lists every CIP associated to a Celo fork. Celo is an EVM-compatible chain.
2+
| Fork | CIP/EIP | What it does
3+
|---|---|---|
4+
[Churrito](https://github.com/celo-org/celo-proposals/blob/master/CIPs/cip-0024.md)| [EIP 211](https://eips.ethereum.org/EIPS/eip-211)| Create `RETURNDATASIZE` and `RETURNDATACOPY` opcodes
5+
[Donut](https://github.com/celo-org/celo-proposals/blob/master/CIPs/cip-0027.md)| [CIP 25](https://github.com/celo-org/celo-proposals/blob/master/CIPs/cip-0025.md)| Add Ed25519 precompile
6+
[Donut](https://github.com/celo-org/celo-proposals/blob/master/CIPs/cip-0027.md)| [CIP 31 - *copied from EIP-2539*](https://github.com/celo-org/celo-proposals/blob/master/CIPs/cip-0031.md) | Add precompile for BLS12-381 curve operations
7+
[Donut](https://github.com/celo-org/celo-proposals/blob/master/CIPs/cip-0027.md)| [CIP 30 - *copied from EIP-2539*](https://github.com/celo-org/celo-proposals/blob/master/CIPs/cip-0030.md) | Add precompile for BLS12-377 curve operations
8+
[Donut](https://github.com/celo-org/celo-proposals/blob/master/CIPs/cip-0027.md)| [CIP 20](https://github.com/celo-org/celo-proposals/blob/master/CIPs/cip-0020.md) | Add extensible hash function precompile
9+
[Donut](https://github.com/celo-org/celo-proposals/blob/master/CIPs/cip-0027.md)| [CIP 21](https://github.com/celo-org/celo-proposals/blob/master/CIPs/cip-0021.md) | Add governable lookback window
10+
[Donut](https://github.com/celo-org/celo-proposals/blob/master/CIPs/cip-0027.md)| [CIP 22](https://github.com/celo-org/celo-proposals/blob/master/CIPs/cip-0022.md) | Upgrade epoch SNARK data
11+
[Donut](https://github.com/celo-org/celo-proposals/blob/master/CIPs/cip-0027.md)| [CIP 26](https://github.com/celo-org/celo-proposals/blob/master/CIPs/cip-0026.md) | Add precompile to return BLS pubkey of given validator
12+
[Donut](https://github.com/celo-org/celo-proposals/blob/master/CIPs/cip-0027.md)| [CIP 28](https://github.com/celo-org/celo-proposals/blob/master/CIPs/cip-0028.md) | Split etherbase into separate addresses
13+
[Donut](https://github.com/celo-org/celo-proposals/blob/master/CIPs/cip-0027.md)| [CIP 35](https://github.com/celo-org/celo-proposals/blob/master/CIPs/cip-0035.md) | Add support for Ethereum-compatible transactions
14+
[Espresso](https://github.com/celo-org/celo-proposals/blob/master/CIPs/cip-0041.md)| [EIP 2565](https://eips.ethereum.org/EIPS/eip-2565) | Define gas cost of ModExp precompile
15+
[Espresso](https://github.com/celo-org/celo-proposals/blob/master/CIPs/cip-0041.md)| [CIP 48 - *modified from EIP 2929*](https://github.com/celo-org/celo-proposals/blob/master/CIPs/cip-0048.md) | Gas repricing
16+
[Espresso](https://github.com/celo-org/celo-proposals/blob/master/CIPs/cip-0041.md)| [EIP 2718](https://eips.ethereum.org/EIPS/eip-2718) | Introduce typed transaction envelope
17+
[Espresso](https://github.com/celo-org/celo-proposals/blob/master/CIPs/cip-0041.md)| [EIP 2930](https://eips.ethereum.org/EIPS/eip-2930) | Introduce optional access lists
18+
[Espresso](https://github.com/celo-org/celo-proposals/blob/master/CIPs/cip-0041.md)| [CIP 42 - *modified from EIP 1559*](https://github.com/celo-org/celo-proposals/blob/master/CIPs/cip-0042.md) | Fee market changes
19+
[Espresso](https://github.com/celo-org/celo-proposals/blob/master/CIPs/cip-0041.md)| [EIP 3529](https://eips.ethereum.org/EIPS/eip-3529) | Reduction in gas refunds
20+
[Espresso](https://github.com/celo-org/celo-proposals/blob/master/CIPs/cip-0041.md)| [EIP 3541](https://eips.ethereum.org/EIPS/eip-3541) | Reject deployment of contract code starting with the `0xEF` byte
21+
[Espresso](https://github.com/celo-org/celo-proposals/blob/master/CIPs/cip-0041.md)| [CIP 43](https://github.com/celo-org/celo-proposals/blob/master/CIPs/cip-0043.md) | Block Context
22+
[Espresso](https://github.com/celo-org/celo-proposals/blob/master/CIPs/cip-0041.md)| [CIP 47](https://github.com/celo-org/celo-proposals/blob/master/CIPs/cip-0047.md) | Modify round change timeout formula
23+
[Espresso](https://github.com/celo-org/celo-proposals/blob/master/CIPs/cip-0041.md)| [CIP 45](https://github.com/celo-org/celo-proposals/blob/master/CIPs/cip-0045.md) | Modify transaction fee check
24+
[Espresso](https://github.com/celo-org/celo-proposals/blob/master/CIPs/cip-0041.md)| [CIP 50](https://github.com/celo-org/celo-proposals/blob/master/CIPs/cip-0050.md) | Make replay protection optional
25+
26+
27+

learn_evm/eips_forks.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
The following list every EIP associated to an Ethereum fork.
1+
The following lists every EIP associated to an Ethereum fork.
22

33
| Fork | EIP | What it does | Opcode | Gas | Notes
44
|---|---|---|---|---|---|

0 commit comments

Comments
 (0)