{
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_xAppConnectionManager",
          "type": "address"
        }
      ],
      "name": "setXAppConnectionManager",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "xAppConnectionManager",
      "outputs": [
        {
          "internalType": "contract XAppConnectionManager",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": {
    "object": "0x",
    "sourceMap": "",
    "linkReferences": {}
  },
  "deployedBytecode": {
    "object": "0x",
    "sourceMap": "",
    "linkReferences": {}
  },
  "methodIdentifiers": {
    "owner()": "8da5cb5b",
    "renounceOwnership()": "715018a6",
    "setXAppConnectionManager(address)": "41bdc8b5",
    "transferOwnership(address)": "f2fde38b",
    "xAppConnectionManager()": "3339df96"
  },
  "ast": {
    "absolutePath": "packages/contracts-router/contracts/XAppConnectionClient.sol",
    "id": 46867,
    "exportedSymbols": {
      "Home": [
        43790
      ],
      "OwnableUpgradeable": [
        23168
      ],
      "XAppConnectionClient": [
        46866
      ],
      "XAppConnectionManager": [
        45020
      ]
    },
    "nodeType": "SourceUnit",
    "src": "46:2470:80",
    "nodes": [
      {
        "id": 46770,
        "nodeType": "PragmaDirective",
        "src": "46:22:80",
        "literals": [
          "solidity",
          "0.7",
          ".6"
        ]
      },
      {
        "id": 46772,
        "nodeType": "ImportDirective",
        "src": "116:66:80",
        "absolutePath": "packages/contracts-core/contracts/Home.sol",
        "file": "@nomad-xyz/contracts-core/contracts/Home.sol",
        "scope": 46867,
        "sourceUnit": 43791,
        "symbolAliases": [
          {
            "foreign": {
              "id": 46771,
              "name": "Home",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "src": "124:4:80",
              "typeDescriptions": {}
            }
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 46774,
        "nodeType": "ImportDirective",
        "src": "183:100:80",
        "absolutePath": "packages/contracts-core/contracts/XAppConnectionManager.sol",
        "file": "@nomad-xyz/contracts-core/contracts/XAppConnectionManager.sol",
        "scope": 46867,
        "sourceUnit": 45021,
        "symbolAliases": [
          {
            "foreign": {
              "id": 46773,
              "name": "XAppConnectionManager",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "src": "191:21:80",
              "typeDescriptions": {}
            }
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 46776,
        "nodeType": "ImportDirective",
        "src": "284:101:80",
        "absolutePath": "node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol",
        "file": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol",
        "scope": 46867,
        "sourceUnit": 23169,
        "symbolAliases": [
          {
            "foreign": {
              "id": 46775,
              "name": "OwnableUpgradeable",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "src": "292:18:80",
              "typeDescriptions": {}
            }
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 46866,
        "nodeType": "ContractDefinition",
        "src": "387:2128:80",
        "nodes": [
          {
            "id": 46780,
            "nodeType": "VariableDeclaration",
            "src": "504:50:80",
            "constant": false,
            "functionSelector": "3339df96",
            "mutability": "mutable",
            "name": "xAppConnectionManager",
            "scope": 46866,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_XAppConnectionManager_$45020",
              "typeString": "contract XAppConnectionManager"
            },
            "typeName": {
              "id": 46779,
              "name": "XAppConnectionManager",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 45020,
              "src": "504:21:80",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_XAppConnectionManager_$45020",
                "typeString": "contract XAppConnectionManager"
              }
            },
            "visibility": "public"
          },
          {
            "id": 46784,
            "nodeType": "VariableDeclaration",
            "src": "560:25:80",
            "constant": false,
            "mutability": "mutable",
            "name": "__GAP",
            "scope": 46866,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_uint256_$49_storage",
              "typeString": "uint256[49]"
            },
            "typeName": {
              "baseType": {
                "id": 46781,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "560:7:80",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "id": 46783,
              "length": {
                "hexValue": "3439",
                "id": 46782,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "kind": "number",
                "lValueRequested": false,
                "nodeType": "Literal",
                "src": "568:2:80",
                "typeDescriptions": {
                  "typeIdentifier": "t_rational_49_by_1",
                  "typeString": "int_const 49"
                },
                "value": "49"
              },
              "nodeType": "ArrayTypeName",
              "src": "560:11:80",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_uint256_$49_storage_ptr",
                "typeString": "uint256[49]"
              }
            },
            "visibility": "private"
          },
          {
            "id": 46797,
            "nodeType": "ModifierDefinition",
            "src": "745:94:80",
            "body": {
              "id": 46796,
              "nodeType": "Block",
              "src": "768:71:80",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "expression": {
                              "id": 46789,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": -15,
                              "src": "797:3:80",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 46790,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "src": "797:10:80",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          ],
                          "id": 46788,
                          "name": "_isReplica",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 46854,
                          "src": "786:10:80",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$",
                            "typeString": "function (address) view returns (bool)"
                          }
                        },
                        "id": 46791,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "786:22:80",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "217265706c696361",
                        "id": 46792,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "810:10:80",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_7afc535b29b4d3bfaeeb1bc16917b5a65aad600ab1c68906496cdb411a5c54cc",
                          "typeString": "literal_string \"!replica\""
                        },
                        "value": "!replica"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_7afc535b29b4d3bfaeeb1bc16917b5a65aad600ab1c68906496cdb411a5c54cc",
                          "typeString": "literal_string \"!replica\""
                        }
                      ],
                      "id": 46787,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "778:7:80",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 46793,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "778:43:80",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 46794,
                  "nodeType": "ExpressionStatement",
                  "src": "778:43:80"
                },
                {
                  "id": 46795,
                  "nodeType": "PlaceholderStatement",
                  "src": "831:1:80"
                }
              ]
            },
            "documentation": {
              "id": 46785,
              "nodeType": "StructuredDocumentation",
              "src": "662:78:80",
              "text": " @notice Only accept messages from an Nomad Replica contract"
            },
            "name": "onlyReplica",
            "parameters": {
              "id": 46786,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "765:2:80"
            },
            "virtual": false,
            "visibility": "internal"
          },
          {
            "id": 46814,
            "nodeType": "FunctionDefinition",
            "src": "884:228:80",
            "body": {
              "id": 46813,
              "nodeType": "Block",
              "src": "1000:112:80",
              "statements": [
                {
                  "expression": {
                    "id": 46808,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 46804,
                      "name": "xAppConnectionManager",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 46780,
                      "src": "1010:21:80",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_XAppConnectionManager_$45020",
                        "typeString": "contract XAppConnectionManager"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 46806,
                          "name": "_xAppConnectionManager",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 46799,
                          "src": "1056:22:80",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "id": 46805,
                        "name": "XAppConnectionManager",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 45020,
                        "src": "1034:21:80",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_XAppConnectionManager_$45020_$",
                          "typeString": "type(contract XAppConnectionManager)"
                        }
                      },
                      "id": 46807,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1034:45:80",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_XAppConnectionManager_$45020",
                        "typeString": "contract XAppConnectionManager"
                      }
                    },
                    "src": "1010:69:80",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_XAppConnectionManager_$45020",
                      "typeString": "contract XAppConnectionManager"
                    }
                  },
                  "id": 46809,
                  "nodeType": "ExpressionStatement",
                  "src": "1010:69:80"
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 46810,
                      "name": "__Ownable_init",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23067,
                      "src": "1089:14:80",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
                        "typeString": "function ()"
                      }
                    },
                    "id": 46811,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1089:16:80",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 46812,
                  "nodeType": "ExpressionStatement",
                  "src": "1089:16:80"
                }
              ]
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 46802,
                "modifierName": {
                  "id": 46801,
                  "name": "initializer",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 23659,
                  "src": "984:11:80",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "984:11:80"
              }
            ],
            "name": "__XAppConnectionClient_initialize",
            "parameters": {
              "id": 46800,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 46799,
                  "mutability": "mutable",
                  "name": "_xAppConnectionManager",
                  "nodeType": "VariableDeclaration",
                  "scope": 46814,
                  "src": "927:30:80",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 46798,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "927:7:80",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "926:32:80"
            },
            "returnParameters": {
              "id": 46803,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1000:0:80"
            },
            "scope": 46866,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "id": 46829,
            "nodeType": "FunctionDefinition",
            "src": "1353:191:80",
            "body": {
              "id": 46828,
              "nodeType": "Block",
              "src": "1458:86:80",
              "statements": [
                {
                  "expression": {
                    "id": 46826,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 46822,
                      "name": "xAppConnectionManager",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 46780,
                      "src": "1468:21:80",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_XAppConnectionManager_$45020",
                        "typeString": "contract XAppConnectionManager"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 46824,
                          "name": "_xAppConnectionManager",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 46817,
                          "src": "1514:22:80",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "id": 46823,
                        "name": "XAppConnectionManager",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 45020,
                        "src": "1492:21:80",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_XAppConnectionManager_$45020_$",
                          "typeString": "type(contract XAppConnectionManager)"
                        }
                      },
                      "id": 46825,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1492:45:80",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_XAppConnectionManager_$45020",
                        "typeString": "contract XAppConnectionManager"
                      }
                    },
                    "src": "1468:69:80",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_XAppConnectionManager_$45020",
                      "typeString": "contract XAppConnectionManager"
                    }
                  },
                  "id": 46827,
                  "nodeType": "ExpressionStatement",
                  "src": "1468:69:80"
                }
              ]
            },
            "documentation": {
              "id": 46815,
              "nodeType": "StructuredDocumentation",
              "src": "1171:177:80",
              "text": " @notice Modify the contract the xApp uses to validate Replica contracts\n @param _xAppConnectionManager The address of the xAppConnectionManager contract"
            },
            "functionSelector": "41bdc8b5",
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 46820,
                "modifierName": {
                  "id": 46819,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 23113,
                  "src": "1444:9:80",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1444:9:80"
              }
            ],
            "name": "setXAppConnectionManager",
            "parameters": {
              "id": 46818,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 46817,
                  "mutability": "mutable",
                  "name": "_xAppConnectionManager",
                  "nodeType": "VariableDeclaration",
                  "scope": 46829,
                  "src": "1387:30:80",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 46816,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1387:7:80",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1386:32:80"
            },
            "returnParameters": {
              "id": 46821,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1458:0:80"
            },
            "scope": 46866,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 46840,
            "nodeType": "FunctionDefinition",
            "src": "1732:98:80",
            "body": {
              "id": 46839,
              "nodeType": "Block",
              "src": "1778:52:80",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "id": 46835,
                        "name": "xAppConnectionManager",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 46780,
                        "src": "1795:21:80",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_XAppConnectionManager_$45020",
                          "typeString": "contract XAppConnectionManager"
                        }
                      },
                      "id": 46836,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "home",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 44639,
                      "src": "1795:26:80",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_Home_$43790_$",
                        "typeString": "function () view external returns (contract Home)"
                      }
                    },
                    "id": 46837,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1795:28:80",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Home_$43790",
                      "typeString": "contract Home"
                    }
                  },
                  "functionReturnParameters": 46834,
                  "id": 46838,
                  "nodeType": "Return",
                  "src": "1788:35:80"
                }
              ]
            },
            "documentation": {
              "id": 46830,
              "nodeType": "StructuredDocumentation",
              "src": "1603:124:80",
              "text": " @notice Get the local Home contract from the xAppConnectionManager\n @return The local Home contract"
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_home",
            "parameters": {
              "id": 46831,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1746:2:80"
            },
            "returnParameters": {
              "id": 46834,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 46833,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 46840,
                  "src": "1772:4:80",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_Home_$43790",
                    "typeString": "contract Home"
                  },
                  "typeName": {
                    "id": 46832,
                    "name": "Home",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 43790,
                    "src": "1772:4:80",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Home_$43790",
                      "typeString": "contract Home"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1771:6:80"
            },
            "scope": 46866,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "id": 46854,
            "nodeType": "FunctionDefinition",
            "src": "2092:178:80",
            "body": {
              "id": 46853,
              "nodeType": "Block",
              "src": "2196:74:80",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 46850,
                        "name": "_potentialReplica",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 46843,
                        "src": "2245:17:80",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 46848,
                        "name": "xAppConnectionManager",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 46780,
                        "src": "2213:21:80",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_XAppConnectionManager_$45020",
                          "typeString": "contract XAppConnectionManager"
                        }
                      },
                      "id": 46849,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "isReplica",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 44882,
                      "src": "2213:31:80",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$",
                        "typeString": "function (address) view external returns (bool)"
                      }
                    },
                    "id": 46851,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2213:50:80",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 46847,
                  "id": 46852,
                  "nodeType": "Return",
                  "src": "2206:57:80"
                }
              ]
            },
            "documentation": {
              "id": 46841,
              "nodeType": "StructuredDocumentation",
              "src": "1836:251:80",
              "text": " @notice Determine whether _potentialReplica is an enrolled Replica from the xAppConnectionManager\n @param _potentialReplica The candidate to be tested. Violently.\n @return True if _potentialReplica is an enrolled Replica"
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_isReplica",
            "parameters": {
              "id": 46844,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 46843,
                  "mutability": "mutable",
                  "name": "_potentialReplica",
                  "nodeType": "VariableDeclaration",
                  "scope": 46854,
                  "src": "2112:25:80",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 46842,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2112:7:80",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2111:27:80"
            },
            "returnParameters": {
              "id": 46847,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 46846,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 46854,
                  "src": "2186:4:80",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 46845,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2186:4:80",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2185:6:80"
            },
            "scope": 46866,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "id": 46865,
            "nodeType": "FunctionDefinition",
            "src": "2391:122:80",
            "body": {
              "id": 46864,
              "nodeType": "Block",
              "src": "2454:59:80",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "id": 46860,
                        "name": "xAppConnectionManager",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 46780,
                        "src": "2471:21:80",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_XAppConnectionManager_$45020",
                          "typeString": "contract XAppConnectionManager"
                        }
                      },
                      "id": 46861,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "localDomain",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 44850,
                      "src": "2471:33:80",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$__$returns$_t_uint32_$",
                        "typeString": "function () view external returns (uint32)"
                      }
                    },
                    "id": 46862,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2471:35:80",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "functionReturnParameters": 46859,
                  "id": 46863,
                  "nodeType": "Return",
                  "src": "2464:42:80"
                }
              ]
            },
            "documentation": {
              "id": 46855,
              "nodeType": "StructuredDocumentation",
              "src": "2276:110:80",
              "text": " @notice Get the local domain from the xAppConnectionManager\n @return The local domain"
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_localDomain",
            "parameters": {
              "id": 46856,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2412:2:80"
            },
            "returnParameters": {
              "id": 46859,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 46858,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 46865,
                  "src": "2446:6:80",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 46857,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2446:6:80",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2445:8:80"
            },
            "scope": 46866,
            "stateMutability": "view",
            "virtual": true,
            "visibility": "internal"
          }
        ],
        "abstract": true,
        "baseContracts": [
          {
            "baseName": {
              "id": 46777,
              "name": "OwnableUpgradeable",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 23168,
              "src": "429:18:80",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_OwnableUpgradeable_$23168",
                "typeString": "contract OwnableUpgradeable"
              }
            },
            "id": 46778,
            "nodeType": "InheritanceSpecifier",
            "src": "429:18:80"
          }
        ],
        "contractDependencies": [
          23168,
          23676,
          25131
        ],
        "contractKind": "contract",
        "fullyImplemented": true,
        "linearizedBaseContracts": [
          46866,
          23168,
          25131,
          23676
        ],
        "name": "XAppConnectionClient",
        "scope": 46867
      }
    ],
    "license": "MIT OR Apache-2.0"
  },
  "id": 80
}