Commit Graph

792 Commits

Author SHA1 Message Date
Daniel Kirchner
d1c0b428fc Improve abi decoding functions for arrays. 2021-09-15 13:50:19 +02:00
Daniel Kirchner
0fa24c786b
Merge pull request #11956 from ethereum/userDefinedTypesContractAccess
Allow accessing user defined value type members via contract name.
2021-09-14 17:14:04 +02:00
Daniel Kirchner
be29ef70a7 Allow accessing user defined value type members via contract name. 2021-09-14 16:24:14 +02:00
chriseth
8735d3fb6c
Merge pull request #11930 from ethereum/calldataStructInlineAssembly
Fix inline assembly assignments to calldata structs and statically-sized calldata arrays.
2021-09-14 16:16:48 +02:00
chriseth
cb218fe018
Merge pull request #11947 from ethereum/abicodec-test-userdefined
Added an abi function test for UserDefinedValueType
2021-09-14 13:49:45 +02:00
Harikrishnan Mulackal
c8c6d30808
Merge pull request #11946 from ethereum/tests-userdefinedvaluetypes
UserDefinedValueType: test to validate zero-cost-abstraction claim.
2021-09-13 18:54:36 +02:00
hrkrshnn
4871017aae Added an abi function test for UserDefinedValueType
A test to see if `abi.encode*(..., (CustomType))` and `abi.decode(..., (CustomType))` works as
intended.
2021-09-13 18:12:42 +02:00
hrkrshnn
00bfed4d8b UserDefinedValueType: test to validate zero-cost-abstraction claim.
Seems that the optimizer can indeed make it a zero-cost-abstraction!
2021-09-13 16:49:52 +02:00
Daniel Kirchner
fc37b18e88 Fix inline assembly assignments to calldata structs and statically-sized arrays. 2021-09-13 15:22:46 +02:00
Harikrishnan Mulackal
8fafdeacac
Merge pull request #11939 from ethereum/userdefined-types-mapping-key
Allow Mapping keys to have type UserDefinedValueType.
2021-09-13 15:06:14 +02:00
hrkrshnn
a1d4d0125d Allow UserDefinedValueType.uwrap (and wrap) as RHS of constant decl
Needed to make `MyType.unwrap` and `MyType.unwrap` as pure in the process. This change affected some
existing tests ("statement has no effect").
2021-09-13 11:53:05 +02:00
hrkrshnn
1fa6c71bd0 Allow Mapping keys to have type UserDefinedValueType.
Also added syntax and semantic test.
2021-09-13 10:03:49 +02:00
hrkrshnn
952540c3b5 User defined value type: changes in documentation and test case
Changed the name of a function from `truncate` to `floor`, since that is more appropriate; updated
the inaccurate description on the rounding behaviour. Also modified the respective semantic test.
2021-09-09 16:57:03 +02:00
chriseth
3e2e3d1baa
Merge pull request #11915 from ethereum/fix-out-of-sync-gas-costs
Fix breakage on `develop` caused by gas costs that went out of sync
2021-09-09 15:42:08 +02:00
Kamil Śliwak
f6eecb8c6f Fix gas costs that went out of sync in some tests due to a recent merge 2021-09-09 13:26:45 +02:00
hrkrshnn
a03fbf7061 User defined value types: moved a syntax test to semantic test. 2021-09-09 12:07:51 +02:00
Harikrishnan Mulackal
8a37f56e98
Merge pull request #11806 from ethereum/user-defined-types
User defined value types
2021-09-09 10:28:35 +02:00
hrkrshnn
5f393d1694 Semantic tests for User Defined Value types 2021-09-08 21:19:30 +02:00
chriseth
4b0cd6cc8c Update gas costs. 2021-09-08 12:25:56 +02:00
Marenz
2b28f87abf Add type().min/max for enums 2021-09-01 15:02:02 +02:00
chriseth
45a910c2ca
Merge pull request #11750 from ethereum/immutables-10463
Allow reading of immutables during construction time
2021-08-19 14:39:03 +02:00
Marenz
121fd40f74 Allow reading of immutables during construction time 2021-08-19 13:59:05 +02:00
chriseth
2165c0d3d9 Update gas costs. 2021-08-19 13:26:52 +02:00
chriseth
704820cc6e Update tests. 2021-08-16 22:24:06 +02:00
chriseth
a4c94a1b5b Fixed inline assembly external identifier access. 2021-08-11 18:18:29 +02:00
hrkrshnn
892700d769 Tests for basefee as identifier in inline assembly
Also added basefee to `EVMVersion::hasOpcode(...)`
2021-08-11 10:46:40 +02:00
hrkrshnn
43605d9299 Tests and Changelog for basefee. 2021-08-11 09:51:12 +02:00
chriseth
db85849648
Merge pull request #11737 from ethereum/fix_shift_cleanup
Yul: Fix cleanup for left shift of bytes types.
2021-08-05 12:55:42 +02:00
chriseth
6b888b531b Refactor conversion function. 2021-08-05 11:48:35 +02:00
chriseth
0112fed73b Yul: Fix cleanup for left shift of bytes types. 2021-08-05 10:54:48 +02:00
Daniel Kirchner
0a6fc89da2 Fix negation function name collision. 2021-07-08 10:47:29 +02:00
Kamil Śliwak
105b4b4c8b Update tests 2021-07-05 13:46:53 +02:00
hrkrshnn
b628b115ae Manually enabled gas statistics for erc20 token test. 2021-06-30 16:35:53 +02:00
chriseth
54b1c667f1
Merge pull request #11595 from ethereum/issue-11526
Fix yul codegen bug when using binary negation.
2021-06-30 11:55:42 +02:00
Mathias Baumann
c47d02066c Fix yul codegen bug when using binary negatition. 2021-06-29 17:41:03 +02:00
chriseth
eaac16c779
Merge pull request #11590 from ethereum/disallow-non-hex-zero-and-fix-bytes32-literals-in-bytes-concat
Disallow non-hex zero literals and fix 32-byte hex literals in `bytes.concat()`
2021-06-29 16:34:26 +02:00
Kamil Śliwak
6a50d088a0 Fix ICE for 32-byte hex literals and zero literals in bytes.concat() by disallowing them 2021-06-29 14:48:42 +02:00
Kamil Śliwak
fa3696878b Fix crash when passing empty strings to bytes.concat() 2021-06-29 13:52:01 +02:00
Kamil Śliwak
19fada966f Do not use \b, \v and \f escapes in string literals in generated Yul code 2021-06-28 14:13:47 +02:00
Kamil Śliwak
ca0b1bf3f3 Fix crash when passing zero to bytes.concat() 2021-06-25 21:26:28 +02:00
Alexander Arlt
8accf420ea [yul] Functions: Remove dependency on AST ID. 2021-06-23 16:15:25 +02:00
Kamil Śliwak
98e83303b1 Remove assertions preventing calldata->calldata conversion when cleanup is needed 2021-06-22 16:10:16 +02:00
hrkrshnn
eb04dfcd3e Updated expectation of FixedFeeRegistrar.sol 2021-06-17 10:09:47 +02:00
chriseth
614683019b
Merge pull request #11426 from ethereum/test-fixedfee
Move contracts/FixedFeeRegistrar to semanticTests/externalContracts
2021-06-16 18:34:10 +02:00
a3d4
f59145f21f Fix shadowing struct types by struct member names 2021-06-09 12:37:11 +02:00
chriseth
c55d173a28
Merge pull request #11479 from ethereum/fix-ice-when-assigning-implicitly-convertible-function-array-to-storage
Fix ICE when assigning implicitly convertible function array to storage
2021-06-03 10:52:21 +02:00
chriseth
93936129f1
Merge pull request #11476 from ethereum/fix-ice-on-library-bound-to-literal
Fix ICE in IR when a library is bound to a literal
2021-06-03 08:58:00 +02:00
Kamil Śliwak
ccf658b0e8 Fix assertion preventing assignment of arrays of implicitly convertible function types 2021-06-03 08:56:02 +02:00
Kamil Śliwak
d96cc3469a FunctionDefinition.resolveVirtual(): Skip unimplemented functions when lookup happens via super 2021-06-02 16:16:15 +02:00
Kamil Śliwak
3c7112ed2b Remove the assertion against functions bound to types for which should not be possible
- The list was wrong - we do support string and int literals
- The assertion was meant to guard against silently skipping over types for which there is no special handling. The current code handles everything in a generic way though and likely will not have to be adjusted for newly added types so the risk of that happening is low.
2021-06-02 13:59:42 +02:00
Harikrishnan Mulackal
8ecf79474b
Merge pull request #11458 from ethereum/event_indexed_mixed
Add test with event where indexed parameters are not the first.
2021-05-31 16:19:52 +02:00
chriseth
3dfa68a574
Merge pull request #11456 from ethereum/ice-abstract-contract-mapping-constructor
Fix ICE related to mapping types in abstract contract constructor
2021-05-31 15:35:26 +02:00
chriseth
28aad7e0b4 Add test with event where indexed parameters are not the first. 2021-05-31 15:19:56 +02:00
hrkrshnn
138873d918 Fix ICE related to mapping types in abstract contract constructor 2021-05-31 14:56:49 +02:00
chriseth
c09dc6144c
Merge pull request #11050 from ethereum/isoltest-effects-events
[isoltest] Add support for events using call side-effects.
2021-05-31 14:38:14 +02:00
Alexander Arlt
85e3fcb1bf [isoltest] Extract event specific end-to-end tests. 2021-05-27 23:21:55 -05:00
Alexander Arlt
ec86e3e9ae [isoltest] Add support for events using call side-effects. 2021-05-27 23:21:55 -05:00
Alex Beregszaszi
47167a42a7 Update tests 2021-05-27 18:31:54 +01:00
chriseth
caa833909d
Merge pull request #11244 from ethereum/berlin-gas-update
Change default EVM version to Berlin and update Gas costs.
2021-05-26 13:34:04 +02:00
hrkrshnn
97c9d21376 Force two tests to go out of gas. 2021-05-26 12:23:06 +02:00
hrkrshnn
4d6c951396 Isoltest gas update after Berlin gas cost changes 2021-05-26 12:23:06 +02:00
Alexander Arlt
e9ee571b35 [isoltest] Add support for call side-effects. 2021-05-22 00:12:07 -05:00
Alex Beregszaszi
cb2c246a7b Move contracts/FixedFeeRegistrar to semanticTests/externalContracts 2021-05-21 13:51:19 +01:00
Alexander Arlt
799106acfe [isoltest] Add account builtin.
Co-authored-by: Alex Beregszaszi <alex@rtfs.hu>
2021-05-21 12:38:05 +01:00
Alex Beregszaszi
3e8e5f3bf9 Fix v1/v2 tests to behave like they did pre-0.8.0 2021-05-17 12:37:10 +01:00
Alex Beregszaszi
299873182b Cleanup ABICoder V1 tests
Include the pragma explicitly, rename the file to have a _v1 suffix, and also add V2 counterparts where missing.
2021-05-17 12:37:10 +01:00
Harikrishnan Mulackal
e76a8cbc31
Merge pull request #11395 from ethereum/prbmath
Fix prbmath.exp tests
2021-05-17 11:28:15 +02:00
Alex Beregszaszi
e73ee468a8 Update tests 2021-05-14 19:56:26 +01:00
Alex Beregszaszi
7dc514847a Fix prbmath.exp tests 2021-05-14 15:29:12 +01:00
Djordje Mijovic
53e3081e81 Update gas costs in tests. 2021-05-05 11:33:09 +02:00
Djordje Mijovic
f0c5cdca9f [Sol->Yul] Adding util function to copy literal to storage.
Co-authored-by: Daniel Kirchner <daniel@ekpyron.org>

