Skip to content

Commit 5526482

Browse files
committed
Merge branch 'master' into GPT-root
2 parents f95ce33 + 1a7d9e7 commit 5526482

File tree

107 files changed

+2478
-1318
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

107 files changed

+2478
-1318
lines changed

.github/workflows/deploy.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ jobs:
2828
- name: Build artifacts
2929
run: mdbook build
3030
- name: Upload artifact
31-
uses: actions/upload-pages-artifact@v1
31+
uses: actions/upload-pages-artifact@v2
3232
with:
3333
path: ./book
3434
deploy:
@@ -43,4 +43,4 @@ jobs:
4343
steps:
4444
- name: Deploy to GitHub Pages
4545
id: deployment
46-
uses: actions/deploy-pages@v1
46+
uses: actions/deploy-pages@v2

.github/workflows/echidna.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -115,20 +115,20 @@ jobs:
115115
config: Popsicle.yaml
116116
contract: PopsicleFixed
117117
outcome: success
118-
expected: 'totalBalanceAfterTransferIsPreserved(address,uint256):\s*passed'
118+
expected: 'totalBalanceAfterTransferIsPreserved(address,uint256):\s*passing'
119119
- name: TestDepositWithPermit
120120
workdir: program-analysis/echidna/example/
121121
files: TestDepositWithPermit.sol
122122
solc-version: 0.8.0
123123
config: testdeposit.yaml
124124
contract: TestDepositWithPermit
125125
outcome: success
126-
expected: 'testERC20PermitDeposit(uint256):\s*passed'
126+
expected: 'testERC20PermitDeposit(uint256):\s*passing'
127127
- name: MultiABI
128128
workdir: program-analysis/echidna/example/
129-
files: multiabi.sol
129+
files: allContracts.sol
130130
solc-version: 0.8.0
131-
config: multiabi.yaml
131+
config: allContracts.yaml
132132
contract: EchidnaTest
133133
outcome: failure
134134
expected: 'test_flag_is_false():\s*failed'
@@ -167,7 +167,7 @@ jobs:
167167
contract: ${{ matrix.contract }}
168168
config: ${{ matrix.config }}
169169
output-file: ${{ matrix.files }}.out
170-
solc-version: ${{ matrix.solc-version || '0.5.11' }}
170+
solc-version: ${{ matrix.solc-version || '0.8.0' }}
171171
echidna-workdir: ${{ matrix.workdir }}
172172
echidna-version: edge
173173
crytic-args: ${{ matrix.crytic-args || '' }}

.github/workflows/lint_links.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,15 @@ on:
1212
- ".github/workflows/lint_links.yml"
1313
- "**.md"
1414
schedule:
15-
# run CI at 09:00, on day 1 of the month even if no PRs/merges occur
16-
- cron: "0 9 1 * *"
15+
# run CI at 09:00 every Tuesday even if no PRs/merges occur
16+
- cron: "0 9 * * 2"
1717

1818
jobs:
1919
markdown-link-check:
2020
runs-on: ubuntu-latest
2121
steps:
22-
- uses: actions/checkout@master
22+
- uses: actions/checkout@v3
2323
- uses: gaurav-nelson/github-action-markdown-link-check@v1
2424
with:
2525
use-quiet-mode: "yes"
26+
check-modified-files-only: ${{ (github.event_name == 'pull_request' && 'yes') || 'no' }}

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
.DS_Store
2+
node_modules

CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ Please submit bug reports and feature suggestions to our issue tracker. When rep
1010

1111
## Questions
1212

