Third Validator Set contracts.json

"ValidatorSet": {
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "_parentHash",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "address[]",
"name": "_newSet",
"type": "address[]"
}
],
"name": "InitiateChange",
"type": "event"
},
{
"inputs": [],
"name": "finalizeChange",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "finalized",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getEpochStartHeights",
"outputs": [
{
"internalType": "uint256[]",
"name": "",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_epochStart",
"type": "uint256"
}
],
"name": "getValidators",
"outputs": [
{
"internalType": "address[]",
"name": "",
"type": "address[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getValidators",
"outputs": [
{
"internalType": "address[]",
"name": "_validators",
"type": "address[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address[]",
"name": "_validators",
"type": "address[]"
},
{
"internalType": "contract ValidatorProxy",
"name": "_validatorProxy",
"type": "address"
}
],
"name": "init",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "initialized",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "pendingValidators",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes",
"name": "_rlpUnsignedHeaderOne",
"type": "bytes"
},
{
"internalType": "bytes",
"name": "_signatureOne",
"type": "bytes"
},
{
"internalType": "bytes",
"name": "_rlpUnsignedHeaderTwo",
"type": "bytes"
},
{
"internalType": "bytes",
"name": "_signatureTwo",
"type": "bytes"
}
],
"name": "reportMaliciousValidator",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "systemAddress",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "validatorProxy",
"outputs": [
{
"internalType": "contract ValidatorProxy",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"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"
}
}
},
"version": 1
},
"bytecode": "0x60806040526000805460ff1916905560048054610100600160a81b031916610200600160a81b0317905534801561003557600080fd5b50611803806100456000396000f3fe608060405234801561001057600080fd5b50600436106100b95760003560e01c80637528621111610081578063b3f05b971161005b578063b3f05b9714610169578063b7ab4db514610171578063d3e848f114610179576100b9565b806375286211146101395780637e1ddf64146101435780639eecabce14610156576100b9565b80630b1ec760146100be578063158ef93e146100dc57806328569e1f146100f1578063471f40fb1461010457806367a3fefc14610124575b600080fd5b6100c6610181565b6040516100d39190611257565b60405180910390f35b6100e4610190565b6040516100d39190611334565b6100c66100ff36600461123f565b610199565b61011761011236600461123f565b6101c3565b6040516100d3919061126b565b61012c610230565b6040516100d391906112fc565b610141610288565b005b610141610151366004611100565b610393565b610141610164366004611180565b6104f4565b6100e4610696565b61011761069f565b6100c6610700565b6005546001600160a01b031681565b60005460ff1681565b600281815481106101a957600080fd5b6000918252602090912001546001600160a01b0316905081565b60008181526007602090815260409182902080548351818402810184019094528084526060939283018282801561022357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610205575b505050505090505b919050565b6060600680548060200260200160405190810160405280929190818152602001828054801561027e57602002820191906000526020600020905b81548152602001906001019080831161026a575b5050505050905090565b60045461010090046001600160a01b031633146102c05760405162461bcd60e51b81526004016102b790611428565b60405180910390fd5b600280546102d091600191610fc4565b506004805460ff1916600190811790915560068054808301909155437ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f9091018190556000908152600760205260409020815461032d9290610fc4565b506005546040516339c5cc7960e21b81526001600160a01b039091169063e71731e49061035f906001906004016112b8565b600060405180830381600087803b15801561037957600080fd5b505af115801561038d573d6000803e3d6000fd5b50505050565b60005460ff16156103b65760405162461bcd60e51b81526004016102b790611659565b6103c260028484611014565b50600580546001600160a01b0319166001600160a01b03831617905560005b828110156104c45760016003600086868581811061040f57634e487b7160e01b600052603260045260246000fd5b905060200201602081019061042491906110dd565b6001600160a01b03166001600160a01b0316815260200190815260200160002060010160006101000a81548160ff021916908315150217905550806003600086868581811061048357634e487b7160e01b600052603260045260246000fd5b905060200201602081019061049891906110dd565b6001600160a01b03168152602081019190915260400160002055806104bc81611784565b9150506103e1565b506104d160018484611014565b505060048054600160ff1991821681179092556000805490911690911790555050565b6105cf88888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8c018190048102820181019092528a815292508a915089908190840183828082843760009201919091525050604080516020601f8b01819004810282018101909252898152925089915088908190840183828082843760009201919091525050604080516020601f8a01819004810282018101909252888152925088915087908190840183828082843760009201919091525061071492505050565b600061064489898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a908190840183828082843760009201919091525061088092505050565b6001600160a01b03811660009081526003602052604090206001015490915060ff166106825760405162461bcd60e51b81526004016102b7906114e2565b61068b8161089e565b505050505050505050565b60045460ff1681565b6060600180548060200260200160405190810160405280929190818152602001828054801561027e57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116106d9575050505050905090565b60045461010090046001600160a01b031681565b8351602080860191909120835191840191909120808214156107485760405162461bcd60e51b81526004016102b790611394565b600061075b61075688610abf565b610af2565b9050600061076b61075687610abf565b9050600c8251101580156107815750600c815110155b61079d5760405162461bcd60e51b81526004016102b7906115fc565b6107a78686610880565b6001600160a01b03166107ba8989610880565b6001600160a01b0316146107e05760405162461bcd60e51b81526004016102b790611485565b6000600561081584600b8151811061080857634e487b7160e01b600052603260045260246000fd5b6020026020010151610c14565b61081f919061172a565b90506000600561084984600b8151811061080857634e487b7160e01b600052603260045260246000fd5b610853919061172a565b90508082146108745760405162461bcd60e51b81526004016102b7906115b8565b50505050505050505050565b815160208301206000906108948184610c8f565b9150505b92915050565b60045460ff166108c05760405162461bcd60e51b81526004016102b79061152a565b6001600160a01b03811660009081526003602052604090206001015460ff166108fb5760405162461bcd60e51b81526004016102b790611690565b6001600160a01b038116600090815260036020526040902054600280546109249060019061174a565b8154811061094257634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600280546001600160a01b03909216918390811061097c57634e487b7160e01b600052603260045260246000fd5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508060036000600284815481106109d057634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020556002805480610a1457634e487b7160e01b600052603160045260246000fd5b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b0384168252600381526040808320928355600192909201805460ff1916905560028054835181840281018401909452808452610abb9392830182828015610ab157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610a93575b5050505050610d9c565b5050565b610ac7611067565b6000825111610ad557600080fd5b506040805180820190915281518152602082810190820152919050565b6060610afd82610dec565b610b0657600080fd5b6000610b1183610e26565b90508067ffffffffffffffff811115610b3a57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610b7357816020015b610b60611067565b815260200190600190039081610b585790505b5091506000610b858460200151610ea9565b8460200151610b9491906116ed565b90506000805b83811015610c0b57610bab83610f34565b9150604051806040016040528083815260200184815250858281518110610be257634e487b7160e01b600052603260045260246000fd5b6020908102919091010152610bf782846116ed565b925080610c0381611784565b915050610b9a565b50505050919050565b805160009015801590610c2957508151602110155b610c3257600080fd5b6000610c418360200151610ea9565b90506000818460000151610c55919061174a565b9050600080838660200151610c6a91906116ed565b9050805191506020831015610c8657826020036101000a820491505b50949350505050565b6000806000808451604114610cb65760405162461bcd60e51b81526004016102b7906113f1565b50505060208201516040830151606084015160001a601b811015610ce257610cdf601b82611705565b90505b8060ff16601b14158015610cfa57508060ff16601c14155b15610d175760405162461bcd60e51b81526004016102b790611576565b600060018783868660405160008152602001604052604051610d3c949392919061133f565b6020604051602081039080840390855afa158015610d5e573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610d915760405162461bcd60e51b81526004016102b79061135d565b935061089892505050565b6004805460ff19169055610db160014361174a565b407f55252fa6eee4741b4e24a74a70e9c11fd2c2281df8d6ea13126ff845f7825c8982604051610de1919061126b565b60405180910390a250565b8051600090610dfd5750600061022b565b6020820151805160001a9060c0821015610e1c5760009250505061022b565b5060019392505050565b8051600090610e375750600061022b565b600080610e478460200151610ea9565b8460200151610e5691906116ed565b9050600084600001518560200151610e6e91906116ed565b90505b80821015610ea057610e8282610f34565b610e8c90836116ed565b915082610e9881611784565b935050610e71565b50909392505050565b8051600090811a6080811015610ec357600091505061022b565b60b8811080610ede575060c08110801590610ede575060f881105b15610eed57600191505061022b565b60c0811015610f2257610f02600160b8611761565b610f0f9060ff168261174a565b610f1a9060016116ed565b91505061022b565b610f02600160f8611761565b50919050565b8051600090811a6080811015610f4e57600191505061022b565b60b8811015610f6257610f0f60808261174a565b60c0811015610f8f5760b78103600184019350806020036101000a84510460018201810193505050610f2e565b60f8811015610fa357610f0f60c08261174a565b60019290920151602083900360f7016101000a900490910160f51901919050565b8280548282559060005260206000209081019282156110045760005260206000209182015b82811115611004578254825591600101919060010190610fe9565b50611010929150611081565b5090565b828054828255906000526020600020908101928215611004579160200282015b828111156110045781546001600160a01b0319166001600160a01b03843516178255602090920191600190910190611034565b604051806040016040528060008152602001600081525090565b5b808211156110105760008155600101611082565b60008083601f8401126110a7578182fd5b50813567ffffffffffffffff8111156110be578182fd5b6020830191508360208285010111156110d657600080fd5b9250929050565b6000602082840312156110ee578081fd5b81356110f9816117b5565b9392505050565b600080600060408486031215611114578182fd5b833567ffffffffffffffff8082111561112b578384fd5b818601915086601f83011261113e578384fd5b81358181111561114c578485fd5b876020808302850101111561115f578485fd5b60209283019550935050840135611175816117b5565b809150509250925092565b6000806000806000806000806080898b03121561119b578384fd5b883567ffffffffffffffff808211156111b2578586fd5b6111be8c838d01611096565b909a50985060208b01359150808211156111d6578586fd5b6111e28c838d01611096565b909850965060408b01359150808211156111fa578586fd5b6112068c838d01611096565b909650945060608b013591508082111561121e578384fd5b5061122b8b828c01611096565b999c989b5096995094979396929594505050565b600060208284031215611250578081fd5b5035919050565b6001600160a01b0391909116815260200190565b6020808252825182820181905260009190848201906040850190845b818110156112ac5783516001600160a01b031683529284019291840191600101611287565b50909695505050505050565b6020808252825482820181905260008481528281209092916040850190845b818110156112ac5783546001600160a01b0316835260019384019392850192016112d7565b6020808252825182820181905260009190848201906040850190845b818110156112ac57835183529284019291840191600101611318565b901515815260200190565b93845260ff9290921660208401526040830152606082015260800190565b60208082526018908201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604082015260600190565b60208082526039908201527f45717569766f636174696f6e2063616e2062652070726f76656420666f72207460408201527f776f20646966666572656e7420626c6f636b73206f6e6c792e00000000000000606082015260800190565b6020808252601f908201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604082015260600190565b60208082526034908201527f54686520616363657373206973207265737472696374656420746f207468652060408201527f73797374656d2061646472657373206f6e6c792e000000000000000000000000606082015260800190565b60208082526038908201527f5468652074776f20626c6f636b732068617665206265656e207369676e65642060408201527f627920646966666572656e74206964656e7469746965732e0000000000000000606082015260800190565b60208082526028908201527f546865207265706f727465642061646472657373206973206e6f7420612076616040820152673634b230ba37b91760c11b606082015260800190565b6020808252602c908201527f546865206c6173742076616c696461746f72206368616e6765206d757374206260408201526b32903334b730b634bd32b21760a11b606082015260800190565b60208082526022908201527f45434453413a20696e636f7272656374207369676e617475726520766572736960408201526137b760f11b606082015260800190565b60208082526024908201527f5468652074776f20626c6f636b73206861766520646966666572656e7420737460408201526332b8399760e11b606082015260800190565b60208082526035908201527f546865206e756d626572206f662070726f76696465642068656164657220656e60408201527f747269657320617265206e6f7420656e6f7567682e0000000000000000000000606082015260800190565b60208082526019908201527f43616e206e6f7420696e697469616c697a652074776963652e00000000000000604082015260600190565b60208082526031908201527f54686520676976656e206164647265737320646f6573206e6f742062656c6f6e60408201527f6720746f20612076616c696461746f722e000000000000000000000000000000606082015260800190565b600082198211156117005761170061179f565b500190565b600060ff821660ff84168060ff038211156117225761172261179f565b019392505050565b60008261174557634e487b7160e01b81526012600452602481fd5b500490565b60008282101561175c5761175c61179f565b500390565b600060ff821660ff84168082101561177b5761177b61179f565b90039392505050565b60006000198214156117985761179861179f565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03811681146117ca57600080fd5b5056fea2646970667358221220d14d8c06dcc38fd2bea4126db156b4b17336c72cac0b41178ec6e67de064065a64736f6c63430008000033",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100b95760003560e01c80637528621111610081578063b3f05b971161005b578063b3f05b9714610169578063b7ab4db514610171578063d3e848f114610179576100b9565b806375286211146101395780637e1ddf64146101435780639eecabce14610156576100b9565b80630b1ec760146100be578063158ef93e146100dc57806328569e1f146100f1578063471f40fb1461010457806367a3fefc14610124575b600080fd5b6100c6610181565b6040516100d39190611257565b60405180910390f35b6100e4610190565b6040516100d39190611334565b6100c66100ff36600461123f565b610199565b61011761011236600461123f565b6101c3565b6040516100d3919061126b565b61012c610230565b6040516100d391906112fc565b610141610288565b005b610141610151366004611100565b610393565b610141610164366004611180565b6104f4565b6100e4610696565b61011761069f565b6100c6610700565b6005546001600160a01b031681565b60005460ff1681565b600281815481106101a957600080fd5b6000918252602090912001546001600160a01b0316905081565b60008181526007602090815260409182902080548351818402810184019094528084526060939283018282801561022357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610205575b505050505090505b919050565b6060600680548060200260200160405190810160405280929190818152602001828054801561027e57602002820191906000526020600020905b81548152602001906001019080831161026a575b5050505050905090565b60045461010090046001600160a01b031633146102c05760405162461bcd60e51b81526004016102b790611428565b60405180910390fd5b600280546102d091600191610fc4565b506004805460ff1916600190811790915560068054808301909155437ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f9091018190556000908152600760205260409020815461032d9290610fc4565b506005546040516339c5cc7960e21b81526001600160a01b039091169063e71731e49061035f906001906004016112b8565b600060405180830381600087803b15801561037957600080fd5b505af115801561038d573d6000803e3d6000fd5b50505050565b60005460ff16156103b65760405162461bcd60e51b81526004016102b790611659565b6103c260028484611014565b50600580546001600160a01b0319166001600160a01b03831617905560005b828110156104c45760016003600086868581811061040f57634e487b7160e01b600052603260045260246000fd5b905060200201602081019061042491906110dd565b6001600160a01b03166001600160a01b0316815260200190815260200160002060010160006101000a81548160ff021916908315150217905550806003600086868581811061048357634e487b7160e01b600052603260045260246000fd5b905060200201602081019061049891906110dd565b6001600160a01b03168152602081019190915260400160002055806104bc81611784565b9150506103e1565b506104d160018484611014565b505060048054600160ff1991821681179092556000805490911690911790555050565b6105cf88888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8c018190048102820181019092528a815292508a915089908190840183828082843760009201919091525050604080516020601f8b01819004810282018101909252898152925089915088908190840183828082843760009201919091525050604080516020601f8a01819004810282018101909252888152925088915087908190840183828082843760009201919091525061071492505050565b600061064489898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a908190840183828082843760009201919091525061088092505050565b6001600160a01b03811660009081526003602052604090206001015490915060ff166106825760405162461bcd60e51b81526004016102b7906114e2565b61068b8161089e565b505050505050505050565b60045460ff1681565b6060600180548060200260200160405190810160405280929190818152602001828054801561027e57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116106d9575050505050905090565b60045461010090046001600160a01b031681565b8351602080860191909120835191840191909120808214156107485760405162461bcd60e51b81526004016102b790611394565b600061075b61075688610abf565b610af2565b9050600061076b61075687610abf565b9050600c8251101580156107815750600c815110155b61079d5760405162461bcd60e51b81526004016102b7906115fc565b6107a78686610880565b6001600160a01b03166107ba8989610880565b6001600160a01b0316146107e05760405162461bcd60e51b81526004016102b790611485565b6000600561081584600b8151811061080857634e487b7160e01b600052603260045260246000fd5b6020026020010151610c14565b61081f919061172a565b90506000600561084984600b8151811061080857634e487b7160e01b600052603260045260246000fd5b610853919061172a565b90508082146108745760405162461bcd60e51b81526004016102b7906115b8565b50505050505050505050565b815160208301206000906108948184610c8f565b9150505b92915050565b60045460ff166108c05760405162461bcd60e51b81526004016102b79061152a565b6001600160a01b03811660009081526003602052604090206001015460ff166108fb5760405162461bcd60e51b81526004016102b790611690565b6001600160a01b038116600090815260036020526040902054600280546109249060019061174a565b8154811061094257634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600280546001600160a01b03909216918390811061097c57634e487b7160e01b600052603260045260246000fd5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508060036000600284815481106109d057634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020556002805480610a1457634e487b7160e01b600052603160045260246000fd5b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b0384168252600381526040808320928355600192909201805460ff1916905560028054835181840281018401909452808452610abb9392830182828015610ab157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610a93575b5050505050610d9c565b5050565b610ac7611067565b6000825111610ad557600080fd5b506040805180820190915281518152602082810190820152919050565b6060610afd82610dec565b610b0657600080fd5b6000610b1183610e26565b90508067ffffffffffffffff811115610b3a57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610b7357816020015b610b60611067565b815260200190600190039081610b585790505b5091506000610b858460200151610ea9565b8460200151610b9491906116ed565b90506000805b83811015610c0b57610bab83610f34565b9150604051806040016040528083815260200184815250858281518110610be257634e487b7160e01b600052603260045260246000fd5b6020908102919091010152610bf782846116ed565b925080610c0381611784565b915050610b9a565b50505050919050565b805160009015801590610c2957508151602110155b610c3257600080fd5b6000610c418360200151610ea9565b90506000818460000151610c55919061174a565b9050600080838660200151610c6a91906116ed565b9050805191506020831015610c8657826020036101000a820491505b50949350505050565b6000806000808451604114610cb65760405162461bcd60e51b81526004016102b7906113f1565b50505060208201516040830151606084015160001a601b811015610ce257610cdf601b82611705565b90505b8060ff16601b14158015610cfa57508060ff16601c14155b15610d175760405162461bcd60e51b81526004016102b790611576565b600060018783868660405160008152602001604052604051610d3c949392919061133f565b6020604051602081039080840390855afa158015610d5e573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610d915760405162461bcd60e51b81526004016102b79061135d565b935061089892505050565b6004805460ff19169055610db160014361174a565b407f55252fa6eee4741b4e24a74a70e9c11fd2c2281df8d6ea13126ff845f7825c8982604051610de1919061126b565b60405180910390a250565b8051600090610dfd5750600061022b565b6020820151805160001a9060c0821015610e1c5760009250505061022b565b5060019392505050565b8051600090610e375750600061022b565b600080610e478460200151610ea9565b8460200151610e5691906116ed565b9050600084600001518560200151610e6e91906116ed565b90505b80821015610ea057610e8282610f34565b610e8c90836116ed565b915082610e9881611784565b935050610e71565b50909392505050565b8051600090811a6080811015610ec357600091505061022b565b60b8811080610ede575060c08110801590610ede575060f881105b15610eed57600191505061022b565b60c0811015610f2257610f02600160b8611761565b610f0f9060ff168261174a565b610f1a9060016116ed565b91505061022b565b610f02600160f8611761565b50919050565b8051600090811a6080811015610f4e57600191505061022b565b60b8811015610f6257610f0f60808261174a565b60c0811015610f8f5760b78103600184019350806020036101000a84510460018201810193505050610f2e565b60f8811015610fa357610f0f60c08261174a565b60019290920151602083900360f7016101000a900490910160f51901919050565b8280548282559060005260206000209081019282156110045760005260206000209182015b82811115611004578254825591600101919060010190610fe9565b50611010929150611081565b5090565b828054828255906000526020600020908101928215611004579160200282015b828111156110045781546001600160a01b0319166001600160a01b03843516178255602090920191600190910190611034565b604051806040016040528060008152602001600081525090565b5b808211156110105760008155600101611082565b60008083601f8401126110a7578182fd5b50813567ffffffffffffffff8111156110be578182fd5b6020830191508360208285010111156110d657600080fd5b9250929050565b6000602082840312156110ee578081fd5b81356110f9816117b5565b9392505050565b600080600060408486031215611114578182fd5b833567ffffffffffffffff8082111561112b578384fd5b818601915086601f83011261113e578384fd5b81358181111561114c578485fd5b876020808302850101111561115f578485fd5b60209283019550935050840135611175816117b5565b809150509250925092565b6000806000806000806000806080898b03121561119b578384fd5b883567ffffffffffffffff808211156111b2578586fd5b6111be8c838d01611096565b909a50985060208b01359150808211156111d6578586fd5b6111e28c838d01611096565b909850965060408b01359150808211156111fa578586fd5b6112068c838d01611096565b909650945060608b013591508082111561121e578384fd5b5061122b8b828c01611096565b999c989b5096995094979396929594505050565b600060208284031215611250578081fd5b5035919050565b6001600160a01b0391909116815260200190565b6020808252825182820181905260009190848201906040850190845b818110156112ac5783516001600160a01b031683529284019291840191600101611287565b50909695505050505050565b6020808252825482820181905260008481528281209092916040850190845b818110156112ac5783546001600160a01b0316835260019384019392850192016112d7565b6020808252825182820181905260009190848201906040850190845b818110156112ac57835183529284019291840191600101611318565b901515815260200190565b93845260ff9290921660208401526040830152606082015260800190565b60208082526018908201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604082015260600190565b60208082526039908201527f45717569766f636174696f6e2063616e2062652070726f76656420666f72207460408201527f776f20646966666572656e7420626c6f636b73206f6e6c792e00000000000000606082015260800190565b6020808252601f908201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604082015260600190565b60208082526034908201527f54686520616363657373206973207265737472696374656420746f207468652060408201527f73797374656d2061646472657373206f6e6c792e000000000000000000000000606082015260800190565b60208082526038908201527f5468652074776f20626c6f636b732068617665206265656e207369676e65642060408201527f627920646966666572656e74206964656e7469746965732e0000000000000000606082015260800190565b60208082526028908201527f546865207265706f727465642061646472657373206973206e6f7420612076616040820152673634b230ba37b91760c11b606082015260800190565b6020808252602c908201527f546865206c6173742076616c696461746f72206368616e6765206d757374206260408201526b32903334b730b634bd32b21760a11b606082015260800190565b60208082526022908201527f45434453413a20696e636f7272656374207369676e617475726520766572736960408201526137b760f11b606082015260800190565b60208082526024908201527f5468652074776f20626c6f636b73206861766520646966666572656e7420737460408201526332b8399760e11b606082015260800190565b60208082526035908201527f546865206e756d626572206f662070726f76696465642068656164657220656e60408201527f747269657320617265206e6f7420656e6f7567682e0000000000000000000000606082015260800190565b60208082526019908201527f43616e206e6f7420696e697469616c697a652074776963652e00000000000000604082015260600190565b60208082526031908201527f54686520676976656e206164647265737320646f6573206e6f742062656c6f6e60408201527f6720746f20612076616c696461746f722e000000000000000000000000000000606082015260800190565b600082198211156117005761170061179f565b500190565b600060ff821660ff84168060ff038211156117225761172261179f565b019392505050565b60008261174557634e487b7160e01b81526012600452602481fd5b500490565b60008282101561175c5761175c61179f565b500390565b600060ff821660ff84168082101561177b5761177b61179f565b90039392505050565b60006000198214156117985761179861179f565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03811681146117ca57600080fd5b5056fea2646970667358221220d14d8c06dcc38fd2bea4126db156b4b17336c72cac0b41178ec6e67de064065a64736f6c63430008000033",
"metadata": {
"compiler": {
"version": "0.8.0+commit.c7dfd78e"
},
"language": "Solidity",
"output": {
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "_parentHash",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "address[]",
"name": "_newSet",
"type": "address[]"
}
],
"name": "InitiateChange",
"type": "event"
},
{
"inputs": [],
"name": "finalizeChange",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "finalized",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getEpochStartHeights",
"outputs": [
{
"internalType": "uint256[]",
"name": "",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_epochStart",
"type": "uint256"
}
],
"name": "getValidators",
"outputs": [
{
"internalType": "address[]",
"name": "",
"type": "address[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getValidators",
"outputs": [
{
"internalType": "address[]",
"name": "_validators",
"type": "address[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address[]",
"name": "_validators",
"type": "address[]"
},
{
"internalType": "contract ValidatorProxy",
"name": "_validatorProxy",
"type": "address"
}
],
"name": "init",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "initialized",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "pendingValidators",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes",
"name": "_rlpUnsignedHeaderOne",
"type": "bytes"
},
{
"internalType": "bytes",
"name": "_signatureOne",
"type": "bytes"
},
{
"internalType": "bytes",
"name": "_rlpUnsignedHeaderTwo",
"type": "bytes"
},
{
"internalType": "bytes",
"name": "_signatureTwo",
"type": "bytes"
}
],
"name": "reportMaliciousValidator",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "systemAddress",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "validatorProxy",
"outputs": [
{
"internalType": "contract ValidatorProxy",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"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"
}
}
},
"version": 1
},
"userdoc": {
"events": {
"InitiateChange(bytes32,address[])": {
"notice": "Issue this log event to signal a desired change in validator set. This will not lead to a change in active validator set until finalizeChange is called. Only the last log event of any block can take effect. If a signal is issued while another is being finalized it may never take effect. _parent_hash here should be the parent block hash, or the signal will not be recognized."
}
},
"kind": "user",
"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."
}
},
"version": 1
}
},
"settings": {
"compilationTarget": {
"/Users/danieldimitrov/Development/brainbot/blockchain/contracts/contracts/tlc-validator/ValidatorSet.sol": "ValidatorSet"
},
"evmVersion": "petersburg",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": true,
"runs": 500
},
"remappings": []
},
"sources": {
"/Users/danieldimitrov/Development/brainbot/blockchain/contracts/contracts/equivocation-inspector/EquivocationInspector.sol": {
"keccak256": "0xf31a86abdbb022534b669b9d281bece770b42be50d94a695c92848331338e5c4",
"license": "MIT",
"urls": [
"bzz-raw://aec6b538d9fcae67e2b72c82c22f7e4caeb6da0a4a14369fd544f51e69c38f88",
"dweb:/ipfs/QmUxyaoF2XNaqewJC6KpuVsNNat2rvJCgwgu9jWxdKEMr5"
]
},
"/Users/danieldimitrov/Development/brainbot/blockchain/contracts/contracts/lib/ECDSA.sol": {
"keccak256": "0x74d79020626c53e7975a265a2821efb217b9b0a80e5fb8f87ad8cd8855915a6b",
"license": "MIT",
"urls": [
"bzz-raw://bd7229efe10cc9f9dbec997f036fb880d30dbedc19cc9e71d72aa626a2907b23",
"dweb:/ipfs/QmXA4gsAC8yArvRFPJXynYhZ5xoeoKiQd1VXZEx1D6Dr5D"
]
},
"/Users/danieldimitrov/Development/brainbot/blockchain/contracts/contracts/lib/RLPReader.sol": {
"keccak256": "0x98bda1159254d38c65db44faa426879afde7092717a830ff4b119609d415c147",
"license": "Apache-2.0",
"urls": [
"bzz-raw://6c49b8d8d221f5cd8863451b2416d3e118e1ab214c707611926b7e6ac5e2efed",
"dweb:/ipfs/QmPwmS3aLYcGENyTbf1oKDMKptgZWATBvPWGr9Aax1LNC7"
]
},
"/Users/danieldimitrov/Development/brainbot/blockchain/contracts/contracts/tlc-validator/ValidatorProxy.sol": {
"keccak256": "0x254cdb2be9edffb435d30144978bd9e98de1ab672d1d685dc7ed9f254a4f9920",
"license": "MIT",
"urls": [
"bzz-raw://48f323e89bcfc4591590aac6277fa2623715dd028fcfe9f1e40dd39bc7c7c1e9",
"dweb:/ipfs/QmPFANyYkbFF3XbA2KqZbWxwDo5y866nNWDgiM83RjEUck"
]
},
"/Users/danieldimitrov/Development/brainbot/blockchain/contracts/contracts/tlc-validator/ValidatorSet.sol": {
"keccak256": "0x58ff550606134a924c63641d66bdc9f49936a006ce4b65b1b2294f5e330f3b49",
"license": "MIT",
"urls": [
"bzz-raw://5b6d582e32a2866e28a517806415dabbece90170f345202319c8685f146b8715",
"dweb:/ipfs/QmQjVv41tFAA9vWRqQtvJQ9L7UmNL22Gbwiic6EKyLkKRe"
]
}
},
"version": 1
},
"userdoc": {
"events": {
"InitiateChange(bytes32,address[])": {
"notice": "Issue this log event to signal a desired change in validator set. This will not lead to a change in active validator set until finalizeChange is called. Only the last log event of any block can take effect. If a signal is issued while another is being finalized it may never take effect. _parent_hash here should be the parent block hash, or the signal will not be recognized."
}
},
"kind": "user",
"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."
}
},
"version": 1
}
},