aboutsummaryrefslogtreecommitdiffstats
path: root/test/libsolidity/syntaxTests/viewPure/view_pure_abi_encode_arguments.sol
blob: cc845d5139996b7957dcf1bec0955b7aa9e216d4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
contract C {
    uint x;
    function gView() public view returns (uint) { return x; }
    function gNonPayable() public returns (uint) { x = 4; return 0; }

    function f1() view public returns (bytes memory) {
        return abi.encode(gView());
    }
    function f2() view public returns (bytes memory) {
        return abi.encodePacked(gView());
    }
    function f3() view public returns (bytes memory) {
        return abi.encodeWithSelector(0x12345678, gView());
    }
    function f4() view public returns (bytes memory) {
        return abi.encodeWithSignature("f(uint256)", gView());
    }
    function g1() public returns (bytes memory) {
        return abi.encode(gNonPayable());
    }
    function g2() public returns (bytes memory) {
        return abi.encodePacked(gNonPayable());
    }
    function g3() public returns (bytes memory) {
        return abi.encodeWithSelector(0x12345678, gNonPayable());
    }
    function g4() public returns (bytes memory) {
        return abi.encodeWithSignature("f(uint256)", gNonPayable());
    }
    // This will generate the only warning.
    function check() public returns (bytes memory) {
        return abi.encode(2);
    }
}
// ----
// Warning: (1100-1184): Function state mutability can be restricted to pure