Co-authored-by: chriseth <chris@ethereum.org>
2021-05-05 11:33:03 +02:00
Djordje Mijovic
8f6d94dbd2 Update gas expectations in semantic tests. 2021-05-05 08:53:40 +02:00
chriseth
aded56b5b9 Update tests 2021-05-03 18:28:43 +02:00
chriseth
996f3d31d5
Merge pull request #11321 from ethereum/test-prbmath
Add semantictest using prbmath
2021-05-03 10:36:30 +02:00
chriseth
fcc98d12b8 Gas updates. 2021-04-29 16:45:05 +02:00
chriseth
f30ef06d62 Update tests. 2021-04-29 15:08:54 +02:00
Alexander Arlt
19ad9fac99 [isoltest] Add support to query balance. 2021-04-28 16:19:05 +02:00
Alexander Arlt
1f2711b0aa [isoltest] Replace storage command with 'storage_empty' builtin. 2021-04-27 16:28:37 -05:00
Alex Beregszaszi
0b3f3dff60 Add ramanujan's pi approximation as a semantic test 2021-04-27 20:47:42 +01:00
Alex Beregszaszi
484a4398a7 Add semantic tests using prb-math 2021-04-27 20:23:13 +01:00
Alex Beregszaszi
ada046ba9a Import prb-math for testing
From 62021c1abc
2021-04-27 20:08:33 +01:00
Alex Beregszaszi
5331bc679a Fix some issues regarding checked arithmethics in stringutils 2021-04-27 17:05:40 +01:00
Alex Beregszaszi
6b3357be50 Add semantic tests using stringutils 2021-04-27 17:02:54 +01:00
Alex Beregszaszi
1a556aaa7f Move compilationTests/stringutils to semanticTests/externalContracts 2021-04-27 11:21:14 +01:00
Alexander Arlt
481971cbcf [isoltest] Add support for external sources. 2021-04-26 08:27:30 -05:00
Alexander Arlt
8239eaa1b8 Fix test builtins & add simple smoke test. 2021-04-26 07:51:43 -05:00
chriseth
659da4bdc7
Merge pull request #11047 from ethereum/bytesToBytesNNConversion
Bytes to bytesNN conversion
2021-04-26 11:51:41 +02:00
Alex Beregszaszi
f952f851b7 Enable more semantic tests for Ewasm 2021-04-23 17:00:01 +01:00
Djordje Mijovic
eb457064b1 Adding semantic tests for bytes to bytesNN conversion. 2021-04-23 13:30:19 +02:00
hrkrshnn
3d29ae73e7 Isoltest: updated the gas tests. 2021-04-22 18:19:47 +02:00
hrkrshnn
221292c278 Tests and changelog 2021-04-22 18:19:47 +02:00
chriseth
00fb2d390b Do not replace zeros by return variable. 2021-04-22 16:54:02 +02:00
Đorđe Mijović
8840fb6ffd
Merge pull request #11270 from ethereum/addingBoundsByteArraySolYul 2021-04-22 15:41:32 +02:00
Djordje Mijovic
3a4233f3ad [Sol->Yul] Adding bounds check when increasing size of byte array. 2021-04-22 11:42:46 +02:00
chriseth
35b651103d Adjust cost of literal zero. 2021-04-22 11:42:42 +02:00
Djordje Mijovic
9fcf16900d Update gas costs in smeantic tests. 2021-04-21 11:01:22 +02:00
Alex Beregszaszi
4177270562 Trivial isoltest updates: comments always on the same line 2021-04-20 17:38:29 +02:00
Alex Beregszaszi
84c05d35f3 Trivial isoltest updates: normalized whitespace 2021-04-20 17:38:29 +02:00
Alex Beregszaszi
45c6bbe02b Trivial isoltest updates: directives sorted alphabetically 2021-04-20 17:21:56 +02:00
Djordje Mijovic
ea5cda08c8 Adding tests for bytes.concat with fixed bytes arguments. 2021-04-14 11:21:24 +02:00