Commit Graph

1864 Commits

Author SHA1 Message Date
Leonardo
25b31111df
Merge pull request #11040 from ethereum/smt_fix_virtual_one_more_time
[SMTChecker] Fix bug in virtual functions called by constructor
2021-03-17 16:54:36 +01:00
chriseth
0519473059 Add "kind" field to ModifierInvocation AST json element. 2021-03-16 18:50:37 +01:00
Martin Blicha
2f52affcc2 [SMTChecker] Correctly resolve current scope contract in VariableUsage. 2021-03-15 13:55:14 +01:00
Leonardo Alt
998346e599 Fix bug in virtual functions called by constructor. 2021-03-12 16:42:28 +01:00
hrkrshnn
ef0c4cc39f AST Import: For constructors, a public visibility is ignored. 2021-03-11 10:44:19 +01:00
Martin Blicha
4285c2803b [SMTChecker] Fix ICE on array.pop nested inside 1-tuple 2021-03-09 20:00:51 +01:00
chriseth
ad5d34df74
Merge pull request #11071 from ethereum/fixCRInSourceRefFor
Fix handling of carriage return.
2021-03-09 17:52:34 +01:00
Leonardo
5677df86af
Merge pull request #11069 from blishko/smt-array-slice-fix
[SMTChecker] Use same sort name for array slice as for the underlying array
2021-03-09 16:39:12 +01:00
Daniel Kirchner
a75424eec4 Drop support for evm15 and eip-615. 2021-03-09 15:56:03 +01:00
chriseth
eb85a4414c Fix handling of carriage return. 2021-03-09 15:33:12 +01:00
chriseth
40c27ccc22 Move AND with constant inside OR. 2021-03-09 15:26:19 +01:00
Martin Blicha
5af01f6896 [SMTChecker] Use same sort name for array slice as for the underlying array. 2021-03-09 11:06:22 +01:00
Martin Blicha
385a664f3c [SMTChecker] Fix public getter for array of structs. 2021-03-08 17:34:20 +01:00
Martin Blicha
0340510c53 [SMTChecker] correct handling of FixedBytes constants initialized with string literal 2021-03-04 15:14:47 +01:00
Martin Blicha
c5a4581fa0 changelog entry 2021-03-03 17:11:42 +01:00
chriseth
ed95becb29 Set version to 0.8.3. 2021-03-02 17:55:38 +01:00
chriseth
26d8ee2f86 Set release date and sort changelog. 2021-03-02 16:54:01 +01:00
chriseth
5690020d88 Allow custom natspec tags. 2021-03-02 16:13:28 +01:00
chriseth
f4050e81c6 Provide locations for docstring parsing errors. 2021-03-01 17:34:25 +01:00
chriseth
3d97e9a77b Properly parse address member. 2021-02-24 16:44:16 +01:00
chriseth
e33c058a60
Merge pull request #10896 from ethereum/issue-10870
Fix issue with pop on storage array.
2021-02-23 17:49:17 +01:00
hrkrshnn
66d6d20f65 Converted hash collision error into a fatal type error.
The check is performed during ContractLevelChecker. However, the TypeChecker throws in certain cases
when it encounters functions, whose hashes collide.
2021-02-23 17:09:40 +01:00
chriseth
596e8dd9b6
Merge pull request #10959 from ethereum/assert-too-strict
Loosened up a really strict assert from ABIFunctions.cpp
2021-02-23 14:59:14 +01:00
Alexander Arlt
ae6996efc1 Fix issue with pop on storage array. 2021-02-23 14:26:55 +01:00
chriseth
78a097a012 Only warn about variables being shadowed in inline assembly. 2021-02-19 14:29:22 +01:00
hrkrshnn
f336a68009 Added syntax tests for constructors with function parameter 2021-02-17 17:12:02 +01:00
chriseth
24cc372069 Changelog entry. 2021-02-11 10:50:58 +01:00
Christian Parpart
32ba5f5ae7 libsolidity: Extend the AST for named AST nodes in order to get precise locations for names.
The actual SourceLocation on an ASTNode is representing the whole
ASTNode whereas in an LSP (for example) you are also interested in the
SourceLocation of a name of a construct (e.g. variable decarlation, function definition, ...).

