github.com/ethereum/go-ethereum@v1.16.1/accounts/abi/bind/v2/internal/contracts/solc_errors/contract.sol (about)

     1  // SPDX-License-Identifier: MIT
     2  pragma solidity ^0.8.26;
     3  
     4  error BadThing(uint256 arg1, uint256 arg2, uint256 arg3, bool arg4);
     5  error BadThing2(uint256 arg1, uint256 arg2, uint256 arg3, uint256 arg4);
     6  
     7  contract C {
     8      function Foo() public pure {
     9          revert BadThing({
    10              arg1: uint256(0),
    11              arg2: uint256(1),
    12              arg3: uint256(2),
    13              arg4: false
    14          });
    15      }
    16      function Bar() public pure {
    17          revert BadThing2({
    18              arg1: uint256(0),
    19              arg2: uint256(1),
    20              arg3: uint256(2),
    21              arg4: uint256(3)
    22          });
    23      }
    24  }
    25  
    26  // purpose of this is to test that generation of metadata for contract that emits one error produces valid Go code
    27  contract C2 {
    28      function Foo() public pure {
    29          revert BadThing({
    30              arg1: uint256(0),
    31              arg2: uint256(1),
    32              arg3: uint256(2),
    33              arg4: false
    34          });
    35      }
    36  }