{
  "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": 28954,
    "exportedSymbols": {
      "Home": [
        26174
      ],
      "OwnableUpgradeable": [
        23168
      ],
      "XAppConnectionClient": [
        28953
      ],
      "XAppConnectionManager": [
        27404
      ]
    },
    "nodeType": "SourceUnit",
    "src": "46:2470:31",
    "nodes": [
      {
        "id": 28857,
        "nodeType": "PragmaDirective",
        "src": "46:22:31",
        "literals": [
          "solidity",
          "0.7",
          ".6"
        ]
      },
      {
        "id": 28859,
        "nodeType": "ImportDirective",
        "src": "116:66:31",
        "absolutePath": "packages/contracts-core/contracts/Home.sol",
        "file": "@nomad-xyz/contracts-core/contracts/Home.sol",
        "scope": 28954,
        "sourceUnit": 26175,
        "symbolAliases": [
          {
            "foreign": {
              "id": 28858,
              "name": "Home",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "src": "124:4:31",
              "typeDescriptions": {}
            }
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 28861,
        "nodeType": "ImportDirective",
        "src": "183:100:31",
        "absolutePath": "packages/contracts-core/contracts/XAppConnectionManager.sol",
        "file": "@nomad-xyz/contracts-core/contracts/XAppConnectionManager.sol",
        "scope": 28954,
        "sourceUnit": 27405,
        "symbolAliases": [
          {
            "foreign": {
              "id": 28860,
              "name": "XAppConnectionManager",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "src": "191:21:31",
              "typeDescriptions": {}
            }
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 28863,
        "nodeType": "ImportDirective",
        "src": "284:101:31",
        "absolutePath": "node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol",
        "file": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol",
        "scope": 28954,
        "sourceUnit": 23169,
        "symbolAliases": [
          {
            "foreign": {
              "id": 28862,
              "name": "OwnableUpgradeable",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "src": "292:18:31",
              "typeDescriptions": {}
            }
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 28953,
        "nodeType": "ContractDefinition",
        "src": "387:2128:31",
        "nodes": [
          {
            "id": 28867,
            "nodeType": "VariableDeclaration",
            "src": "504:50:31",
            "constant": false,
            "functionSelector": "3339df96",
            "mutability": "mutable",
            "name": "xAppConnectionManager",
            "scope": 28953,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_XAppConnectionManager_$27404",
              "typeString": "contract XAppConnectionManager"
            },
            "typeName": {
              "id": 28866,
              "name": "XAppConnectionManager",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 27404,
              "src": "504:21:31",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_XAppConnectionManager_$27404",
                "typeString": "contract XAppConnectionManager"
              }
            },
            "visibility": "public"
          },
          {
            "id": 28871,
            "nodeType": "VariableDeclaration",
            "src": "560:25:31",
            "constant": false,
            "mutability": "mutable",
            "name": "__GAP",
            "scope": 28953,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_uint256_$49_storage",
              "typeString": "uint256[49]"
            },
            "typeName": {
              "baseType": {
                "id": 28868,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "560:7:31",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "id": 28870,
              "length": {
                "hexValue": "3439",
                "id": 28869,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "kind": "number",
                "lValueRequested": false,
                "nodeType": "Literal",
                "src": "568:2:31",
                "typeDescriptions": {
                  "typeIdentifier": "t_rational_49_by_1",
                  "typeString": "int_const 49"
                },
                "value": "49"
              },
              "nodeType": "ArrayTypeName",
              "src": "560:11:31",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_uint256_$49_storage_ptr",
                "typeString": "uint256[49]"
              }
            },
            "visibility": "private"
          },
          {
            "id": 28884,
            "nodeType": "ModifierDefinition",
            "src": "745:94:31",
            "body": {
              "id": 28883,
              "nodeType": "Block",
              "src": "768:71:31",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "expression": {
                              "id": 28876,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": -15,
                              "src": "797:3:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 28877,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "src": "797:10:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          ],
                          "id": 28875,
                          "name": "_isReplica",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 28941,
                          "src": "786:10:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$",
                            "typeString": "function (address) view returns (bool)"
                          }
                        },
                        "id": 28878,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "786:22:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "217265706c696361",
                        "id": 28879,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "810:10:31",
                        "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": 28874,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "778:7:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 28880,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "778:43:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 28881,
                  "nodeType": "ExpressionStatement",
                  "src": "778:43:31"
                },
                {
                  "id": 28882,
                  "nodeType": "PlaceholderStatement",
                  "src": "831:1:31"
                }
              ]
            },
            "documentation": {
              "id": 28872,
              "nodeType": "StructuredDocumentation",
              "src": "662:78:31",
              "text": " @notice Only accept messages from an Nomad Replica contract"
            },
            "name": "onlyReplica",
            "parameters": {
              "id": 28873,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "765:2:31"
            },
            "virtual": false,
            "visibility": "internal"
          },
          {
            "id": 28901,
            "nodeType": "FunctionDefinition",
            "src": "884:228:31",
            "body": {
              "id": 28900,
              "nodeType": "Block",
              "src": "1000:112:31",
              "statements": [
                {
                  "expression": {
                    "id": 28895,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 28891,
                      "name": "xAppConnectionManager",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 28867,
                      "src": "1010:21:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_XAppConnectionManager_$27404",
                        "typeString": "contract XAppConnectionManager"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 28893,
                          "name": "_xAppConnectionManager",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 28886,
                          "src": "1056:22:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "id": 28892,
                        "name": "XAppConnectionManager",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 27404,
                        "src": "1034:21:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_XAppConnectionManager_$27404_$",
                          "typeString": "type(contract XAppConnectionManager)"
                        }
                      },
                      "id": 28894,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1034:45:31",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_XAppConnectionManager_$27404",
                        "typeString": "contract XAppConnectionManager"
                      }
                    },
                    "src": "1010:69:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_XAppConnectionManager_$27404",
                      "typeString": "contract XAppConnectionManager"
                    }
                  },
                  "id": 28896,
                  "nodeType": "ExpressionStatement",
                  "src": "1010:69:31"
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 28897,
                      "name": "__Ownable_init",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23067,
                      "src": "1089:14:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
                        "typeString": "function ()"
                      }
                    },
                    "id": 28898,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1089:16:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 28899,
                  "nodeType": "ExpressionStatement",
                  "src": "1089:16:31"
                }
              ]
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 28889,
                "modifierName": {
                  "id": 28888,
                  "name": "initializer",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 23217,
                  "src": "984:11:31",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "984:11:31"
              }
            ],
            "name": "__XAppConnectionClient_initialize",
            "parameters": {
              "id": 28887,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 28886,
                  "mutability": "mutable",
                  "name": "_xAppConnectionManager",
                  "nodeType": "VariableDeclaration",
                  "scope": 28901,
                  "src": "927:30:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 28885,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "927:7:31",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "926:32:31"
            },
            "returnParameters": {
              "id": 28890,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1000:0:31"
            },
            "scope": 28953,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "id": 28916,
            "nodeType": "FunctionDefinition",
            "src": "1353:191:31",
            "body": {
              "id": 28915,
              "nodeType": "Block",
              "src": "1458:86:31",
              "statements": [
                {
                  "expression": {
                    "id": 28913,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 28909,
                      "name": "xAppConnectionManager",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 28867,
                      "src": "1468:21:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_XAppConnectionManager_$27404",
                        "typeString": "contract XAppConnectionManager"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 28911,
                          "name": "_xAppConnectionManager",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 28904,
                          "src": "1514:22:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "id": 28910,
                        "name": "XAppConnectionManager",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 27404,
                        "src": "1492:21:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_XAppConnectionManager_$27404_$",
                          "typeString": "type(contract XAppConnectionManager)"
                        }
                      },
                      "id": 28912,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1492:45:31",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_XAppConnectionManager_$27404",
                        "typeString": "contract XAppConnectionManager"
                      }
                    },
                    "src": "1468:69:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_XAppConnectionManager_$27404",
                      "typeString": "contract XAppConnectionManager"
                    }
                  },
                  "id": 28914,
                  "nodeType": "ExpressionStatement",
                  "src": "1468:69:31"
                }
              ]
            },
            "documentation": {
              "id": 28902,
              "nodeType": "StructuredDocumentation",
              "src": "1171:177:31",
              "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": 28907,
                "modifierName": {
                  "id": 28906,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 23113,
                  "src": "1444:9:31",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1444:9:31"
              }
            ],
            "name": "setXAppConnectionManager",
            "parameters": {
              "id": 28905,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 28904,
                  "mutability": "mutable",
                  "name": "_xAppConnectionManager",
                  "nodeType": "VariableDeclaration",
                  "scope": 28916,
                  "src": "1387:30:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 28903,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1387:7:31",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1386:32:31"
            },
            "returnParameters": {
              "id": 28908,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1458:0:31"
            },
            "scope": 28953,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 28927,
            "nodeType": "FunctionDefinition",
            "src": "1732:98:31",
            "body": {
              "id": 28926,
              "nodeType": "Block",
              "src": "1778:52:31",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "id": 28922,
                        "name": "xAppConnectionManager",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28867,
                        "src": "1795:21:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_XAppConnectionManager_$27404",
                          "typeString": "contract XAppConnectionManager"
                        }
                      },
                      "id": 28923,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "home",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 27023,
                      "src": "1795:26:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_Home_$26174_$",
                        "typeString": "function () view external returns (contract Home)"
                      }
                    },
                    "id": 28924,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1795:28:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Home_$26174",
                      "typeString": "contract Home"
                    }
                  },
                  "functionReturnParameters": 28921,
                  "id": 28925,
                  "nodeType": "Return",
                  "src": "1788:35:31"
                }
              ]
            },
            "documentation": {
              "id": 28917,
              "nodeType": "StructuredDocumentation",
              "src": "1603:124:31",
              "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": 28918,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1746:2:31"
            },
            "returnParameters": {
              "id": 28921,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 28920,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 28927,
                  "src": "1772:4:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_Home_$26174",
                    "typeString": "contract Home"
                  },
                  "typeName": {
                    "id": 28919,
                    "name": "Home",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 26174,
                    "src": "1772:4:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Home_$26174",
                      "typeString": "contract Home"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1771:6:31"
            },
            "scope": 28953,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "id": 28941,
            "nodeType": "FunctionDefinition",
            "src": "2092:178:31",
            "body": {
              "id": 28940,
              "nodeType": "Block",
              "src": "2196:74:31",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 28937,
                        "name": "_potentialReplica",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28930,
                        "src": "2245:17:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 28935,
                        "name": "xAppConnectionManager",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28867,
                        "src": "2213:21:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_XAppConnectionManager_$27404",
                          "typeString": "contract XAppConnectionManager"
                        }
                      },
                      "id": 28936,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "isReplica",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 27266,
                      "src": "2213:31:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$",
                        "typeString": "function (address) view external returns (bool)"
                      }
                    },
                    "id": 28938,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2213:50:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 28934,
                  "id": 28939,
                  "nodeType": "Return",
                  "src": "2206:57:31"
                }
              ]
            },
            "documentation": {
              "id": 28928,
              "nodeType": "StructuredDocumentation",
              "src": "1836:251:31",
              "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": 28931,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 28930,
                  "mutability": "mutable",
                  "name": "_potentialReplica",
                  "nodeType": "VariableDeclaration",
                  "scope": 28941,
                  "src": "2112:25:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 28929,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2112:7:31",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2111:27:31"
            },
            "returnParameters": {
              "id": 28934,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 28933,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 28941,
                  "src": "2186:4:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 28932,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2186:4:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2185:6:31"
            },
            "scope": 28953,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "id": 28952,
            "nodeType": "FunctionDefinition",
            "src": "2391:122:31",
            "body": {
              "id": 28951,
              "nodeType": "Block",
              "src": "2454:59:31",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "id": 28947,
                        "name": "xAppConnectionManager",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28867,
                        "src": "2471:21:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_XAppConnectionManager_$27404",
                          "typeString": "contract XAppConnectionManager"
                        }
                      },
                      "id": 28948,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "localDomain",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 27234,
                      "src": "2471:33:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$__$returns$_t_uint32_$",
                        "typeString": "function () view external returns (uint32)"
                      }
                    },
                    "id": 28949,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2471:35:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "functionReturnParameters": 28946,
                  "id": 28950,
                  "nodeType": "Return",
                  "src": "2464:42:31"
                }
              ]
            },
            "documentation": {
              "id": 28942,
              "nodeType": "StructuredDocumentation",
              "src": "2276:110:31",
              "text": " @notice Get the local domain from the xAppConnectionManager\n @return The local domain"
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_localDomain",
            "parameters": {
              "id": 28943,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2412:2:31"
            },
            "returnParameters": {
              "id": 28946,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 28945,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 28952,
                  "src": "2446:6:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 28944,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2446:6:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2445:8:31"
            },
            "scope": 28953,
            "stateMutability": "view",
            "virtual": true,
            "visibility": "internal"
          }
        ],
        "abstract": true,
        "baseContracts": [
          {
            "baseName": {
              "id": 28864,
              "name": "OwnableUpgradeable",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 23168,
              "src": "429:18:31",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_OwnableUpgradeable_$23168",
                "typeString": "contract OwnableUpgradeable"
              }
            },
            "id": 28865,
            "nodeType": "InheritanceSpecifier",
            "src": "429:18:31"
          }
        ],
        "contractDependencies": [
          23168,
          23234,
          23523
        ],
        "contractKind": "contract",
        "fullyImplemented": true,
        "linearizedBaseContracts": [
          28953,
          23168,
          23523,
          23234
        ],
        "name": "XAppConnectionClient",
        "scope": 28954
      }
    ],
    "license": "MIT OR Apache-2.0"
  },
  "id": 31
}