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

[WIP] Add EVM-compatible chains - Learn EVM #185

Merged
merged 15 commits into from
Jan 13, 2023
8 changes: 6 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,10 @@ Follow our guidelines and best practices to write secure smart contracts.
- [Secure development workflow](./development-guidelines/workflow.md): A rough, high-level process to follow while you write code
- [Token integration checklist](./development-guidelines/token_integration.md): What to check when interacting with arbitrary token
- [Learn EVM](./learn_evm): EVM technical knowledge
- [Forks <> EIPs](./learn_evm/eips_forks.md): Summarize the EIPs included in each Ethereum fork
- [Forks <> CIPs](./learn_evm/cips_forks.md): Summarize the CIPs and EIPs included in each Celo fork *(EVM-compatible chain)*
- [Upgrades <> TIPs](./learn_evm/tips_upgrades.md): Summarize the TIPs included in each TRON upgrade *(EVM-compatible chain)*
suryansh-tob marked this conversation as resolved.
Show resolved Hide resolved
- [Forks <> BEPs](./learn_evm/beps_forks.md): Summarize the BEPs included in each BSC fork *(EVM-compatible chain)*
- [EIPs - forks](./learn_evm/eips_forks.md): summarize the EIPs included in each fork
- [EVM Opcodes](./learn_evm/evm_opcodes.md): Details on all EVM opcodes
- [Not so smart contracts](./not-so-smart-contracts): Examples of smart contract common issues. Each issue contains a description, an example and recommendations
Expand All @@ -22,10 +26,10 @@ Follow our guidelines and best practices to write secure smart contracts.
- [Solana](./not-so-smart-contracts/solana)
- [Program analysis](./program-analysis): How to use automated tools to secure contracts
- [Echidna](./program-analysis/echidna): a fuzzer that will check your contract's properties.
- [Slither](./program-analysis/slither): a static analyzer avaialable through a CLI and scriptable interface.
- [Slither](./program-analysis/slither): a static analyzer available through a CLI and scriptable interface.
- [Manticore](./program-analysis/manticore): a symbolic execution engine that can prove the correctness properties.
- For each tool, this training material will provide:
- a theoretical introduction, a walkthrough of its API, and a set of exercises.
- exercises expected to require ~two hours to practically learn its operation.
- [Resources](./resources): Various online resources
- [Trail of Bits blogposts](./resources/tob_blogposts.md) List of blockchain related blogpost made by Trail of Bits
- [Trail of Bits blogposts](./resources/tob_blogposts.md): List of blockchain related blogposts made by Trail of Bits
3 changes: 3 additions & 0 deletions learn_evm/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,6 @@
List of EVM technical knowledge

- [Forks <> EIPs](eips_forks.md): Summarize the EIPs included in each fork
- [Forks <> CIPs](cips_forks.md): Summarize the CIPs and EIPs included in each Celo fork *(EVM-compatible chain)*
- [Upgrades <> TIPs](tips_upgrades.md): Summarize the TIPs included in each TRON upgrade *(EVM-compatible chain)*
- [Forks <> BEPs](beps_forks.md): Summarize the BEPs included in each BSC fork *(EVM-compatible chain)*
10 changes: 10 additions & 0 deletions learn_evm/beps_forks.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
The following lists every BEP associated to a Binance Smart Chain fork.

| Release | BEP | What it does
|---|---|---|
[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
[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
[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
[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
[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
[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
27 changes: 27 additions & 0 deletions learn_evm/cips_forks.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
The following lists every CIP associated to a Celo fork. Celo is an EVM-compatible chain.
| Fork | CIP/EIP | What it does
|---|---|---|
[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
[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
[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
[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
[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
[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
[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
[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
[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
[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
[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
[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
[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
[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
[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
[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
[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
[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
[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
[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
[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



2 changes: 1 addition & 1 deletion learn_evm/eips_forks.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
The following list every EIP associated to an Ethereum fork.
The following lists every EIP associated to an Ethereum fork.

| Fork | EIP | What it does | Opcode | Gas | Notes
|---|---|---|---|---|---|
Expand Down
Loading