{
  "contractName": "GlobalConstraintMock",
  "abi": [
    {
      "inputs": [],
      "name": "currentCallPhase",
      "outputs": [
        {
          "internalType": "enum GlobalConstraintInterface.CallPhase",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "method",
          "type": "bytes32"
        }
      ],
      "name": "post",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "method",
          "type": "bytes32"
        }
      ],
      "name": "pre",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "method",
          "type": "bytes32"
        },
        {
          "internalType": "bool",
          "name": "pre",
          "type": "bool"
        },
        {
          "internalType": "bool",
          "name": "post",
          "type": "bool"
        }
      ],
      "name": "setConstraint",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "testParams",
      "outputs": [
        {
          "internalType": "bool",
          "name": "pre",
          "type": "bool"
        },
        {
          "internalType": "bool",
          "name": "post",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "when",
      "outputs": [
        {
          "internalType": "enum GlobalConstraintInterface.CallPhase",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b5061028a806100206000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80632414112b14610067578063696a72531461009357806373d2ea39146100d4578063c63b7d091461010c578063d57a58fa14610138578063e2b0caef14610164575b600080fd5b61006f61016c565b6040518082600281111561007f57fe5b60ff16815260200191505060405180910390f35b6100c0600480360360608110156100a957600080fd5b508035906020810135151590604001351515610175565b604080519115158252519081900360200190f35b6100f1600480360360208110156100ea57600080fd5b50356101fa565b60408051921515835290151560208301528051918290030190f35b6100c06004803603604081101561012257600080fd5b506001600160a01b038135169060200135610218565b6100c06004803603604081101561014e57600080fd5b506001600160a01b03813516906020013561022f565b61006f61024b565b60015460ff1681565b6000838152602081905260408120805460ff19168415801591821761ff00191661010086151502179092556101a8575081155b156101c657600180546002919060ff191681835b02179055506101f0565b826101de57600180546000919060ff191681836101bc565b816101f0576001805460ff1916811790555b5060019392505050565b60006020819052908152604090205460ff8082169161010090041682565b60009081526020819052604090205460ff16919050565b600090815260208190526040902054610100900460ff16919050565b60015460ff169056fea2646970667358221220b5691d937c02d466ad9adebddf368d61ff8925f9ee298cdb32ed5054f337fcac64736f6c634300060a0033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100625760003560e01c80632414112b14610067578063696a72531461009357806373d2ea39146100d4578063c63b7d091461010c578063d57a58fa14610138578063e2b0caef14610164575b600080fd5b61006f61016c565b6040518082600281111561007f57fe5b60ff16815260200191505060405180910390f35b6100c0600480360360608110156100a957600080fd5b508035906020810135151590604001351515610175565b604080519115158252519081900360200190f35b6100f1600480360360208110156100ea57600080fd5b50356101fa565b60408051921515835290151560208301528051918290030190f35b6100c06004803603604081101561012257600080fd5b506001600160a01b038135169060200135610218565b6100c06004803603604081101561014e57600080fd5b506001600160a01b03813516906020013561022f565b61006f61024b565b60015460ff1681565b6000838152602081905260408120805460ff19168415801591821761ff00191661010086151502179092556101a8575081155b156101c657600180546002919060ff191681835b02179055506101f0565b826101de57600180546000919060ff191681836101bc565b816101f0576001805460ff1916811790555b5060019392505050565b60006020819052908152604090205460ff8082169161010090041682565b60009081526020819052604090205460ff16919050565b600090815260208190526040902054610100900460ff16919050565b60015460ff169056fea2646970667358221220b5691d937c02d466ad9adebddf368d61ff8925f9ee298cdb32ed5054f337fcac64736f6c634300060a0033"
}