Commit Graph

1128 Commits

Author SHA1 Message Date
Djordje Mijovic
2d5a2c65a8 [Sol->Yul] Implementing getters for bytes and structs containing bytes member.
Co-authored-by: chriseth <chris@ethereum.org>
2020-12-21 14:46:06 +01:00
Djordje Mijovic
9b8634f2a7 [Sol->Yul] Skipping mapping types when deleting structs and arrays. 2020-12-21 13:19:25 +01:00
chriseth
35908c602b Modifiers for constructors. 2020-12-17 17:00:51 +01:00
chriseth
ccaa81fbe7 Implement function modifiers. 2020-12-17 17:00:51 +01:00
Alex Beregszaszi
cad4f74012 Unary minus is not implemented for fixed point type 2020-12-15 18:02:10 +00:00
chriseth
ffaf40950a
Merge pull request #10605 from ethereum/develop
Merge develop into breaking.
2020-12-15 14:01:01 +01:00
Djordje Mijovic
64f0120622 Change assertions to align to TypeChecker. 2020-12-15 09:21:50 +01:00
Djordje Mijovic
8aa4568b10 [Sol->Yul] Implementing conversion from calldata slices to memory arrays.
Co-authored-by: Kamil Śliwak <kamil.sliwak@codepoets.it>
2020-12-14 22:21:37 +01:00
Djordje Mijovic
b99a74fb34 Implementing conversion from calldata slices to memory arrays. 2020-12-14 22:21:37 +01:00
chriseth
561280a5cc Merge remote-tracking branch 'origin/develop' into breaking 2020-12-14 11:33:40 +01:00
Alex Beregszaszi
98d8174d31 Simplify Compiler/CompilerContext by removing extra layers of indirection 2020-12-11 14:43:51 +00:00
chriseth
baaf7c0db8 Implement address(...).code in the IR 2020-12-11 03:00:30 +00:00
Alex Beregszaszi
7b347b9ec2 Introduce address(...).code 2020-12-11 03:00:30 +00:00
chriseth
7764ee8d86 Fix copying byte arrays from storage to storage. 2020-12-10 21:47:37 +01:00
Alex Beregszaszi
7cd05bf603 Introduce block.chainid 2020-12-10 17:07:54 +00:00
chriseth
d0551b67d7 Merge remote-tracking branch 'origin/develop' into breaking 2020-12-10 17:07:56 +01:00
Djordje Mijovic
ab74194ca3 [Sol->Yul] Implementing empty byte array push. 2020-12-09 19:31:35 +01:00
Alex Beregszaszi
ad6739d0f6 Support address().codehash 2020-12-09 14:58:27 +00:00
chriseth
806453aca9 Merge remote-tracking branch 'origin/develop' into breaking 2020-12-08 21:00:09 +01:00
chriseth
49d1f541a1
Merge pull request #10264 from ethereum/warn-conversion
Enable -Wconversion
2020-12-08 20:37:12 +01:00
chriseth
e97ca0a777 Evaluate base arguments in derived to base order. 2020-12-08 20:27:06 +01:00
Alex Beregszaszi
7e88ba8da0 Enable the -Wconversion warning 2020-12-08 16:45:24 +00:00
chriseth
a3c5d37d02 Merge remote-tracking branch 'origin/develop' into breaking 2020-12-07 17:13:48 +01:00
Alex Beregszaszi
a8197788d0 Replace the inconsistent use of u160/Address/h160 with h160 only 2020-12-07 16:44:59 +01:00
chriseth
73a2843f05
Merge pull request #10513 from ethereum/groupDecoder
Group decoding function cases.
2020-12-07 14:40:19 +01:00
chriseth
251f722919 Group decoding function cases. 2020-12-07 14:14:54 +01:00
Alex Beregszaszi
1e2bfbd6b2 Enable the -Wextra-semi warning 2020-12-04 17:21:19 +01:00
chriseth
9a5902f9d7 Merge remote-tracking branch 'origin/develop' into breaking 2020-12-02 12:28:02 +01:00
Kamil Śliwak
630fcc3a1d Define a comparator for InternalDispatchMap to ensure deterministic ordering of dispatch functions 2020-12-01 16:53:54 +01:00
Alex Beregszaszi
d22434ee57 Change ABIEncoderV1 to not pad empty strings 2020-12-01 14:32:18 +00:00
chriseth
390640f557
Merge pull request #10384 from ethereum/called_directly_feature
Use annotation.calledDirectly to simplify IR codegen
2020-12-01 15:07:02 +01:00
chriseth
8279d90ba2
Merge pull request #10403 from ethereum/rename-asmdata
Rename AsmData* to AST*
2020-12-01 14:33:11 +01:00
chriseth
6de7eaba95 Merge remote-tracking branch 'origin/develop' into breaking 2020-12-01 10:50:13 +01:00
chriseth
388fcddd23
Merge pull request #10415 from ethereum/arrayClearingStorageSol2Yul
[Sol->Yul] Fixing copying from storage to storage.
2020-12-01 09:43:47 +01:00
Djordje Mijovic
28e01202af [Sol->Yul] Fixing coping from storage to storage. 2020-12-01 08:50:33 +01:00
Mathias Baumann
f8e6f4a4eb Use annotation.calledDirectly to simplify IR codegen 2020-11-30 18:54:42 +01:00
Alex Beregszaszi
28e65bac46 Add unimplemented assert for modifiers in the IR
Also improved relevant tests for modifiers to be more strict and detect if the modifier body was skipped.
2020-11-27 18:34:17 +00:00
chriseth
3e5396598b
Merge pull request #10410 from ethereum/ir-fixedbytes-bitnot
Support BitNot on FixedBytes in IR
2020-11-26 14:42:52 +01:00
Alex Beregszaszi
cbae5ca324 Support BitNot on FixedBytes in IR 2020-11-26 13:20:02 +00:00
Djordje Mijovic
26d454d8a8 Using auto to avoid type name duplication. 2020-11-26 12:13:32 +01:00
Djordje Mijovic
565d0cd4eb Support copying of nested calldata arrays to memory. 2020-11-26 12:13:29 +01:00
chriseth
18de8a56c9 Merge remote-tracking branch 'origin/develop' into breaking 2020-11-26 11:48:53 +01:00
Djordje Mijovic
bae32ac402 [Sol->Yul] Implementing member access to arrays in calldata structs. 2020-11-26 11:46:31 +01:00
Alex Beregszaszi
a22077f736 Rename AsmData -> AST
Also attempt to only include ASTForward where appropriate.
2020-11-25 17:58:02 +00:00
Alex Beregszaszi
8d9c332593 Properly terminate definitions using define() in IRGenerateForStatements
The lack of termination can result in unparseable output.
2020-11-25 16:41:39 +00:00
chriseth
f02bc817af
Merge pull request #10388 from ethereum/forwardRevertOnCreate
[Sol->Yul] Forward failure for creation.
2020-11-25 10:39:54 +01:00
Djordje Mijovic
200227ab75 Support copying dynamically encoded structs from calldata to memory. 2020-11-24 20:36:17 +01:00
chriseth
cedb56ed81 Forward failure for creation. 2020-11-24 19:54:18 +01:00
chriseth
253889cbf1 Merge remote-tracking branch 'origin/develop' into breaking 2020-11-24 16:22:03 +01:00
chriseth
2d235bf7b0
Merge pull request #10341 from ethereum/optimizeAllocation
Do not allocate memory objects if they will be assigned directly.
2020-11-24 16:05:46 +01:00
chriseth
409e92580f Do not allocate memory objects if they will be assigned directly. 2020-11-24 14:11:01 +01:00
Djordje Mijovic
eea6513b5d [Sol->Yul] Implementing copying dynamically encoded structs from calldata to memory
Co-authored-by: Leonardo <leo@ethereum.org>
2020-11-23 23:22:34 +01:00
chriseth
ee657f5361
Merge pull request #10214 from ethereum/fallbackReturn
Allow fallback function to return data.
2020-11-23 19:49:59 +01:00
chriseth
a0a02f2307 Merge remote-tracking branch 'origin/develop' into breaking 2020-11-23 19:28:08 +01:00
chriseth
91c88a5f6b
Merge pull request #10346 from ethereum/boundFunctions
[Sol->Yul] Bound functions.
2020-11-23 19:09:20 +01:00
chriseth
f87edb6efc Bound functions. 2020-11-23 18:58:23 +01:00
Djordje Mijovic
53a4b4a622 [Sol->Yul] Implementing copying of calldata arrays to memory 2020-11-23 14:52:55 +01:00
Djordje Mijovic
4bff99a518 Adding additional abi decoding functions for arrays.
Co-authored-by: chriseth <chris@ethereum.org>
2020-11-23 14:52:51 +01:00
chriseth
fda352094f Allow fallback function to return data. 2020-11-23 14:22:37 +01:00
Leonardo Alt
e4339b0526 [SMTChecker] Support named arguments in function calls 2020-11-20 11:52:26 -01:00
chriseth
f1d28b1d17 Fix string literal assignment to storage. 2020-11-19 15:27:21 +01:00
chriseth
7f0cc433be Fix mapping conversion. 2020-11-18 20:20:25 +01:00
chriseth
a7db4fa4a5 Merge remote-tracking branch 'origin/develop' into breaking 2020-11-18 20:05:02 +01:00
chriseth
1508b08f3e Implement inline assembly access to constants. 2020-11-18 12:35:23 +01:00
chriseth
9f0a631948
Merge pull request #10208 from ethereum/offsetLengthCalldata
Support .offset and .length for dynamic calldata arrays
2020-11-18 12:09:11 +01:00
chriseth
2665eaa4fa Support .offset and .length for calldata bytes and string arrays. 2020-11-18 01:45:56 +01:00
Kamil Śliwak
dfa0a0cdff IR codegen: Handle address() with library type argument and external library calls 2020-11-17 20:36:39 +01:00
chriseth
691f7e6eae Fix merge conflicts. 2020-11-17 19:59:23 +01:00
chriseth
e8a278eefa Merge remote-tracking branch 'origin/develop' into breaking 2020-11-17 18:51:57 +01:00
chriseth
e64fd99fb5 Fix qualified modifier lookup. 2020-11-17 18:33:45 +01:00
chriseth
74ce8d6979 Fix assignment to non-lvalue storage values. 2020-11-17 15:56:34 +01:00
chriseth
fffd0306f5 Fix bug in array to storage copy routine. 2020-11-17 14:56:44 +01:00
chriseth
98cc7a1ea9 Copying structs from storage to storage. 2020-11-17 11:06:25 +01:00
chriseth
d9fb17a85e Copy value array from storage to storage. 2020-11-17 10:51:34 +01:00
chriseth
62893aa1a1 Copy byte arrays from storage to storage. 2020-11-16 19:06:33 +01:00
Kamil Śliwak
ade71d58f8 Assume that enums always take 1-byte in the codegen and type system 2020-11-16 18:58:19 +01:00
chriseth
d744a8fb48 Fail on invalid storage encoding for byte arrays. 2020-11-12 11:12:42 +01:00
chriseth
14ed67ac4b Merge remote-tracking branch 'origin/develop' into breaking 2020-11-11 20:33:40 +01:00
chriseth
44eb63fad0
Merge pull request #10263 from ethereum/fixTryCreateYul
Fix Yul codegen for try with create.
2020-11-11 20:10:54 +01:00
chriseth
571e1e5269
Merge pull request #10266 from ethereum/fixCalldataIndexAccess
Fix calldata index access.
2020-11-11 19:03:19 +01:00
chriseth
8f570a3184 Fix calldata index access. 2020-11-11 18:42:26 +01:00
chriseth
01d7d50750 Fix initializing mapping return variables. 2020-11-11 18:08:42 +01:00
chriseth
59da25056b Fix Yul codegen for try with create. 2020-11-11 17:52:50 +01:00
chriseth
141277dadf Merge remote-tracking branch 'origin/develop' into breaking 2020-11-10 17:28:36 +01:00
chriseth
6cc264ff0a
Merge pull request #10221 from ethereum/refactorArrayConversions
[Sol->Yul] Refactor array conversions
2020-11-10 16:18:11 +01:00
hrkrshnn
2348b721bb Tests after changing type of super to TypeType 2020-11-10 15:38:21 +01:00
hrkrshnn
9eafa1fa1a Change type of super to TypeType 2020-11-10 15:38:21 +01:00
Djordje Mijovic
efba9e45e4 [Sol->Yul] Refactoring array conversions so that they end up in same function. 2020-11-10 15:13:45 +01:00
chriseth
768ac9514b Merge remote-tracking branch 'origin/develop' into breaking 2020-11-09 14:48:48 +01:00
chriseth
04195439b7 Merge remote-tracking branch 'origin/develop' into HEAD 2020-11-09 14:28:05 +01:00
Kamil Śliwak
c970fb46ce YulUtilFunctions::conversionFunction: Add more info to the assertion that fails on invalid conversion 2020-11-09 13:41:03 +01:00
chriseth
b40fb527de Remove access to functions from inline assembly (unused code). 2020-11-05 14:43:29 +01:00
chriseth
1f3239d097 Simplify split parameter. 2020-11-03 14:34:18 +01:00
chriseth
fea3f848f9 Prepare store for external function types. 2020-11-03 14:34:18 +01:00
chriseth
06d0459a72
Merge pull request #10187 from ethereum/validateExternal
[SolYul] Properly validate external functions from calldata.
2020-11-03 14:29:28 +01:00
chriseth
5ffee049fa Merge remote-tracking branch 'origin/develop' into breaking 2020-11-03 14:05:14 +01:00
chriseth
834da7be90 Introduce abicoder pragma. 2020-11-03 13:31:50 +01:00
chriseth
c16b535804 Validate external functions from calldata. 2020-11-03 13:28:08 +01:00
chriseth
22b31054b6
Merge pull request #10174 from ethereum/storeInternalFunctions
Implement internal functions in storage.
2020-11-03 09:56:12 +01:00
chriseth
129b095b09 Implement internal functions in storage. 2020-11-02 23:10:03 +01:00