Bhargava Shastry
5c6e12b2c0
Update existing and add new test cases.
2023-02-02 11:40:39 +01:00
Bhargava Shastry
f8880cad82
Yul grammar generator: Bound memory accesses.
2023-02-02 08:10:53 +01:00
Rodrigo Q. Saramago
ef6ff2f055
Adds support for the EVM version "Paris".
...
Deprecates `block.difficulty` and disallow `difficulty()` in inline assembly for EVM versions >= paris.
The change is due to the renaming introduced by EIP-4399 (see: https://eips.ethereum.org/EIPS/eip-4399 ).
Introduces `block.prevrandao` in Solidity and `prevrandao()` in inline assembly for EVM versions >= paris.
Co-authored-by: Alex Beregszaszi <alex@rtfs.hu>
Co-authored-by: Daniel <daniel@ekpyron.org>
Co-authored-by: matheusaaguiar <95899911+matheusaaguiar@users.noreply.github.com>
Co-authored-by: Nikola Matić <nikola.matic@ethereum.org>
2023-01-23 18:50:36 +00:00
Bhargava Shastry
2c27405cbb
Fix zero size memory expansion semantics in the yul interpreter.
2022-11-21 11:53:42 +01:00
Marenz
d10d967008
yulRun: Fix unexpected return value for call* instructions and add tests
2022-09-14 11:40:08 +02:00
Marenz
4b69b5fdc1
YulRunner: Add support for external calls to the same contract
2022-09-14 11:40:02 +02:00
Marenz
53b67334c5
YulRunner: Add support for memoryguard() and literal parameters
2022-09-14 11:40:02 +02:00
Bhargava Shastry
69d9869d21
Fix create2 memory access in yul interpreter.
2022-09-12 09:53:31 +02:00
Bhargava Shastry
b8ad2b2718
Yul interpreter: Add flag to disable memory tracing and dump for fuzzing.
...
Model revert in yul interpreter.
Add logTrace for a few more instructions and clear trace on revert.
2022-01-04 11:56:27 +01:00
Bhargava Shastry
259a98b82c
Impose stricter upper bound on memory accesses in order to prevent overflow/wrap around.
2022-01-03 18:22:42 +01:00
chriseth
1531863835
Split Common.h into Numeric.h.
2021-09-23 15:27:29 +02:00
hrkrshnn
543ccf5287
Added the basefee instruction in YulInterpreter
2021-08-09 16:18:08 +02:00
Alex Beregszaszi
37be1b3ed9
Remove dependency on util::160 in yulInterpreter
...
Instead apply explicit truncation or masking for readability.
2021-04-23 14:35:05 +01:00
Daniel Kirchner
a75424eec4
Drop support for evm15 and eip-615.
2021-03-09 15:56:03 +01:00
Alexander Arlt
c44bb7e7ef
Replace raw throw with BOOST_THROW_EXCEPTION.
2021-02-18 20:23:59 -05:00
Alex Beregszaszi
7e88ba8da0
Enable the -Wconversion warning
2020-12-08 16:45:24 +00:00
Alex Beregszaszi
a22077f736
Rename AsmData -> AST
...
Also attempt to only include ASTForward where appropriate.
2020-11-25 17:58:02 +00:00
chriseth
0226d104b7
Fix literal arguments in interpreter.
2020-08-06 14:16:59 +02:00
chriseth
2c7359de1e
Merge pull request #9394 from ethereum/fix-9391
...
Yul interpreter: Return addresses of type u160 for create and create2…
2020-07-20 18:38:43 +02:00
Bhargava Shastry
deffb7ffc8
Yul interpreter: Return addresses of type u160 for create and create2 calls
2020-07-20 11:26:47 +02:00
Sachin Grover
b7adb2aa42
Add SPDX license identifier if not present already in source file
...
Fixes : #9220
2020-07-17 20:24:12 +05:30
Alex Beregszaszi
870ea98c21
Prefix EIP-615 opcodes with EIP615 in Instructions
2020-07-13 17:34:19 +01:00
Bhargava Shastry
d0ea1f97fd
Yul interpreter: Return selfbalance constant for the expression
...
balance(address()) and balance constant otherwise.
2020-06-30 16:59:13 +02:00
Djordje Mijovic
1ee6c49028
Adding fixes for signedness warnings in test/tools/yulInterpreter
2020-06-02 16:35:41 +02:00
Christian Parpart
345f9928ab
Library libdevcore renamed to libsolutil.
2020-01-07 15:51:50 +01:00
Christian Parpart
ed45b000d1
Adapt tests directory to C++ namespace changes.
2020-01-07 15:51:50 +01:00
Christian Parpart
6b23412fae
C++ namespace cleanup (except tests).
2020-01-07 15:51:50 +01:00
Dimitry
fd3ae0b24a
add chainid and selfbalance to lllc
2019-09-09 23:35:36 +03:00
chriseth
5b4b4011c7
Extend memory beyond 32 byte addresses in interpreter.
2019-09-04 20:10:42 +02:00
Bhargava Shastry
6427ec661a
Yul interpreter: Out of bounds mloads return zero
2019-09-03 09:51:15 +02:00
chriseth
bdf29277a2
Change interpreter memory to be non-contiguous.
2019-09-02 13:51:47 +02:00
chriseth
cee1340113
Add mini-interpreter to check representation.
2019-05-28 11:35:07 +02:00
chriseth
1ca3edf6a1
Remove side-effect-free instructions from the trace.
2019-05-23 12:42:11 +02:00
chriseth
3ef03258ec
Remove memory logging.
2019-05-23 12:42:11 +02:00
chriseth
1dc15d5864
Modify parser and optimizer.
2019-05-20 17:32:56 +02:00
chriseth
18bc82e6fd
Fix interpreter exp bug.
2019-05-07 11:40:33 +02:00
chriseth
f113f8e4a0
Implement datasize, dataoffset and datacopy for yul interpreter.
2019-05-06 16:59:47 +02:00
Bhargava Shastry
f15cedad7a
yulInterpreter: More fine-grained exception handling
2019-04-04 13:02:55 +02:00
chriseth
2308904f68
Remove "using namespace" from header and move Instruction to dev::eth.
2019-03-28 13:48:11 +01:00
Bhargava Shastry
ef94d6d645
yul Interpreter: Move memory size limit to interpreter state.
2019-03-26 14:42:25 +01:00
chriseth
db379403fc
Fix assertion in yul interpreter.
2019-03-13 20:58:15 +01:00
Bhargava Shastry
c48cc19fae
yulInterpreter: Fix u256 overflow in logMemory.
2019-02-28 16:42:50 +01:00
chriseth
514c9910aa
Fix implementation of signextend.
2019-02-26 17:56:32 +01:00
chriseth
cc88c517a2
Review changes.
2019-02-25 11:58:37 +01:00
Bhargava Shastry
d564c24f30
POP is actually a valid instruction.
2019-02-25 11:58:37 +01:00
chriseth
0e471ab811
Review comments.
2019-02-25 11:58:37 +01:00
chriseth
e91be8222c
Yul interpreter executable.
2019-02-25 11:57:48 +01:00
chriseth
0c432a861c
Yul interpreter.
2019-02-25 11:57:48 +01:00