First Validator Set contracts.json

"ValidatorSet": {
       "abi": [
           {
               "constant": true,
               "inputs": [],
               "name": "validatorProxy",
               "outputs": [
                   {
                       "name": "",
                       "type": "address"
                   }
               ],
               "payable": false,
               "stateMutability": "view",
               "type": "function"
           },
           {
               "constant": true,
               "inputs": [],
               "name": "initialized",
               "outputs": [
                   {
                       "name": "",
                       "type": "bool"
                   }
               ],
               "payable": false,
               "stateMutability": "view",
               "type": "function"
           },
           {
               "constant": true,
               "inputs": [
                   {
                       "name": "",
                       "type": "uint256"
                   }
               ],
               "name": "pendingValidators",
               "outputs": [
                   {
                       "name": "",
                       "type": "address"
                   }
               ],
               "payable": false,
               "stateMutability": "view",
               "type": "function"
           },
           {
               "constant": true,
               "inputs": [
                   {
                       "name": "_epochStart",
                       "type": "uint256"
                   }
               ],
               "name": "getValidators",
               "outputs": [
                   {
                       "name": "",
                       "type": "address[]"
                   }
               ],
               "payable": false,
               "stateMutability": "view",
               "type": "function"
           },
           {
               "constant": true,
               "inputs": [],
               "name": "getEpochStartHeights",
               "outputs": [
                   {
                       "name": "",
                       "type": "uint256[]"
                   }
               ],
               "payable": false,
               "stateMutability": "view",
               "type": "function"
           },
           {
               "constant": false,
               "inputs": [],
               "name": "finalizeChange",
               "outputs": [],
               "payable": false,
               "stateMutability": "nonpayable",
               "type": "function"
           },
           {
               "constant": false,
               "inputs": [
                   {
                       "name": "_validators",
                       "type": "address[]"
                   },
                   {
                       "name": "_validatorProxy",
                       "type": "address"
                   }
               ],
               "name": "init",
               "outputs": [],
               "payable": false,
               "stateMutability": "nonpayable",
               "type": "function"
           },
           {
               "constant": false,
               "inputs": [
                   {
                       "name": "_rlpUnsignedHeaderOne",
                       "type": "bytes"
                   },
                   {
                       "name": "_signatureOne",
                       "type": "bytes"
                   },
                   {
                       "name": "_rlpUnsignedHeaderTwo",
                       "type": "bytes"
                   },
                   {
                       "name": "_signatureTwo",
                       "type": "bytes"
                   }
               ],
               "name": "reportMaliciousValidator",
               "outputs": [],
               "payable": false,
               "stateMutability": "nonpayable",
               "type": "function"
           },
           {
               "constant": true,
               "inputs": [],
               "name": "finalized",
               "outputs": [
                   {
                       "name": "",
                       "type": "bool"
                   }
               ],
               "payable": false,
               "stateMutability": "view",
               "type": "function"
           },
           {
               "constant": true,
               "inputs": [],
               "name": "getValidators",
               "outputs": [
                   {
                       "name": "_validators",
                       "type": "address[]"
                   }
               ],
               "payable": false,
               "stateMutability": "view",
               "type": "function"
           },
           {
               "constant": true,
               "inputs": [],
               "name": "systemAddress",
               "outputs": [
                   {
                       "name": "",
                       "type": "address"
                   }
               ],
               "payable": false,
               "stateMutability": "view",
               "type": "function"
           },
           {
               "anonymous": false,
               "inputs": [
                   {
                       "indexed": true,
                       "name": "_parentHash",
                       "type": "bytes32"
                   },
                   {
                       "indexed": false,
                       "name": "_newSet",
                       "type": "address[]"
                   }
               ],
               "name": "InitiateChange",
               "type": "event"
           }
       ],
       "devdoc": {
           "methods": {
               "reportMaliciousValidator(bytes,bytes,bytes,bytes)": {
                   "params": {
                       "_rlpUnsignedHeaderOne": "the RLP encoded header of the first block",
                       "_rlpUnsignedHeaderTwo": "the RLP encoded header of the second block",
                       "_signatureOne": "the signature related to the first block",
                       "_signatureTwo": "the signature related to the second block"
                   }
               }
           }
       },
       "bytecode": "0x60806040526000805460ff1916905560048054610100600160a81b031916610200600160a81b0317905534801561003557600080fd5b506114d7806100456000396000f3fe608060405234801561001057600080fd5b50600436106100b95760003560e01c80637528621111610081578063b3f05b971161005b578063b3f05b9714610379578063b7ab4db514610381578063d3e848f114610389576100b9565b806375286211146101905780637e1ddf641461019a5780639eecabce14610213576100b9565b80630b1ec760146100be578063158ef93e146100e257806328569e1f146100fe578063471f40fb1461011b57806367a3fefc14610188575b600080fd5b6100c6610391565b604080516001600160a01b039092168252519081900360200190f35b6100ea6103a0565b604080519115158252519081900360200190f35b6100c66004803603602081101561011457600080fd5b50356103a9565b6101386004803603602081101561013157600080fd5b50356103d0565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561017457818101518382015260200161015c565b505050509050019250505060405180910390f35b61013861043d565b610198610496565b005b610198600480360360408110156101b057600080fd5b8101906020810181356401000000008111156101cb57600080fd5b8201836020820111156101dd57600080fd5b803590602001918460208302840111640100000000831117156101ff57600080fd5b9193509150356001600160a01b0316610620565b6101986004803603608081101561022957600080fd5b81019060208101813564010000000081111561024457600080fd5b82018360208201111561025657600080fd5b8035906020019184600183028401116401000000008311171561027857600080fd5b91939092909160208101903564010000000081111561029657600080fd5b8201836020820111156102a857600080fd5b803590602001918460018302840111640100000000831117156102ca57600080fd5b9193909290916020810190356401000000008111156102e857600080fd5b8201836020820111156102fa57600080fd5b8035906020019184600183028401116401000000008311171561031c57600080fd5b91939092909160208101903564010000000081111561033a57600080fd5b82018360208201111561034c57600080fd5b8035906020019184600183028401116401000000008311171561036e57600080fd5b509092509050610776565b6100ea61093a565b610138610943565b6100c66109a4565b6005546001600160a01b031681565b60005460ff1681565b600281815481106103b657fe5b6000918252602090912001546001600160a01b0316905081565b60008181526007602090815260409182902080548351818402810184019094528084526060939283018282801561043057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610412575b505050505090505b919050565b6060600680548060200260200160405190810160405280929190818152602001828054801561048b57602002820191906000526020600020905b815481526020019060010190808311610477575b505050505090505b90565b60045461010090046001600160a01b031633146104e757604051600160e51b62461bcd0281526004018080602001828103825260348152602001806113626034913960400191505060405180910390fd5b600280546104f791600191611204565b506004805460ff1916600190811790915560068054808301909155437ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f909101819055600090815260076020526040902081546105549290611204565b506005546040517fe71731e400000000000000000000000000000000000000000000000000000000815260206004820190815260018054602484018190526001600160a01b039094169363e71731e4939192918291604490910190849080156105e657602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116105c8575b505092505050600060405180830381600087803b15801561060657600080fd5b505af115801561061a573d6000803e3d6000fd5b50505050565b60005460ff161561067b5760408051600160e51b62461bcd02815260206004820152601960248201527f43616e206e6f7420696e697469616c697a652074776963652e00000000000000604482015290519081900360640190fd5b61068760028484611254565b50600580546001600160a01b0319166001600160a01b03831617905560005b82811015610746576001600360008686858181106106c057fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b0316815260200190815260200160002060010160006101000a81548160ff021916908315150217905550806003600086868581811061071b57fe5b602090810292909201356001600160a01b0316835250810191909152604001600020556001016106a6565b5061075360018484611254565b505060048054600160ff1991821681179092556000805490911690911790555050565b61085188888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8c018190048102820181019092528a815292508a915089908190840183828082843760009201919091525050604080516020601f8b01819004810282018101909252898152925089915088908190840183828082843760009201919091525050604080516020601f8a0181900481028201810190925288815292508891508790819084018382808284376000920191909152506109b892505050565b60006108c689898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a9081908401838280828437600092019190915250610b8092505050565b6001600160a01b03811660009081526003602052604090206001015490915060ff1661092657604051600160e51b62461bcd0281526004018080602001828103825260288152602001806113ce6028913960400191505060405180910390fd5b61092f81610b9e565b505050505050505050565b60045460ff1681565b6060600180548060200260200160405190810160405280929190818152602001828054801561048b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161097d575050505050905090565b60045461010090046001600160a01b031681565b835160208086019190912083519184019190912080821415610a0e57604051600160e51b62461bcd0281526004018080602001828103825260398152602001806113296039913960400191505060405180910390fd5b6060610a21610a1c88610dbe565b610df1565b90506060610a31610a1c87610dbe565b9050600c825110158015610a475750600c815110155b610a8557604051600160e51b62461bcd0281526004018080602001828103825260358152602001806114466035913960400191505060405180910390fd5b610a8f8686610b80565b6001600160a01b0316610aa28989610b80565b6001600160a01b031614610aea57604051600160e51b62461bcd0281526004018080602001828103825260388152602001806113966038913960400191505060405180910390fd5b60006005610b0b84600b81518110610afe57fe5b6020026020010151610ebe565b81610b1257fe5b04905060006005610b2984600b81518110610afe57fe5b81610b3057fe5b049050808214610b7457604051600160e51b62461bcd0281526004018080602001828103825260248152602001806114226024913960400191505060405180910390fd5b50505050505050505050565b81516020830120600090610b948184610f1e565b9150505b92915050565b60045460ff16610be257604051600160e51b62461bcd02815260040180806020018281038252602c8152602001806113f6602c913960400191505060405180910390fd5b6001600160a01b03811660009081526003602052604090206001015460ff16610c3f57604051600160e51b62461bcd02815260040180806020018281038252603181526020018061147b6031913960400191505060405180910390fd5b6001600160a01b038116600090815260036020526040902054600280546000198101908110610c6a57fe5b600091825260209091200154600280546001600160a01b039092169183908110610c9057fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550806003600060028481548110610cd057fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902055600280546000198101908110610d0757fe5b600091825260209091200180546001600160a01b03191690556002805490610d339060001983016112a7565b506001600160a01b03821660009081526003602090815260408083209283556001909201805460ff1916905560028054835181840281018401909452808452610dba9392830182828015610db057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d92575b5050505050610fef565b5050565b610dc66112d0565b6000825111610dd457600080fd5b506040805180820190915281518152602082810190820152919050565b6060610dfc82611075565b610e0557600080fd5b6000610e10836110af565b905080604051908082528060200260200182016040528015610e4c57816020015b610e396112d0565b815260200190600190039081610e315790505b5091506000610e5e846020015161110b565b60208501510190506000805b83811015610eb557610e7b83611174565b9150604051806040016040528083815260200184815250858281518110610e9e57fe5b602090810291909101015291810191600101610e6a565b50505050919050565b805160009015801590610ed357508151602110155b610edc57600080fd5b6000610eeb836020015161110b565b83516020808601518301805193945091849003929190831015610f1557826020036101000a820491505b50949350505050565b6000806000808451604114610f395760009350505050610b98565b50505060208201516040830151606084015160001a601b811015610f5b57601b015b8060ff16601b14158015610f7357508060ff16601c14155b15610f845760009350505050610b98565b6040805160008152602080820180845289905260ff8416828401526060820186905260808201859052915160019260a0808401939192601f1981019281900390910190855afa158015610fdb573d6000803e3d6000fd5b505050602060405103519350505050610b98565b6004805460ff191690556040805160208082528351818301528351600019430140937f55252fa6eee4741b4e24a74a70e9c11fd2c2281df8d6ea13126ff845f7825c8993869390928392830191808601910280838360005b8381101561105f578181015183820152602001611047565b505050509050019250505060405180910390a250565b805160009061108657506000610438565b6020820151805160001a9060c08210156110a557600092505050610438565b5060019392505050565b80516000906110c057506000610438565b600080905060006110d4846020015161110b565b602085015185519181019250015b80821015611102576110f382611174565b600190930192909101906110e2565b50909392505050565b8051600090811a6080811015611125576000915050610438565b60b8811080611140575060c08110801590611140575060f881105b1561114f576001915050610438565b60c08110156111635760b519019050610438565b60f519019050610438565b50919050565b8051600090811a608081101561118e576001915050610438565b60b88110156111a257607e19019050610438565b60c08110156111cf5760b78103600184019350806020036101000a8451046001820181019350505061116e565b60f88110156111e35760be19019050610438565b60019290920151602083900360f7016101000a900490910160f51901919050565b8280548282559060005260206000209081019282156112445760005260206000209182015b82811115611244578254825591600101919060010190611229565b506112509291506112ea565b5090565b828054828255906000526020600020908101928215611244579160200282015b828111156112445781546001600160a01b0319166001600160a01b03843516178255602090920191600190910190611274565b8154818355818111156112cb576000838152602090206112cb91810190830161130e565b505050565b604051806040016040528060008152602001600081525090565b61049391905b808211156112505780546001600160a01b03191681556001016112f0565b61049391905b80821115611250576000815560010161131456fe45717569766f636174696f6e2063616e2062652070726f76656420666f722074776f20646966666572656e7420626c6f636b73206f6e6c792e54686520616363657373206973207265737472696374656420746f207468652073797374656d2061646472657373206f6e6c792e5468652074776f20626c6f636b732068617665206265656e207369676e656420627920646966666572656e74206964656e7469746965732e546865207265706f727465642061646472657373206973206e6f7420612076616c696461746f722e546865206c6173742076616c696461746f72206368616e6765206d7573742062652066696e616c697a65642e5468652074776f20626c6f636b73206861766520646966666572656e742073746570732e546865206e756d626572206f662070726f76696465642068656164657220656e747269657320617265206e6f7420656e6f7567682e54686520676976656e206164647265737320646f6573206e6f742062656c6f6e6720746f20612076616c696461746f722ea165627a7a7230582069fc17b50fd784504b7f8f45b9562ad55c0a283601d4aa5098f9d84933335da90029",
       "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100b95760003560e01c80637528621111610081578063b3f05b971161005b578063b3f05b9714610379578063b7ab4db514610381578063d3e848f114610389576100b9565b806375286211146101905780637e1ddf641461019a5780639eecabce14610213576100b9565b80630b1ec760146100be578063158ef93e146100e257806328569e1f146100fe578063471f40fb1461011b57806367a3fefc14610188575b600080fd5b6100c6610391565b604080516001600160a01b039092168252519081900360200190f35b6100ea6103a0565b604080519115158252519081900360200190f35b6100c66004803603602081101561011457600080fd5b50356103a9565b6101386004803603602081101561013157600080fd5b50356103d0565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561017457818101518382015260200161015c565b505050509050019250505060405180910390f35b61013861043d565b610198610496565b005b610198600480360360408110156101b057600080fd5b8101906020810181356401000000008111156101cb57600080fd5b8201836020820111156101dd57600080fd5b803590602001918460208302840111640100000000831117156101ff57600080fd5b9193509150356001600160a01b0316610620565b6101986004803603608081101561022957600080fd5b81019060208101813564010000000081111561024457600080fd5b82018360208201111561025657600080fd5b8035906020019184600183028401116401000000008311171561027857600080fd5b91939092909160208101903564010000000081111561029657600080fd5b8201836020820111156102a857600080fd5b803590602001918460018302840111640100000000831117156102ca57600080fd5b9193909290916020810190356401000000008111156102e857600080fd5b8201836020820111156102fa57600080fd5b8035906020019184600183028401116401000000008311171561031c57600080fd5b91939092909160208101903564010000000081111561033a57600080fd5b82018360208201111561034c57600080fd5b8035906020019184600183028401116401000000008311171561036e57600080fd5b509092509050610776565b6100ea61093a565b610138610943565b6100c66109a4565b6005546001600160a01b031681565b60005460ff1681565b600281815481106103b657fe5b6000918252602090912001546001600160a01b0316905081565b60008181526007602090815260409182902080548351818402810184019094528084526060939283018282801561043057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610412575b505050505090505b919050565b6060600680548060200260200160405190810160405280929190818152602001828054801561048b57602002820191906000526020600020905b815481526020019060010190808311610477575b505050505090505b90565b60045461010090046001600160a01b031633146104e757604051600160e51b62461bcd0281526004018080602001828103825260348152602001806113626034913960400191505060405180910390fd5b600280546104f791600191611204565b506004805460ff1916600190811790915560068054808301909155437ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f909101819055600090815260076020526040902081546105549290611204565b506005546040517fe71731e400000000000000000000000000000000000000000000000000000000815260206004820190815260018054602484018190526001600160a01b039094169363e71731e4939192918291604490910190849080156105e657602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116105c8575b505092505050600060405180830381600087803b15801561060657600080fd5b505af115801561061a573d6000803e3d6000fd5b50505050565b60005460ff161561067b5760408051600160e51b62461bcd02815260206004820152601960248201527f43616e206e6f7420696e697469616c697a652074776963652e00000000000000604482015290519081900360640190fd5b61068760028484611254565b50600580546001600160a01b0319166001600160a01b03831617905560005b82811015610746576001600360008686858181106106c057fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b0316815260200190815260200160002060010160006101000a81548160ff021916908315150217905550806003600086868581811061071b57fe5b602090810292909201356001600160a01b0316835250810191909152604001600020556001016106a6565b5061075360018484611254565b505060048054600160ff1991821681179092556000805490911690911790555050565b61085188888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8c018190048102820181019092528a815292508a915089908190840183828082843760009201919091525050604080516020601f8b01819004810282018101909252898152925089915088908190840183828082843760009201919091525050604080516020601f8a0181900481028201810190925288815292508891508790819084018382808284376000920191909152506109b892505050565b60006108c689898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a9081908401838280828437600092019190915250610b8092505050565b6001600160a01b03811660009081526003602052604090206001015490915060ff1661092657604051600160e51b62461bcd0281526004018080602001828103825260288152602001806113ce6028913960400191505060405180910390fd5b61092f81610b9e565b505050505050505050565b60045460ff1681565b6060600180548060200260200160405190810160405280929190818152602001828054801561048b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161097d575050505050905090565b60045461010090046001600160a01b031681565b835160208086019190912083519184019190912080821415610a0e57604051600160e51b62461bcd0281526004018080602001828103825260398152602001806113296039913960400191505060405180910390fd5b6060610a21610a1c88610dbe565b610df1565b90506060610a31610a1c87610dbe565b9050600c825110158015610a475750600c815110155b610a8557604051600160e51b62461bcd0281526004018080602001828103825260358152602001806114466035913960400191505060405180910390fd5b610a8f8686610b80565b6001600160a01b0316610aa28989610b80565b6001600160a01b031614610aea57604051600160e51b62461bcd0281526004018080602001828103825260388152602001806113966038913960400191505060405180910390fd5b60006005610b0b84600b81518110610afe57fe5b6020026020010151610ebe565b81610b1257fe5b04905060006005610b2984600b81518110610afe57fe5b81610b3057fe5b049050808214610b7457604051600160e51b62461bcd0281526004018080602001828103825260248152602001806114226024913960400191505060405180910390fd5b50505050505050505050565b81516020830120600090610b948184610f1e565b9150505b92915050565b60045460ff16610be257604051600160e51b62461bcd02815260040180806020018281038252602c8152602001806113f6602c913960400191505060405180910390fd5b6001600160a01b03811660009081526003602052604090206001015460ff16610c3f57604051600160e51b62461bcd02815260040180806020018281038252603181526020018061147b6031913960400191505060405180910390fd5b6001600160a01b038116600090815260036020526040902054600280546000198101908110610c6a57fe5b600091825260209091200154600280546001600160a01b039092169183908110610c9057fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550806003600060028481548110610cd057fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902055600280546000198101908110610d0757fe5b600091825260209091200180546001600160a01b03191690556002805490610d339060001983016112a7565b506001600160a01b03821660009081526003602090815260408083209283556001909201805460ff1916905560028054835181840281018401909452808452610dba9392830182828015610db057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d92575b5050505050610fef565b5050565b610dc66112d0565b6000825111610dd457600080fd5b506040805180820190915281518152602082810190820152919050565b6060610dfc82611075565b610e0557600080fd5b6000610e10836110af565b905080604051908082528060200260200182016040528015610e4c57816020015b610e396112d0565b815260200190600190039081610e315790505b5091506000610e5e846020015161110b565b60208501510190506000805b83811015610eb557610e7b83611174565b9150604051806040016040528083815260200184815250858281518110610e9e57fe5b602090810291909101015291810191600101610e6a565b50505050919050565b805160009015801590610ed357508151602110155b610edc57600080fd5b6000610eeb836020015161110b565b83516020808601518301805193945091849003929190831015610f1557826020036101000a820491505b50949350505050565b6000806000808451604114610f395760009350505050610b98565b50505060208201516040830151606084015160001a601b811015610f5b57601b015b8060ff16601b14158015610f7357508060ff16601c14155b15610f845760009350505050610b98565b6040805160008152602080820180845289905260ff8416828401526060820186905260808201859052915160019260a0808401939192601f1981019281900390910190855afa158015610fdb573d6000803e3d6000fd5b505050602060405103519350505050610b98565b6004805460ff191690556040805160208082528351818301528351600019430140937f55252fa6eee4741b4e24a74a70e9c11fd2c2281df8d6ea13126ff845f7825c8993869390928392830191808601910280838360005b8381101561105f578181015183820152602001611047565b505050509050019250505060405180910390a250565b805160009061108657506000610438565b6020820151805160001a9060c08210156110a557600092505050610438565b5060019392505050565b80516000906110c057506000610438565b600080905060006110d4846020015161110b565b602085015185519181019250015b80821015611102576110f382611174565b600190930192909101906110e2565b50909392505050565b8051600090811a6080811015611125576000915050610438565b60b8811080611140575060c08110801590611140575060f881105b1561114f576001915050610438565b60c08110156111635760b519019050610438565b60f519019050610438565b50919050565b8051600090811a608081101561118e576001915050610438565b60b88110156111a257607e19019050610438565b60c08110156111cf5760b78103600184019350806020036101000a8451046001820181019350505061116e565b60f88110156111e35760be19019050610438565b60019290920151602083900360f7016101000a900490910160f51901919050565b8280548282559060005260206000209081019282156112445760005260206000209182015b82811115611244578254825591600101919060010190611229565b506112509291506112ea565b5090565b828054828255906000526020600020908101928215611244579160200282015b828111156112445781546001600160a01b0319166001600160a01b03843516178255602090920191600190910190611274565b8154818355818111156112cb576000838152602090206112cb91810190830161130e565b505050565b604051806040016040528060008152602001600081525090565b61049391905b808211156112505780546001600160a01b03191681556001016112f0565b61049391905b80821115611250576000815560010161131456fe45717569766f636174696f6e2063616e2062652070726f76656420666f722074776f20646966666572656e7420626c6f636b73206f6e6c792e54686520616363657373206973207265737472696374656420746f207468652073797374656d2061646472657373206f6e6c792e5468652074776f20626c6f636b732068617665206265656e207369676e656420627920646966666572656e74206964656e7469746965732e546865207265706f727465642061646472657373206973206e6f7420612076616c696461746f722e546865206c6173742076616c696461746f72206368616e6765206d7573742062652066696e616c697a65642e5468652074776f20626c6f636b73206861766520646966666572656e742073746570732e546865206e756d626572206f662070726f76696465642068656164657220656e747269657320617265206e6f7420656e6f7567682e54686520676976656e206164647265737320646f6573206e6f742062656c6f6e6720746f20612076616c696461746f722ea165627a7a7230582069fc17b50fd784504b7f8f45b9562ad55c0a283601d4aa5098f9d84933335da90029",
       "metadata": {
           "compiler": {
               "version": "0.5.8+commit.23d335f2"
           },
           "language": "Solidity",
           "output": {
               "abi": [
                   {
                       "constant": true,
                       "inputs": [],
                       "name": "validatorProxy",
                       "outputs": [
                           {
                               "name": "",
                               "type": "address"
                           }
                       ],
                       "payable": false,
                       "stateMutability": "view",
                       "type": "function"
                   },
                   {
                       "constant": true,
                       "inputs": [],
                       "name": "initialized",
                       "outputs": [
                           {
                               "name": "",
                               "type": "bool"
                           }
                       ],
                       "payable": false,
                       "stateMutability": "view",
                       "type": "function"
                   },
                   {
                       "constant": true,
                       "inputs": [
                           {
                               "name": "",
                               "type": "uint256"
                           }
                       ],
                       "name": "pendingValidators",
                       "outputs": [
                           {
                               "name": "",
                               "type": "address"
                           }
                       ],
                       "payable": false,
                       "stateMutability": "view",
                       "type": "function"
                   },
                   {
                       "constant": true,
                       "inputs": [
                           {
                               "name": "_epochStart",
                               "type": "uint256"
                           }
                       ],
                       "name": "getValidators",
                       "outputs": [
                           {
                               "name": "",
                               "type": "address[]"
                           }
                       ],
                       "payable": false,
                       "stateMutability": "view",
                       "type": "function"
                   },
                   {
                       "constant": true,
                       "inputs": [],
                       "name": "getEpochStartHeights",
                       "outputs": [
                           {
                               "name": "",
                               "type": "uint256[]"
                           }
                       ],
                       "payable": false,
                       "stateMutability": "view",
                       "type": "function"
                   },
                   {
                       "constant": false,
                       "inputs": [],
                       "name": "finalizeChange",
                       "outputs": [],
                       "payable": false,
                       "stateMutability": "nonpayable",
                       "type": "function"
                   },
                   {
                       "constant": false,
                       "inputs": [
                           {
                               "name": "_validators",
                               "type": "address[]"
                           },
                           {
                               "name": "_validatorProxy",
                               "type": "address"
                           }
                       ],
                       "name": "init",
                       "outputs": [],
                       "payable": false,
                       "stateMutability": "nonpayable",
                       "type": "function"
                   },
                   {
                       "constant": false,
                       "inputs": [
                           {
                               "name": "_rlpUnsignedHeaderOne",
                               "type": "bytes"
                           },
                           {
                               "name": "_signatureOne",
                               "type": "bytes"
                           },
                           {
                               "name": "_rlpUnsignedHeaderTwo",
                               "type": "bytes"
                           },
                           {
                               "name": "_signatureTwo",
                               "type": "bytes"
                           }
                       ],
                       "name": "reportMaliciousValidator",
                       "outputs": [],
                       "payable": false,
                       "stateMutability": "nonpayable",
                       "type": "function"
                   },
                   {
                       "constant": true,
                       "inputs": [],
                       "name": "finalized",
                       "outputs": [
                           {
                               "name": "",
                               "type": "bool"
                           }
                       ],
                       "payable": false,
                       "stateMutability": "view",
                       "type": "function"
                   },
                   {
                       "constant": true,
                       "inputs": [],
                       "name": "getValidators",
                       "outputs": [
                           {
                               "name": "_validators",
                               "type": "address[]"
                           }
                       ],
                       "payable": false,
                       "stateMutability": "view",
                       "type": "function"
                   },
                   {
                       "constant": true,
                       "inputs": [],
                       "name": "systemAddress",
                       "outputs": [
                           {
                               "name": "",
                               "type": "address"
                           }
                       ],
                       "payable": false,
                       "stateMutability": "view",
                       "type": "function"
                   },
                   {
                       "anonymous": false,
                       "inputs": [
                           {
                               "indexed": true,
                               "name": "_parentHash",
                               "type": "bytes32"
                           },
                           {
                               "indexed": false,
                               "name": "_newSet",
                               "type": "address[]"
                           }
                       ],
                       "name": "InitiateChange",
                       "type": "event"
                   }
               ],
               "devdoc": {
                   "methods": {
                       "reportMaliciousValidator(bytes,bytes,bytes,bytes)": {
                           "params": {
                               "_rlpUnsignedHeaderOne": "the RLP encoded header of the first block",
                               "_rlpUnsignedHeaderTwo": "the RLP encoded header of the second block",
                               "_signatureOne": "the signature related to the first block",
                               "_signatureTwo": "the signature related to the second block"
                           }
                       }
                   }
               },
               "userdoc": {
                   "methods": {
                       "finalizeChange()": {
                           "notice": "Called when an initiated change reaches finality and is activated. Only valid when msg.sender == SUPER_USER (EIP96, 2**160 - 2)     /// Also called when the contract is first enabled for consensus. In this case, the \"change\" finalized is the activation of the initial set."
                       },
                       "reportMaliciousValidator(bytes,bytes,bytes,bytes)": {
                           "notice": "Report a malicious validator for having equivocated. The reporter must provide both blocks with their related signatures. By the given blocks, the equivocation will be verified. In case an equivocation could been proven, the issuer of the blocks get removed from the set of validators, if his address is registered. In case any check before removing the malicious validator fails, the whole report procedure fails due to that."
                       }
                   }
               }
           },
           "settings": {
               "compilationTarget": {
                   "/home/auctionaccount/blockchain/contracts/contracts/tlc-validator/ValidatorSet.sol": "ValidatorSet"
               },
               "evmVersion": "petersburg",
               "libraries": {},
               "optimizer": {
                   "enabled": true,
                   "runs": 500
               },
               "remappings": []
           },
           "sources": {
               "/home/auctionaccount/blockchain/contracts/contracts/equivocation-inspector/EquivocationInspector.sol": {
                   "keccak256": "0xa0b1706c4182923b18cfee67a06a983e981e2ec83d0a1c19c3ffee2cdfbcc122",
                   "urls": [
                       "bzzr://c135f4923ffd5e3e6ae83490ec36b6289ccec1473ab0cad738898580eef1cefb"
                   ]
               },
               "/home/auctionaccount/blockchain/contracts/contracts/lib/ECDSA.sol": {
                   "keccak256": "0x45b92ac0e4fa39391a04440459b7a7ce7ea103f875c76a0d7a34408899f63c14",
                   "urls": [
                       "bzzr://6da0ff7caeda86e0f6b687157d145d7b7dd887bcd5da90f04edd79ed1f6a905d"
                   ]
               },
               "/home/auctionaccount/blockchain/contracts/contracts/lib/RLPReader.sol": {
                   "keccak256": "0xcadfbd8e062e7fac175d2a77f42d0385b2ba97684e2fb5c52b8c97492ec59860",
                   "urls": [
                       "bzzr://15bb21f5faf9d9b11b7f46b82b030358558e846b57939ae41c7b0e230e5d6289"
                   ]
               },
               "/home/auctionaccount/blockchain/contracts/contracts/tlc-validator/ValidatorProxy.sol": {
                   "keccak256": "0xeec906ae78272ff69eb23879fd3b2a3d2044e1cbc3bafa79f0c017b3d57edb77",
                   "urls": [
                       "bzzr://539f038353920d87103a59af4bca78786a19b7aea916b3af9e2c5e8f79d3d52c"
                   ]
               },
               "/home/auctionaccount/blockchain/contracts/contracts/tlc-validator/ValidatorSet.sol": {
                   "keccak256": "0xd0ffe0f313027e5e8121300f946f002ad0f3447e1f52559fb31e0912ee9cec8d",
                   "urls": [
                       "bzzr://a23937d0980776c486c170bf2e8aa1fd6b901a61b246c6d8f764b682a912dba2"
                   ]
               }
           },
           "version": 1
       },
       "userdoc": {
           "methods": {
               "finalizeChange()": {
                   "notice": "Called when an initiated change reaches finality and is activated. Only valid when msg.sender == SUPER_USER (EIP96, 2**160 - 2)     /// Also called when the contract is first enabled for consensus. In this case, the \"change\" finalized is the activation of the initial set."
               },
               "reportMaliciousValidator(bytes,bytes,bytes,bytes)": {
                   "notice": "Report a malicious validator for having equivocated. The reporter must provide both blocks with their related signatures. By the given blocks, the equivocation will be verified. In case an equivocation could been proven, the issuer of the blocks get removed from the set of validators, if his address is registered. In case any check before removing the malicious validator fails, the whole report procedure fails due to that."
               }
           }
       }
   },