Commit Graph

2021 Commits

Author SHA1 Message Date
chriseth
8ed3da1d5f Only allow compile-time constants for constant state variables. 2018-07-03 23:03:26 +02:00
chriseth
87241fd58c Fallback function has to be external. 2018-07-03 22:51:36 +02:00
chriseth
533d5d4b1c
Merge pull request #4379 from ethereum/constructorArgsTwice
Disallow constructor arguments given multiple times.
2018-07-03 22:49:02 +02:00
Daniel Kirchner
3984beef7d Remove constant keyword from parser. 2018-07-03 15:31:34 +02:00
Christian Parpart
1486d215b9 libsolidity: turns the var-keyword use from deprecation-warning to an error and include explicit type suggestion 2018-07-03 10:53:09 +02:00
chriseth
f7a9c4203e Disallow packed encoding of literals. 2018-07-03 01:02:00 +02:00
Daniel Kirchner
9aefe2f118 Remove trailing whitespace in missing visibility warning. 2018-07-02 13:14:58 +02:00
chriseth
85b9d3927a
Merge pull request #4224 from ethereum/revert_wrong_calldata
[BREAKING] Revert if calldata has wrong size
2018-07-02 12:55:22 +02:00
chriseth
f69e24c85e Disallow constructor arguments given multiple times. 2018-06-29 16:11:21 +02:00
chriseth
d469df45d8
Merge pull request #4352 from D-Nice/develop
Fixes storage ref var typo error from 'prefix' to 'suffix'
2018-06-29 12:27:29 +02:00
chriseth
4a842ecc82
Merge pull request #4097 from ethereum/noPackedExceptForPacked
[BREAKING] call only takes a single argument and does not pad
2018-06-27 18:29:01 +02:00
chriseth
92cb4acd8a Also mention regular abi.encode in error message. 2018-06-27 15:00:34 +02:00
Alex Beregszaszi
80b7d36187 Remove non-0.5.0 warning for emit keyword (make it mandatory) 2018-06-26 20:00:54 +02:00
chriseth
503eb8caa5
Merge pull request #4342 from rnaby/l/a/Types
RationalNumberType::isImplicitlyConvertibleTo Refactor
2018-06-26 17:54:09 +02:00
Leonardo Alt
7763d21cc6 Revert if calldata is too short or points out of bounds 2018-06-26 10:27:48 +02:00
Alex Beregszaszi
5aa8c7ed1a Document the internal API of CompilerStack 2018-06-25 23:51:40 +02:00
Alex Beregszaszi
3fc7da11db Pull out createCBORMetadata helper 2018-06-25 22:17:33 +02:00
chriseth
033672cc48 Fix: Call functions do not take variable arguments. 2018-06-25 17:17:48 +02:00
chriseth
5cf6fa84ac Provide better suggestions in error messages with respect to call and hash functions. 2018-06-25 17:17:48 +02:00
chriseth
a55e8c93ce Save double encode call for sha3. 2018-06-25 17:17:18 +02:00
D-Nice
b2f0d1db43 Fixes storage ref var typo error from 'prefix' to 'suffix' 2018-06-25 11:14:19 -04:00
chriseth
23c4142005 Bare functions take single bytes argument. 2018-06-25 17:01:45 +02:00
chriseth
0e66a1ddde Single bytes argument.
In 0.5.0 mode, only accept a single bytes argument for ``.call``,
``keccak256`` and others and do not pad when encoding.
2018-06-25 17:01:45 +02:00
Alex Beregszaszi
6d9a091a8e Keep the 'if it not used as an address' helper message for all cases of address related warnings 2018-06-25 16:25:21 +02:00
Alex Beregszaszi
48b003d4d4 Better wording for invalid address literal error 2018-06-25 16:17:50 +02:00
Jason Cobb
51567c0513 Change invalid (not exactly 160 bits long) address literal to error 2018-06-25 16:17:50 +02:00
Jason Cobb
3d88eca531 Disallow implicit conversion from rational (literal) to address 2018-06-25 16:17:50 +02:00
Khan M Rashedun-Naby
097a3fabf4 RationalNumberType::isImplicitlyConvertibleTo Refactor 2018-06-24 08:15:25 +06:00
Alex Beregszaszi
72e87423db Disallow the years unit denomination properly 2018-06-21 20:21:02 +02:00
chriseth
32f2db780c
Merge pull request #4301 from rnaby/TypeChecker
Simplification of typeSupportedByOldABIEncoder
2018-06-21 18:53:31 +02:00
chriseth
2c456f0e70
Merge pull request #4326 from ethereum/compilerstack-cleanup
Properly catch optimizer/assembly exception in CompilerStack
2018-06-21 14:14:13 +02:00
chriseth
0d1047181d
Merge pull request #4306 from ethereum/remove_050_workaround_scoping
[BREAKING] C99 scoping rules by default (remove 050 workaround)
2018-06-21 13:57:59 +02:00
Alex Beregszaszi
7e4bd3e346
Merge pull request #4219 from ethereum/functionTypeNamedArguments
Turn named return parameters in function types into an error.
2018-06-20 23:51:19 +02:00
Alex Beregszaszi
a392e0f046 Properly catch optimizer/assembly exception in CompilerStack 2018-06-20 23:19:06 +02:00
Khan M Rashedun-Naby
a5f0caa178 Simplification of typeSupportedByOldABIEncoder 2018-06-20 23:16:21 +06:00
Alex Beregszaszi
0a632011be CompilerStack absolutePath/sanitizePath can be made static 2018-06-20 17:04:22 +02:00
Alex Beregszaszi
dcee8e11ad Reorder some of the flow in CompilerStack::compileContract for readability 2018-06-20 17:01:17 +02:00
Leonardo Alt
8862b3092b C99 scoping rules by default 2018-06-20 12:53:38 +02:00
Alex Beregszaszi
a17059573f Disallow raw callcode (was deprecated in 0.4.12) 2018-06-19 19:31:07 +02:00
Daniel Kirchner
dbfee87860 Return parameters in function types may not be named. 2018-06-18 00:05:06 +02:00
Alex Beregszaszi
4cdb6c809a Change comments 2018-06-14 09:31:28 +01:00
Alex Beregszaszi
e1d0bfe1ca JuliaType -> YulType 2018-06-14 09:31:28 +01:00
Alex Beregszaszi
e0d95a6641 Rename internal variable 2018-06-14 09:31:28 +01:00
Alex Beregszaszi
782bc41dbd Rename JULIA/IULIA to Yul in assembly interface 2018-06-14 09:31:28 +01:00
Christian Parpart
a211b89118 Enforce disallowing empty structs
This patch enfoces an error when it encounters an empty struct,
effectively eliminating the deprecation warning.

