Skip to content

[BREAKING] call only takes a single argument and does not pad#4097

Merged
chriseth merged 12 commits intodevelopfrom
noPackedExceptForPacked
Jun 27, 2018
Merged

[BREAKING] call only takes a single argument and does not pad#4097
chriseth merged 12 commits intodevelopfrom
noPackedExceptForPacked

Conversation

@chriseth
Copy link
Copy Markdown
Contributor

@chriseth chriseth commented May 9, 2018

Fixes #3955
Fixes #3978

This changes .call(), sha3() and other functions that previously took arbitrary parameters to take exactly one bytes memory argument which is packed encoded without padding. The abi.* functions are the only functions that now take arbitrary parameters.

TODO:

  • check that log0 etc work correctly
  • documentation
  • tests
  • better error message for .call() (suggest to change it to call(""))

@chriseth chriseth changed the title [WIP] change varargs functions to only accept single bytes argument [BREAKING] [WIP] change varargs functions to only accept single bytes argument May 15, 2018
@chriseth chriseth changed the title [BREAKING] [WIP] change varargs functions to only accept single bytes argument [BREAKING] call only takes a single argument and does not pad May 18, 2018
@chriseth chriseth force-pushed the noPackedExceptForPacked branch from fa139d6 to 8500f14 Compare May 18, 2018 16:04
@chriseth chriseth changed the title [BREAKING] call only takes a single argument and does not pad [BREAKING][WIP] call only takes a single argument and does not pad May 18, 2018
@chriseth chriseth changed the base branch from develop to 050 May 23, 2018 08:07
@chriseth chriseth force-pushed the noPackedExceptForPacked branch from 8500f14 to 7f9a027 Compare May 23, 2018 16:06
@axic axic changed the base branch from 050 to develop May 30, 2018 06:05
@chriseth chriseth force-pushed the noPackedExceptForPacked branch from 7f9a027 to fca835b Compare June 7, 2018 15:00
@chriseth
Copy link
Copy Markdown
Contributor Author

chriseth commented Jun 7, 2018

Rebased. Still need to work on log, docs and tests.

@chriseth chriseth force-pushed the noPackedExceptForPacked branch from fca835b to 3c361b1 Compare June 13, 2018 11:00
@chriseth
Copy link
Copy Markdown
Contributor Author

Having to rebase this over and over gets increasingly annoying. Perhaps we can merge some part of this already now?

@chriseth chriseth requested a review from axic June 13, 2018 11:00
@chriseth chriseth force-pushed the noPackedExceptForPacked branch 2 times, most recently from cd903ad to a0028a8 Compare June 13, 2018 15:15
@chriseth
Copy link
Copy Markdown
Contributor Author

Turns out that log0, ... actually only take bytes32 arguments and no dynamic types anyway.

@chriseth chriseth force-pushed the noPackedExceptForPacked branch from b6148ad to 323132c Compare June 13, 2018 16:15
@chriseth chriseth changed the title [BREAKING][WIP] call only takes a single argument and does not pad [BREAKING] call only takes a single argument and does not pad Jun 13, 2018
@chriseth
Copy link
Copy Markdown
Contributor Author

Ah, forgot to add a test that checks that the hash functions and the call functions actually do not take arbitrary arguments anymore.

@axic
Copy link
Copy Markdown
Contributor

axic commented Jun 13, 2018

Seems like solc-js (the dao) and the compilationTests need to be updated to work with this.

docs/types.rst Outdated
``bytes4`` differently. These edge cases were removed in version 0.5.0.

``call`` returns a boolean indicating whether the invoked function terminated (``true``) or caused an EVM exception (``false``). It is not possible to access the actual data returned (for this we would need to know the encoding and size in advance).
``call`` returns a boolean indicating whether the invoked function terminated (``true``) or caused an EVM exception (``false``). It is not possible to access the actual data returned.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe extend that with something: "However using inline assembly it is possible to make a raw call and access the actual data returned with the returndatacopy instruction."

Just to clarify that this is a language and not EVM limitation.

docs/types.rst Outdated
It is possible to adjust the supplied gas with the ``.gas()`` modifier::

namReg.call.gas(1000000)("register", "MyName");
namReg.call.gas(1000000)(abi.encode("register", "MyName"));
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hm, I think this should be changed to abi.encodeWithSignature("register(string)", "MyName") to be a more useful example.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was perhaps not explicit enough, but the idea behind is to provide an example of calling a contract that does not use the ABI. Such contracts existed in the very beginning. Perhaps we can remove it altogether.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah ok, I think it should be more explicit in that case, but that section right now seem to only cover the different modifiers (gas and value) on the raw call.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are you saying that it should be extended again? I think such contracts do not exist anymore anyway.

