Commit Graph

350 Commits

Author SHA1 Message Date
Alex Beregszaszi
0201492bbf Remove redundant cleanup for abi.encode. 2018-04-16 12:47:38 +02:00
chriseth
4c1d39b7a2 Properly force-clean for shortening bytesXX conversions. 2018-04-16 12:47:38 +02:00
chriseth
7054defdd6
Merge pull request #3364 from ethereum/revertWithReason
Revert with reason
2018-04-12 21:01:08 +02:00
chriseth
4faa839813 Use error signature for revert data. 2018-04-12 13:09:38 +02:00
chriseth
fcb7a27216 Only forward returndata if EVM version supports it. 2018-04-12 13:09:38 +02:00
chriseth
7a9ee69e98 Bubble up error messages. 2018-04-12 13:09:38 +02:00
chriseth
ae1d040285 Allow error string for `require`. 2018-04-12 13:09:37 +02:00
chriseth
012ab37fe3 Code generator for revert with reason string. 2018-04-12 13:09:37 +02:00
Alex Beregszaszi
d56acb68ab Add abi.encode, abi.encodePacked, abi.encodeWithSelector and abi.encodeWithSignature. 2018-04-11 22:32:10 +02:00
Daniel Kirchner
3eedbc6a9c Error when using no parentheses in modifier-style constructor calls. 2018-04-10 12:09:34 +02:00
Daniel Kirchner
b918a105a4 Move constructor argument override check to TypeChecker and reuse annotations in ContractCompiler. 2018-04-09 15:26:08 +02:00
Daniel Kirchner
037eba20fc
Merge pull request #3824 from ethereum/baseArgumentsEmptyParenthesis
Error when using empty parentheses for base class constructors that r…
2018-04-05 14:43:28 +02:00
Daniel Kirchner
96eff0ff6a Error when using empty parenthesis for base class constructors that require arguments. 2018-04-05 11:52:22 +02:00
chriseth
65f18a18de More specific push implementation. 2018-04-04 16:50:45 +02:00
chriseth
0cbe55005d Create empty dynamic memory arrays more efficiently. 2018-04-04 12:37:04 +02:00
Alex Beregszaszi
0edce4b570
Merge pull request #3693 from ethereum/optimizeMLOAD
Optimize across MLOAD if MSIZE is not used.
2018-04-03 15:58:11 +01:00
chriseth
a54fdc495f Fix: Treat empty base constructor argument list as not provided. 2018-04-03 14:53:48 +02:00
chriseth
6777f7a57f Optimize across MLOAD if MSIZE is not used. 2018-04-03 14:34:32 +02:00
chriseth
5c8a6aac69 Prevent encoding of weird types and support packed encoding of external function types. 2018-03-29 09:57:11 +01:00
Alex Beregszaszi
fab527c414 Add runtimeOnly option to pushCombinedFunctionEntryLabel 2018-03-27 04:00:12 +01:00
chriseth
0a67d616db Use shortcut for internal function calls to avoid runtime reference. 2018-03-27 04:00:12 +01:00
chriseth
c2709a2d8e Decode dynamic data. 2018-03-21 14:53:29 +00:00
chriseth
cc2f71e4ac Move dynamic type removal out of the type system. 2018-03-21 14:53:29 +00:00
chriseth
32c94f5059 Simple size check for old ABI decoder. 2018-03-21 14:53:25 +00:00
chriseth
2cdf44f65c Move the old ABI decoder code. 2018-03-20 15:20:43 +00:00
chriseth
abc7a45230
Merge pull request #3725 from ethereum/blockhashNoCall
Allow ``block.blockhash`` without it being called.
2018-03-14 18:04:40 +01:00
chriseth
834d63de2c Allow `block.blockhash` without being called. 2018-03-13 17:34:21 +01:00
chriseth
069b150e42 Bugfix in virtual lookup for modifiers in libraries. 2018-03-13 16:55:41 +01:00
chriseth
0649f900ca Properly skip cleanup if only enlarging storage array. 2018-03-09 14:06:54 +01:00
chriseth
fd1662d1c4 Warn about using loose inline assembly features as experimental 0.5.0 feature. 2018-03-06 17:45:34 +01:00
chriseth
b467116ea8 Use STATICCALL for pure function calls if EVM version supports it and 0.5.0 is activated. 2018-03-06 15:30:18 +01:00
chriseth
f6c0daec14
Merge pull request #3652 from ethereum/gasleft_v2
Use StaticAnalyzer to deprecate msg.gas instead of conditionally remo…
2018-03-06 09:26:14 +01:00
Daniel Kirchner
91b13b734d Use StaticAnalyzer to deprecate msg.gas instead of conditionally removing it in MagicType. 2018-03-05 23:16:26 +01:00
chriseth
be797cb796
Merge pull request #3599 from ethereum/sendAllGasOnByzantium
Send all gas on byzantium
2018-03-05 20:13:52 +01:00
chriseth
3793aa405b
Merge pull request #3643 from ethereum/gasleft
Move msg.gas to global function gasleft(). Closes #2971.
2018-03-05 20:11:37 +01:00
chriseth
83fcf007bf Do not retain any gas in external calls (except if EVM version is set to homestead). 2018-03-05 19:32:12 +01:00
Daniel Kirchner
3340053fd9 Style improvements. 2018-03-05 17:00:37 +01:00
chriseth
6ec4517929 Use EVM version in gas meter and optimizer. 2018-03-05 11:36:33 +01:00
Daniel Kirchner
c633c0eacb Move msg.gas to global function gasleft(). Closes #2971. 2018-03-05 11:18:04 +01:00
chriseth
dc317a44e0 Provide EVM version to assembly analysis. 2018-03-01 17:19:35 +01:00
chriseth
f75a411325 Provide target EVM version in CompilerContext. 2018-03-01 17:19:35 +01:00
chriseth
388718b59f Introduce emit statement. 2018-02-22 15:17:30 +01:00
chriseth
e2bf5de8a2 Expect end of string at end of top-level block for assembly parser. 2018-02-21 00:41:39 +01:00
chriseth
2b5a5a8669 Make addmod and mulmod revert if the last argument is zero. 2018-02-15 13:52:17 +01:00
chriseth
5916cf1e0a Allow this.f.selector to be pure. 2018-02-13 11:00:59 +01:00
chriseth
6807010dc7 Prevent libraries from being called. 2018-01-19 16:27:44 +01:00
chriseth
124190336b Split inline assembly into loose and strict flavours. 2018-01-06 01:23:38 +00:00
chriseth
00692a4ff6 Reset source location after using inline assembly. 2018-01-04 14:29:03 +01:00
chriseth
e2828cfa61 Favour if over switch in ABI coder. 2017-12-15 09:47:34 +01:00
chriseth
5a3dbb0269 Cleanup and overflow checks for data pointers. 2017-11-29 17:08:44 +01:00