{
  "abi": [
    {
      "inputs": [
        {
          "internalType": "uint32",
          "name": "origin",
          "type": "uint32"
        },
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        },
        {
          "internalType": "uint32",
          "name": "",
          "type": "uint32"
        },
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "name": "onReceive",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "test",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": {
    "object": "0x608060405234801561001057600080fd5b506101ee806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063048494fe1461003b578063f8a8fd6d14610128575b600080fd5b610126600480360360e081101561005157600080fd5b63ffffffff823581169260208101359260408201359092169160608201359173ffffffffffffffffffffffffffffffffffffffff6080820135169160a0820135919081019060e0810160c08201356401000000008111156100b157600080fd5b8201836020820111156100c357600080fd5b803590602001918460018302840111640100000000831117156100e557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610142945050505050565b005b6101306101db565b60408051918252519081900360200190f35b6101f48763ffffffff16111561015757600080fd5b600a8763ffffffff1611156101cd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f6e6f706521000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b607b60005550505050505050565b6000548156fea164736f6c6343000706000a",
    "sourceMap": "70:393:61:-:0;;;;;;;;;;;;;;;;;;;",
    "linkReferences": {}
  },
  "deployedBytecode": {
    "object": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063048494fe1461003b578063f8a8fd6d14610128575b600080fd5b610126600480360360e081101561005157600080fd5b63ffffffff823581169260208101359260408201359092169160608201359173ffffffffffffffffffffffffffffffffffffffff6080820135169160a0820135919081019060e0810160c08201356401000000008111156100b157600080fd5b8201836020820111156100c357600080fd5b803590602001918460018302840111640100000000831117156100e557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610142945050505050565b005b6101306101db565b60408051918252519081900360200190f35b6101f48763ffffffff16111561015757600080fd5b600a8763ffffffff1611156101cd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f6e6f706521000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b607b60005550505050505050565b6000548156fea164736f6c6343000706000a",
    "sourceMap": "70:393:61:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;127:334;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;127:334:61;;-1:-1:-1;127:334:61;;-1:-1:-1;;;;;127:334:61:i;:::-;;101:19;;;:::i;:::-;;;;;;;;;;;;;;;;127:334;313:3;304:6;:12;;;300:155;;;332:8;;;300:155;370:2;361:6;:11;;;357:98;;;388:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;357:98;441:3;434:4;:10;127:334;;;;;;;:::o;101:19::-;;;;:::o",
    "linkReferences": {}
  },
  "methodIdentifiers": {
    "onReceive(uint32,bytes32,uint32,bytes32,address,uint256,bytes)": "048494fe",
    "test()": "f8a8fd6d"
  },
  "ast": {
    "absolutePath": "packages/contracts-bridge/contracts/test/utils/RevertingToHook.sol",
    "id": 42781,
    "exportedSymbols": {
      "RevertingToHook": [
        42780
      ]
    },
    "nodeType": "SourceUnit",
    "src": "46:418:61",
    "nodes": [
      {
        "id": 42737,
        "nodeType": "PragmaDirective",
        "src": "46:22:61",
        "literals": [
          "solidity",
          "0.7",
          ".6"
        ]
      },
      {
        "id": 42780,
        "nodeType": "ContractDefinition",
        "src": "70:393:61",
        "nodes": [
          {
            "id": 42739,
            "nodeType": "VariableDeclaration",
            "src": "101:19:61",
            "constant": false,
            "functionSelector": "f8a8fd6d",
            "mutability": "mutable",
            "name": "test",
            "scope": 42780,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 42738,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "101:7:61",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "visibility": "public"
          },
          {
            "id": 42779,
            "nodeType": "FunctionDefinition",
            "src": "127:334:61",
            "body": {
              "id": 42778,
              "nodeType": "Block",
              "src": "290:171:61",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    },
                    "id": 42758,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 42756,
                      "name": "origin",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 42741,
                      "src": "304:6:61",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "353030",
                      "id": 42757,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "313:3:61",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_500_by_1",
                        "typeString": "int_const 500"
                      },
                      "value": "500"
                    },
                    "src": "304:12:61",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "commonType": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      },
                      "id": 42765,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 42763,
                        "name": "origin",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 42741,
                        "src": "361:6:61",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": ">",
                      "rightExpression": {
                        "hexValue": "3130",
                        "id": 42764,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "370:2:61",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_10_by_1",
                          "typeString": "int_const 10"
                        },
                        "value": "10"
                      },
                      "src": "361:11:61",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "id": 42775,
                      "nodeType": "Block",
                      "src": "420:35:61",
                      "statements": [
                        {
                          "expression": {
                            "id": 42773,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "id": 42771,
                              "name": "test",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 42739,
                              "src": "434:4:61",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "hexValue": "313233",
                              "id": 42772,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "441:3:61",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_123_by_1",
                                "typeString": "int_const 123"
                              },
                              "value": "123"
                            },
                            "src": "434:10:61",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 42774,
                          "nodeType": "ExpressionStatement",
                          "src": "434:10:61"
                        }
                      ]
                    },
                    "id": 42776,
                    "nodeType": "IfStatement",
                    "src": "357:98:61",
                    "trueBody": {
                      "id": 42770,
                      "nodeType": "Block",
                      "src": "374:40:61",
                      "statements": [
                        {
                          "expression": {
                            "arguments": [
                              {
                                "hexValue": "6e6f706521",
                                "id": 42767,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "string",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "395:7:61",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_stringliteral_602220581b0499081ee1ce9a0bc4aa2f362f8c8592a23f7cf2b39c3b2f8e2c45",
                                  "typeString": "literal_string \"nope!\""
                                },
                                "value": "nope!"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_stringliteral_602220581b0499081ee1ce9a0bc4aa2f362f8c8592a23f7cf2b39c3b2f8e2c45",
                                  "typeString": "literal_string \"nope!\""
                                }
                              ],
                              "id": 42766,
                              "name": "revert",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [
                                -19,
                                -19
                              ],
                              "referencedDeclaration": -19,
                              "src": "388:6:61",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
                                "typeString": "function (string memory) pure"
                              }
                            },
                            "id": 42768,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "388:15:61",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$__$",
                              "typeString": "tuple()"
                            }
                          },
                          "id": 42769,
                          "nodeType": "ExpressionStatement",
                          "src": "388:15:61"
                        }
                      ]
                    }
                  },
                  "id": 42777,
                  "nodeType": "IfStatement",
                  "src": "300:155:61",
                  "trueBody": {
                    "id": 42762,
                    "nodeType": "Block",
                    "src": "318:33:61",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 42759,
                            "name": "revert",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              -19,
                              -19
                            ],
                            "referencedDeclaration": -19,
                            "src": "332:6:61",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_revert_pure$__$returns$__$",
                              "typeString": "function () pure"
                            }
                          },
                          "id": 42760,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "332:8:61",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 42761,
                        "nodeType": "ExpressionStatement",
                        "src": "332:8:61"
                      }
                    ]
                  }
                }
              ]
            },
            "functionSelector": "048494fe",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "onReceive",
            "parameters": {
              "id": 42754,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 42741,
                  "mutability": "mutable",
                  "name": "origin",
                  "nodeType": "VariableDeclaration",
                  "scope": 42779,
                  "src": "155:13:61",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 42740,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "155:6:61",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42743,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 42779,
                  "src": "178:7:61",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 42742,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "178:7:61",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42745,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 42779,
                  "src": "195:6:61",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 42744,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "195:6:61",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42747,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 42779,
                  "src": "211:7:61",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 42746,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "211:7:61",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42749,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 42779,
                  "src": "228:7:61",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 42748,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "228:7:61",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42751,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 42779,
                  "src": "245:7:61",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 42750,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "245:7:61",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42753,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 42779,
                  "src": "262:12:61",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 42752,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "262:5:61",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "145:135:61"
            },
            "returnParameters": {
              "id": 42755,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "290:0:61"
            },
            "scope": 42780,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "fullyImplemented": true,
        "linearizedBaseContracts": [
          42780
        ],
        "name": "RevertingToHook",
        "scope": 42781
      }
    ],
    "license": "MIT OR Apache-2.0"
  },
  "id": 61
}