Daniel Kirchner
|
82f512a7d4
|
Add return data to bare calls.
|
2018-09-04 13:31:10 +02:00 |
|
Daniel Kirchner
|
a102f3b783
|
Remove trailing whitespace for all files in the repository.
|
2018-09-04 11:30:30 +02:00 |
|
Anurag Dashputre
|
94c327c1ae
|
Removed unused "FunctionType::Kind::CallCode" from Types.h and all its usage
|
2018-08-23 13:09:00 +05:30 |
|
chriseth
|
c274af0770
|
Merge pull request #4825 from ethereum/expressionCompBareCall
More safeguards for (library) function types.
|
2018-08-16 14:38:44 +02:00 |
|
chriseth
|
455345871d
|
More safeguards for (library) function types.
|
2018-08-15 17:11:43 +02:00 |
|
Daniel Kirchner
|
7ca0aaaf6f
|
Add `staticcall to address `.
|
2018-08-15 16:06:48 +02:00 |
|
chriseth
|
9328ea4c3c
|
Add abi.decode(bytes data, (...))
|
2018-08-15 10:45:16 +02:00 |
|
Alex Beregszaszi
|
ed52f422b7
|
Rename FunctionKind SHA3 to KECCAK256 (as the instruction was renamed in libevmasm)
|
2018-08-08 22:37:40 +01:00 |
|
Alex Beregszaszi
|
a9819aa8bc
|
Remove code generation for Throw statement
It is disallowed in the type system.
|
2018-08-08 17:02:25 +01:00 |
|
Alex Beregszaszi
|
9062704054
|
Merge pull request #4753 from mattaereal/boost-to-string-patch
Replace boost:lexical_cast<std::string> for std::to_string.
|
2018-08-08 16:07:25 +01:00 |
|
Matías Aereal Aeón
|
e902ce1aa0
|
Removing std:: from std::to_string and include for boost/lexical_cast
|
2018-08-08 11:26:30 -03:00 |
|
Daniel Kirchner
|
b11e39e25e
|
Remove remaining instances of `fillRight ` left over from tuple wildcards assignments.
|
2018-08-07 18:51:53 +02:00 |
|
chriseth
|
71e26f6adb
|
Remove clone feature.
|
2018-08-07 11:10:50 +01:00 |
|
Alex Beregszaszi
|
eccc603291
|
FixedBytes(0) is invalid, do not check for it in ABIEncoderV2
|
2018-08-06 16:54:05 +02:00 |
|
Jesse Busman
|
3fcd62921e
|
Renamed FunctionType::hasEqualArgumentTypes to FunctionType::hasEqualParameterTypes
|
2018-08-06 13:05:06 +02:00 |
|
chriseth
|
009a55c82d
|
Merge pull request #4327 from ethereum/document-internals
Properly explain all the analsys steps in CompilerStack
|
2018-08-02 15:07:35 +02:00 |
|
chriseth
|
7a8a243eef
|
Isolate determining the encoding type into its own function.
|
2018-08-01 11:55:57 +01:00 |
|
Alex Beregszaszi
|
f74cff622d
|
Properly explain all the analsys steps in CompilerStack
|
2018-07-31 00:39:18 +01:00 |
|
Leonardo Alt
|
a2f03ea9e5
|
Fix abiDecode comment
|
2018-07-23 23:31:02 +02:00 |
|
Leonardo Alt
|
faa9c221d4
|
Changes in ExpressionCompiler
|
2018-07-18 19:51:24 +02:00 |
|
Daniel Kirchner
|
fc370591f0
|
Disallow multi variable declarations with mismatching number of values.
|
2018-07-12 20:33:51 +02:00 |
|
Alex Beregszaszi
|
0dd79bc172
|
Merge pull request #4479 from ethereum/fixFixedPointCrash
Fix handling of fixed point types in arithmetics.
|
2018-07-12 15:04:16 +01:00 |
|
chriseth
|
fa8102880f
|
Merge pull request #4428 from ethereum/enforce_staticcall_view
[BREAKING] Enforce STATICCALL for view and pure
|
2018-07-12 13:14:02 +02:00 |
|
chriseth
|
576f3ef18c
|
Merge pull request #4083 from ethereum/variable_stack_slot
[BREAKING] Allocate local variables according to their scope
|
2018-07-12 13:01:15 +02:00 |
|
chriseth
|
2b8091526f
|
Merge pull request #4472 from ethereum/complexCalldataArraysNotYetImplemented
Throw unimplemented exception for complex calldata arrays.
|
2018-07-11 23:48:42 +02:00 |
|
chriseth
|
7355298c2f
|
Fix handling of fixed point types in arithmetics.
|
2018-07-11 14:56:53 +02:00 |
|
Leonardo Alt
|
38026d3114
|
Use STATICCALL for view and pure
|
2018-07-11 14:45:22 +02:00 |
|
Cryptomental
|
140dbfdbd8
|
Code, Changelog, ReleaseChecklist: Fix typos.
Refs: #4442
|
2018-07-11 00:26:23 +02:00 |
|
chriseth
|
383b88793c
|
Throw unimplemented exception for complex calldata arrays.
|
2018-07-10 21:23:20 +02:00 |
|
Leonardo Alt
|
0c5e0e0d59
|
Added assertion and tests suggestions
|
2018-07-10 18:39:38 +02:00 |
|
Leonardo Alt
|
b750ca9741
|
Add more tests and assertions
|
2018-07-10 18:39:38 +02:00 |
|
Leonardo Alt
|
9d895e002d
|
Added tests and review suggestions
|
2018-07-10 18:39:38 +02:00 |
|
Leonardo Alt
|
1f77deada1
|
[050] Reserving and popping local vars in their scope
|
2018-07-10 18:39:38 +02:00 |
|
chriseth
|
c8ac861832
|
Fix allocation of byte arrays.
|
2018-07-05 14:18:14 +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 |
|
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 |
|
Alex Beregszaszi
|
4cdb6c809a
|
Change comments
|
2018-06-14 09:31:28 +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 |
|
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
|
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 |
|
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 |
|
Daniel Kirchner
|
f627dc77d0
|
Fix continue inside do-while.
|
2018-05-16 18:32:48 +02:00 |
|
Alex Beregszaszi
|
c03a29dea8
|
Fix revert with reason coming from a string variable
|
2018-05-09 17:53:17 +02:00 |
|
njwest
|
51b4dc3752
|
fixed grammar in error in CompilerUtils.cpp line 399, 'less variables.' should be 'fewer variables.'
|
2018-05-06 18:52:12 -04:00 |
|
daniel
|
aa1542a9e1
|
Change bytes to unsigned in FixedBytesType
|
2018-05-03 23:11:34 +01: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
|
c3608eaf90
|
Use native shift instructions in ABIFunctions on Constantinople
|
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 |
|
Alexander Arlt
|
3ec667f59b
|
Add virtual destructor in LValue class.
|
2018-04-24 23:39:25 +02:00 |
|
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 |
|
chriseth
|
bdc1ff8ec7
|
ABI decoder.
|
2017-11-29 17:08:44 +01:00 |
|
chriseth
|
6ed4e0632f
|
Use if statement in abi functions.
|
2017-11-22 16:25:24 +01:00 |
|
Alex Beregszaszi
|
c1e202618c
|
Add explanation to unimplemented assertions
|
2017-11-15 17:19:29 +00:00 |
|
chriseth
|
a3db1fc197
|
Do not accept truncated function selectors.
|
2017-10-17 23:17:36 +02:00 |
|
chriseth
|
6001bd1406
|
Allocate one byte per memory byte array element instead of 32.
|
2017-10-16 22:29:31 +02:00 |
|
Alex Beregszaszi
|
6ba0c2bba8
|
Merge pull request #2982 from ethereum/encoderFixes
ABI encoder fixes and test.
|
2017-10-05 11:59:42 +01:00 |
|
Alex Beregszaszi
|
880be25811
|
Merge pull request #3029 from ethereum/tanwisgas
Send all gas for 0.5.0.
|
2017-10-05 11:34:17 +01:00 |
|
chriseth
|
11c51de5b9
|
Merge pull request #2968 from ethereum/calldataencodedsize
Add some asserts about calldata encoded size.
|
2017-10-05 12:16:37 +02:00 |
|
chriseth
|
69ea5c43f3
|
Send all gas for 0.5.0.
|
2017-10-05 11:56:36 +02:00 |
|
chriseth
|
19274c7890
|
Merge pull request #2962 from ethereum/optionalDebugInfoAsm
Debugging info in CompilerContext.
|
2017-10-04 17:01:52 +02:00 |
|
chriseth
|
80cefb9cc8
|
Rename "compacted" to "fromStack".
|
2017-10-04 16:56:54 +02:00 |
|
chriseth
|
364b4dea62
|
Add some asserts about calldata encoded size.
|
2017-10-04 13:19:57 +02:00 |
|
chriseth
|
a5fddc9c57
|
Debugging info in CompilerContext.
|
2017-10-04 13:18:33 +02:00 |
|
chriseth
|
3ebe29a031
|
Better readable encoder assembly.
|
2017-09-27 15:59:59 +02:00 |
|
chriseth
|
2940964044
|
ABI encoder fixes and test.
|
2017-09-27 15:57:39 +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
|
3e5d81578a
|
Avoid switch fallthrough in CompilerUtils
|
2017-09-25 10:51:58 +01:00 |
|
chriseth
|
2530223ab5
|
More verbose errors for generated assembly.
|
2017-09-22 15:18:32 +02:00 |
|
Alex Beregszaszi
|
efa4598c23
|
Mark functions static
|
2017-09-20 01:23:21 +01:00 |
|
Alex Beregszaszi
|
aad829948a
|
Ensure parameter names match between headers and implementation
|
2017-09-20 01:23:21 +01:00 |
|
chriseth
|
70d70e7816
|
Implement struct encoder.
|
2017-09-16 12:31:12 +01:00 |
|
chriseth
|
22f85d5af3
|
Update tests and error messages.
|
2017-09-16 12:12:43 +01:00 |
|
chriseth
|
80ce3ca66f
|
Move ABI encoder into its own function.
|
2017-09-15 20:46:32 +01:00 |
|
chriseth
|
73771f5bb2
|
Named assembly labels.
|
2017-09-15 20:44:49 +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
|
bbfb16cf5c
|
Introduce assemblyString
|
2017-09-11 15:53:20 +01:00 |
|
Alex Beregszaszi
|
50570c6c79
|
Do not return the stream in asssemblyStream
|
2017-09-11 15:48:58 +01:00 |
|
Alex Beregszaszi
|
a535a8b06e
|
Split out the JSON functionality from assembly.stream()
|
2017-09-11 15:48:52 +01:00 |
|
Alex Beregszaszi
|
a3f77527e9
|
Merge pull request #2847 from ethereum/codegen-docs
Document more of the codegen features
|
2017-08-29 15:27:07 +01:00 |
|
chriseth
|
93b1cc9702
|
Merge pull request #2833 from ethereum/statemutability-builtins
Mark all built in functions with appropriate statemutability
|
2017-08-29 15:24:51 +02:00 |
|
Alex Beregszaszi
|
3c24dcfe45
|
Document more of the codegen features
|
2017-08-29 13:36:13 +01:00 |
|
Alex Beregszaszi
|
7fb4a64136
|
Move all file specific globals to anonymous namespace
|
2017-08-29 11:09:18 +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 |
|
Alex Beregszaszi
|
5c73a80418
|
Remove fallthrough from ArrayUtils
|
2017-08-25 15:57:27 +01:00 |
|
Alex Beregszaszi
|
9897c56b2c
|
Mark a lot of functions static (where possible)
|
2017-08-22 10:51:46 +01:00 |
|