docs/types.rst Outdated
Lastly, these modifiers can be combined. Their order does not matter::

nameReg.call.gas(1000000).value(1 ether)("register", "MyName");
nameReg.call.gas(1000000).value(1 ether)(abi.encode("register", "MyName"));
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same applies to these two.

explicit way to compute ``keccak256(a, b)``, which will be deprecated in future
versions.
calling a function. Furthermore, ``keccak256(abi.encodePacked(a, b))`` is a way
to compute the hash of structured data (althoug be aware that it is possible to
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

although

recover the address associated with the public key from elliptic curve signature or return zero on error
(`example usage <https://ethereum.stackexchange.com/q/1777/222>`_)

In the above, "tightly packed" means that the arguments are concatenated without padding.
Copy link
Copy Markdown
Contributor

@axic axic Jun 14, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need to move this explanation next to abi.encodePacked or is the text in abi.rst enough?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I will check.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added some of this to abi.rst.

contract C {
function f() returns (bytes32) {
return sha256();
return sha256("");
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here the standard R"( works but on other cases you need a longer escape character R"YY( - why is that?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is weird, actually it should not work.

}
}
)";
)ABC";
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And this is R"ABC( and not R"YY( or R"( (see question above).

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What you use between " and ( is irrelevant, as long as you use the same at the end.

Copy link
Copy Markdown
Contributor

@axic axic Jun 17, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I meant that some of the changes use YY while others ABC, just a question of consistency or whether there was a reason for it.

TypePointer const& argType = arguments.front()->annotation().type;
solAssert(argType, "");
arguments.front()->accept(*this);
if (*argType == ArrayType(DataLocation::Memory) || *argType == ArrayType(DataLocation::Memory, true))
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we really want to support keccak256(bytes) and keccak256(*) -> keccak256(abi.encodePacked(*) implicitly?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, I don't really understand. This is an optimization step in case the argument is bytes memory (as opposed to bytes storage or bytes calldata), where we do not have to encode anything. Encoding requires additional memory.

This does not mean that we support anything apart from keccak256(bytes memory).

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Correction: Encoding requires additional copy operations. The memory is only reserved temporarily.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok! Can you add a comment to mention this is an optimisation?

@axic
Copy link
Copy Markdown
Contributor

axic commented Jun 14, 2018

I liked the simplified appendExternalFunctionCall a lot.

require(address(this).delegatecall());
require(address(this).call());
require(address(this).delegatecall(""));
require(address(this).call(""));
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unrelated: this didn't check callcode.

@axic
Copy link
Copy Markdown
Contributor

axic commented Jun 17, 2018

Need to rerun the tests with a newer openzeppelin (I rebasing this PR over develop should solve it) and the DAO is still not fixed.

@axic
Copy link
Copy Markdown
Contributor

axic commented Jun 20, 2018

Fixing gnosis now.

@chriseth
Copy link
Copy Markdown
Contributor Author

Rebased.

@chriseth chriseth force-pushed the noPackedExceptForPacked branch from ae4e4e6 to 88a3bfa Compare June 21, 2018 09:41
@axic
Copy link
Copy Markdown
Contributor

axic commented Jun 25, 2018

Rebasing this now. Can this be merged next?

@axic axic force-pushed the noPackedExceptForPacked branch from 88a3bfa to 4154e14 Compare June 25, 2018 15:18
functionType->kind() == FunctionType::Kind::SHA256 ||
functionType->kind() == FunctionType::Kind::RIPEMD160
)
msg += " This function requires a single bytes argument. Use abi.encodePacked(...) to properly encode the values.";
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this may be useful to be explained better: use encodePacked if the old behaviour is desired or encode if ABI encoded data is wished. Perhaps with a link to documentation.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not sure if links to the documentation are useful in error messages, I think looking up the function names should be easy enough.

functionType->kind() == FunctionType::Kind::SHA256 ||
functionType->kind() == FunctionType::Kind::RIPEMD160
)
msg += " This function requires a single bytes argument. Use abi.encodePacked(...) to properly encode the values.";
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same applies here.

- ``sha256(...) returns (bytes32)``: compute the SHA-256 hash of the :ref:`(tightly packed) arguments <abi_packed_mode>`
- ``ripemd160(...) returns (bytes20)``: compute the RIPEMD-160 hash of the :ref:`(tightly packed) arguments <abi_packed_mode>`
- ``keccak256(bytes memory) returns (bytes32)``: compute the Ethereum-SHA-3 (Keccak-256) hash of the input
- ``sha3(bytes memory) returns (bytes32)``: an alias to ``keccak256``
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We missed this in the other PR, but this has been removed. Will just remove it after this PR merged to avoid rebasing.