This also properly encodes non-existend sources as `-1` in the JSON output (eliminating the use of `numeric_limits<size_t>::max()`).
2021-02-10 18:13:09 +01:00
Daniel Kirchner
cb74a45fd6 Add inlining for old optimizer. 2021-02-09 19:08:58 +01:00
chriseth
fcdb5e0b40 Export statement documentation. 2021-02-09 17:33:01 +01:00
Mathias Baumann
3a8a74cbc7 OverrideSpecifier: Check for null before dereferencing 2021-02-04 13:17:28 +01:00
Martin Blicha
a49950cdf3 [SMTChecker] Added transaction constraints also for contract deployment 2021-02-01 16:46:34 +01:00
chriseth
d7c1028bf7 Set version to 0.8.2. 2021-01-27 16:15:26 +01:00
chriseth
490dc09fd4 Set release date for 0.8.1. 2021-01-27 12:12:12 +01:00
Martin Blicha
484e67815a [SMTChecker] Basic support for inline assembly using over-approximating analysis 2021-01-26 16:20:50 +01:00
hrkrshnn
133bc72970 Tests and changelog for <address>.code.length shortcut 2021-01-26 11:08:39 +01:00
chriseth
fbd10585c5 Sort changelog. 2021-01-26 09:25:54 +01:00
hrkrshnn
ec57c791ef Fix infinite loop when accessing circular constants from inline assembly. 2021-01-26 09:22:05 +01:00
chriseth
9fc3d88617
Merge pull request #10826 from ethereum/issue-10821
Fix missing error when accessing unintialized variables.
2021-01-26 09:16:13 +01:00
chriseth
1adaf929dd
Merge pull request #10707 from ityuhui/yh-721-replace-colon-in-cli
[CLI] Accept also equal sign "=" for ``--libraries``
2021-01-26 08:17:26 +01:00
Mathias Baumann
07a1d230cd Fix missing error when accessing unintialized variables. 2021-01-25 14:44:15 +01:00
Hui Yu
c669ee251a [CLI] Allow "=" as separator between library name and address in --libraries commandline option. 2021-01-25 16:14:39 +08:00
Leonardo Alt
a612daa783 Add msgvalue to cex 2021-01-21 19:05:44 +01:00
Leonardo Alt
3b23cadbdc Add CLI and JSON option to select SMTChecker targets 2021-01-20 17:35:37 +01:00
Leonardo Alt
007d39871b [SMTChecker] Synthesize untrusted functions called externally 2021-01-15 11:56:26 +01:00
chriseth
eb88ba05c7
Merge pull request #10751 from ethereum/emscriptenDockerUpdate
Update emscripten docker image to be based on emscripten 2.0.12 and boost 1.75.0.
2021-01-14 11:19:52 +01:00
Martin Blicha
5e13744423 [SMTChecker] Fixed pushing string literal to bytes array 2021-01-13 16:30:50 +01:00
Daniel Kirchner
804bd8f6dd Switch to new emscripten docker image. 2021-01-13 02:22:09 +01:00
a3d4
35a25b107f Fix ICE caused by const structs with mappings 2021-01-12 18:39:54 +01:00
Leonardo
fa28e48415
Merge pull request #10727 from ethereum/smt_cex_internal_calls
[SMTChecker] Report internal calls in CHC transaction trace
2021-01-12 15:44:12 +01:00
chriseth
99add1e4e5
Merge pull request #10710 from ethereum/implicit-conversion-bug
Disallow certain implicit conversions between integer types.
2021-01-12 15:42:12 +01:00
Leonardo Alt
b3c3836388 Output internal calls 2021-01-12 14:57:04 +01:00
hrkrshnn
e107d51f46 Disallow certain implicit conversions between integer types.
Disallow implicit conversion from ``uintN`` and ``intM`` when ``M > N``, and by extension, explicit
conversion between the same types are also disallowed.
2021-01-12 08:23:47 +01:00
Martin Blicha
064e9a5de6 Changelog entry 2021-01-11 13:36:03 +01:00
Harikrishnan Mulackal
3cb48b8c60
Merge pull request #10683 from ethereum/optSubEq
Optimize iszero(sub(x, y)) to eq(x, y).
2021-01-06 12:22:54 +01:00
Daniel Kirchner
308549f950 Simplify test and add Changelog entry. 2021-01-06 11:33:08 +01:00
Leonardo Alt
b02722ebda Add contract name to called function in cex 2021-01-04 10:03:16 +01:00
Leonardo Alt
78d55e6b4a [SMTChecker] Support check/unchecked 2020-12-30 12:14:30 +01:00
Martin Blicha
be0a0f4d90 [SMTChecker] Added constraints for block properties 2020-12-29 22:17:44 +01:00
Leonardo Alt
9482e7de23 [SMTChecker] Fix calls to virtual/overriden functions 2020-12-29 11:25:20 +01:00
Martin Blicha
58731056a3 Changelog entry 2020-12-28 16:50:04 +01:00
chriseth
0437ee7ad9 Fix length check when decoding error data. 2020-12-22 11:08:44 +01:00
chriseth
b965446182 Catch panic. 2020-12-22 11:08:44 +01:00
Alex Beregszaszi
b14a6a10cc Report meaningful error if parsing a version pragma failed 2020-12-18 11:50:37 +00:00
Martin Blicha
7078e8f8f8 [SMTChecker] Fix analysis of overriding modifiers 2020-12-17 17:05:54 +01:00
Leonardo Alt
7ba91cdc33 Changelog 2020-12-17 14:03:17 +01:00
chriseth
21ed65d956 Set version to 0.8.1. 2020-12-16 20:08:13 +01:00
chriseth
e5a8a9e6ed Sort changelog and set release date. 2020-12-16 16:59:32 +01:00
chriseth
3a23df6717 Merge remote-tracking branch 'origin/develop' into breaking 2020-12-16 16:56:45 +01:00
chriseth
7338295fee
Merge pull request #10623 from ethereum/smt_const_expr
[SMTChecker] Apply const eval to arithmetic binary expressions
2020-12-16 15:39:16 +01:00
chriseth
7f677025ec Set release date for 0.7.6. 2020-12-16 15:01:45 +01:00
Leonardo Alt
80e85b772b [SMTChecker] Apply const eval to arithmetic binary expressions 2020-12-16 14:58:00 +01:00
chriseth
8f833f4e8f
Merge pull request #10618 from ethereum/develop
Merge develop into breaking.
2020-12-16 12:34:41 +01:00
chriseth
d8aff53771 Sort changelog. 2020-12-16 12:05:28 +01:00
Christian Parpart
381c63ec99 Scanner: Generate error on inbalanced RLO/LRO/PDF override markers. 2020-12-15 18:40:51 +01:00
chriseth
ffaf40950a
Merge pull request #10605 from ethereum/develop
Merge develop into breaking.
2020-12-15 14:01:01 +01:00
chriseth
2a54079d41
Merge pull request #10575 from ethereum/calldataArraySlices
Conversion of calldata array slices to memory
2020-12-15 12:21:33 +01:00
Djordje Mijovic
b99a74fb34 Implementing conversion from calldata slices to memory arrays. 2020-12-14 22:21:37 +01:00
Alex Beregszaszi
15237c8404 Disable the type byte 2020-12-14 19:18:25 +00:00
hrkrshnn
f30c7cbac8 All explicit address conversions return a non-payable address 2020-12-14 18:41:27 +01:00
Martin Blicha
27402781c4 [SMTChecker] Fixed crash on push to bytes on lhs of an assignment 2020-12-14 17:40:45 +01:00
hrkrshnn
88c99a7538 Tests/Docs: changing type of msg.sender and tx.origin into address
And also making the type of address(literal) as non-payable address.
2020-12-14 16:55:48 +01:00
chriseth
d257ab7141 Merge remote-tracking branch 'origin/develop' into breaking 2020-12-14 16:05:12 +01:00
Alex Beregszaszi
aa042ccb87 Disallow leading zeroes in sized-types
Also avoid using boost::lexical_cast for parseSize.
2020-12-14 11:40:14 +00:00
chriseth
561280a5cc Merge remote-tracking branch 'origin/develop' into breaking 2020-12-14 11:33:40 +01:00
Martin Blicha
8927015e5a [SMTChecker] Adding unary increment and decrement as under/overflow verification targets for the CHC engine 2020-12-11 17:41:50 +01:00
Alex Beregszaszi
7b347b9ec2 Introduce address(...).code 2020-12-11 03:00:30 +00:00
chriseth
ef3bcbda97
Merge pull request #9549 from ethereum/yul-reserved
[BREAKING] Disallow using reserved identifiers in Yul
2020-12-10 18:49:44 +01:00
Alex Beregszaszi
7cd05bf603 Introduce block.chainid 2020-12-10 17:07:54 +00:00
Alex Beregszaszi
7d60ac6dcd Changelog entry 2020-12-10 17:18:15 +01:00
chriseth
d0551b67d7 Merge remote-tracking branch 'origin/develop' into breaking 2020-12-10 17:07:56 +01:00
Daniel Kirchner
7308abc084 Allow loading Z3 dynamically at runtime. 2020-12-10 16:47:47 +01:00
chriseth
482bda6887 Merge remote-tracking branch 'origin/develop' into breaking 2020-12-10 12:15:52 +01:00
Mathias Baumann
37cc795034 Fix segfault for empty @return tags in modifiers 2020-12-10 11:54:40 +01:00
chriseth
3f748bbb94
Merge pull request #10336 from ethereum/enablecoderv2bydefault
[BREAKING] Enable ABI coder v2 by default.
2020-12-09 18:05:07 +01:00
chriseth
1c99537b5a
Merge pull request #10550 from ethereum/chainIdView
[BREAKING] Mark chainid as view.
2020-12-09 17:41:27 +01:00
Daniel Kirchner
588535566f Mark chainid as view. 2020-12-09 16:55:51 +01:00
Alex Beregszaszi
ad6739d0f6 Support address().codehash 2020-12-09 14:58:27 +00:00
Daniel Kirchner
e691b7402a Move standard-json "modelCheckerSettings" key to "settings.modelChecker". 2020-12-09 15:53:32 +01:00
chriseth
b0a93a85c2 Sort changelog. 2020-12-09 15:33:16 +01:00