{
  "contractName": "DataRegistry",
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "setId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "int256",
          "name": "dataPoint",
          "type": "int256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "timestamp",
          "type": "uint256"
        }
      ],
      "name": "PublishedDataPoint",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "setId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "provider",
          "type": "address"
        }
      ],
      "name": "UpdatedDataProvider",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "setId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "timestamp",
          "type": "uint256"
        }
      ],
      "name": "getDataPoint",
      "outputs": [
        {
          "internalType": "int256",
          "name": "",
          "type": "int256"
        },
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "setId",
          "type": "bytes32"
        }
      ],
      "name": "getDataProvider",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "setId",
          "type": "bytes32"
        }
      ],
      "name": "getLastUpdatedTimestamp",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "setId",
          "type": "bytes32"
        }
      ],
      "name": "isRegistered",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "setId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "timestamp",
          "type": "uint256"
        },
        {
          "internalType": "int256",
          "name": "dataPoint",
          "type": "int256"
        }
      ],
      "name": "publishDataPoint",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "setId",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "provider",
          "type": "address"
        }
      ],
      "name": "setDataProvider",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b5060006100246001600160e01b0361007716565b600180546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35061007b565b3390565b6107428061008a6000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c80638da5cb5b116100665780638da5cb5b1461010c578063af37897814610121578063d38db86d14610134578063ecef34f214610147578063f2fde38b1461015a57610093565b806308a4ec101461009857806327258b22146100c2578063715018a6146100e2578063816a7e01146100ec575b600080fd5b6100ab6100a63660046105ad565b61016d565b6040516100b9929190610618565b60405180910390f35b6100d56100d036600461055b565b610196565b6040516100b9919061060d565b6100ea6101b5565b005b6100ff6100fa36600461055b565b61023d565b6040516100b99190610703565b610114610252565b6040516100b991906105f9565b6100ea61012f366004610573565b610261565b6100ea6101423660046105ce565b61032f565b61011461015536600461055b565b610454565b6100ea61016836600461052d565b610472565b60009182526020828152604080842092845291905290208054600190910154909160ff90911690565b600090815260208190526040902060020154600160a01b900460ff1690565b6101bd610529565b6001546001600160a01b039081169116146101f35760405162461bcd60e51b81526004016101ea906106ce565b60405180910390fd5b6001546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600180546001600160a01b0319169055565b60009081526020819052604090206001015490565b6001546001600160a01b031690565b610269610529565b6001546001600160a01b039081169116146102965760405162461bcd60e51b81526004016101ea906106ce565b600082815260208190526040902060020180546001600160a01b0319166001600160a01b0383161790819055600160a01b900460ff166102f3576000828152602081905260409020600201805460ff60a01b1916600160a01b1790555b817f6d3523ac54f3703c06e93ef7e0e67f963e698a668616fbc72dafb71eb6bd30968260405161032391906105f9565b60405180910390a25050565b6000838152602081905260409020600201546001600160a01b031633146103685760405162461bcd60e51b81526004016101ea9061067c565b60408051808201825282815260016020808301828152600088815280835285812088825280845295812094518555905193909201805460ff19169315159390931790925585815290526002015460ff600160a01b909104166103e7576000838152602081905260409020600201805460ff60a01b1916600160a01b1790555b6000838152602081905260409020600101548211156104155760008381526020819052604090206001018290555b827f183291f60aff981c3c2d6cb02edd75633d383a51f608e397789555ef0e7756028284604051610447929190610628565b60405180910390a2505050565b6000908152602081905260409020600201546001600160a01b031690565b61047a610529565b6001546001600160a01b039081169116146104a75760405162461bcd60e51b81526004016101ea906106ce565b6001600160a01b0381166104cd5760405162461bcd60e51b81526004016101ea90610636565b6001546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b3390565b60006020828403121561053e578081fd5b81356001600160a01b0381168114610554578182fd5b9392505050565b60006020828403121561056c578081fd5b5035919050565b60008060408385031215610585578081fd5b8235915060208301356001600160a01b03811681146105a2578182fd5b809150509250929050565b600080604083850312156105bf578182fd5b50508035926020909101359150565b6000806000606084860312156105e2578081fd5b505081359360208301359350604090920135919050565b6001600160a01b0391909116815260200190565b901515815260200190565b9182521515602082015260400190565b918252602082015260400190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526032908201527f4461746152656769737472792e7075626c69736844617461506f696e743a20556040820152712720aaaa2427a924ad22a22fa9a2a72222a960711b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b9081526020019056fea2646970667358221220f39dc3ab2d1a8e9c8bfa3a67056c876d113613b0be2cc5e09dcf3a4a2a23687564736f6c634300060b0033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100935760003560e01c80638da5cb5b116100665780638da5cb5b1461010c578063af37897814610121578063d38db86d14610134578063ecef34f214610147578063f2fde38b1461015a57610093565b806308a4ec101461009857806327258b22146100c2578063715018a6146100e2578063816a7e01146100ec575b600080fd5b6100ab6100a63660046105ad565b61016d565b6040516100b9929190610618565b60405180910390f35b6100d56100d036600461055b565b610196565b6040516100b9919061060d565b6100ea6101b5565b005b6100ff6100fa36600461055b565b61023d565b6040516100b99190610703565b610114610252565b6040516100b991906105f9565b6100ea61012f366004610573565b610261565b6100ea6101423660046105ce565b61032f565b61011461015536600461055b565b610454565b6100ea61016836600461052d565b610472565b60009182526020828152604080842092845291905290208054600190910154909160ff90911690565b600090815260208190526040902060020154600160a01b900460ff1690565b6101bd610529565b6001546001600160a01b039081169116146101f35760405162461bcd60e51b81526004016101ea906106ce565b60405180910390fd5b6001546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600180546001600160a01b0319169055565b60009081526020819052604090206001015490565b6001546001600160a01b031690565b610269610529565b6001546001600160a01b039081169116146102965760405162461bcd60e51b81526004016101ea906106ce565b600082815260208190526040902060020180546001600160a01b0319166001600160a01b0383161790819055600160a01b900460ff166102f3576000828152602081905260409020600201805460ff60a01b1916600160a01b1790555b817f6d3523ac54f3703c06e93ef7e0e67f963e698a668616fbc72dafb71eb6bd30968260405161032391906105f9565b60405180910390a25050565b6000838152602081905260409020600201546001600160a01b031633146103685760405162461bcd60e51b81526004016101ea9061067c565b60408051808201825282815260016020808301828152600088815280835285812088825280845295812094518555905193909201805460ff19169315159390931790925585815290526002015460ff600160a01b909104166103e7576000838152602081905260409020600201805460ff60a01b1916600160a01b1790555b6000838152602081905260409020600101548211156104155760008381526020819052604090206001018290555b827f183291f60aff981c3c2d6cb02edd75633d383a51f608e397789555ef0e7756028284604051610447929190610628565b60405180910390a2505050565b6000908152602081905260409020600201546001600160a01b031690565b61047a610529565b6001546001600160a01b039081169116146104a75760405162461bcd60e51b81526004016101ea906106ce565b6001600160a01b0381166104cd5760405162461bcd60e51b81526004016101ea90610636565b6001546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b3390565b60006020828403121561053e578081fd5b81356001600160a01b0381168114610554578182fd5b9392505050565b60006020828403121561056c578081fd5b5035919050565b60008060408385031215610585578081fd5b8235915060208301356001600160a01b03811681146105a2578182fd5b809150509250929050565b600080604083850312156105bf578182fd5b50508035926020909101359150565b6000806000606084860312156105e2578081fd5b505081359360208301359350604090920135919050565b6001600160a01b0391909116815260200190565b901515815260200190565b9182521515602082015260400190565b918252602082015260400190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526032908201527f4461746152656769737472792e7075626c69736844617461506f696e743a20556040820152712720aaaa2427a924ad22a22fa9a2a72222a960711b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b9081526020019056fea2646970667358221220f39dc3ab2d1a8e9c8bfa3a67056c876d113613b0be2cc5e09dcf3a4a2a23687564736f6c634300060b0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