@chriseth chriseth merged commit 4a842ec into develop Jun 27, 2018
@axic axic deleted the noPackedExceptForPacked branch June 27, 2018 16:29
ChrisChinchilla pushed a commit that referenced this pull request Jul 12, 2018
commit f1964eb
Author: Chris Ward <chriswhward@gmail.com>
Date:   Tue Jul 10 15:37:12 2018 +0200

    Correct typos

commit 35900ce
Author: Chris Ward <chriswhward@gmail.com>
Date:   Tue Jul 10 13:54:39 2018 +0200

    Merge FAQ point on sending ether with a contract

commit 38dcf6f
Author: Chris Ward <chriswhward@gmail.com>
Date:   Tue Jul 10 13:44:36 2018 +0200

    Move FAQ point string and byte type details

commit 94ccf18
Author: Chris Ward <chriswhward@gmail.com>
Date:   Tue Jul 10 12:50:35 2018 +0200

    Remove FAQ question already covered in docs

commit 6741eb1
Author: Chris Ward <chriswhward@gmail.com>
Date:   Wed Jul 4 14:30:30 2018 +0200

    Merge FAQ items about returning arrays and overflow

commit 533d5d4
Merge: 16f8c23 8747079
Author: chriseth <chris@ethereum.org>
Date:   Tue Jul 3 22:49:02 2018 +0200

    Merge pull request #4379 from ethereum/constructorArgsTwice

    Disallow constructor arguments given multiple times.

commit 16f8c23
Merge: 672bc7f a673785
Author: chriseth <chris@ethereum.org>
Date:   Tue Jul 3 22:40:51 2018 +0200

    Merge pull request #4367 from shad-k/fix/issue-4238

    Add custom.css for docs to change pre tag styles

commit a673785
Author: Shadab Khan <shadab.2005@gmail.com>
Date:   Thu Jun 28 00:34:18 2018 +0530

    Add custom.css for docs to change pre tag styles

    Specify white space for table cells

    Add custom.css for docs to change pre tag styles

    Specify white space for table cells

    Rearrange code

    Delete theme_overrides.css

    Remove extra code

commit 672bc7f
Merge: 58aeffb 260e044
Author: chriseth <chris@ethereum.org>
Date:   Tue Jul 3 20:22:54 2018 +0200

    Merge pull request #4407 from ajsantander/exit-if-no-eth

    Avoid hanging in tests.sh when IPC program is not found

commit 58aeffb
Merge: 96a04be a7fc8a9
Author: chriseth <chris@ethereum.org>
Date:   Tue Jul 3 20:17:01 2018 +0200

    Merge pull request #4413 from ethereum/dropConstantKeywordOnly

    Drop constant keyword only

commit a7fc8a9
Author: Daniel Kirchner <daniel@ekpyron.org>
Date:   Tue May 8 13:09:58 2018 +0200

    Update Changelog.

commit 717c70a
Author: Daniel Kirchner <daniel@ekpyron.org>
Date:   Tue May 8 13:08:52 2018 +0200

    Update test suite.

commit f7153ee
Author: Daniel Kirchner <daniel@ekpyron.org>
Date:   Tue May 8 13:08:22 2018 +0200

    Update documentation.

commit 3984bee
Author: Daniel Kirchner <daniel@ekpyron.org>
Date:   Tue May 8 13:08:06 2018 +0200

    Remove constant keyword from parser.

commit 96a04be
Merge: 09f3532 7b7df90
Author: chriseth <chris@ethereum.org>
Date:   Tue Jul 3 15:07:58 2018 +0200

    Merge pull request #4389 from ethereum/soltestfix

    fix default difficulty to comply with YP rules

commit 09f3532
Merge: 4649f92 0b5dd73
Author: Christian Parpart <christian@parpart.family>
Date:   Tue Jul 3 12:04:41 2018 +0200

    Merge pull request #4274 from ethereum/v050-var-keyword-removal-v2

    [BREAKING] var keyword removal

commit 0b5dd73
Author: Christian Parpart <christian@ethereum.org>
Date:   Thu Jun 14 15:53:51 2018 +0200

    Changelog: added ``var``-keyword change

commit dbd0723
Author: Christian Parpart <christian@parpart.family>
Date:   Mon Jun 11 14:06:22 2018 +0200

    grammar: removes the var-keyword from the grammar

commit 133fbdb
Author: Christian Parpart <christian@ethereum.org>
Date:   Mon Jun 18 15:58:10 2018 +0200

    documentation: adjustments to not use the "var" keyword

commit 1486d21
Author: Christian Parpart <christian@parpart.family>
Date:   Mon Jun 11 14:06:56 2018 +0200

    libsolidity: turns the var-keyword use from deprecation-warning to an error and include explicit type suggestion

