Commit Graph
913 Commits
Author SHA1 Message Date
Kamil Śliwak b0a986ffff Allow event definitions at file level 2023-09-15 14:47:40 +02:00
Nikola Matic fdc6699159 Rematerialize zero literals with default cleanup sequence
Add unused pruner step to the end of the default cleanup sequence
2023-09-04 15:40:33 +02:00
Kamil Śliwak 38decf05dd Update gas expectations 2023-08-22 20:00:03 +02:00
Kamil Śliwak ffd495bd89 Increase gas in call_options_overload test to make it pass on homestead
- After the test framework changes it fails via Yul on Homestead but passes on all other EVM versions and on legacy. The test itself does not seem to be testing these specific numbers so and increasing them resolves the problem.
2023-08-22 20:00:03 +02:00
Nikola Matic 96e7b4f46b Rematerialize zero literals 2023-08-07 17:33:16 +02:00
Nikola Matic 964bdc711c Fix ICE when emitting event from another contract 2023-07-21 21:49:09 +02:00
r0qsandKamil Śliwak 86602852be Add buglist entry
Co-authored-by: Kamil Śliwak <kamil.sliwak@codepoets.it>
2023-07-18 18:15:32 +02:00
Daniel Kirchner 5c7214cbe3 Always generate code for .selector member access. 2023-07-18 18:15:32 +02:00
Daniel Kirchner 110e2a656d Restrict mobile types of function types.
Move ternary tests to semanticTests
2023-07-18 14:13:36 +02:00
Matheus Aguiar f3fc19080a Override mobileType of MagicType to null 2023-07-18 10:56:02 +02:00
Kamil Śliwak dad2bf6472 Relax restrictions on immutable initialization 2023-07-14 15:29:32 +02:00
Nikola Matic 5893e099fe Allow qualified access to events from other contracts 2023-05-26 12:52:52 +02:00
Alexander Arlt c5673278a7 Remove EWASM backend. 2023-05-11 10:56:55 -05:00
Daniel Kirchner 75a0c486a8 Adjust gas expectations due to new creation costs. 2023-05-09 18:22:44 +02:00
Daniel KirchnerandRodrigo Q. Saramago 44da8507b1 Change default EVM version to Shanghai.
Co-authored-by: Rodrigo Q. Saramago <rodrigoqsaramago@gmail.com>
2023-05-08 16:34:23 +02:00
Daniel Kirchner 421738b50d Fix calldata handling during creation in EVMHost. 2023-04-18 12:53:50 +02:00
Kamil Śliwak 46457cfc25 Merge pull request #14103 from ethereum/extra-tests
A few extra tests for operators, denominations and virtual functions
2023-04-12 11:32:26 +02:00
hrkrshnn 41ce3feb0a test: some tests for push0
1. `push0_disallowed.yul`: checks if `push0()` is a valid builtin in strict Yul
2. `push0_disallowed.sol`: checks if `push0()` is a valid builtin in inline assembly
3. `push0.sol`: simple semantic test that returns 0
4. `evmone_support.sol`: tests if push0 works properly in evmone
5. Updated some bytecode too large tests to use `shanghai` as version
6. Updated various tests where `push1 0` was hardcoded in different forms / expectations on bytecode
size (`Assembler.cpp`, `GasCosts.cpp`, `SolidityCompiler.cpp`, `SolidityExpressionCompiler.cpp`)
2023-04-12 00:10:24 +02:00
Kamil Śliwak 66fcd542bc Tests for denominations in array sizes 2023-04-07 14:54:09 +02:00
Kamil Śliwak fc7cd54849 Tests for changing virtual function mutability when overriding 2023-04-07 14:49:55 +02:00
Kamil Śliwak 5687f6e934 Tests for literal denominations with non-integer literals 2023-04-07 14:48:13 +02:00
Kamil Śliwak 8dd6f77692 Extra test for operator cleanup 2023-04-07 14:47:34 +02:00
chriseth fac5666dc9 Re-implement unused assign / unused store eliminator. 2023-03-20 13:49:37 +01:00
wechman aba5ac5e2a User-defined operators: Tests 2023-02-22 00:40:03 +01:00
Daniel Kirchner 4064116df4 Do not duplicate subassemblies.
Add LinkerObject check and more tests
2023-02-20 22:20:45 +01:00
chriseth 01b10e2515 Gas updates. 2023-02-15 21:33:06 +01:00
chriseth 07750ea23a More aggressive runtime code exclusion. 2023-02-15 21:33:06 +01:00
chriseth 695b250557 Update gas costs. 2023-02-09 10:47:12 +01:00
Matheus Aguiar 2b70b08d5f Allow library external functions to be bound with using for 2023-02-02 13:39:19 -03:00
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
Matheus Aguiar 7779b6f352 Forbid private library functions to be attached outside their declaration scope 2023-01-17 16:27:35 -03:00
Daniel f441e1323a Merge pull request #13384 from zemse/develop
Allow named parameters in mapping types
2023-01-09 17:59:29 +01:00
Pierre Grimaud b314e1b37d docs: fix typos 2022-12-25 22:39:50 +01:00
fa78e0f3d4 feat: allow named parameters in mapping types
Co-authored-by: Hari <webmail.hari@gmail.com>

