Commit Graph
100 Commits
Author SHA1 Message Date
Harikrishnan Mulackal e5eed63a3e Merge pull request #12056 from ethereum/setReleaseDatefro089
Set release date.
2021-09-29 15:19:38 +02:00
hrkrshnn 14a678eb67 Fix gas stats 2021-09-29 13:50:51 +02:00
hrkrshnn 9d8a0a6f82 Buglist entry for UserDefinedValueTypesBug 2021-09-29 11:54:00 +02:00
hrkrshnn 7b7e38768c Update tests. 2021-09-29 11:44:13 +02:00
hrkrshnn 6109b5c3a1 UserDefinedValueType.storageBytes() is correctly set
Previously it returned 32 bytes for all types, which was wasteful. This commit changes it to return
the storage bytes of the underlying type.
2021-09-29 11:41:47 +02:00
hrkrshnn 41f9aab219 Tests for assembly access of user defined value types. 2021-09-28 14:50:08 +02:00
hrkrshnn e24083a298 UserDefinedValueType: test for reading from dirty storage slots 2021-09-28 11:27:43 +02:00
Harikrishnan Mulackal 4a6b22885e Clarification in changelog 2021-09-27 12:27:12 +02:00
Harikrishnan Mulackal 55d609d354 Merge pull request #11990 from ethereum/smt_user_types
[SMTChecker] Support user types
2021-09-22 15:40:49 +02:00
Harikrishnan Mulackal 46f7078d67 Merge pull request #11995 from andrewl64/patch-1
Update README.md
2021-09-20 09:40:42 +02:00
Harikrishnan Mulackal 0d7f6598e8 Merge pull request #11980 from ethereum/useIterateReplacingInStatementRemover
Use iterateReplacing in StatementRemover.
2021-09-16 16:15:07 +02:00
hrkrshnn 15fb427a99 Added a multisource test for UserDefinedValueTypes and imports
Testing if `import {MyType} from "source";` works
2021-09-15 17:48:53 +02:00
hrkrshnn 48e16ceb88 Changing the UserDefinedValueType::toString to userdefined <name> 2021-09-15 17:25:23 +02:00
Harikrishnan Mulackal ea2386adb1 Merge pull request #11957 from ethereum/canonicalname-userdefinedvaluetype
Canonicalname for user defined value types
2021-09-15 13:38:33 +02:00
hrkrshnn 42c8310a63 Updated tests. 2021-09-15 12:56:29 +02:00
hrkrshnn de01822999 UserDefinedValueType: from simple name to canonical name. 2021-09-15 12:56:29 +02:00
Harikrishnan Mulackal c8c6d30808 Merge pull request #11946 from ethereum/tests-userdefinedvaluetypes
UserDefinedValueType: test to validate zero-cost-abstraction claim.
2021-09-13 18:54:36 +02:00
hrkrshnn 4871017aae Added an abi function test for UserDefinedValueType
A test to see if `abi.encode*(..., (CustomType))` and `abi.decode(..., (CustomType))` works as
intended.
2021-09-13 18:12:42 +02:00
hrkrshnn 00bfed4d8b UserDefinedValueType: test to validate zero-cost-abstraction claim.
Seems that the optimizer can indeed make it a zero-cost-abstraction!
2021-09-13 16:49:52 +02:00
Harikrishnan Mulackal 8fafdeacac Merge pull request #11939 from ethereum/userdefined-types-mapping-key
Allow Mapping keys to have type UserDefinedValueType.
2021-09-13 15:06:14 +02:00
hrkrshnn 2ead3f469e Added a user defined type mapping into the ASTJSON test. 2021-09-13 14:06:31 +02:00
Harikrishnan Mulackal 623b4ba366 Merge pull request #11942 from ethereum/constant-userdefinedvaluetype
Allow UserDefinedValueType.uwrap (and wrap) as RHS of constant decl
2021-09-13 12:32:58 +02:00
hrkrshnn a1d4d0125d Allow UserDefinedValueType.uwrap (and wrap) as RHS of constant decl
Needed to make `MyType.unwrap` and `MyType.unwrap` as pure in the process. This change affected some
existing tests ("statement has no effect").
2021-09-13 11:53:05 +02:00
hrkrshnn 1fa6c71bd0 Allow Mapping keys to have type UserDefinedValueType.
Also added syntax and semantic test.
2021-09-13 10:03:49 +02:00
hrkrshnn 952540c3b5 User defined value type: changes in documentation and test case
Changed the name of a function from `truncate` to `floor`, since that is more appropriate; updated
the inaccurate description on the rounding behaviour. Also modified the respective semantic test.
2021-09-09 16:57:03 +02:00
hrkrshnn a03fbf7061 User defined value types: moved a syntax test to semantic test. 2021-09-09 12:07:51 +02:00
Harikrishnan Mulackal 8a37f56e98 Merge pull request #11806 from ethereum/user-defined-types
User defined value types
2021-09-09 10:28:35 +02:00
hrkrshnn 7e95555325 Updated ANTLR grammar to include user defined value types. 2021-09-08 21:19:30 +02:00
hrkrshnn fbb1b884b2 Documentation and Changelog 2021-09-08 21:19:30 +02:00
hrkrshnn d67391531e Implemented ASTJson import export for UserDefinedValueType
Also added a test.
2021-09-08 21:19:30 +02:00
hrkrshnn 5f393d1694 Semantic tests for User Defined Value types 2021-09-08 21:19:30 +02:00
hrkrshnn 229f50eef1 Syntax checks for user defined value types 2021-09-08 19:56:48 +02:00
hrkrshnn 54484e9795 Implemented codegen for UserDefinedValueType 2021-09-08 19:56:48 +02:00
hrkrshnn ce75790e8d TypeChecker: added checks for wrap and unwrap
For user defined value types and also added a test case.
2021-09-07 19:42:51 +02:00
hrkrshnn 0647039864 DeclarationTypeChecker for UserDefinedValueTypes
- Checks for repetitions.
- Assigns types.
- Checks if the 'actual type' is an elementary type name.
- Checks if the 'actual type' is a value type.