commit 260e044
Author: ajs <palebluedot@gmail.com>
Date:   Mon Jul 2 22:23:49 2018 -0300

    Avoid hanging in tests.sh when IPC program is not found

commit 4649f92
Merge: f5e1cf7 9d23fd8
Author: chriseth <chris@ethereum.org>
Date:   Tue Jul 3 00:33:17 2018 +0200

    Merge pull request #4397 from ethereum/dropConstantKeywordTests

    Test updates for dropping the constant keyword.

commit 9d23fd8
Author: Daniel Kirchner <daniel@ekpyron.org>
Date:   Mon Jul 2 11:14:28 2018 +0200

    Update compilation tests.

commit 469dc7b
Author: Daniel Kirchner <daniel@ekpyron.org>
Date:   Tue May 8 13:09:15 2018 +0200

    Update test contracts.

commit f5e1cf7
Merge: 0f38726 f74a9a3
Author: chriseth <chris@ethereum.org>
Date:   Mon Jul 2 18:29:51 2018 +0200

    Merge pull request #4402 from ethereum/docsConstructor

    Update docs to new constructor syntax

commit 0f38726
Merge: 08aa7e4 e251cdc
Author: chriseth <chris@ethereum.org>
Date:   Mon Jul 2 18:26:46 2018 +0200

    Merge pull request #4374 from ethereum/v050-var-keyword-removal-preps-end2end-tests

    V050 var keyword removal preparations (End-to-End tests)

commit f74a9a3
Author: Erik Kundt <bitshift@posteo.org>
Date:   Mon Jul 2 17:02:17 2018 +0200

    Fixes semantic versioning.

commit 2031e8e
Author: Erik Kundt <bitshift@posteo.org>
Date:   Mon Jul 2 16:46:54 2018 +0200

    Adds review suggestions.

commit e16e37f
Author: Erik Kundt <bitshift@posteo.org>
Date:   Mon Jul 2 16:25:54 2018 +0200

    Updates docs to new constructor syntax.

commit 08aa7e4
Merge: da60fda 334c023
Author: chriseth <chris@ethereum.org>
Date:   Mon Jul 2 16:09:59 2018 +0200

    Merge pull request #4305 from ethereum/transactionReceipts

    Determine transaction status in RPC sessions.

commit e251cdc
Author: Christian Parpart <christian@ethereum.org>
Date:   Thu Jun 28 15:19:53 2018 +0200

    test: ensure compiled tests do not use var-keyword in preparation of var-keyword removal

commit da60fda
Merge: 9a71b69 9aefe2f
Author: Erik Kundt <bitshift@posteo.org>
Date:   Mon Jul 2 14:04:25 2018 +0200

    Merge pull request #4400 from ethereum/warningWhitespace

    Remove trailing whitespace in missing visibility warning.

commit 9aefe2f
Author: Daniel Kirchner <daniel@ekpyron.org>
Date:   Mon Jul 2 13:14:58 2018 +0200

    Remove trailing whitespace in missing visibility warning.

commit 9a71b69
Merge: 8a4980c 1b008c6
Author: chriseth <chris@ethereum.org>
Date:   Mon Jul 2 13:06:59 2018 +0200

    Merge pull request #4386 from ethereum/testingDefaultVisibility

    Specify default visibility in syntax tests

commit 8a4980c
Merge: 85b9d39 0e5b974
Author: chriseth <chris@ethereum.org>
Date:   Mon Jul 2 13:00:59 2018 +0200

    Merge pull request #4398 from rnaby/libevmasm/KnownState-125

    As SWITCH..CASE is better than ELSE..IF

commit 334c023
Author: Daniel Kirchner <daniel@ekpyron.org>
Date:   Fri Jun 15 12:18:00 2018 +0200

    Determine transaction status in RPC sessions.

commit 85b9d39
Merge: a5608b3 7763d21
Author: chriseth <chris@ethereum.org>
Date:   Mon Jul 2 12:55:22 2018 +0200

    Merge pull request #4224 from ethereum/revert_wrong_calldata

    [BREAKING] Revert if calldata has wrong size

commit a5608b3
Merge: e289c36 d072cc6
Author: chriseth <chris@ethereum.org>
Date:   Mon Jul 2 12:43:45 2018 +0200

    Merge pull request #4324 from ethereum/update-aleth

    Update aleth for testing

commit 1b008c6
Author: Erik Kundt <bitshift@posteo.org>
Date:   Mon Jul 2 11:44:16 2018 +0200

    Adds review suggestions.

commit 0e5b974
Author: Khan M Rashedun-Naby <naby88@gmail.com>
Date:   Mon Jul 2 15:42:30 2018 +0600

    As SWITCH..CASE is better than ELSE..IF

