{
  "contractName": "IERC734",
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "executionId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "approved",
          "type": "bool"
        }
      ],
      "name": "Approved",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "executionId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "Executed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "executionId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "ExecutionFailed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "executionId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "ExecutionRequested",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "key",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "purpose",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "keyType",
          "type": "uint256"
        }
      ],
      "name": "KeyAdded",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "key",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "purpose",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "keyType",
          "type": "uint256"
        }
      ],
      "name": "KeyRemoved",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "ACTION_KEY",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "CLAIM_SIGNER_KEY",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "ECDSA_TYPE",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "ENCRYPTION_KEY",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "MANAGEMENT_KEY",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "RSA_TYPE",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_key",
          "type": "bytes32"
        }
      ],
      "name": "getKey",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "purposes",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256",
          "name": "keyType",
          "type": "uint256"
        },
        {
          "internalType": "bytes32",
          "name": "key",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_key",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "purpose",
          "type": "uint256"
        }
      ],
      "name": "keyHasPurpose",
      "outputs": [
        {
          "internalType": "bool",
          "name": "exists",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_purpose",
          "type": "uint256"
        }
      ],
      "name": "getKeysByPurpose",
      "outputs": [
        {
          "internalType": "bytes32[]",
          "name": "keys",
          "type": "bytes32[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_key",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "_purpose",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_keyType",
          "type": "uint256"
        }
      ],
      "name": "addKey",
      "outputs": [
        {
          "internalType": "bool",
          "name": "success",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_key",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "_purpose",
          "type": "uint256"
        }
      ],
      "name": "removeKey",
      "outputs": [
        {
          "internalType": "bool",
          "name": "success",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_value",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "_data",
          "type": "bytes"
        }
      ],
      "name": "execute",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "executionId",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_id",
          "type": "uint256"
        },
        {
          "internalType": "bool",
          "name": "_approve",
          "type": "bool"
        }
      ],
      "name": "approve",
      "outputs": [
        {
          "internalType": "bool",
          "name": "success",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"executionId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"Approved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"executionId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Executed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"executionId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ExecutionFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"executionId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ExecutionRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"purpose\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"keyType\",\"type\":\"uint256\"}],\"name\":\"KeyAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"purpose\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"keyType\",\"type\":\"uint256\"}],\"name\":\"KeyRemoved\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ACTION_KEY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CLAIM_SIGNER_KEY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ECDSA_TYPE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ENCRYPTION_KEY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MANAGEMENT_KEY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RSA_TYPE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_purpose\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_keyType\",\"type\":\"uint256\"}],\"name\":\"addKey\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_id\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"_approve\",\"type\":\"bool\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"execute\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"executionId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"}],\"name\":\"getKey\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"purposes\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"keyType\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_purpose\",\"type\":\"uint256\"}],\"name\":\"getKeysByPurpose\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"keys\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"purpose\",\"type\":\"uint256\"}],\"name\":\"keyHasPurpose\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_purpose\",\"type\":\"uint256\"}],\"name\":\"removeKey\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/Users/gabriel/Documents/iexec/poco-boost/iexec-solidity/contracts/ERC734/IERC734.sol\":\"IERC734\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/gabriel/Documents/iexec/poco-boost/iexec-solidity/contracts/ERC734/IERC734.sol\":{\"keccak256\":\"0x37d05e3fa2e7afd14b164d829c149ce2917e180da084c694990a7bb29dce0467\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://dfbd1ce89c120367b7f2e3bfbf4d655223485a72979cc29c0b2161c5274add34\",\"dweb:/ipfs/Qmf3pee49AwxHeoVLagiiUFyGhPLPjDjgf6ZxbZYKKpKJr\"]}},\"version\":1}",
  "bytecode": "0x",
  "deployedBytecode": "0x",
  "immutableReferences": {},
  "sourceMap": "",
  "deployedSourceMap": "",
  "source": "// SPDX-License-Identifier: Apache-2.0\n\n/******************************************************************************\n * Copyright 2020 IEXEC BLOCKCHAIN TECH                                       *\n *                                                                            *\n * Licensed under the Apache License, Version 2.0 (the \"License\");            *\n * you may not use this file except in compliance with the License.           *\n * You may obtain a copy of the License at                                    *\n *                                                                            *\n *     http://www.apache.org/licenses/LICENSE-2.0                             *\n *                                                                            *\n * Unless required by applicable law or agreed to in writing, software        *\n * distributed under the License is distributed on an \"AS IS\" BASIS,          *\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.   *\n * See the License for the specific language governing permissions and        *\n * limitations under the License.                                             *\n ******************************************************************************/\n\npragma solidity ^0.6.0;\n\nabstract contract IERC734\n{\n\t// 1: MANAGEMENT keys, which can manage the identity\n\tuint256 public constant MANAGEMENT_KEY = 1;\n\t// 2: ACTION keys, which perform actions in this identities name (signing, logins, transactions, etc.)\n\tuint256 public constant ACTION_KEY = 2;\n\t// 3: CLAIM signer keys, used to sign claims on other identities which need to be revokable.\n\tuint256 public constant CLAIM_SIGNER_KEY = 3;\n\t// 4: ENCRYPTION keys, used to encrypt data e.g. hold in claims.\n\tuint256 public constant ENCRYPTION_KEY = 4;\n\n\t// KeyType\n\tuint256 public constant ECDSA_TYPE = 1;\n\t// https://medium.com/@alexberegszaszi/lets-bring-the-70s-to-ethereum-48daa16a4b51\n\tuint256 public constant RSA_TYPE = 2;\n\n\t// Events\n\tevent KeyAdded          (bytes32 indexed key, uint256 indexed purpose, uint256 indexed keyType);\n\tevent KeyRemoved        (bytes32 indexed key, uint256 indexed purpose, uint256 indexed keyType);\n\tevent ExecutionRequested(uint256 indexed executionId, address indexed to, uint256 indexed value, bytes data);\n\tevent Executed          (uint256 indexed executionId, address indexed to, uint256 indexed value, bytes data);\n\tevent ExecutionFailed   (uint256 indexed executionId, address indexed to, uint256 indexed value, bytes data);\n\tevent Approved          (uint256 indexed executionId, bool approved);\n\n\t// Functions\n\tfunction getKey          (bytes32 _key                                     ) external virtual view returns (uint256[] memory purposes, uint256 keyType, bytes32 key);\n\tfunction keyHasPurpose   (bytes32 _key, uint256 purpose                    ) external virtual view returns (bool exists);\n\tfunction getKeysByPurpose(uint256 _purpose                                 ) external virtual view returns (bytes32[] memory keys);\n\tfunction addKey          (bytes32 _key, uint256 _purpose, uint256 _keyType ) external virtual      returns (bool success);\n\tfunction removeKey       (bytes32 _key, uint256 _purpose                   ) external virtual      returns (bool success);\n\tfunction execute         (address _to, uint256 _value, bytes calldata _data) external virtual      returns (uint256 executionId);\n\tfunction approve         (uint256 _id, bool _approve                       ) external virtual      returns (bool success);\n}\n",
  "sourcePath": "/Users/gabriel/Documents/iexec/poco-boost/iexec-solidity/contracts/ERC734/IERC734.sol",
  "ast": {
    "absolutePath": "/Users/gabriel/Documents/iexec/poco-boost/iexec-solidity/contracts/ERC734/IERC734.sol",
    "exportedSymbols": {
      "IERC734": [
        1476
      ]
    },
    "id": 1477,
    "license": "Apache-2.0",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 1336,
        "literals": [
          "solidity",
          "^",
          "0.6",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "1242:23:17"
      },
      {
        "abstract": true,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": false,
        "id": 1476,
        "linearizedBaseContracts": [
          1476
        ],
        "name": "IERC734",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": true,
            "functionSelector": "058b316c",
            "id": 1339,
            "mutability": "constant",
            "name": "MANAGEMENT_KEY",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 1476,
            "src": "1350:42:17",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 1337,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1350:7:17",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "31",
              "id": 1338,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1391:1:17",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_1_by_1",
                "typeString": "int_const 1"
              },
              "value": "1"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "functionSelector": "75e5598c",
            "id": 1342,
            "mutability": "constant",
            "name": "ACTION_KEY",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 1476,
            "src": "1499:38:17",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 1340,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1499:7:17",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "32",
              "id": 1341,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1536:1:17",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_2_by_1",
                "typeString": "int_const 2"
              },
              "value": "2"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "functionSelector": "c6702187",
            "id": 1345,
            "mutability": "constant",
            "name": "CLAIM_SIGNER_KEY",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 1476,
            "src": "1634:44:17",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 1343,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1634:7:17",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "33",
              "id": 1344,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1677:1:17",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_3_by_1",
                "typeString": "int_const 3"
              },
              "value": "3"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "functionSelector": "9e140cc8",
            "id": 1348,
            "mutability": "constant",
            "name": "ENCRYPTION_KEY",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 1476,
            "src": "1747:42:17",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 1346,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1747:7:17",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "34",
              "id": 1347,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1788:1:17",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_4_by_1",
                "typeString": "int_const 4"
              },
              "value": "4"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "functionSelector": "49991ec8",
            "id": 1351,
            "mutability": "constant",
            "name": "ECDSA_TYPE",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 1476,
            "src": "1805:38:17",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 1349,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1805:7:17",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "31",
              "id": 1350,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1842:1:17",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_1_by_1",
                "typeString": "int_const 1"
              },
              "value": "1"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "functionSelector": "2d32d442",
            "id": 1354,
            "mutability": "constant",
            "name": "RSA_TYPE",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 1476,
            "src": "1930:36:17",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 1352,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1930:7:17",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "32",
              "id": 1353,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1965:1:17",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_2_by_1",
                "typeString": "int_const 2"
              },
              "value": "2"
            },
            "visibility": "public"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1362,
            "name": "KeyAdded",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1361,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1356,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "key",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1362,
                  "src": "2006:19:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1355,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2006:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1358,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "purpose",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1362,
                  "src": "2027:23:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1357,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2027:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1360,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "keyType",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1362,
                  "src": "2052:23:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1359,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2052:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2005:71:17"
            },
            "src": "1981:96:17"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1370,
            "name": "KeyRemoved",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1369,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1364,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "key",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1370,
                  "src": "2104:19:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1363,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2104:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1366,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "purpose",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1370,
                  "src": "2125:23:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1365,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2125:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1368,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "keyType",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1370,
                  "src": "2150:23:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1367,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2150:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2103:71:17"
            },
            "src": "2079:96:17"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1380,
            "name": "ExecutionRequested",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1379,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1372,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "executionId",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1380,
                  "src": "2202:27:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1371,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2202:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1374,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1380,
                  "src": "2231:18:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1373,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2231:7:17",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1376,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1380,
                  "src": "2251:21:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1375,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2251:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1378,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "data",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1380,
                  "src": "2274:10:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 1377,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "2274:5:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2201:84:17"
            },
            "src": "2177:109:17"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1390,
            "name": "Executed",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1389,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1382,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "executionId",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1390,
                  "src": "2313:27:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1381,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2313:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1384,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1390,
                  "src": "2342:18:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1383,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2342:7:17",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1386,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1390,
                  "src": "2362:21:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1385,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2362:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1388,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "data",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1390,
                  "src": "2385:10:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 1387,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "2385:5:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2312:84:17"
            },
            "src": "2288:109:17"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1400,
            "name": "ExecutionFailed",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1399,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1392,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "executionId",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1400,
                  "src": "2424:27:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1391,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2424:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1394,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1400,
                  "src": "2453:18:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1393,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2453:7:17",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1396,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1400,
                  "src": "2473:21:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1395,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2473:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1398,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "data",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1400,
                  "src": "2496:10:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 1397,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "2496:5:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2423:84:17"
            },
            "src": "2399:109:17"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1406,
            "name": "Approved",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1405,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1402,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "executionId",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1406,
                  "src": "2535:27:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1401,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2535:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1404,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "approved",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1406,
                  "src": "2564:13:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 1403,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2564:4:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2534:44:17"
            },
            "src": "2510:69:17"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "12aaac70",
            "id": 1418,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getKey",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1409,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1408,
                  "mutability": "mutable",
                  "name": "_key",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1418,
                  "src": "2622:12:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1407,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2622:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2621:51:17"
            },
            "returnParameters": {
              "id": 1417,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1412,
                  "mutability": "mutable",
                  "name": "purposes",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1418,
                  "src": "2704:25:17",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 1410,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "2704:7:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 1411,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "2704:9:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1414,
                  "mutability": "mutable",
                  "name": "keyType",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1418,
                  "src": "2731:15:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1413,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2731:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1416,
                  "mutability": "mutable",
                  "name": "key",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1418,
                  "src": "2748:11:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1415,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2748:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2703:57:17"
            },
            "scope": 1476,
            "src": "2596:165:17",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "d202158d",
            "id": 1427,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "keyHasPurpose",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1423,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1420,
                  "mutability": "mutable",
                  "name": "_key",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1427,
                  "src": "2789:12:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1419,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2789:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1422,
                  "mutability": "mutable",
                  "name": "purpose",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1427,
                  "src": "2803:15:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1421,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2803:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2788:51:17"
            },
            "returnParameters": {
              "id": 1426,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1425,
                  "mutability": "mutable",
                  "name": "exists",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1427,
                  "src": "2871:11:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 1424,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2871:4:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2870:13:17"
            },
            "scope": 1476,
            "src": "2763:121:17",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "9010f726",
            "id": 1435,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getKeysByPurpose",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1430,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1429,
                  "mutability": "mutable",
                  "name": "_purpose",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1435,
                  "src": "2912:16:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1428,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2912:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2911:51:17"
            },
            "returnParameters": {
              "id": 1434,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1433,
                  "mutability": "mutable",
                  "name": "keys",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1435,
                  "src": "2994:21:17",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 1431,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "2994:7:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 1432,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "2994:9:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2993:23:17"
            },
            "scope": 1476,
            "src": "2886:131:17",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "1d381240",
            "id": 1446,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "addKey",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1442,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1437,
                  "mutability": "mutable",
                  "name": "_key",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1446,
                  "src": "3045:12:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1436,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3045:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1439,
                  "mutability": "mutable",
                  "name": "_purpose",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1446,
                  "src": "3059:16:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1438,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3059:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1441,
                  "mutability": "mutable",
                  "name": "_keyType",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1446,
                  "src": "3077:16:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1440,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3077:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3044:51:17"
            },
            "returnParameters": {
              "id": 1445,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1444,
                  "mutability": "mutable",
                  "name": "success",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1446,
                  "src": "3127:12:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 1443,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "3127:4:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3126:14:17"
            },
            "scope": 1476,
            "src": "3019:122:17",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "53d413c5",
            "id": 1455,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "removeKey",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1451,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1448,
                  "mutability": "mutable",
                  "name": "_key",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1455,
                  "src": "3169:12:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1447,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3169:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1450,
                  "mutability": "mutable",
                  "name": "_purpose",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1455,
                  "src": "3183:16:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1449,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3183:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3168:51:17"
            },
            "returnParameters": {
              "id": 1454,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1453,
                  "mutability": "mutable",
                  "name": "success",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1455,
                  "src": "3251:12:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 1452,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "3251:4:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3250:14:17"
            },
            "scope": 1476,
            "src": "3143:122:17",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "b61d27f6",
            "id": 1466,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "execute",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1462,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1457,
                  "mutability": "mutable",
                  "name": "_to",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1466,
                  "src": "3293:11:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1456,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3293:7:17",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1459,
                  "mutability": "mutable",
                  "name": "_value",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1466,
                  "src": "3306:14:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1458,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3306:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1461,
                  "mutability": "mutable",
                  "name": "_data",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1466,
                  "src": "3322:20:17",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 1460,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "3322:5:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3292:51:17"
            },
            "returnParameters": {
              "id": 1465,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1464,
                  "mutability": "mutable",
                  "name": "executionId",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1466,
                  "src": "3375:19:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1463,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3375:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3374:21:17"
            },
            "scope": 1476,
            "src": "3267:129:17",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "747442d3",
            "id": 1475,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "approve",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1471,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1468,
                  "mutability": "mutable",
                  "name": "_id",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1475,
                  "src": "3424:11:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1467,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3424:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1470,
                  "mutability": "mutable",
                  "name": "_approve",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1475,
                  "src": "3437:13:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 1469,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "3437:4:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3423:51:17"
            },
            "returnParameters": {
              "id": 1474,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1473,
                  "mutability": "mutable",
                  "name": "success",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1475,
                  "src": "3506:12:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 1472,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "3506:4:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3505:14:17"
            },
            "scope": 1476,
            "src": "3398:122:17",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "external"
          }
        ],
        "scope": 1477,
        "src": "1267:2255:17"
      }
    ],
    "src": "1242:2281:17"
  },
  "legacyAST": {
    "absolutePath": "/Users/gabriel/Documents/iexec/poco-boost/iexec-solidity/contracts/ERC734/IERC734.sol",
    "exportedSymbols": {
      "IERC734": [
        1476
      ]
    },
    "id": 1477,
    "license": "Apache-2.0",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 1336,
        "literals": [
          "solidity",
          "^",
          "0.6",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "1242:23:17"
      },
      {
        "abstract": true,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": false,
        "id": 1476,
        "linearizedBaseContracts": [
          1476
        ],
        "name": "IERC734",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": true,
            "functionSelector": "058b316c",
            "id": 1339,
            "mutability": "constant",
            "name": "MANAGEMENT_KEY",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 1476,
            "src": "1350:42:17",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 1337,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1350:7:17",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "31",
              "id": 1338,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1391:1:17",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_1_by_1",
                "typeString": "int_const 1"
              },
              "value": "1"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "functionSelector": "75e5598c",
            "id": 1342,
            "mutability": "constant",
            "name": "ACTION_KEY",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 1476,
            "src": "1499:38:17",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 1340,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1499:7:17",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "32",
              "id": 1341,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1536:1:17",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_2_by_1",
                "typeString": "int_const 2"
              },
              "value": "2"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "functionSelector": "c6702187",
            "id": 1345,
            "mutability": "constant",
            "name": "CLAIM_SIGNER_KEY",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 1476,
            "src": "1634:44:17",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 1343,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1634:7:17",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "33",
              "id": 1344,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1677:1:17",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_3_by_1",
                "typeString": "int_const 3"
              },
              "value": "3"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "functionSelector": "9e140cc8",
            "id": 1348,
            "mutability": "constant",
            "name": "ENCRYPTION_KEY",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 1476,
            "src": "1747:42:17",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 1346,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1747:7:17",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "34",
              "id": 1347,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1788:1:17",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_4_by_1",
                "typeString": "int_const 4"
              },
              "value": "4"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "functionSelector": "49991ec8",
            "id": 1351,
            "mutability": "constant",
            "name": "ECDSA_TYPE",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 1476,
            "src": "1805:38:17",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 1349,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1805:7:17",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "31",
              "id": 1350,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1842:1:17",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_1_by_1",
                "typeString": "int_const 1"
              },
              "value": "1"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "functionSelector": "2d32d442",
            "id": 1354,
            "mutability": "constant",
            "name": "RSA_TYPE",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 1476,
            "src": "1930:36:17",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 1352,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1930:7:17",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "32",
              "id": 1353,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1965:1:17",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_2_by_1",
                "typeString": "int_const 2"
              },
              "value": "2"
            },
            "visibility": "public"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1362,
            "name": "KeyAdded",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1361,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1356,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "key",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1362,
                  "src": "2006:19:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1355,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2006:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1358,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "purpose",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1362,
                  "src": "2027:23:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1357,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2027:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1360,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "keyType",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1362,
                  "src": "2052:23:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1359,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2052:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2005:71:17"
            },
            "src": "1981:96:17"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1370,
            "name": "KeyRemoved",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1369,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1364,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "key",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1370,
                  "src": "2104:19:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1363,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2104:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1366,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "purpose",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1370,
                  "src": "2125:23:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1365,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2125:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1368,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "keyType",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1370,
                  "src": "2150:23:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1367,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2150:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2103:71:17"
            },
            "src": "2079:96:17"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1380,
            "name": "ExecutionRequested",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1379,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1372,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "executionId",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1380,
                  "src": "2202:27:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1371,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2202:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1374,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1380,
                  "src": "2231:18:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1373,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2231:7:17",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1376,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1380,
                  "src": "2251:21:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1375,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2251:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1378,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "data",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1380,
                  "src": "2274:10:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 1377,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "2274:5:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2201:84:17"
            },
            "src": "2177:109:17"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1390,
            "name": "Executed",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1389,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1382,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "executionId",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1390,
                  "src": "2313:27:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1381,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2313:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1384,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1390,
                  "src": "2342:18:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1383,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2342:7:17",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1386,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1390,
                  "src": "2362:21:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1385,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2362:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1388,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "data",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1390,
                  "src": "2385:10:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 1387,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "2385:5:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2312:84:17"
            },
            "src": "2288:109:17"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1400,
            "name": "ExecutionFailed",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1399,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1392,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "executionId",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1400,
                  "src": "2424:27:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1391,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2424:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1394,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1400,
                  "src": "2453:18:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1393,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2453:7:17",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1396,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1400,
                  "src": "2473:21:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1395,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2473:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1398,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "data",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1400,
                  "src": "2496:10:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 1397,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "2496:5:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2423:84:17"
            },
            "src": "2399:109:17"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1406,
            "name": "Approved",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1405,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1402,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "executionId",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1406,
                  "src": "2535:27:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1401,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2535:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1404,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "approved",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1406,
                  "src": "2564:13:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 1403,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2564:4:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2534:44:17"
            },
            "src": "2510:69:17"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "12aaac70",
            "id": 1418,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getKey",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1409,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1408,
                  "mutability": "mutable",
                  "name": "_key",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1418,
                  "src": "2622:12:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1407,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2622:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2621:51:17"
            },
            "returnParameters": {
              "id": 1417,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1412,
                  "mutability": "mutable",
                  "name": "purposes",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1418,
                  "src": "2704:25:17",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 1410,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "2704:7:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 1411,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "2704:9:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1414,
                  "mutability": "mutable",
                  "name": "keyType",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1418,
                  "src": "2731:15:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1413,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2731:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1416,
                  "mutability": "mutable",
                  "name": "key",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1418,
                  "src": "2748:11:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1415,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2748:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2703:57:17"
            },
            "scope": 1476,
            "src": "2596:165:17",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "d202158d",
            "id": 1427,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "keyHasPurpose",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1423,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1420,
                  "mutability": "mutable",
                  "name": "_key",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1427,
                  "src": "2789:12:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1419,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2789:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1422,
                  "mutability": "mutable",
                  "name": "purpose",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1427,
                  "src": "2803:15:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1421,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2803:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2788:51:17"
            },
            "returnParameters": {
              "id": 1426,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1425,
                  "mutability": "mutable",
                  "name": "exists",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1427,
                  "src": "2871:11:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 1424,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2871:4:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2870:13:17"
            },
            "scope": 1476,
            "src": "2763:121:17",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "9010f726",
            "id": 1435,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getKeysByPurpose",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1430,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1429,
                  "mutability": "mutable",
                  "name": "_purpose",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1435,
                  "src": "2912:16:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1428,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2912:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2911:51:17"
            },
            "returnParameters": {
              "id": 1434,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1433,
                  "mutability": "mutable",
                  "name": "keys",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1435,
                  "src": "2994:21:17",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 1431,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "2994:7:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 1432,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "2994:9:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2993:23:17"
            },
            "scope": 1476,
            "src": "2886:131:17",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "1d381240",
            "id": 1446,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "addKey",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1442,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1437,
                  "mutability": "mutable",
                  "name": "_key",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1446,
                  "src": "3045:12:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1436,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3045:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1439,
                  "mutability": "mutable",
                  "name": "_purpose",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1446,
                  "src": "3059:16:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1438,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3059:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1441,
                  "mutability": "mutable",
                  "name": "_keyType",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1446,
                  "src": "3077:16:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1440,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3077:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3044:51:17"
            },
            "returnParameters": {
              "id": 1445,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1444,
                  "mutability": "mutable",
                  "name": "success",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1446,
                  "src": "3127:12:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 1443,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "3127:4:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3126:14:17"
            },
            "scope": 1476,
            "src": "3019:122:17",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "53d413c5",
            "id": 1455,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "removeKey",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1451,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1448,
                  "mutability": "mutable",
                  "name": "_key",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1455,
                  "src": "3169:12:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1447,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3169:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1450,
                  "mutability": "mutable",
                  "name": "_purpose",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1455,
                  "src": "3183:16:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1449,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3183:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3168:51:17"
            },
            "returnParameters": {
              "id": 1454,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1453,
                  "mutability": "mutable",
                  "name": "success",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1455,
                  "src": "3251:12:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 1452,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "3251:4:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3250:14:17"
            },
            "scope": 1476,
            "src": "3143:122:17",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "b61d27f6",
            "id": 1466,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "execute",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1462,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1457,
                  "mutability": "mutable",
                  "name": "_to",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1466,
                  "src": "3293:11:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1456,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3293:7:17",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1459,
                  "mutability": "mutable",
                  "name": "_value",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1466,
                  "src": "3306:14:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1458,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3306:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1461,
                  "mutability": "mutable",
                  "name": "_data",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1466,
                  "src": "3322:20:17",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 1460,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "3322:5:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3292:51:17"
            },
            "returnParameters": {
              "id": 1465,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1464,
                  "mutability": "mutable",
                  "name": "executionId",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1466,
                  "src": "3375:19:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1463,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3375:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3374:21:17"
            },
            "scope": 1476,
            "src": "3267:129:17",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "747442d3",
            "id": 1475,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "approve",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1471,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1468,
                  "mutability": "mutable",
                  "name": "_id",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1475,
                  "src": "3424:11:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1467,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3424:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1470,
                  "mutability": "mutable",
                  "name": "_approve",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1475,
                  "src": "3437:13:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 1469,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "3437:4:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3423:51:17"
            },
            "returnParameters": {
              "id": 1474,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1473,
                  "mutability": "mutable",
                  "name": "success",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1475,
                  "src": "3506:12:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 1472,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "3506:4:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3505:14:17"
            },
            "scope": 1476,
            "src": "3398:122:17",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "external"
          }
        ],
        "scope": 1477,
        "src": "1267:2255:17"
      }
    ],
    "src": "1242:2281:17"
  },
  "compiler": {
    "name": "solc",
    "version": "0.6.12+commit.27d51765.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.2.5",
  "updatedAt": "2023-05-04T08:29:47.197Z",
  "devdoc": {
    "kind": "dev",
    "methods": {},
    "version": 1
  },
  "userdoc": {
    "kind": "user",
    "methods": {},
    "version": 1
  }
}