test: add parser and abi test cases

docs: add example on using named parameters for mappings

- Add changelog

feat: update antlr grammar to allow named parameters in mappings

fix: prevent conflicting mapping parameter names

ref: change order of mapping initializers

test: update expectations and fix build

test: add more tests

fix: use common error & code for conflicting params

fix: issue with accessing nested mapping

test: add conflicting params tests for more nested levels

Update libsolidity/analysis/DeclarationTypeChecker.cpp

Co-authored-by: Nikola Matić <nikola.matic@ethereum.org>

fix: error reported with the same code twice

test: add more tests for 3 level nested mapping

Address review comments
2022-12-08 11:56:58 +01:00
Kamil Śliwak 71506bd3b3 Consistent terminology for attached/bound functions (file rename) 2022-12-07 19:31:44 +01:00
wechman 64a4f32bc2 Consistent terminology for attached/bound functions 2022-12-07 19:31:41 +01:00
chriseth 79c52b3c9e Re-use knowledge about keccak calls.
Re-use knowledge about keccak calls.

Update gas cost.

More tests.

Fix bug.

Update libyul/optimiser/DataFlowAnalyzer.cpp

Remove util prefixes

fix test

More test cases.

Add Changelog entry
2022-12-07 14:16:13 +01:00
Daniel 3109ce2dbc Merge pull request #12132 from ethereum/userDefinedSideEffectsCodeTransform
Use side-effects of user defined functions in evm code transform.
2022-11-22 14:26:57 +01:00
Alex Beregszaszi eb8af2caec Add basic support for the EVM version Paris
This mostly means testing with evmone, but instruction renaming of difficulty->prevrandao is omitted.
2022-11-21 14:56:46 +01:00
chriseth 5ba8c109f4 Use side-effects of user defined functions in evm code transform. 2022-11-14 21:26:36 +01:00
Alex Beregszaszi 54b4598390 Move some tests from viaYul to appropriate groups 2022-11-10 22:21:15 +01:00
Alex Beregszaszi 0f65e17b7b Update tests 2022-11-10 22:21:15 +01:00
nishant-sachdeva efbd3666a7 added optimization. shl comes out from being distributed over and 2022-11-11 01:16:14 +05:30
Paweł Bylica 4830194383 test: Update test expectations 2022-11-09 10:15:17 +01:00
chriseth cffacac9de Hash number literals according to their value instead of their string representation. 2022-11-08 20:34:10 +01:00
Daniel 9a60c06335 Merge pull request #11087 from ethereum/precompile-prices
EVMHost: charge gas for precompiles
2022-11-08 19:56:42 +01:00
Paweł Bylica c4b6f5f00b test: Properly clear storage dirty flag
Clear storage dirty flag between transactions in EVMHost. The EIP-2200
dirty flag should be persisted only in a single transaction.
2022-11-08 18:13:17 +01:00
Alex Beregszaszi b74b55198d Update tests 2022-11-04 10:48:30 +01:00
Daniel 7ac4c70c9b Merge pull request #13569 from ethereum/document-call-to-zero-init-function-type
Document legacy and IR behavior for call to zero initialized variable of function type
2022-11-01 15:42:12 +01:00
nishant-sachdeva 8c0740748e functions taking calldata args should be assignable to function pointers of same type 2022-10-26 13:29:02 +05:30