commit d072cc6
Author: Alex Beregszaszi <alex@rtfs.hu>
Date:   Wed Jun 20 17:10:52 2018 +0200

    Update aleth for testing

commit 7b7df90
Author: Dimitry <dimitry@ethereum.org>
Date:   Sat Jun 30 13:07:30 2018 +0300

    fix default difficulty to comply with YP rules
    fix soltest to work with the recent aleth --test

commit f3ca068
Author: Erik Kundt <bitshift@posteo.org>
Date:   Fri Jun 29 14:55:44 2018 +0200

    Updates syntax tests to specify default visibility.

commit 8747079
Author: chriseth <chris@ethereum.org>
Date:   Fri Jun 29 12:14:36 2018 +0200

    Fix tests.

commit f69e24c
Author: chriseth <chris@ethereum.org>
Date:   Fri Jun 29 00:29:52 2018 +0200

    Disallow constructor arguments given multiple times.

commit e289c36
Merge: 975dddf e6d2507
Author: chriseth <chris@ethereum.org>
Date:   Fri Jun 29 15:45:26 2018 +0200

    Merge pull request #4354 from ethereum/constructorSyntaxTests

    Updates tests to new constructor syntax

commit 975dddf
Merge: d469df4 f06ab89
Author: chriseth <chris@ethereum.org>
Date:   Fri Jun 29 13:28:02 2018 +0200

    Merge pull request #4385 from ethereum/circle2.0

    Update to CircleCI 2.0

commit e6d2507
Author: Erik Kundt <bitshift@posteo.org>
Date:   Fri Jun 29 13:00:50 2018 +0200

    Updates invalid syntax test.

commit f06ab89
Author: Erik Kundt <bitshift@posteo.org>
Date:   Fri Jun 29 12:31:18 2018 +0200

    Moves Circle config to conform version 2.0.

commit d469df4
Merge: 2a9d54a 3cad417
Author: chriseth <chris@ethereum.org>
Date:   Fri Jun 29 12:27:29 2018 +0200

    Merge pull request #4352 from D-Nice/develop

    Fixes storage ref var typo error from 'prefix' to 'suffix'

