Skip to content

Commit 01a342c

Browse files
committed
minor wording changes
1 parent 6835204 commit 01a342c

8 files changed

+13
-13
lines changed

program-analysis/README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ Each technique has its advantages and pitfalls, making them useful in [specific
1616

1717
\* if all paths are explored without timeout
1818

19-
**Slither** analyzes contracts within seconds. However, static analysis might lead to false alarms and is less suitable for complex checks (e.g., arithmetic checks). Run Slither via the API for push-button access to built-in detectors or via the API for user-defined checks.
19+
**Slither** analyzes contracts within seconds. However, static analysis might lead to false alarms and is less suitable for complex checks (e.g., arithmetic checks). Run Slither via the CLI for push-button access to built-in detectors or via the API for user-defined checks.
2020

2121
**Echidna** needs to run for several minutes and will only produce true positives. Echidna checks user-provided security properties written in Solidity. It might miss bugs since it is based on random exploration.
2222

@@ -60,7 +60,7 @@ The broad areas frequently relevant for smart contracts include:
6060

6161
- Manticore is the best choice here. Echidna can be used if the arithmetic is out-of-scope of the SMT solver.
6262

63-
- **Inheritance correctness.** Solidity contracts rely heavily on multiple inheritance. Mistakes like a shadowing function missing a `super` call and misinterpreted c3 linearization order can quickly be introduced.
63+
- **Inheritance correctness.** Solidity contracts rely heavily on multiple inheritance. Mistakes like a shadowing function missing a `super` call and misinterpreted c3 linearization order can easily be introduced.
6464

6565
- Slither is the tool for detecting these issues.
6666

program-analysis/echidna/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ To learn through live coding sessions, watch our [Fuzzing workshop](https://www.
77
**Table of Contents:**
88

99
- [Introduction](introduction): Introductory material on fuzzing and Echidna
10-
- [Basic](basic): Discover the initial steps for using Echidna
10+
- [Basic](basic): Learn the first steps for using Echidna
1111
- [Advanced](advanced): Explore the advanced features of Echidna
1212
- [Fuzzing tips](./fuzzing_tips.md): General fuzzing recommendations
1313
- [Frequently Asked Questions](./frequently_asked_questions.md): Responses to common questions about Echidna

program-analysis/echidna/advanced/README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
- [How to Detect High Gas Consumption](./finding-transactions-with-high-gas-consumption.md): Find out how to identify functions with high gas consumption.
66
- [How to Perform Large-scale Smart Contract Fuzzing](./smart-contract-fuzzing-at-scale.md): Explore how to use Echidna for long fuzzing campaigns on complex smart contracts.
77
- [How to Test a Library](https://blog.trailofbits.com/2020/08/17/using-echidna-to-test-a-smart-contract-library/): Learn about using Echidna to test the Set Protocol library (blog post).
8-
- [How to Test Bytecode-only Contracts](./testing-bytecode.md): Learn how to fuzz contracts without bytecode or perform differential fuzzing between Solidity and Vyper.
8+
- [How to Test Bytecode-only Contracts](./testing-bytecode.md): Learn how to fuzz contracts without source code or perform differential fuzzing between Solidity and Vyper.
99
- [How to Use Hevm Cheats to Test Permit](./hevm-cheats-to-test-permit.md): Find out how to test code that relies on ecrecover signatures by using hevm cheat codes.
10-
- [How to Seed Echidna with Unit Tests](./end-to-end-testing.md): Discover how to use existing unit tests as seeds for Echidna.
10+
- [How to Seed Echidna with Unit Tests](./end-to-end-testing.md): Discover how to use existing unit tests to seed Echidna.
1111
- [Understanding and Using `multi-abi`](./using-multi-abi.md): Learn what `multi-abi` testing is and how to utilize it effectively.

program-analysis/echidna/advanced/collecting-a-corpus.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
## Introduction
1010

11-
In this guide, we will explore how to collect and use a corpus of transactions with Echidna. Our target is the following smart contract, _[magic.sol](https://github.com/crytic/building-secure-contracts/blob/master/program-analysis/echidna/example/magic.sol)_:
11+
In this guide, we will explore how to collect and use a corpus of transactions with Echidna. Our target is the following smart contract, [magic.sol](https://github.com/crytic/building-secure-contracts/blob/master/program-analysis/echidna/example/magic.sol):
1212

1313
```solidity
1414
contract C {
@@ -47,7 +47,7 @@ corpusDir: "corpus-magic"
4747
Now, run the tool and inspect the collected corpus:
4848
4949
```
50-
echidna-test magic.sol --config config.yaml
50+
echidna magic.sol --config config.yaml
5151
```
5252

5353
Echidna is still unable to find the correct magic value. To understand where it gets stuck, review the `corpus-magic/covered.*.txt` file:
@@ -130,7 +130,7 @@ cp corpus-magic/coverage/2712688662897926208.txt corpus-magic/coverage/new.txt
130130
Modify `new.txt` to call `magic(42,129,333,0)`. Now, re-run Echidna:
131131

132132
```
133-
echidna-test magic.sol --config config.yaml
133+
echidna magic.sol --config config.yaml
134134
...
135135
echidna_magic_values: failed!💥
136136
Call sequence:

program-analysis/echidna/advanced/finding-transactions-with-high-gas-consumption.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
- [Identifying high gas consumption transactions](#identifying-high-gas-consumption-transactions)
66
- [Introduction](#introduction)
77
- [Measuring Gas Consumption](#measuring-gas-consumption)
8-
- [Executing Echidna](#executing-echidna)
8+
- [Running Echidna](#running-echidna)
99
- [Excluding Gas-Reducing Calls](#excluding-gas-reducing-calls)
1010
- [Summary: Identifying high gas consumption transactions](#summary-identifying-high-gas-consumption-transactions)
1111

@@ -65,7 +65,7 @@ seqLen: 2
6565
estimateGas: true
6666
```
6767
68-
# Executing Echidna
68+
# Running Echidna
6969
7070
With the configuration file created, we can run Echidna as follows:
7171

program-analysis/echidna/advanced/optimization_mode.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ function echidna_opt_function() public view returns (int256) {
2121

2222
## Optimizing with Echidna
2323

24-
In this example, the target is the following smart contract (_[opt.sol](https://github.com/crytic/building-secure-contracts/blob/master/program-analysis/echidna/example/opt.sol)_):
24+
In this example, the target is the following smart contract ([opt.sol](https://github.com/crytic/building-secure-contracts/blob/master/program-analysis/echidna/example/opt.sol)):
2525

2626
```solidity
2727
contract TestDutchAuctionOptimization {

program-analysis/echidna/advanced/using-multi-abi.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ This is where `multi-abi` testing comes in handy: It allows Echidna to call func
3333

3434
We'll use a simple example to demonstrate how `multi-abi` works. We'll be using two contracts, `Flag` and `EchidnaTest`, both available in [multiabi.sol](https://github.com/crytic/building-secure-contracts/blob/master/program-analysis/echidna/example/multiabi.sol).
3535

36-
The `Flag` contract contains a boolean flag that is only set if `flip()` is called, and a getter function returns the value of the flag. For now, ignore `test_fail()`; we'll discuss this function later.
36+
The `Flag` contract contains a boolean flag that is only set if `flip()` is called, and a getter function that returns the value of the flag. For now, ignore `test_fail()`; we'll discuss this function later.
3737

3838
```solidity
3939
contract Flag {

program-analysis/echidna/frequently_asked_questions.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ the path ends at the assert statement, so it should fail there.
8989

9090
Coverage mappings can be imprecise; however, if they fail completely, it could be that you are using the [`viaIR` optimization option](https://docs.soliditylang.org/en/v0.8.14/ir-breaking-changes.html?highlight=viaIR#solidity-ir-based-codegen-changes), which appears to have some unexpected impact on the solc maps that we are still investigating. As a workaround, disable `viaIR`.
9191

92-
## Echidna crashes, displaying "NonEmpty.fromList: empty list."
92+
## Echidna crashes, displaying "NonEmpty.fromList: empty list"
9393

9494
Echidna relies on the Solidity metadata to detect where each contract is deployed. Please do not disable it. If this is not the case, please [open an issue](https://github.com/crytic/echidna/issues) in our issue tracker.
9595

0 commit comments

Comments
 (0)