{
  "contractName": "IKernel",
  "abi": [
    {
      "constant": true,
      "inputs": [
        {
          "name": "id",
          "type": "bytes32"
        }
      ],
      "name": "getApp",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "namespace",
          "type": "bytes32"
        },
        {
          "name": "name",
          "type": "bytes32"
        },
        {
          "name": "app",
          "type": "address"
        }
      ],
      "name": "setApp",
      "outputs": [
        {
          "name": "id",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "acl",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "who",
          "type": "address"
        },
        {
          "name": "where",
          "type": "address"
        },
        {
          "name": "what",
          "type": "bytes32"
        },
        {
          "name": "how",
          "type": "bytes"
        }
      ],
      "name": "hasPermission",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "namespace",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "name": "name",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "name": "id",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "name": "app",
          "type": "address"
        }
      ],
      "name": "SetApp",
      "type": "event"
    }
  ],
  "bytecode": "0x",
  "deployedBytecode": "0x",
  "sourceMap": "",
  "deployedSourceMap": "",
  "source": "pragma solidity ^0.4.18;\n\nimport \"../acl/IACL.sol\";\n\ninterface IKernel {\n    event SetApp(bytes32 indexed namespace, bytes32 indexed name, bytes32 indexed id, address app);\n\n    function acl() public view returns (IACL);\n    function hasPermission(address who, address where, bytes32 what, bytes how) public view returns (bool);\n\n    function setApp(bytes32 namespace, bytes32 name, address app) public returns (bytes32 id);\n    function getApp(bytes32 id) public view returns (address);\n}",
  "sourcePath": "@aragon/os/contracts/kernel/IKernel.sol",
  "ast": {
    "attributes": {
      "absolutePath": "@aragon/os/contracts/kernel/IKernel.sol",
      "exportedSymbols": {
        "IKernel": [
          9550
        ]
      }
    },
    "children": [
      {
        "attributes": {
          "literals": [
            "solidity",
            "^",
            "0.4",
            ".18"
          ]
        },
        "id": 9502,
        "name": "PragmaDirective",
        "src": "0:24:41"
      },
      {
        "attributes": {
          "SourceUnit": 6002,
          "absolutePath": "@aragon/os/contracts/acl/IACL.sol",
          "file": "../acl/IACL.sol",
          "scope": 9551,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 9503,
        "name": "ImportDirective",
        "src": "26:25:41"
      },
      {
        "attributes": {
          "baseContracts": [
            null
          ],
          "contractDependencies": [
            null
          ],
          "contractKind": "interface",
          "documentation": null,
          "fullyImplemented": false,
          "linearizedBaseContracts": [
            9550
          ],
          "name": "IKernel",
          "scope": 9551
        },
        "children": [
          {
            "attributes": {
              "anonymous": false,
              "name": "SetApp"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "namespace",
                      "scope": 9513,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 9504,
                        "name": "ElementaryTypeName",
                        "src": "90:7:41"
                      }
                    ],
                    "id": 9505,
                    "name": "VariableDeclaration",
                    "src": "90:25:41"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "name",
                      "scope": 9513,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 9506,
                        "name": "ElementaryTypeName",
                        "src": "117:7:41"
                      }
                    ],
                    "id": 9507,
                    "name": "VariableDeclaration",
                    "src": "117:20:41"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "id",
                      "scope": 9513,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 9508,
                        "name": "ElementaryTypeName",
                        "src": "139:7:41"
                      }
                    ],
                    "id": 9509,
                    "name": "VariableDeclaration",
                    "src": "139:18:41"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "app",
                      "scope": 9513,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 9510,
                        "name": "ElementaryTypeName",
                        "src": "159:7:41"
                      }
                    ],
                    "id": 9511,
                    "name": "VariableDeclaration",
                    "src": "159:11:41"
                  }
                ],
                "id": 9512,
                "name": "ParameterList",
                "src": "89:82:41"
              }
            ],
            "id": 9513,
            "name": "EventDefinition",
            "src": "77:95:41"
          },
          {
            "attributes": {
              "body": null,
              "constant": true,
              "implemented": false,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "acl",
              "payable": false,
              "scope": 9550,
              "stateMutability": "view",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 9514,
                "name": "ParameterList",
                "src": "190:2:41"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 9518,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract IACL",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "IACL",
                          "referencedDeclaration": 6001,
                          "type": "contract IACL"
                        },
                        "id": 9515,
                        "name": "UserDefinedTypeName",
                        "src": "214:4:41"
                      }
                    ],
                    "id": 9516,
                    "name": "VariableDeclaration",
                    "src": "214:4:41"
                  }
                ],
                "id": 9517,
                "name": "ParameterList",
                "src": "213:6:41"
              }
            ],
            "id": 9518,
            "name": "FunctionDefinition",
            "src": "178:42:41"
          },
          {
            "attributes": {
              "body": null,
              "constant": true,
              "implemented": false,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "hasPermission",
              "payable": false,
              "scope": 9550,
              "stateMutability": "view",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "who",
                      "scope": 9531,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 9519,
                        "name": "ElementaryTypeName",
                        "src": "248:7:41"
                      }
                    ],
                    "id": 9520,
                    "name": "VariableDeclaration",
                    "src": "248:11:41"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "where",
                      "scope": 9531,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 9521,
                        "name": "ElementaryTypeName",
                        "src": "261:7:41"
                      }
                    ],
                    "id": 9522,
                    "name": "VariableDeclaration",
                    "src": "261:13:41"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "what",
                      "scope": 9531,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 9523,
                        "name": "ElementaryTypeName",
                        "src": "276:7:41"
                      }
                    ],
                    "id": 9524,
                    "name": "VariableDeclaration",
                    "src": "276:12:41"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "how",
                      "scope": 9531,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes memory",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes",
                          "type": "bytes storage pointer"
                        },
                        "id": 9525,
                        "name": "ElementaryTypeName",
                        "src": "290:5:41"
                      }
                    ],
                    "id": 9526,
                    "name": "VariableDeclaration",
                    "src": "290:9:41"
                  }
                ],
                "id": 9527,
                "name": "ParameterList",
                "src": "247:53:41"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 9531,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 9528,
                        "name": "ElementaryTypeName",
                        "src": "322:4:41"
                      }
                    ],
                    "id": 9529,
                    "name": "VariableDeclaration",
                    "src": "322:4:41"
                  }
                ],
                "id": 9530,
                "name": "ParameterList",
                "src": "321:6:41"
              }
            ],
            "id": 9531,
            "name": "FunctionDefinition",
            "src": "225:103:41"
          },
          {
            "attributes": {
              "body": null,
              "constant": false,
              "implemented": false,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "setApp",
              "payable": false,
              "scope": 9550,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "namespace",
                      "scope": 9542,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 9532,
                        "name": "ElementaryTypeName",
                        "src": "350:7:41"
                      }
                    ],
                    "id": 9533,
                    "name": "VariableDeclaration",
                    "src": "350:17:41"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "name",
                      "scope": 9542,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 9534,
                        "name": "ElementaryTypeName",
                        "src": "369:7:41"
                      }
                    ],
                    "id": 9535,
                    "name": "VariableDeclaration",
                    "src": "369:12:41"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "app",
                      "scope": 9542,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 9536,
                        "name": "ElementaryTypeName",
                        "src": "383:7:41"
                      }
                    ],
                    "id": 9537,
                    "name": "VariableDeclaration",
                    "src": "383:11:41"
                  }
                ],
                "id": 9538,
                "name": "ParameterList",
                "src": "349:46:41"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "id",
                      "scope": 9542,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 9539,
                        "name": "ElementaryTypeName",
                        "src": "412:7:41"
                      }
                    ],
                    "id": 9540,
                    "name": "VariableDeclaration",
                    "src": "412:10:41"
                  }
                ],
                "id": 9541,
                "name": "ParameterList",
                "src": "411:12:41"
              }
            ],
            "id": 9542,
            "name": "FunctionDefinition",
            "src": "334:90:41"
          },
          {
            "attributes": {
              "body": null,
              "constant": true,
              "implemented": false,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "getApp",
              "payable": false,
              "scope": 9550,
              "stateMutability": "view",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "id",
                      "scope": 9549,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 9543,
                        "name": "ElementaryTypeName",
                        "src": "445:7:41"
                      }
                    ],
                    "id": 9544,
                    "name": "VariableDeclaration",
                    "src": "445:10:41"
                  }
                ],
                "id": 9545,
                "name": "ParameterList",
                "src": "444:12:41"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 9549,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 9546,
                        "name": "ElementaryTypeName",
                        "src": "478:7:41"
                      }
                    ],
                    "id": 9547,
                    "name": "VariableDeclaration",
                    "src": "478:7:41"
                  }
                ],
                "id": 9548,
                "name": "ParameterList",
                "src": "477:9:41"
              }
            ],
            "id": 9549,
            "name": "FunctionDefinition",
            "src": "429:58:41"
          }
        ],
        "id": 9550,
        "name": "ContractDefinition",
        "src": "53:436:41"
      }
    ],
    "id": 9551,
    "name": "SourceUnit",
    "src": "0:489:41"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.18+commit.9cf6e910.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "1.0.1",
  "updatedAt": "2018-03-14T08:41:25.096Z"
}