Also added tests.
2021-09-07 19:42:51 +02:00
hrkrshnn 15452371d4 Types for UserDefinedValueType 2021-09-07 19:42:51 +02:00
hrkrshnn 9f7426b4a9 Implemented parsing for UserDefinedValueType
Also added parsing tests.
2021-09-07 19:42:51 +02:00
hrkrshnn d3ae9cf71b Added AST node UserDefinedValueType 2021-09-07 19:42:51 +02:00
hrkrshnn 4d52e873e7 Move changelog item to bugfix. 2021-09-06 17:44:45 +02:00
Harikrishnan Mulackal e9b70b168a Merge pull request #11899 from ethereum/move-check-keccak-gas
Resolving Keccak-256: check if arguments are identifiers early.
2021-09-06 14:28:42 +02:00
hrkrshnn 2cdd3b2081 Resolving Keccak-256: check if arguments are identifiers early.
Previously, the check on whether the optimization was useful gas wise was done before checking if
the keccak256 opcode had identifier as arguments. Since the gas meter crashes when encountering
certain Yul opcodes (create, dataoffset, etc.), this optimizer step crashed.
2021-09-06 13:48:07 +02:00
Harikrishnan Mulackal 3da3ffee5f Merge pull request #11897 from paulrberg/develop
docs: delete stale note about reading code
2021-09-06 10:01:57 +02:00
Harikrishnan Mulackal 1e334a8993 Merge pull request #11799 from benldrmn/increase_use_of_constexpr
Increase use of C++ constexpr
2021-08-31 17:23:36 +02:00
Harikrishnan Mulackal 7df33f0d61 Merge pull request #11777 from Ahmed-Ali/improving_naming_consistency
[DOCS] Improving the naming consistency in Solidity by Example documentation
2021-08-26 12:38:35 +02:00
Harikrishnan Mulackal c69f91917d Merge pull request #11841 from ethereum/smt_fix_delegatecall
[SMTChecker] Erase balances when delegatecall is seen
2021-08-25 15:26:57 +02:00
Harikrishnan Mulackal 7a0295ec6c Merge pull request #11831 from soroosh-sdi/use-range-v3
Replace boost::adaptors with range-v3
2021-08-24 11:17:43 +02:00
hrkrshnn 59db0f1537 An equivalence check for SIGNEXTEND opcode
Checking the implementation of SIGNEXTEND using Z3's native SignExt and Extract
2021-08-16 18:54:33 +02:00
Harikrishnan Mulackal 98a259a92d Merge pull request #11784 from ethereum/set-release-date
Set the release date and updated bugs_by_version.json
2021-08-11 12:52:37 +02:00
hrkrshnn 2c0c27c6d4 Set the release date and updated bugs_by_version.json 2021-08-11 12:13:07 +02:00
Harikrishnan Mulackal 3d33f212c8 Merge pull request #11780 from ethereum/sort-changelog-0.8.7
Sort changelog for 0.8.7 release
2021-08-11 11:43:57 +02:00
hrkrshnn 2577670e38 Sort changelog for 0.8.7 release 2021-08-11 10:52:13 +02:00
hrkrshnn 892700d769 Tests for basefee as identifier in inline assembly
Also added basefee to `EVMVersion::hasOpcode(...)`
2021-08-11 10:46:40 +02:00
hrkrshnn 7f1a2be0fe Allow basefee as Yul identifier for EVMVersion < london
This was done to prevent basefee from being a breaking change. This change will be removed in 0.9.0.

