{
  "name": "DIDRegistry",
  "abi": [
    {
      "constant": false,
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function",
      "signature": "0x715018a6"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0x8da5cb5b"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "isOwner",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0x8f32d59b"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function",
      "signature": "0xf2fde38b"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_did",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "name": "_owner",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "_checksum",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "name": "_value",
          "type": "string"
        },
        {
          "indexed": false,
          "name": "_lastUpdatedBy",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_blockNumberUpdated",
          "type": "uint256"
        }
      ],
      "name": "DIDAttributeRegistered",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "_did",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "name": "_provider",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "state",
          "type": "bool"
        }
      ],
      "name": "DIDProviderRemoved",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "_did",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "name": "_provider",
          "type": "address"
        }
      ],
      "name": "DIDProviderAdded",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "_did",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "name": "_previousOwner",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_newOwner",
          "type": "address"
        }
      ],
      "name": "DIDOwnershipTransferred",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_did",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "name": "_owner",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "_grantee",
          "type": "address"
        }
      ],
      "name": "DIDPermissionGranted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_did",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "name": "_owner",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "_grantee",
          "type": "address"
        }
      ],
      "name": "DIDPermissionRevoked",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_owner",
          "type": "address"
        }
      ],
      "name": "initialize",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function",
      "signature": "0xc4d66de8"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_did",
          "type": "bytes32"
        },
        {
          "name": "_checksum",
          "type": "bytes32"
        },
        {
          "name": "_providers",
          "type": "address[]"
        },
        {
          "name": "_value",
          "type": "string"
        }
      ],
      "name": "registerAttribute",
      "outputs": [
        {
          "name": "size",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function",
      "signature": "0x534eb706"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_did",
          "type": "bytes32"
        },
        {
          "name": "_provider",
          "type": "address"
        }
      ],
      "name": "addDIDProvider",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function",
      "signature": "0xa2d28d46"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_did",
          "type": "bytes32"
        },
        {
          "name": "_provider",
          "type": "address"
        }
      ],
      "name": "removeDIDProvider",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function",
      "signature": "0x7ac5f7c8"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_did",
          "type": "bytes32"
        },
        {
          "name": "_newOwner",
          "type": "address"
        }
      ],
      "name": "transferDIDOwnership",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function",
      "signature": "0xd6f9d5eb"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_did",
          "type": "bytes32"
        },
        {
          "name": "_grantee",
          "type": "address"
        }
      ],
      "name": "grantPermission",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function",
      "signature": "0xbc586456"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_did",
          "type": "bytes32"
        },
        {
          "name": "_grantee",
          "type": "address"
        }
      ],
      "name": "revokePermission",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function",
      "signature": "0xa6a8f17b"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_did",
          "type": "bytes32"
        },
        {
          "name": "_grantee",
          "type": "address"
        }
      ],
      "name": "getPermission",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0x60d6c7cf"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_did",
          "type": "bytes32"
        },
        {
          "name": "_provider",
          "type": "address"
        }
      ],
      "name": "isDIDProvider",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0x3c6aa7b7"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_did",
          "type": "bytes32"
        }
      ],
      "name": "getDIDRegister",
      "outputs": [
        {
          "name": "owner",
          "type": "address"
        },
        {
          "name": "lastChecksum",
          "type": "bytes32"
        },
        {
          "name": "lastUpdatedBy",
          "type": "address"
        },
        {
          "name": "blockNumberUpdated",
          "type": "uint256"
        },
        {
          "name": "providers",
          "type": "address[]"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0x22c6b519"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_did",
          "type": "bytes32"
        }
      ],
      "name": "getBlockNumberUpdated",
      "outputs": [
        {
          "name": "blockNumberUpdated",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0xbbc1dede"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_did",
          "type": "bytes32"
        }
      ],
      "name": "getDIDOwner",
      "outputs": [
        {
          "name": "didOwner",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0x6c2ef524"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getDIDRegistrySize",
      "outputs": [
        {
          "name": "size",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0x39c035f0"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getDIDRegisterIds",
      "outputs": [
        {
          "name": "",
          "type": "bytes32[]"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0x70c6817a"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b50611597806100206000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c80638da5cb5b116100a2578063bbc1dede11610071578063bbc1dede146104b7578063bc586456146104d4578063c4d66de814610500578063d6f9d5eb14610526578063f2fde38b1461055257610116565b80638da5cb5b1461044f5780638f32d59b14610457578063a2d28d461461045f578063a6a8f17b1461048b57610116565b806360d6c7cf116100e957806360d6c7cf1461035c5780636c2ef5241461038857806370c6817a146103c1578063715018a6146104195780637ac5f7c81461042357610116565b806322c6b5191461011b57806339c035f0146101cc5780633c6aa7b7146101e6578063534eb70614610226575b600080fd5b6101386004803603602081101561013157600080fd5b5035610578565b60405180866001600160a01b03166001600160a01b03168152602001858152602001846001600160a01b03166001600160a01b0316815260200183815260200180602001828103825283818151815260200191508051906020019060200280838360005b838110156101b457818101518382015260200161019c565b50505050905001965050505050505060405180910390f35b6101d4610612565b60408051918252519081900360200190f35b610212600480360360408110156101fc57600080fd5b50803590602001356001600160a01b0316610618565b604080519115158252519081900360200190f35b6101d46004803603608081101561023c57600080fd5b81359160208101359181019060608101604082013564010000000081111561026357600080fd5b82018360208201111561027557600080fd5b8035906020019184602083028401116401000000008311171561029757600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156102e757600080fd5b8201836020820111156102f957600080fd5b8035906020019184600183028401116401000000008311171561031b57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506106ba945050505050565b6102126004803603604081101561037257600080fd5b50803590602001356001600160a01b0316610936565b6103a56004803603602081101561039e57600080fd5b5035610949565b604080516001600160a01b039092168252519081900360200190f35b6103c9610964565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156104055781810151838201526020016103ed565b505050509050019250505060405180910390f35b6104216109bf565b005b6104216004803603604081101561043957600080fd5b50803590602001356001600160a01b0316610a1a565b6103a5610adb565b610212610aea565b6104216004803603604081101561047557600080fd5b50803590602001356001600160a01b0316610afb565b610421600480360360408110156104a157600080fd5b50803590602001356001600160a01b0316610baf565b6101d4600480360360208110156104cd57600080fd5b5035610c18565b610421600480360360408110156104ea57600080fd5b50803590602001356001600160a01b0316610c2d565b6104216004803603602081101561051657600080fd5b50356001600160a01b0316610c91565b6104216004803603604081101561053c57600080fd5b50803590602001356001600160a01b0316610d40565b6104216004803603602081101561056857600080fd5b50356001600160a01b0316610e16565b6000818152606660209081526040918290208054600182015460028301546003840154600490940180548751818802810188019098528088526001600160a01b039485169793969290941694936060939283018282801561060257602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116105e4575b5050505050905091939590929450565b60675490565b60408051600160e01b63fc977f2f02815260666004820152602481018490526001600160a01b0383166044820152905160009173__DIDRegistryLibrary____________________9163fc977f2f91606480820192602092909190829003018186803b15801561068757600080fd5b505af415801561069b573d6000803e3d6000fd5b505050506040513d60208110156106b157600080fd5b50519392505050565b6000848152606660205260408120546001600160a01b031615806106f457506000858152606660205260409020546001600160a01b031633145b61073257604051600160e51b62461bcd02815260040180806020018281038252603081526020018061150e6030913960400191505060405180910390fd5b6108008251111561078d5760408051600160e51b62461bcd02815260206004820152601260248201527f496e76616c69642076616c75652073697a650000000000000000000000000000604482015290519081900360640190fd5b60408051600160e01b6336e2d0c9028152606660048201526024810187905260448101869052905160009173__DIDRegistryLibrary____________________916336e2d0c991606480820192602092909190829003018186803b1580156107f457600080fd5b505af4158015610808573d6000803e3d6000fd5b505050506040513d602081101561081e57600080fd5b5051905060005b845181101561085f576108578786838151811061083e57fe5b60200260200101516066610e339092919063ffffffff16565b600101610825565b5060008681526066602090815260408083205481513381850181905243938201849052606080835289519083015288518b966001600160a01b03909416958d957f8f8b755e50eb4efaa1a82e62cbfe4c58d83374b2f20db5960764ba69e062ae43958c959193919283926080840192918801918190849084905b838110156108f15781810151838201526020016108d9565b50505050905090810190601f16801561091e5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a495945050505050565b60006109428383610f2a565b9392505050565b6000908152606660205260409020546001600160a01b031690565b606060666001018054806020026020016040519081016040528092919081815260200182805480156109b557602002820191906000526020600020905b8154815260200190600101908083116109a1575b5050505050905090565b6109c7610aea565b6109d057600080fd5b6033546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3603380546001600160a01b0319169055565b60008281526066602052604090205482906001600160a01b03163314610a7457604051600160e51b62461bcd02815260040180806020018281038252602d8152602001806114e1602d913960400191505060405180910390fd5b6000610a886066858563ffffffff610f5516565b604080518681526001600160a01b03861660208201528215158183015290519192507fa34c94e3893406b9fa302e5fbe4335b0cc46ca311d7ea24545426ec223a94f41919081900360600190a150505050565b6033546001600160a01b031690565b6033546001600160a01b0316331490565b60008281526066602052604090205482906001600160a01b03163314610b5557604051600160e51b62461bcd02815260040180806020018281038252602d8152602001806114e1602d913960400191505060405180910390fd5b610b676066848463ffffffff610e3316565b604080518481526001600160a01b038416602082015281517f0c22bba9f36f0f2a7884650bedf42ce7b026851b573c93e4d8cd51f73eceda0f929181900390910190a1505050565b60008281526066602052604090205482906001600160a01b03163314610c0957604051600160e51b62461bcd02815260040180806020018281038252602d8152602001806114e1602d913960400191505060405180910390fd5b610c138383611019565b505050565b60009081526066602052604090206003015490565b60008281526066602052604090205482906001600160a01b03163314610c8757604051600160e51b62461bcd02815260040180806020018281038252602d8152602001806114e1602d913960400191505060405180910390fd5b610c1383836110ec565b600054610100900460ff1680610caa5750610caa6111a6565b80610cb8575060005460ff16155b610cf657604051600160e51b62461bcd02815260040180806020018281038252602e81526020018061153e602e913960400191505060405180910390fd5b600054610100900460ff16158015610d21576000805460ff1961ff0019909116610100171660011790555b610d2a826111ac565b8015610d3c576000805461ff00191690555b5050565b60008281526066602052604090205482906001600160a01b03163314610d9a57604051600160e51b62461bcd02815260040180806020018281038252602d8152602001806114e1602d913960400191505060405180910390fd5b6000838152606660208190526040909120546001600160a01b031690610dc790858563ffffffff6112a016565b604080518581526001600160a01b03808416602083015285168183015290517fe36e06a31618f1e5c2057e2d659c72bb4d1e19526236dc13052a483978b55ea29181900360600190a150505050565b610e1e610aea565b610e2757600080fd5b610e308161139e565b50565b6001600160a01b038116610e915760408051600160e51b62461bcd02815260206004820152601e60248201527f496e76616c69642061737365742070726f766964657220616464726573730000604482015290519081900360640190fd5b6001600160a01b038116301415610edc57604051600160e51b62461bcd0281526004018080602001828103825260308152602001806114b16030913960400191505060405180910390fd5b610ee783838361140d565b610c13576000828152602084815260408220600401805460018101825590835291200180546001600160a01b0383166001600160a01b0319909116179055505050565b60009182526068602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60006001600160a01b038216610fb55760408051600160e51b62461bcd02815260206004820152601e60248201527f496e76616c69642061737365742070726f766964657220616464726573730000604482015290519081900360640190fd5b6000610fc285858561143c565b9050806000191415610fd8576000915050610942565b6000848152602086905260409020600401805482908110610ff557fe5b600091825260209091200180546001600160a01b0319169055506001949350505050565b60008281526068602090815260408083206001600160a01b038516845290915290205460ff166110935760408051600160e51b62461bcd02815260206004820152601b60248201527f4772616e74656520616c726561647920776173207265766f6b65640000000000604482015290519081900360640190fd5b60008281526068602090815260408083206001600160a01b0385168085529252808320805460ff19169055519091339185917ff511018c667fb6eda32b85f42e7888d1cd1d5ec5b2b1147e6d26e946fde22d0d91a45050565b6001600160a01b03811661114a5760408051600160e51b62461bcd02815260206004820152601760248201527f496e76616c6964206772616e7465652061646472657373000000000000000000604482015290519081900360640190fd5b60008281526068602090815260408083206001600160a01b0385168085529252808320805460ff19166001179055519091339185917faf464968a4f66dada6a1a5a33bd6c431a5dde662dd7d6aa715462130ec86d84591a45050565b303b1590565b600054610100900460ff16806111c557506111c56111a6565b806111d3575060005460ff16155b61121157604051600160e51b62461bcd02815260040180806020018281038252602e81526020018061153e602e913960400191505060405180910390fd5b600054610100900460ff1615801561123c576000805460ff1961ff0019909116610100171660011790555b603380546001600160a01b0319166001600160a01b0384811691909117918290556040519116906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a38015610d3c576000805461ff00191690555050565b6001600160a01b0381166112fe5760408051600160e51b62461bcd02815260206004820152601d60248201527f496e76616c6964206e657720444944206f776e65722061646472657373000000604482015290519081900360640190fd5b6000828152602084905260409020546001600160a01b03828116911614156113705760408051600160e51b62461bcd02815260206004820181905260248201527f4e6577204f776e657220697320616c7265616479206120444944206f776e6572604482015290519081900360640190fd5b60009182526020929092526040902080546001600160a01b0319166001600160a01b03909216919091179055565b6001600160a01b0381166113b157600080fd5b6033546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3603380546001600160a01b0319166001600160a01b0392909216919091179055565b60008061141b85858561143c565b9050806000191415611431576000915050610942565b506001949350505050565b6000805b6000848152602086905260409020600401548110156114a457600084815260208690526040902060040180548290811061147657fe5b6000918252602090912001546001600160a01b038481169116141561149c579050610942565b600101611440565b5060001994935050505056fe4449442070726f76696465722073686f756c64206e6f74206265207468697320636f6e74726163742061646472657373496e76616c696420444944206f776e65722063616e20706572666f726d2074686973206f7065726174696f6e2e41747472696275746573206d75737420626520726567697374657265642062792074686520444944206f776e6572732e436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564a165627a7a72305820e595cd35e8581e981c3cae3e7fe668baf4a9e34cc579bf0bba519e8ec37d0eb10029",
  "address": "0x1Dbc0218a15865099fBB9E8a3bcD3f127452ebB5",
  "implementation": "0x899ed707512E9aa2D57D0830cb6C2120A8846560",
  "version": "v0.13.2"
}