Validator Slasher Contract (Second).json

"ValidatorSlasher": {
"abi": [
{
"constant": true,
"inputs": [],
"name": "initialized",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_depositContractAddress",
"type": "address"
}
],
"name": "init",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "owner",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"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": "depositContract",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"payable": false,
"stateMutability": "nonpayable",
"type": "fallback"
}
],
"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": "0x6080604052600080546001600160a81b03191633179055610c9c806100256000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c8063158ef93e1461006457806319ab453c146100805780638da5cb5b146100a65780639eecabce146100ca578063e94ad65b14610228578063f2fde38b14610230575b005b61006c610256565b604080519115158252519081900360200190f35b6100626004803603602081101561009657600080fd5b50356001600160a01b0316610266565b6100ae610337565b604080516001600160a01b039092168252519081900360200190f35b610062600480360360808110156100e057600080fd5b810190602081018135600160201b8111156100fa57600080fd5b82018360208201111561010c57600080fd5b803590602001918460018302840111600160201b8311171561012d57600080fd5b919390929091602081019035600160201b81111561014a57600080fd5b82018360208201111561015c57600080fd5b803590602001918460018302840111600160201b8311171561017d57600080fd5b919390929091602081019035600160201b81111561019a57600080fd5b8201836020820111156101ac57600080fd5b803590602001918460018302840111600160201b831117156101cd57600080fd5b919390929091602081019035600160201b8111156101ea57600080fd5b8201836020820111156101fc57600080fd5b803590602001918460018302840111600160201b8311171561021d57600080fd5b509092509050610346565b6100ae61050c565b6100626004803603602081101561024657600080fd5b50356001600160a01b031661051b565b600054600160a01b900460ff1681565b6000546001600160a01b031633146102b257604051600160e51b62461bcd02815260040180806020018281038252602c815260200180610bec602c913960400191505060405180910390fd5b600054600160a01b900460ff16156102fe57604051600160e51b62461bcd028152600401808060200182810382526024815260200180610b906024913960400191505060405180910390fd5b600180546001600160a01b039092166001600160a01b031990921691909117905560008054600160a01b60ff021916600160a01b179055565b6000546001600160a01b031681565b61042188888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8c018190048102820181019092528a815292508a915089908190840183828082843760009201919091525050604080516020601f8b01819004810282018101909252898152925089915088908190840183828082843760009201919091525050604080516020601f8a01819004810282018101909252888152925088915087908190840183828082843760009201919091525061059592505050565b600061049689898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a908190840183828082843760009201919091525061075d92505050565b60015460408051600160e01b63c96be4cb0281526001600160a01b038085166004830152915193945091169163c96be4cb9160248082019260009290919082900301818387803b1580156104e957600080fd5b505af11580156104fd573d6000803e3d6000fd5b50505050505050505050505050565b6001546001600160a01b031681565b6000546001600160a01b0316331461056757604051600160e51b62461bcd02815260040180806020018281038252602c815260200180610bec602c913960400191505060405180910390fd5b6001600160a01b0381161561059257600080546001600160a01b0319166001600160a01b0383161790555b50565b8351602080860191909120835191840191909120808214156105eb57604051600160e51b62461bcd028152600401808060200182810382526039815260200180610b576039913960400191505060405180910390fd5b60606105fe6105f98861077b565b6107af565b9050606061060e6105f98761077b565b9050600c8251101580156106245750600c815110155b61066257604051600160e51b62461bcd028152600401808060200182810382526035815260200180610c3c6035913960400191505060405180910390fd5b61066c868661075d565b6001600160a01b031661067f898961075d565b6001600160a01b0316146106c757604051600160e51b62461bcd028152600401808060200182810382526038815260200180610bb46038913960400191505060405180910390fd5b600060056106e884600b815181106106db57fe5b602002602001015161087c565b816106ef57fe5b0490506000600561070684600b815181106106db57fe5b8161070d57fe5b04905080821461075157604051600160e51b62461bcd028152600401808060200182810382526024815260200180610c186024913960400191505060405180910390fd5b50505050505050505050565b8151602083012060009061077181846108dc565b9150505b92915050565b610783610b3c565b600082511161079157600080fd5b5060408051808201909152815181526020828101908201525b919050565b60606107ba826109ad565b6107c357600080fd5b60006107ce836109e7565b90508060405190808252806020026020018201604052801561080a57816020015b6107f7610b3c565b8152602001906001900390816107ef5790505b509150600061081c8460200151610a43565b60208501510190506000805b838110156108735761083983610aac565b915060405180604001604052808381526020018481525085828151811061085c57fe5b602090810291909101015291810191600101610828565b50505050919050565b80516000901580159061089157508151602110155b61089a57600080fd5b60006108a98360200151610a43565b835160208086015183018051939450918490039291908310156108d357826020036101000a820491505b50949350505050565b60008060008084516041146108f75760009350505050610775565b50505060208201516040830151606084015160001a601b81101561091957601b015b8060ff16601b1415801561093157508060ff16601c14155b156109425760009350505050610775565b6040805160008152602080820180845289905260ff8416828401526060820186905260808201859052915160019260a0808401939192601f1981019281900390910190855afa158015610999573d6000803e3d6000fd5b505050602060405103519350505050610775565b80516000906109be575060006107aa565b6020820151805160001a9060c08210156109dd576000925050506107aa565b5060019392505050565b80516000906109f8575060006107aa565b60008090506000610a0c8460200151610a43565b602085015185519181019250015b80821015610a3a57610a2b82610aac565b60019093019290910190610a1a565b50909392505050565b8051600090811a6080811015610a5d5760009150506107aa565b60b8811080610a78575060c08110801590610a78575060f881105b15610a875760019150506107aa565b60c0811015610a9b5760b5190190506107aa565b60f5190190506107aa565b50919050565b8051600090811a6080811015610ac65760019150506107aa565b60b8811015610ada57607e190190506107aa565b60c0811015610b075760b78103600184019350806020036101000a84510460018201810193505050610aa6565b60f8811015610b1b5760be190190506107aa565b60019290920151602083900360f7016101000a900490910160f51901919050565b60405180604001604052806000815260200160008152509056fe45717569766f636174696f6e2063616e2062652070726f76656420666f722074776f20646966666572656e7420626c6f636b73206f6e6c792e54686520636f6e747261637420697320616c726561647920696e697469616c697a65642e5468652074776f20626c6f636b732068617665206265656e207369676e656420627920646966666572656e74206964656e7469746965732e5468652066756e6374696f6e2063616e206f6e6c792062652063616c6c656420627920746865206f776e65725468652074776f20626c6f636b73206861766520646966666572656e742073746570732e546865206e756d626572206f662070726f76696465642068656164657220656e747269657320617265206e6f7420656e6f7567682ea165627a7a72305820dcdc1f334d166387476009b0f88ebb9aaf7558bd195ef55ceccf54557b3aaa990029",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100625760003560e01c8063158ef93e1461006457806319ab453c146100805780638da5cb5b146100a65780639eecabce146100ca578063e94ad65b14610228578063f2fde38b14610230575b005b61006c610256565b604080519115158252519081900360200190f35b6100626004803603602081101561009657600080fd5b50356001600160a01b0316610266565b6100ae610337565b604080516001600160a01b039092168252519081900360200190f35b610062600480360360808110156100e057600080fd5b810190602081018135600160201b8111156100fa57600080fd5b82018360208201111561010c57600080fd5b803590602001918460018302840111600160201b8311171561012d57600080fd5b919390929091602081019035600160201b81111561014a57600080fd5b82018360208201111561015c57600080fd5b803590602001918460018302840111600160201b8311171561017d57600080fd5b919390929091602081019035600160201b81111561019a57600080fd5b8201836020820111156101ac57600080fd5b803590602001918460018302840111600160201b831117156101cd57600080fd5b919390929091602081019035600160201b8111156101ea57600080fd5b8201836020820111156101fc57600080fd5b803590602001918460018302840111600160201b8311171561021d57600080fd5b509092509050610346565b6100ae61050c565b6100626004803603602081101561024657600080fd5b50356001600160a01b031661051b565b600054600160a01b900460ff1681565b6000546001600160a01b031633146102b257604051600160e51b62461bcd02815260040180806020018281038252602c815260200180610bec602c913960400191505060405180910390fd5b600054600160a01b900460ff16156102fe57604051600160e51b62461bcd028152600401808060200182810382526024815260200180610b906024913960400191505060405180910390fd5b600180546001600160a01b039092166001600160a01b031990921691909117905560008054600160a01b60ff021916600160a01b179055565b6000546001600160a01b031681565b61042188888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8c018190048102820181019092528a815292508a915089908190840183828082843760009201919091525050604080516020601f8b01819004810282018101909252898152925089915088908190840183828082843760009201919091525050604080516020601f8a01819004810282018101909252888152925088915087908190840183828082843760009201919091525061059592505050565b600061049689898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a908190840183828082843760009201919091525061075d92505050565b60015460408051600160e01b63c96be4cb0281526001600160a01b038085166004830152915193945091169163c96be4cb9160248082019260009290919082900301818387803b1580156104e957600080fd5b505af11580156104fd573d6000803e3d6000fd5b50505050505050505050505050565b6001546001600160a01b031681565b6000546001600160a01b0316331461056757604051600160e51b62461bcd02815260040180806020018281038252602c815260200180610bec602c913960400191505060405180910390fd5b6001600160a01b0381161561059257600080546001600160a01b0319166001600160a01b0383161790555b50565b8351602080860191909120835191840191909120808214156105eb57604051600160e51b62461bcd028152600401808060200182810382526039815260200180610b576039913960400191505060405180910390fd5b60606105fe6105f98861077b565b6107af565b9050606061060e6105f98761077b565b9050600c8251101580156106245750600c815110155b61066257604051600160e51b62461bcd028152600401808060200182810382526035815260200180610c3c6035913960400191505060405180910390fd5b61066c868661075d565b6001600160a01b031661067f898961075d565b6001600160a01b0316146106c757604051600160e51b62461bcd028152600401808060200182810382526038815260200180610bb46038913960400191505060405180910390fd5b600060056106e884600b815181106106db57fe5b602002602001015161087c565b816106ef57fe5b0490506000600561070684600b815181106106db57fe5b8161070d57fe5b04905080821461075157604051600160e51b62461bcd028152600401808060200182810382526024815260200180610c186024913960400191505060405180910390fd5b50505050505050505050565b8151602083012060009061077181846108dc565b9150505b92915050565b610783610b3c565b600082511161079157600080fd5b5060408051808201909152815181526020828101908201525b919050565b60606107ba826109ad565b6107c357600080fd5b60006107ce836109e7565b90508060405190808252806020026020018201604052801561080a57816020015b6107f7610b3c565b8152602001906001900390816107ef5790505b509150600061081c8460200151610a43565b60208501510190506000805b838110156108735761083983610aac565b915060405180604001604052808381526020018481525085828151811061085c57fe5b602090810291909101015291810191600101610828565b50505050919050565b80516000901580159061089157508151602110155b61089a57600080fd5b60006108a98360200151610a43565b835160208086015183018051939450918490039291908310156108d357826020036101000a820491505b50949350505050565b60008060008084516041146108f75760009350505050610775565b50505060208201516040830151606084015160001a601b81101561091957601b015b8060ff16601b1415801561093157508060ff16601c14155b156109425760009350505050610775565b6040805160008152602080820180845289905260ff8416828401526060820186905260808201859052915160019260a0808401939192601f1981019281900390910190855afa158015610999573d6000803e3d6000fd5b505050602060405103519350505050610775565b80516000906109be575060006107aa565b6020820151805160001a9060c08210156109dd576000925050506107aa565b5060019392505050565b80516000906109f8575060006107aa565b60008090506000610a0c8460200151610a43565b602085015185519181019250015b80821015610a3a57610a2b82610aac565b60019093019290910190610a1a565b50909392505050565b8051600090811a6080811015610a5d5760009150506107aa565b60b8811080610a78575060c08110801590610a78575060f881105b15610a875760019150506107aa565b60c0811015610a9b5760b5190190506107aa565b60f5190190506107aa565b50919050565b8051600090811a6080811015610ac65760019150506107aa565b60b8811015610ada57607e190190506107aa565b60c0811015610b075760b78103600184019350806020036101000a84510460018201810193505050610aa6565b60f8811015610b1b5760be190190506107aa565b60019290920151602083900360f7016101000a900490910160f51901919050565b60405180604001604052806000815260200160008152509056fe45717569766f636174696f6e2063616e2062652070726f76656420666f722074776f20646966666572656e7420626c6f636b73206f6e6c792e54686520636f6e747261637420697320616c726561647920696e697469616c697a65642e5468652074776f20626c6f636b732068617665206265656e207369676e656420627920646966666572656e74206964656e7469746965732e5468652066756e6374696f6e2063616e206f6e6c792062652063616c6c656420627920746865206f776e65725468652074776f20626c6f636b73206861766520646966666572656e742073746570732e546865206e756d626572206f662070726f76696465642068656164657220656e747269657320617265206e6f7420656e6f7567682ea165627a7a72305820dcdc1f334d166387476009b0f88ebb9aaf7558bd195ef55ceccf54557b3aaa990029",
"metadata": {
"compiler": {
"version": "0.5.8+commit.23d335f2"
},
"language": "Solidity",
"output": {
"abi": [
{
"constant": true,
"inputs": [],
"name": "initialized",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_depositContractAddress",
"type": "address"
}
],
"name": "init",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "owner",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"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": "depositContract",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"payable": false,
"stateMutability": "nonpayable",
"type": "fallback"
}
],
"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": {
"reportMaliciousValidator(bytes,bytes,bytes,bytes)": {
"notice": "Report a malicious validator for having equivocated. The reporter must provide the both blocks with their related signature. By the given blocks, the equivocation will be verified. In case a equivocation could been proven, the issuer of the blocks get removed from the set of validators, if his address is registered. Also his deposit will be slashed afterwards. In case any check before removing the malicious validator fails, the whole report procedure fails due to that."
}
}
}
},
"settings": {
"compilationTarget": {
"/home/tlnauction/blockchain/contracts/contracts/auction/ValidatorSlasher.sol": "ValidatorSlasher"
},
"evmVersion": "petersburg",
"libraries": {},
"optimizer": {
"enabled": true,
"runs": 100
},
"remappings": []
},
"sources": {
"/home/tlnauction/blockchain/contracts/contracts/auction/DepositLockerInterface.sol": {
"keccak256": "0x4f7d2d87f32ced891812f9607fc660acffeebadf5855cd5b74571e38b88bb404",
"urls": [
"bzzr://14b3ad45a9ed27aae4644734e5af6a027982e4a1ec9e91050609b47f47de42ba"
]
},
"/home/tlnauction/blockchain/contracts/contracts/auction/ValidatorSlasher.sol": {
"keccak256": "0x9082d50f296d28927e2dbe526b6cc5ab6fca01a3d98cf63dde1a17b4424dd17a",
"urls": [
"bzzr://5ebb1e78b897640eac526f2caa06fbd6554f62a2ed632f55b054f977c7f34458"
]
},
"/home/tlnauction/blockchain/contracts/contracts/equivocation-inspector/EquivocationInspector.sol": {
"keccak256": "0x3d674df1c3717e43d86972709568274161ac24761c4ed7c9fe3973d7ee9be318",
"urls": [
"bzzr://21cf6925be180d4f25df3d11c6025d915e3e1cba7edb6a4b772364b84a17f5e1"
]
},
"/home/tlnauction/blockchain/contracts/contracts/lib/ECDSA.sol": {
"keccak256": "0xed947b4a2a493075e61077c19ea3c7c11bf0587549afebb667dddc33ee91e1f5",
"urls": [
"bzzr://4f2b4f3c5c9cad41f149e6893b0cbb602fd88cb371c6f8adb809c32d993626e6"
]
},
"/home/tlnauction/blockchain/contracts/contracts/lib/Ownable.sol": {
"keccak256": "0x83b735a672f317c6150c9aa54b47ce36253bbc777874305f0c295601bca3022f",
"urls": [
"bzzr://5e0fa20ed4fe5206c6c53c8ec270673db14b040a452f978970383582ecd38eef"
]
},
"/home/tlnauction/blockchain/contracts/contracts/lib/RLPReader.sol": {
"keccak256": "0x2320c4dcca0edb1475083da6084c3d44d8a86893b73c9dfd641d77d915594b06",
"urls": [
"bzzr://330e8c35b473870b02afa2362d8c2d2d4ac955a4052377e868929007c3f56afb"
]
}
},
"version": 1
},
"userdoc": {
"methods": {
"reportMaliciousValidator(bytes,bytes,bytes,bytes)": {
"notice": "Report a malicious validator for having equivocated. The reporter must provide the both blocks with their related signature. By the given blocks, the equivocation will be verified. In case a equivocation could been proven, the issuer of the blocks get removed from the set of validators, if his address is registered. Also his deposit will be slashed afterwards. In case any check before removing the malicious validator fails, the whole report procedure fails due to that."
}
}
}
}