TODO revert this commit in breaking.
2021-08-11 10:46:08 +02:00
Harikrishnan Mulackal 74ec3c1983 Merge pull request #11760 from ethereum/default-evmversion-london
Set default EVM version to London.
2021-08-11 10:42:41 +02:00
Harikrishnan Mulackal 0fc3e2dfb3 Merge pull request #11647 from ethereum/basefee
Implement London EVMVersion and the BASEFEE opcode
2021-08-11 10:31:22 +02:00
hrkrshnn 11b80dc8ce Updated changes in refunds: EIP-3529
Refunds are not accounted in Solidity's gas meter.
2021-08-11 09:55:21 +02:00
hrkrshnn 79733fca48 Set default EVM version to London. 2021-08-11 09:54:14 +02:00
hrkrshnn 43605d9299 Tests and Changelog for basefee. 2021-08-11 09:51:12 +02:00
hrkrshnn cb9b52c242 Docs for block.basefee and basefee() in Yul. 2021-08-11 09:27:36 +02:00
hrkrshnn a54addc2cb An equivalence check for the Byte opcode
Checks that the byte opcode (implemented using shift) is equivalent to a
canonical definition of byte using extract.
2021-08-10 11:00:29 +02:00
hrkrshnn af1dabb555 Added EVMVersion london.
Also set the value of `block_base_fee` for testing to 7 wei.
2021-08-09 16:18:08 +02:00
hrkrshnn 543ccf5287 Added the basefee instruction in YulInterpreter 2021-08-09 16:18:08 +02:00
hrkrshnn 95091f6b58 Implemented block.basefee in Solidilty and basefee() in Yul.
Also added basefee to Yul grammar.
2021-08-09 16:18:08 +02:00
hrkrshnn d92b211a2f Added the instruction basefee. 2021-08-09 16:18:08 +02:00
Harikrishnan Mulackal c89b46c55e Merge pull request #11726 from ethereum/yulScoping
Clarify Yul scoping rules.
2021-08-03 12:41:24 +02:00
Harikrishnan Mulackal 5ff0811b99 Merge pull request #11717 from jaa2/develop
Handle --optimize-runs option in assembly mode
2021-07-29 18:56:22 +02:00
Harikrishnan Mulackal fa49170bac Merge pull request #11714 from ethereum/fix-11709
Document free memory pointer overflow check in Sol->Yul.
2021-07-29 10:07:05 +02:00
hrkrshnn 8bec0c8a6b Updated docs and evmc.h header file for evmone 0.8.0 release 2021-07-27 16:39:41 +02:00
hrkrshnn 6b8c32b859 Updated circleci scripts with evmone 0.8.0 docker images 2021-07-27 16:38:55 +02:00
Harikrishnan Mulackal e3184c737a Merge pull request #11649 from ethereum/evmone-upgrade
Updated evmone version to 0.8.0 and evmc version to 9.0.0
2021-07-27 16:34:17 +02:00
hrkrshnn 1b56fdea9d Updated dockerfiles for evmone 0.8.0 2021-07-27 15:20:49 +02:00
Harikrishnan Mulackal 7041b87c3b Merge pull request #11694 from ethereum/chriseth-patch-1
Use caret for version pragma
2021-07-26 14:54:36 +02:00
Harikrishnan Mulackal 8f6c6eec27 Merge pull request #11683 from GuLiPing-Hz/patch-1
[Docs] Add `unchecked` to fix reverting `BigInt` example in `libraries.rst`
2021-07-26 14:02:40 +02:00
Harikrishnan Mulackal e35b39b6fe Merge pull request #11684 from j05u3/patch-1
[documentation improvement proposal] tx.origin pointing where exactly is the bug
2021-07-26 13:43:04 +02:00
Harikrishnan Mulackal f0d7ed98a5 Merge pull request #11675 from TransmissionsDev/patch-1
Remove incorrect statement that calldata must be used for external functions
2021-07-26 13:32:22 +02:00
Harikrishnan Mulackal dda362f084 Merge pull request #11648 from CrimsonGlory/patch-1
minor doc change. RHS->right hand side
2021-07-13 09:04:24 +02:00
Harikrishnan Mulackal 3f70acfd74 Merge pull request #11637 from ethereum/docs-fix-outdated-byte-type-reference
[Docs] Fix outdated references to `byte[]` type
2021-07-08 13:55:48 +02:00
Harikrishnan Mulackal 58ab8f79a2 Merge pull request #11634 from maAPPsDEV/patch-1
Fix a Typo describing Layout in Storage
2021-07-08 09:38:24 +02:00
hrkrshnn b628b115ae Manually enabled gas statistics for erc20 token test. 2021-06-30 16:35:53 +02:00
hrkrshnn 0ef7d27dbd Fix pylint issues 2021-06-30 10:38:37 +02:00
Harikrishnan Mulackal d91dc9953f Merge pull request #10015 from ethereum/moveFunctionArgumentsToMemoryNew
Stack Limit Evader: Move function arguments and return values to memory (v2)
2021-06-28 18:49:40 +02:00
Harikrishnan Mulackal f5d659da0c Merge pull request #11591 from ethereum/fix-develop-docs-ci
[DOCS] Change code block into proper JSON
2021-06-28 18:08:16 +02:00
hrkrshnn 4c216395c6 [DOCS] Change code block into proper JSON
Reran `solc --storage-layout`, so the AST ids changed.
2021-06-28 17:27:33 +02:00
Harikrishnan Mulackal a3c965b7de Merge pull request #11580 from ethereum/fix-crash-on-zero-in-bytes-concat
Fix `bytes.concat(0)`
2021-06-28 10:06:18 +02:00
hrkrshnn d176716d47 Added extra commands that needs to be run before brew update
Fixes the following issue:

