You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: learn_evm/evm_opcodes.md
+16-17
Original file line number
Diff line number
Diff line change
@@ -74,7 +74,7 @@ The gas information is a work in progress. If an asterisk is in the Gas column,
74
74
|[`0x55`](#sstore)| SSTORE | Save word to storage | - | 20000**|
75
75
|[`0x56`](#jump)| JUMP | Alter the program counter | - | 8 |
76
76
|[`0x57`](#jumpi)| JUMPI | Conditionally alter the program counter | - | 10 |
77
-
|[`0x58`](#getpc)|GETPC| Get the value of the program counter prior to the increment | - | 2 |
77
+
|[`0x58`](#pc)|PC| Get the value of the program counter prior to the increment | - | 2 |
78
78
|[`0x59`](#msize)| MSIZE | Get the size of active memory in bytes | - | 2 |
79
79
|[`0x5a`](#gas)| GAS | Get the amount of available gas, including the corresponding reduction for the cost of this instruction | - | 2 |
80
80
|[`0x5b`](#jumpdest)| JUMPDEST | Mark a valid destination for jumps | - | 1 |
@@ -149,19 +149,19 @@ The gas information is a work in progress. If an asterisk is in the Gas column,
149
149
|[`0xa3`](#log3)| LOG3 | Append log record with three topics | - | 1500 |
150
150
|[`0xa4`](#log4)| LOG4 | Append log record with four topics | - | 1875 |
151
151
|`0xa5` - `0xaf`| Unused | - |
152
-
|[`0xb0`](#jumpto)| JUMPTO | Tentative [libevmasm has different numbers](https://github.com/ethereum/solidity/blob/c61610302aa2bfa029715b534719d25fe3949059/libevmasm/Instruction.h#L176)|[EIP 615](https://github.com/ethereum/EIPs/blob/606405b5ab7aa28d8191958504e8aad4649666c9/EIPS/eip-615.md)|
|`0xb0`| JUMPTO | Tentative [libevmasm has different numbers](https://github.com/ethereum/solidity/blob/c61610302aa2bfa029715b534719d25fe3949059/libevmasm/Instruction.h#L176)|[EIP 615](https://github.com/ethereum/EIPs/blob/606405b5ab7aa28d8191958504e8aad4649666c9/EIPS/eip-615.md)|
Copy file name to clipboardExpand all lines: program-analysis/echidna/exercises/Exercise-5.md
+1-1
Original file line number
Diff line number
Diff line change
@@ -38,7 +38,7 @@ We recommend to first try without reading the following hints. The hints are in
38
38
39
39
- Remember that sometimes you have to supply the test contract with Ether. Read more in [the Echidna wiki](https://github.com/crytic/echidna/wiki/Config) and look at [the default config setup](https://github.com/crytic/echidna/blob/master/tests/solidity/basic/default.yaml).
40
40
- The invariant that we are looking for is "the balance of the receiver contract can not decrease"
41
-
- Read what is the [multi abi option](https://github.com/crytic/building-secure-contracts/blob/master/program-analysis/echidna/common-testing-approaches.md#external-testing)
41
+
- Read what is the [multi abi option](../basic/common-testing-approaches.md#external-testing)
42
42
- A template is provided in [contracts/naive-receiver/NaiveReceiverEchidna.sol](https://github.com/crytic/damn-vulnerable-defi-echidna/blob/hints/contracts/naive-receiver/NaiveReceiverEchidna.sol)
43
43
- A config file is provided in [naivereceiver.yaml](https://github.com/crytic/damn-vulnerable-defi-echidna/blob/hints/naivereceiver.yaml)
Copy file name to clipboardExpand all lines: program-analysis/echidna/exercises/Exercise-6.md
+1-1
Original file line number
Diff line number
Diff line change
@@ -37,7 +37,7 @@ Only the following contracts are relevant:
37
37
We recommend to first try without reading the following hints. The hints are in the [`hints` branch](https://github.com/crytic/damn-vulnerable-defi-echidna/tree/hints).
38
38
39
39
- The invariant that we are looking for is "Flash loan can always be made"
40
-
- Read what is the [multi abi option](https://github.com/crytic/building-secure-contracts/blob/master/program-analysis/echidna/common-testing-approaches.md#external-testing)
40
+
- Read what is the [multi abi option](../basic/common-testing-approaches.md#external-testing)
41
41
- The `receiveTokens` callback function must be implemented
42
42
- A template is provided in [contracts/unstoppable/UnstoppableEchidna.sol](https://github.com/crytic/damn-vulnerable-defi-echidna/blob/hints/contracts/unstoppable/UnstoppableEchidna.sol)
43
43
- A config file is provided in [unstoppable.yaml](https://github.com/crytic/damn-vulnerable-defi-echidna/blob/hints/unstoppable.yaml)
Copy file name to clipboardExpand all lines: program-analysis/echidna/exercises/Exercise-8.md
+1-1
Original file line number
Diff line number
Diff line change
@@ -38,7 +38,7 @@ Only the following contracts are relevant:
38
38
We recommend to first try without reading the following hints. The hints are in the [`hints` branch](https://github.com/crytic/damn-vulnerable-defi-echidna/tree/hints).
39
39
40
40
- The invariant that we are looking for is "an attacker cannot get almost whole amount of rewards"
41
-
- Read what is the [multi abi option](https://github.com/crytic/building-secure-contracts/blob/master/program-analysis/echidna/common-testing-approaches.md#external-testing)
41
+
- Read what is the [multi abi option](../basic/common-testing-approaches.md#external-testing)
42
42
- A config file is provided in [the-rewarder.yaml](https://github.com/crytic/damn-vulnerable-defi-echidna/blob/solutions/the-rewarder.yaml)
Copy file name to clipboardExpand all lines: program-analysis/manticore/symbolic-execution-introduction.md
+1-1
Original file line number
Diff line number
Diff line change
@@ -28,7 +28,7 @@ As `f()` contains two paths, a DSE will construct two differents path predicates
28
28
- Path 1: `a == 65`
29
29
- Path 2: `Not (a == 65)`
30
30
31
-
Each path predicate is a mathematical formula that can be given to a so-called [SMT solver](https://github.com/crytic/building-secure-contracts/blob/master/program-analysis/manticore/symbolic-execution-introduction.md), which will try to solve the equation. For `Path 1`, the solver will say that the path can be explored with `a = 65`. For `Path 2`, the solver can give `a` any value other than 65, for example `a = 0`.
31
+
Each path predicate is a mathematical formula that can be given to a so-called `SMT solver`, which will try to solve the equation. For `Path 1`, the solver will say that the path can be explored with `a = 65`. For `Path 2`, the solver can give `a` any value other than 65, for example `a = 0`.
32
32
33
33
### Verifying properties
34
34
Manticore allows a full control over all the execution of each path. As a result, it allows to add arbirtray contraints to almost anything. This control allows for the creation of properties on the contract.
0 commit comments