13-
You can submit questions to the issue tracker, but you might receive a quicker response if you ask in our [chat room](https://empireslacking.herokuapp.com/) (in the #ethereum channel).
13+
Questions can be submitted to the issue tracker, but you may get a faster response if you ask in our [chat room](https://slack.empirehacking.nyc/) (in the #ethereum channel).
1414

1515
## Code Contributions
1616

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ Brought to you by [Trail of Bits](https://www.trailofbits.com/), this repository
1414
- [Learn EVM](./learn_evm): Technical knowledge about EVM
1515
- [EVM Opcodes](./learn_evm/evm_opcodes.md): Information on all EVM opcodes
1616
- [Transaction Tracing](./learn_evm/tracing.md): Helper scripts and guidance for generating and navigating transaction traces
17+
- [Arithmetic Checks](./learn_evm/arithmetic-checks.md): A guide to performing arithmetic checks in the EVM
1718
- [Yellow Paper Guidance](./learn_evm/yellow-paper.md): Symbol reference for easier reading of the Ethereum yellow paper
1819
- [Forks <> EIPs](./learn_evm/eips_forks.md): Summaries of the EIPs included in each Ethereum fork
1920
- [Forks <> CIPs](./learn_evm/cips_forks.md): Summaries of the CIPs and EIPs included in each Celo fork _(EVM-compatible chain)_

SUMMARY.md

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
- [Learn EVM](./learn_evm/README.md)
1111
- [EVM Opcode Reference](./learn_evm/evm_opcodes.md)
1212
- [Transaction Tracing](./learn_evm/tracing.md)
13+
- [Arithmetic Checks](./learn_evm/arithmetic-checks.md)
1314
- [Yellow Paper Guidance](./learn_evm/yellow-paper.md):
1415
- [Forks and EIPs](./learn_evm/eips_forks.md)
1516
- [Forks and CIPs](./learn_evm/cips_forks.md)
@@ -26,6 +27,8 @@
2627
- [Access Controls](./not-so-smart-contracts/algorand/access_controls/README.md)
2728
- [Asset ID Check](./not-so-smart-contracts/algorand/asset_id_check/README.md)
2829
- [Denial of Service](./not-so-smart-contracts/algorand/denial_of_service/README.md)
30+
- [Inner Transaction Fee](./not-so-smart-contracts/algorand/inner_transaction_fee/README.md)
31+
- [Clear State Transaction Check](./not-so-smart-contracts/algorand/clear_state_transaction_check/README.md)
2932
- [Cairo](./not-so-smart-contracts/cairo/README.md)
3033
- [Improper Access Controls](./not-so-smart-contracts/cairo/access_controls/README.md)
3134
- [Integer Division Errors](./not-so-smart-contracts/cairo/integer_division/README.md)
@@ -66,21 +69,22 @@
6669
- [Introduction to Fuzzing](./program-analysis/echidna/introduction/fuzzing-introduction.md)
6770
- [How to Test a Property](./program-analysis/echidna/introduction/how-to-test-a-property.md)
6871
- [Basic](./program-analysis/echidna/basic/README.md)
69-
- [Selecting the Most Suitable Testing Mode](./program-analysis/echidna/basic/testing-modes.md)
70-
- [Selecting the Best Testing Approach](./program-analysis/echidna/basic/common-testing-approaches.md)
71-
- [Filtering Functions](./program-analysis/echidna/basic/filtering-functions.md)
72-
- [Testing Assertions](./program-analysis/echidna/basic/assertion-checking.md)
73-
- [Writing Good Properties Step by Step](./program-analysis/echidna/basic/property-creation.md)
72+
- [How to select the most suitable testing mode](./program-analysis/echidna/basic/testing-modes.md)
73+
- [How to select the best testing approach](./program-analysis/echidna/basic/common-testing-approaches.md)
74+
- [How to filter functions](./program-analysis/echidna/basic/filtering-functions.md)
75+
- [How to test assertions](./program-analysis/echidna/basic/assertion-checking.md)
76+
- [How to write good properties step by step](./program-analysis/echidna/basic/property-creation.md)
77+
- [How to write properties that use ether](./program-analysis/echidna/basic/working-with-eth.md)
7478
- [Advanced](./program-analysis/echidna/advanced/README.md)
75-
- [Collecting a Corpus](./program-analysis/echidna/advanced/collecting-a-corpus.md)
76-
- [Using Optimization Mode](./program-analysis/echidna/advanced/optimization_mode.md)
77-
- [Detecting High Gas Consumption](./program-analysis/echidna/advanced/finding-transactions-with-high-gas-consumption.md)
78-
- [Smart Contract Fuzzing at Large Scale](./program-analysis/echidna/advanced/smart-contract-fuzzing-at-scale.md)
79-
- [Testing Bytecode-Only Contracts](./program-analysis/echidna/advanced/testing-bytecode.md)
80-
- [Using Hevm Cheats to Test Permit](./program-analysis/echidna/advanced/hevm-cheats-to-test-permit.md)
81-
- [Seeding Echidna with Unit Tests](./program-analysis/echidna/advanced/end-to-end-testing.md)
82-
- [Understanding and Using `multi-abi`](./program-analysis/echidna/advanced/using-multi-abi.md)
83-
- [Fuzzing Tips](./program-analysis/echidna/fuzzing_tips.md)
79+
- [How to collect a corpus](./program-analysis/echidna/advanced/collecting-a-corpus.md)
80+
- [How to use optimization mode](./program-analysis/echidna/advanced/optimization_mode.md)
81+
- [How to detect high gas consumption](./program-analysis/echidna/advanced/finding-transactions-with-high-gas-consumption.md)
82+
- [How to perform smart contract fuzzing at a large scale](./program-analysis/echidna/advanced/smart-contract-fuzzing-at-scale.md)
83+
- [How to test bytecode-only contracts](./program-analysis/echidna/advanced/testing-bytecode.md)
84+
- [How to use hevm cheats to test permit](./program-analysis/echidna/advanced/hevm-cheats-to-test-permit.md)
85+
- [How to seed Echidna with unit tests](./program-analysis/echidna/advanced/end-to-end-testing.md)
86+
- [Understanding and using `multi-abi`](./program-analysis/echidna/advanced/using-multi-abi.md)
87+
- [Fuzzing tips](./program-analysis/echidna/fuzzing_tips.md)
8488
- [Frequently Asked Questions](./program-analysis/echidna/frequently_asked_questions.md)
8589
- [Exercises](./program-analysis/echidna/exercises/README.md)
8690
- [Exercise 1](./program-analysis/echidna/exercises/Exercise-1.md)

book

Lines changed: 0 additions & 1 deletion
This file was deleted.

book.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ no-section-label = true
1515
additional-css = ["static/custom.css"]
1616
additional-js = ["static/script.js"]
1717
default-theme = "light"
18+
mathjax-support = true
1819

1920
[output.html.fold]
2021
enable = true

development-guidelines/README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
List of smart contract development best practices
1+
List of Best Practices for Smart Contract Development
22

3-
- [High-level best practices](./guidelines.md): High-level best-practices for all smart contracts
4-
- [Token integration checklist](./token_integration.md): What to check when interacting with arbitrary tokens
5-
- [Incident Response Recommendations](./incident_response.md): Guidelines on how to formulate an incident response plan
6-
- [Secure development workflow](./workflow.md): A rough, high-level process to follow while you write code
3+
- [High-Level Best Practices](./guidelines.md): Essential high-level best practices for all smart contracts
4+
- [Token Integration Checklist](./token_integration.md): Important aspects to consider when interacting with various tokens
5+
- [Incident Response Recommendations](./incident_response.md): Guidelines on establishing an effective incident response plan
6+
- [Secure Development Workflow](./workflow.md): A recommended high-level process to adhere to while writing code

0 commit comments

Comments
 (0)