Error:
  homebrew-core is a shallow clone.
  homebrew-cask is a shallow clone.
To `brew update`, first run:
  git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core fetch --unshallow
  git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask fetch --unshallow
These commands may take a few minutes to run due to the large size of the repositories.
This restriction has been made on GitHub's request because updating shallow
clones is an extremely expensive operation due to the tree layout and traffic of
Homebrew/homebrew-core and Homebrew/homebrew-cask. We don't do this for you
automatically to avoid repeatedly performing an expensive unshallow operation in
CI systems (which should instead be fixed to not use shallow clones). Sorry for
the inconvenience!
2021-06-17 10:34:57 +02:00
hrkrshnn eb04dfcd3e Updated expectation of FixedFeeRegistrar.sol 2021-06-17 10:09:47 +02:00
Harikrishnan Mulackal 215bbe2e6d Merge pull request #11498 from ethereum/script_gas_test
A script to summarize gas differences from isoltest for PRs.
2021-06-08 13:07:42 +02:00
hrkrshnn a4fd7c56a4 A script to summarize gas differences from isoltest for PRs. 2021-06-08 11:38:58 +02:00
Harikrishnan Mulackal 424edcc562 Merge pull request #11475 from ethereum/receive-override
Fix ICE related to receive function having parameters.
2021-06-03 14:10:23 +02:00
hrkrshnn c3eef8af91 Fix ICE related to receive function having parameters. 2021-06-03 13:08:57 +02:00
hrkrshnn 2309ae3edd Added tests for internal or recursive types as event / error param
After converting the error about mapping parameter in event / error into a fatal type error, we were
missing tests that reached the "internal or recursive types" error.
2021-06-03 11:02:27 +02:00
hrkrshnn cc915f023e Errors about nested mapping in event parameter are fatal.
(Also applies for error parameters.)
2021-06-03 11:02:27 +02:00
Harikrishnan Mulackal 8ecf79474b Merge pull request #11458 from ethereum/event_indexed_mixed
Add test with event where indexed parameters are not the first.
2021-05-31 16:19:52 +02:00
hrkrshnn 138873d918 Fix ICE related to mapping types in abstract contract constructor 2021-05-31 14:56:49 +02:00
hrkrshnn f582d48f7b Error message: try-catch parameter cannot be in storage. 2021-05-31 11:25:08 +02:00
Harikrishnan Mulackal 9cffaddadc Merge pull request #11448 from ethereum/docs-staticcall-value
[DOCS] Clarification about value option for staticcall.
2021-05-27 17:52:21 +02:00
hrkrshnn b8d5d5744e Clarification about value option for staticcall. 2021-05-27 11:21:15 +02:00
hrkrshnn dc15e31605 Increased the tolerance for two GasMeter tests. 2021-05-26 12:23:06 +02:00
hrkrshnn 97c9d21376 Force two tests to go out of gas. 2021-05-26 12:23:06 +02:00
hrkrshnn 4d6c951396 Isoltest gas update after Berlin gas cost changes 2021-05-26 12:23:06 +02:00