Also adjust 419_interface_structs to explicitely test for (non-empty) structs,
as this behaviour "may" change in the future.
2018-06-14 00:24:43 +01:00
chriseth
014bbc6c97
Merge pull request #4272 from ethereum/assert-break-continue
Fail if break/continue statements are used outside for/while loops in ContractCompiler
2018-06-13 12:10:39 +02:00
chriseth
1dc28c065d Properly pad data from calldata. 2018-06-12 18:51:40 +01:00
Alex Beregszaszi
9de45383d8 Disallow sha3/suicide aliases 2018-06-12 18:16:18 +01:00
Alex Beregszaszi
d1e7e9ef5e
Merge pull request #3627 from ethereum/additional-keywords
[BREAKING] Add new reserved keywords.
2018-06-12 16:33:26 +01:00
Daniel Kirchner
e2f4a9fcf4
Merge pull request #4277 from ethereum/signedRightShift
Signed Right Shift: Additional test and more explanation.
2018-06-12 17:19:20 +02:00
chriseth
cc62d7ce6a
Merge pull request #4229 from ethereum/smt_storage_vars_refactor
Refactoring how storage and local variables are managed.
2018-06-12 16:11:05 +02:00
Daniel Kirchner
e4b7b2160e Add new reserved keywords. 2018-06-12 16:02:53 +02:00
Daniel Kirchner
510f227bd7 Additional test and more explanation. 2018-06-12 15:53:15 +02:00
Leonardo Alt
207d5859d1 Refactoring Declaration -> VariableDeclaration (more precise) 2018-06-12 10:58:50 +02:00
Leonardo Alt
48652c88af Review comments 2018-06-12 10:58:50 +02:00
Leonardo Alt
678a769cd7 Refactoring how storage and local variables are managed. 2018-06-12 10:58:50 +02:00
Daniel Kirchner
e84b55bd6f Extend explanatory remark and argue using bitwise operations instead of rounding. 2018-06-12 09:32:19 +01:00
Daniel Kirchner
f33dc92cbd Use proper SAR for signed right shifts and emulate on pre-constantinople. 2018-06-12 09:32:19 +01:00
Alex Beregszaszi
1d57d74e82 Fail if break/continue statements are used outside for/while loops in ContractCompiler 2018-06-12 00:46:23 +01:00
Erik Kundt
2e9f5d1c98 Introduces emit token and removes identifier workaround. 2018-06-11 21:21:22 +01:00
Alex Beregszaszi
8d38d4d296 Use boost::multiprecision::pow explicitly 2018-06-11 19:31:26 +01:00
Alex Beregszaszi
0f572159ec Show named argument name in error 2018-06-06 15:59:27 +01:00
chriseth
4073c02cf3
Merge pull request #4208 from ethereum/extract-name-and-type-tests
Extract name and type tests
2018-06-04 19:54:14 +02:00
chriseth
283cdef98c Fix view/pure error ordering problem. 2018-06-04 17:00:37 +02:00
chriseth
c59a06bb97
Merge pull request #4213 from ethereum/fixpop
Fix bug related to byte array pop.
2018-06-04 16:10:56 +02:00
Jason Cobb
6e29775d39 Remove suicide and sha3 assembly instructions 2018-06-04 01:04:48 +01:00
chriseth
7cf36331a6 Fix bug related to byte array pop. 2018-05-31 14:53:33 +02:00
chriseth
0a1a8bfb09
Merge pull request #4172 from ethereum/trailing_dot
[BREAKING] Disallow trailing dot not followed by number
2018-05-30 18:51:52 +02:00
chriseth
5a73044fa7
Merge pull request #3743 from ethereum/popStorageArray
pop() for storage arrays
2018-05-30 18:32:08 +02:00
Erik Kundt
fea0d116f7 Fixes assembly bug and adds tests to cover it. 2018-05-30 17:46:43 +02:00
Erik Kundt
98d52beba3 Adds syntax tests, documentation and changelog entry.
Refines comment for array utility function.
2018-05-30 17:43:20 +02:00
Erik Kundt
34b5eca1f8 Improves assembly and adds more tests. 2018-05-30 17:40:33 +02:00
Leonardo Alt
ac68710789 Disallow trailing dots that are not followed by a number 2018-05-30 15:14:53 +01:00
mingchuan
b7cafcbdf9
Allow using calldata keyword to specify data location 2018-05-30 18:05:55 +08:00
Erik Kundt
7156a01acc Implements pop() for byte arrays. 2018-05-29 12:53:02 +02:00
bitshift
e9dcfb0b62 Implements pop() for value type arrays. 2018-05-29 12:53:02 +02:00
chriseth
9d5064d04d
Merge pull request #4173 from sifmelcara/add/allow-storage-calldata-suffix
Allow data location suffix for internal elementary type parsing
2018-05-28 22:52:45 +02:00
chriseth
5ee2ce353e
Merge pull request #4067 from ethereum/050
[BREAKING] Version 0.5.0
2018-05-23 18:11:20 +02:00
mingchuan
9865012f7b
Allow data location suffix for internal elementary type parsing 2018-05-22 23:28:12 +08:00
mingchuan
3cd57866a9
Fix assert message about function visibility 2018-05-20 22:29:11 +08:00
Julius Huelsmann
1d3a37faff Avoid "unneccesary parentheses in declaration of" warning with keeping a temporary variable. 2018-05-17 14:48:15 +02:00
Julius Huelsmann
9e26f5fa0a Do not catch exceptions by value in StandardCompiler 2018-05-17 14:44:01 +02:00
Daniel Kirchner
1cbc037a45 Update control flow graph. 2018-05-16 18:32:48 +02:00
Daniel Kirchner
f627dc77d0 Fix continue inside do-while. 2018-05-16 18:32:48 +02:00
Daniel Kirchner
5c59d56335 Disallow conversions between bytesX and uintY of different size. 2018-05-16 18:32:47 +02:00
Leonardo Alt
0b6eea0c55 Bool variables should not allow arithmetic comparison 2018-05-16 18:32:47 +02:00
Alex Beregszaszi
221a4d1f1f Split warning for multi arguments for hash functions 2018-05-16 11:12:25 +02:00
chriseth
894122c508 Warn/enforce single bytes argument for certain builtins (hashing functions).
In 0.5.0 mode, only accept a single bytes argument for ``.call``,
``keccak256`` and others and do not pad when encoding.
2018-05-16 09:48:03 +02:00
chriseth
3ca6738114 Add assert about source location. 2018-05-16 03:52:24 +02:00
chriseth
67d208d144 Parse multi variable declaration statement. 2018-05-16 03:22:45 +02:00
chriseth
2ba0002998
Merge pull request #4139 from ethereum/abiEncodeIsPure
ABI encoding functions are pure and should be usable in constants.
2018-05-15 16:59:48 +02:00
chriseth
63861aac4a
Merge pull request #3947 from ethereum/smt_storage
[SMTChecker] Support to integer and Bool storage vars
2018-05-15 14:54:41 +02:00
chriseth
dac0029d16 ABI encoding functions are pure and should be usable in constants. 2018-05-15 14:45:54 +02:00
chriseth
dce6224052
Merge pull request #4062 from ethereum/revert-variable
Fix revert with reason coming from a string variable
2018-05-15 14:44:39 +02:00
Leonardo Alt
4117e859eb [SMTChecker] Declaring all state vars before any function is visited 2018-05-15 14:28:08 +02:00
Leonardo Alt
2dbb35d4a8 [SMTChecker] Support to integer and Bool storage vars 2018-05-15 14:22:50 +02:00
Daniel Kirchner
16e966dea0 Add control flow analyzer and test for uninitialized storage returns. 2018-05-14 20:23:40 +02:00
Daniel Kirchner
995623f0fa Add control flow graph. 2018-05-14 20:23:40 +02:00
mingchuan
dbd0a7ed60
Fix link error when using boost shared library 2018-05-11 11:20:19 +08:00
Alex Beregszaszi
e96bbe70d4 Assert that mandatory fields in the AST are present in AsmAnalysis 2018-05-10 10:48:48 +02:00