Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Verisol fails on call with non-empty argument #196

Open
bmarwritescode opened this issue Sep 30, 2019 · 1 comment
Open

Verisol fails on call with non-empty argument #196

bmarwritescode opened this issue Sep 30, 2019 · 1 comment
Labels
enhancement New feature or request

Comments

@bmarwritescode
Copy link

Summary

When trying to use the call function with any non-empty arguments (i.e. anything not ""), Verisol throws an error.

Minimal Example

contract CallError {

  function errorTest(bytes memory data) public {
    address nameReg = 0x72bA7d8E73Fe8Eb666Ea66babC8116a41bFb10e2;
    bool success;
    bytes memory returnData;
    (success, returnData) = address(nameReg).call(data);
    require(success);
  }

}

I run this example with the following command:

dotnet Binaries/VeriSol.dll ./CallError.sol CallError /omitAxioms /omitSourceLineInfo /omitUnsignedSemantics /omitDataValuesInTrace

And get the following error:

VeriSol translation error: File , Line -1, Contract CallError, Function errorTest:: low-level call statements with non-empty signature not implemented......

If you replace address(nameReg).call(data) with address(nameReg).call("");, Verisol does not throw any error.

@shuvendu-lahiri
Copy link
Member

This is expected as seen from the error message. I will add it as an enhancement instead of a bug, as VeriSol has tried to consciously stay away from low-level calls. We supported call("") as it is a common method for sending ether with adjustable gas budget.

@shuvendu-lahiri shuvendu-lahiri added the enhancement New feature or request label Sep 30, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants