Commit Graph

154 Commits

Author SHA1 Message Date
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
Leonardo Alt
7763d21cc6 Revert if calldata is too short or points out of bounds 2018-06-26 10:27:48 +02:00
chriseth
a55e8c93ce Save double encode call for sha3. 2018-06-25 17:17:18 +02: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
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
Erik Kundt
34b5eca1f8 Improves assembly and adds more tests. 2018-05-30 17:40:33 +02:00
bitshift
e9dcfb0b62 Implements pop() for value type arrays. 2018-05-29 12:53:02 +02:00
Alex Beregszaszi
c03a29dea8 Fix revert with reason coming from a string variable 2018-05-09 17:53:17 +02:00
chriseth
2968639406 Removed signed shift right from the utilities. 2018-04-30 20:34:43 +01:00
Alex Beregszaszi
52c9441879 Do not use SAR instead of SDIV in shifts because it rounds differently 2018-04-30 20:34:43 +01:00
Alex Beregszaszi
22bfd3da41 Use native shift instructions on Constantinople 2018-04-30 20:34:43 +01:00
Alex Beregszaszi
0201492bbf Remove redundant cleanup for abi.encode. 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
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
chriseth
65f18a18de More specific push implementation. 2018-04-04 16:50:45 +02:00
chriseth
6777f7a57f Optimize across MLOAD if MSIZE is not used. 2018-04-03 14:34:32 +02: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
834d63de2c Allow `block.blockhash` without being called. 2018-03-13 17:34:21 +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
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
6001bd1406 Allocate one byte per memory byte array element instead of 32. 2017-10-16 22:29:31 +02:00
chriseth
69ea5c43f3 Send all gas for 0.5.0. 2017-10-05 11:56:36 +02:00
Alex Beregszaszi
204214f070 Split encodeToMemory to packedEncode and abiEncode 2017-09-27 11:32:19 +01:00
Alex Beregszaszi
a657d3b1a1 Make most of the parameters mandatory in encodeToMemory 2017-09-27 11:15:27 +01:00
Alex Beregszaszi
ee65ecfb3b Ensure that address types are always declared as 160bit 2017-09-26 22:46:33 +01:00
Alex Beregszaszi
cb6cdfe780 Simplify switch statements by refactoring internal break statements 2017-09-25 10:57:21 +01:00
Alex Beregszaszi
74972f5fa6 Avoid switch fallthrough in ExpressionCompiler 2017-09-25 10:51:58 +01:00
Alex Beregszaszi
efa4598c23 Mark functions static 2017-09-20 01:23:21 +01:00
Alex Beregszaszi
fd1f8ab38b Rename .sig to .selector on function types 2017-09-13 11:40:57 +01:00
Alex Beregszaszi
58f7a27ee0 Add sig member on function type 2017-09-13 11:40:57 +01:00
Alex Beregszaszi
79e84a8fa4 Swap declaration/statemutability in FunctionType constructor 2017-08-28 19:43:35 +01:00
Alex Beregszaszi
51d6141f7e Mark to places fall-through 2017-08-25 16:00:36 +01:00