commit 2a9d54a
Author: Mike <mikro2nd@users.noreply.github.com>
Date:   Fri Jun 29 12:21:39 2018 +0200

    Clarify scope of 'using A for B' (#4252)

    * Issue 1213: Clarify scope of 'using A for B'

    * Typo fix.

    * Further restructuring and clarification of contracts doc.

    * Revert closer to original wording and formatting.

commit 1346b44
Author: Erik Kundt <bitshift@posteo.org>
Date:   Wed Jun 27 14:00:13 2018 +0200

    Updates syntax tests to new constructor syntax.

commit 12c4eb7
Author: Erik Kundt <bitshift@posteo.org>
Date:   Wed Jun 27 13:22:33 2018 +0200

    Updates compiled unit tests to new constructor syntax.

commit c9cab80
Merge: 29f6ee3 eeef82b
Author: chriseth <chris@ethereum.org>
Date:   Fri Jun 29 09:19:24 2018 +0200

    Merge pull request #4375 from ethereum/fallbackExternalBackwardsCompatible

    Fallback function has to be external: backwards-compatible changes.

commit eeef82b
Author: chriseth <chris@ethereum.org>
Date:   Thu Jun 28 18:08:45 2018 +0200

    Fallback function has to be external: backwards-compatible changes.

commit 29f6ee3
Merge: f1bfafe 3cc780d
Author: chriseth <chris@ethereum.org>
Date:   Thu Jun 28 23:59:21 2018 +0200

    Merge pull request #4368 from wpank/develop

    Added static CSS to Sphinx in order to fix bug with RTD theme table wrapping

commit f1bfafe
Merge: 4268062 fee4932
Author: chriseth <chris@ethereum.org>
Date:   Thu Jun 28 23:45:08 2018 +0200

    Merge pull request #4377 from ajsantander/manjaro-linux

    Support Manjaro Linux distributions in dependencies script

commit fee4932
Author: ajs <palebluedot@gmail.com>
Date:   Thu Jun 28 18:13:15 2018 -0300

    Support Manjaro Linux distributions in dependencies script

commit 3cad417
Author: D-Nice <D-Nice@users.noreply.github.com>
Date:   Thu Jun 28 16:45:53 2018 -0400

    Add passing test case

commit 4268062
Merge: 4a842ec 775590b
Author: Alex Beregszaszi <alex@rtfs.hu>
Date:   Thu Jun 28 16:26:25 2018 +0200

    Merge pull request #4365 from ethereum/type-identifier-test

    Some more type identifier tests

commit d62476f
Author: D-Nice <yugoboy11@hotmail.com>
Date:   Wed Jun 27 19:42:46 2018 -0400

    Adds storage_reference.sol syntax test

commit 3cc780d
Author: wpank <will.pankiewicz@gmail.com>
Date:   Wed Jun 27 12:01:48 2018 -0700

    Added static CSS to Sphinx in order to fix bug with RTD theme table wrapping

commit 775590b
Author: Alex Beregszaszi <alex@rtfs.hu>
Date:   Wed Jun 27 18:42:06 2018 +0200

    Add more FixedPoint type tests

commit 76465f2
Author: Alex Beregszaszi <alex@rtfs.hu>
Date:   Wed Jun 27 18:38:42 2018 +0200

    Add one more type identifier escaping test

commit 4a842ec
Merge: ce4b233 92cb4ac
Author: chriseth <chris@ethereum.org>
Date:   Wed Jun 27 18:29:01 2018 +0200

    Merge pull request #4097 from ethereum/noPackedExceptForPacked

    [BREAKING] call only takes a single argument and does not pad

commit ce4b233
Merge: b67dfa1 638ac15
Author: Alex Beregszaszi <alex@rtfs.hu>
Date:   Wed Jun 27 17:56:51 2018 +0200

    Merge pull request #4360 from mattaereal/doc_patches-1

    Docs: Adding AFL's alternative configuration with clang.

commit 638ac15
Author: Matías Aereal Aeón <aereal@gmail.com>
Date:   Wed Jun 27 11:02:27 2018 -0300

    Adding AFL's alternative configuration with clang.

commit 92cb4ac
Author: chriseth <chris@ethereum.org>
Date:   Wed Jun 27 15:00:34 2018 +0200

    Also mention regular abi.encode in error message.

commit b67dfa1
Merge: 503eb8c 4e8883b
Author: chriseth <chris@ethereum.org>
Date:   Wed Jun 27 12:04:49 2018 +0200

    Merge pull request #4269 from ethereum/require-emit

    [BREAKING] Remove non-0.5.0 warning for emit keyword (make it mandatory)

commit 4e8883b
Author: chriseth <chris@ethereum.org>
Date:   Wed Jun 27 10:48:03 2018 +0200

    Add emit keyword to tests.

commit b55d9aa
Author: chriseth <chris@ethereum.org>
Date:   Wed Jun 27 10:38:59 2018 +0200

    Add emit keyword to documentation.

commit 01fd5a8
Author: chriseth <chris@ethereum.org>
Date:   Wed Jun 27 10:35:38 2018 +0200

    Add emit keyword to compilation tests.

commit b9d0352
Author: chriseth <chris@ethereum.org>
Date:   Tue Jun 26 20:09:54 2018 +0200

    Add some more emits.

commit 80b7d36
Author: Alex Beregszaszi <alex@rtfs.hu>
Date:   Mon Jun 11 18:10:24 2018 +0100

    Remove non-0.5.0 warning for emit keyword (make it mandatory)

commit 503eb8c
Merge: 4bb9fce 097a3fa
Author: chriseth <chris@ethereum.org>
Date:   Tue Jun 26 17:54:09 2018 +0200

    Merge pull request #4342 from rnaby/l/a/Types

    RationalNumberType::isImplicitlyConvertibleTo Refactor

commit 4bb9fce
Merge: e6595d8 b9f2a78
Author: chriseth <chris@ethereum.org>
Date:   Tue Jun 26 12:26:19 2018 +0200

    Merge pull request #4332 from ethereum/dockerfile-small-improvements

    Dockerfile small improvements

commit e6595d8
Merge: 5939ef9 952f14b
Author: chriseth <chris@ethereum.org>
Date:   Tue Jun 26 12:24:07 2018 +0200

    Merge pull request #4318 from ethereum/yul-internal

    Rename some internal constructs from Julia/Iulia to Yul

commit b9f2a78
Author: Christian Parpart <christian@ethereum.org>
Date:   Thu Jun 21 17:03:06 2018 +0200

    adds .dockerignore file

commit 37b5669
Author: Christian Parpart <christian@ethereum.org>
Date:   Fri Jun 22 09:27:08 2018 +0200

    make build concurrency build-time customizable

commit 5939ef9
Merge: d1acd6b 5aa8c7e
Author: chriseth <chris@ethereum.org>
Date:   Tue Jun 26 12:13:01 2018 +0200

    Merge pull request #4353 from ethereum/compilerstack-api

    Document the internal API of CompilerStack

commit 7546100
Author: Christian Parpart <christian@ethereum.org>
Date:   Thu Jun 21 16:54:48 2018 +0200

    Dockerfile: improves docker image size and small others

    This greatly improves size of the final docker image with the help of
    multi-stage docker builds.

    With that change, we can also make the build stage readable/maintainable
    again by splitting up into multiple RUN statements as well as not
    needing to clean-up temporary objects.

    The dependencies have been put on top of the primary COPY statement
    in order to not rebuild the dependencies each time one wants to rebuild
    the docker image (for example due to code changes).

    The solc compilation itself is now parallelized to the CPU core count
    to speed up those builds that have more cores available on their docker
    build system.

    Future Notes:
    -------------

    We could further improve the Dockerfile by explicitely adding the
    directories this docker build is interested in (such as solc source code
    exclusively).

    Or one may want to also use the build step for automated testing (CI)
    by enforcing soltest and cmdlineTests.sh right before finalizing the image.

commit d1acd6b
Merge: 24f124f 44f2cfb
Author: chriseth <chris@ethereum.org>
Date:   Tue Jun 26 12:12:01 2018 +0200

    Merge pull request #4355 from ethereum/docs-alloc

    Clarify that using msize without updating the free-memory-pointer is a bad idea

commit 24f124f
Merge: 4be9dc4 e38139c
Author: chriseth <chris@ethereum.org>
Date:   Tue Jun 26 12:07:19 2018 +0200

    Merge pull request #4331 from ethereum/v050-var-keyword-preparations-soltests

    Adapt soltest suite to use explicit types over "var" keyword

commit e38139c
Author: Christian Parpart <christian@parpart.family>
Date:   Mon Jun 11 14:15:27 2018 +0200

    test: Adapted to the change of the var-keyword elimination.

commit a083ccd
Author: Christian Parpart <christian@ethereum.org>
Date:   Mon Jun 25 15:25:58 2018 +0200

    test: drop obsoleted syntaxTest(s)

commit 7763d21
Author: Leonardo Alt <leo@ethereum.org>
Date:   Mon Jun 4 12:31:18 2018 +0200

    Revert if calldata is too short or points out of bounds

commit 44f2cfb
Author: Alex Beregszaszi <alex@rtfs.hu>
Date:   Tue Jun 26 02:23:02 2018 +0200

    Clarify that using msize without updating the free-memory-pointer is a bad idea

commit 952f14b
Author: Alex Beregszaszi <alex@rtfs.hu>
Date:   Tue Jun 26 00:11:14 2018 +0200

    Rename IuliaException to YulException

commit e05a31b
Author: Alex Beregszaszi <alex@rtfs.hu>
Date:   Tue Jun 19 17:04:42 2018 +0200

    Rename Julia to Yul in variables

commit 8fa8b2d
Author: Alex Beregszaszi <alex@rtfs.hu>
Date:   Mon Jun 18 23:26:31 2018 +0200

    Rename Julia to Yul in comments

commit 4be9dc4
Merge: 3b17419 95c3488
Author: Alex Beregszaszi <alex@rtfs.hu>
Date:   Tue Jun 26 00:45:55 2018 +0200

    Merge pull request #4350 from ethereum/constructorWorkaroundExternal

    New constructor syntax for external compilation tests

commit 91db46b
Author: Alex Beregszaszi <alex@rtfs.hu>
Date:   Thu Jun 14 23:29:45 2018 +0100

    Rename test suites from J/Iulia* to Yul*

commit 95c3488
Author: Erik Kundt <bitshift@posteo.org>
Date:   Mon Jun 25 15:02:20 2018 +0200

    Updates external contracts to new constructor syntax.

commit 5aa8c7e
Author: Alex Beregszaszi <alex@rtfs.hu>
Date:   Wed Jun 20 21:46:31 2018 +0200

    Document the internal API of CompilerStack

commit 3b17419
Merge: 0ac4609 3fc7da1
Author: Alex Beregszaszi <alex@rtfs.hu>
Date:   Mon Jun 25 23:44:47 2018 +0200

    Merge pull request #4337 from ethereum/compilerstack-cleanup

    Pull out createCBORMetadata helper

commit 3fc7da1
Author: Alex Beregszaszi <alex@rtfs.hu>
Date:   Fri Jun 22 12:02:50 2018 +0200

    Pull out createCBORMetadata helper

commit 4154e14
Author: chriseth <chris@ethereum.org>
Date:   Thu Jun 14 16:09:29 2018 +0200

    Update tests and add new tests.

commit 033672c
Author: chriseth <chris@ethereum.org>
Date:   Thu Jun 14 16:09:16 2018 +0200

    Fix: Call functions do not take variable arguments.

commit 5cf6fa8
Author: chriseth <chris@ethereum.org>
Date:   Thu Jun 14 16:08:59 2018 +0200

    Provide better suggestions in error messages with respect to call and hash functions.

commit e299a00
Author: chriseth <chris@ethereum.org>
Date:   Thu Jun 14 12:28:33 2018 +0200

    Update compilation tests.

commit 17493e6
Author: chriseth <chris@ethereum.org>
Date:   Wed Jun 13 17:49:41 2018 +0200

    Documentation.

commit 237788c
Author: chriseth <chris@ethereum.org>
Date:   Wed May 23 17:33:10 2018 +0200

    Changelog entry.

commit a55e8c9
Author: chriseth <chris@ethereum.org>
Date:   Wed May 23 16:55:58 2018 +0200

    Save double encode call for sha3.

commit 86a720b
Author: chriseth <chris@ethereum.org>
Date:   Wed May 23 15:39:26 2018 +0200

    Adjust tests.

commit b2f0d1d
Author: D-Nice <D-Nice@users.noreply.github.com>
Date:   Mon Jun 25 10:26:44 2018 -0400

    Fixes storage ref var typo error from 'prefix' to 'suffix'

commit 23c4142
Author: chriseth <chris@ethereum.org>
Date:   Fri May 18 18:03:41 2018 +0200

    Bare functions take single bytes argument.

commit 0e66a1d
Author: chriseth <chris@ethereum.org>
Date:   Mon May 7 22:34:31 2018 +0200

    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.

commit 312f422
Author: chriseth <chris@ethereum.org>
Date:   Sun May 6 15:23:20 2018 +0200

    Forwarding length check.

commit 0ac4609
Merge: b700350 6d9a091
Author: Alex Beregszaszi <alex@rtfs.hu>
Date:   Mon Jun 25 16:54:50 2018 +0200

    Merge pull request #3534 from meowingtwurtle/strictAddresses

    [BREAKING] Strict checking of address literals

commit 6d9a091
Author: Alex Beregszaszi <alex@rtfs.hu>
Date:   Mon Jun 25 16:25:21 2018 +0200

    Keep the 'if it not used as an address' helper message for all cases of address related warnings

commit c7f842d
Author: Alex Beregszaszi <alex@rtfs.hu>
Date:   Mon Jun 18 19:25:22 2018 +0200

    Do not change SMT tests

commit d44743c
Author: Alex Beregszaszi <alex@rtfs.hu>
Date:   Wed Jun 13 01:23:01 2018 +0100

    Replace old Truffle artifacts in external Zeppelin/Gnosis tests

commit b7ad976
Author: Alex Beregszaszi <alex@rtfs.hu>
Date:   Wed Jun 13 00:59:23 2018 +0100

    Update documentation for strict address literals

commit 3ee3018
Author: Alex Beregszaszi <alex@rtfs.hu>
Date:   Tue Jun 12 10:05:49 2018 +0100

    Update external contracts in compilationTests (to support strict address literals)

commit 98c9ca2
Author: Jason Cobb <jason.e.cobb@gmail.com>
Date:   Wed May 30 17:02:47 2018 -0400

    Update tests for strict address literals

commit 48b003d
Author: Alex Beregszaszi <alex@rtfs.hu>
Date:   Mon Jun 11 11:45:39 2018 +0100

    Better wording for invalid address literal error

commit 51567c0
Author: Jason Cobb <jason.e.cobb@gmail.com>
Date:   Thu Feb 15 23:24:32 2018 -0500

    Change invalid (not exactly 160 bits long) address literal to error

commit 3d88eca
Author: Jason Cobb <jason.e.cobb@gmail.com>
Date:   Thu Feb 15 23:23:27 2018 -0500

    Disallow implicit conversion from rational (literal) to address

commit b700350
Merge: 9b67bdb f44561a
Author: chriseth <chris@ethereum.org>
Date:   Mon Jun 25 15:01:12 2018 +0200

    Merge pull request #4347 from ethereum/fix-end2endtest-against-latest-cpp-client

    Fixes soltest run against "recent" cpp-ethereum builds.

commit f44561a
Author: Christian Parpart <christian@ethereum.org>
Date:   Mon Jun 25 13:55:23 2018 +0200

    Fixes soltest against "recent" cpp-ethereum builds.

    For me, it looks like the following Git commit has introduced this behaviour:
    	ethereum/aleth@42b927d

    This commit adds dummy values for `mixHash` and `nonce` (inspired by values were cpp-ethereum's own tests),
    and now, soltest runs fine again.

commit 097a3fa
Author: Khan M Rashedun-Naby <naby88@gmail.com>
Date:   Sun Jun 24 08:15:25 2018 +0600

    RationalNumberType::isImplicitlyConvertibleTo Refactor
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants