{
  "_format": "hh-sol-artifact-1",
  "contractName": "Keep3rDisputableForTest",
  "sourceName": "solidity/for-test/peripherals/Keep3rDisputableForTest.sol",
  "abi": [
    {
      "inputs": [],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "AlreadyDisputed",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "DisputerExistent",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "DisputerUnexistent",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "JobDisputed",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "JobUnavailable",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "NoGovernanceZeroAddress",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "NotDisputed",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "OnlyDisputer",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "OnlyGovernance",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "OnlyPendingGovernance",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "OnlySlasher",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "SlasherExistent",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "SlasherUnexistent",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "_keeper",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_bonding",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "Bonding",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "_jobOrKeeper",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_disputer",
          "type": "address"
        }
      ],
      "name": "Dispute",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "_disputer",
          "type": "address"
        }
      ],
      "name": "DisputerAdded",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "_disputer",
          "type": "address"
        }
      ],
      "name": "DisputerRemoved",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "_pendingGovernance",
          "type": "address"
        }
      ],
      "name": "GovernanceProposal",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "_governance",
          "type": "address"
        }
      ],
      "name": "GovernanceSet",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "_jobOrKeeper",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_resolver",
          "type": "address"
        }
      ],
      "name": "Resolve",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "_slasher",
          "type": "address"
        }
      ],
      "name": "SlasherAdded",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "_slasher",
          "type": "address"
        }
      ],
      "name": "SlasherRemoved",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "_keeperOrJob",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_unbonding",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "Unbonding",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "acceptGovernance",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_disputer",
          "type": "address"
        }
      ],
      "name": "addDisputer",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_slasher",
          "type": "address"
        }
      ],
      "name": "addSlasher",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "bonds",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "canActivateAfter",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "canWithdrawAfter",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_jobOrKeeper",
          "type": "address"
        }
      ],
      "name": "dispute",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "disputers",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "disputes",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "firstSeen",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "governance",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "hasBonded",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "jobTokenCredits",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "jobs",
      "outputs": [
        {
          "internalType": "address[]",
          "name": "_list",
          "type": "address[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "keepers",
      "outputs": [
        {
          "internalType": "address[]",
          "name": "_list",
          "type": "address[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "pendingBonds",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "pendingGovernance",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "pendingUnbonds",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_disputer",
          "type": "address"
        }
      ],
      "name": "removeDisputer",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_slasher",
          "type": "address"
        }
      ],
      "name": "removeSlasher",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_jobOrKeeper",
          "type": "address"
        }
      ],
      "name": "resolve",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_governance",
          "type": "address"
        }
      ],
      "name": "setGovernance",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "slashers",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "workCompleted",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b503380806100305760405162b293ed60e81b815260040160405180910390fd5b601480546001600160a01b0319166001600160a01b039290921691909117905550610aec806100606000396000f3fe608060405234801561001057600080fd5b50600436106101385760003560e01c8063951dc22c116100b3578063951dc22c146102d75780639d5c33d8146102df578063a39744b5146102f2578063aac6aa9c1461031d578063ab033ea914610330578063b0103b1a14610343578063b87fcbff14610366578063cd22af1b14610389578063e326ac43146103b4578063f0f346b9146103d4578063f39c38a0146103e7578063f75f9f7b146103fa57600080fd5b806307b435c21461013d57806315006b821461017b578063168f92e7146101a65780631b44555e146101d157806321040b01146101f1578063238efcbc1461021c578063274a8db41461022657806355ea6c47146102595780635aa6e6751461026c57806368a9f19c1461028c5780637c8fce231461029f5780638cb22b76146102b4575b600080fd5b61016861014b366004610a22565b600f60209081526000928352604080842090915290825290205481565b6040519081526020015b60405180910390f35b610168610189366004610a22565b600d60209081526000928352604080842090915290825290205481565b6101686101b4366004610a22565b600660209081526000928352604080842090915290825290205481565b6101686101df366004610a07565b60026020526000908152604090205481565b6101686101ff366004610a22565b601060209081526000928352604080842090915290825290205481565b61022461040d565b005b610249610234366004610a07565b60176020526000908152604090205460ff1681565b6040519015158152602001610172565b610224610267366004610a07565b610499565b60145461027f906001600160a01b031681565b6040516101729190610a55565b61022461029a366004610a07565b61054d565b6102a7610610565b6040516101729190610a69565b6102496102c2366004610a07565b60116020526000908152604090205460ff1681565b6102a7610621565b6102246102ed366004610a07565b61062d565b610168610300366004610a22565b600560209081526000928352604080842090915290825290205481565b61022461032b366004610a07565b6106e5565b61022461033e366004610a07565b610799565b610249610351366004610a07565b60046020526000908152604090205460ff1681565b610249610374366004610a07565b60166020526000908152604090205460ff1681565b610168610397366004610a22565b600e60209081526000928352604080842090915290825290205481565b6101686103c2366004610a07565b60036020526000908152604090205481565b6102246103e2366004610a07565b61080f565b60155461027f906001600160a01b031681565b610224610408366004610a07565b6108c3565b6015546001600160a01b0316331461043857604051637ef5703160e11b815260040160405180910390fd5b60158054601480546001600160a01b0383166001600160a01b031991821681179092559091169091556040517fc73be659241aade67e9a059bcf21494955018b213dbd1179054ccf928b13f3b69161048f91610a55565b60405180910390a1565b3360009081526017602052604090205460ff166104c957604051630942721960e31b815260040160405180910390fd5b6001600160a01b03811660009081526004602052604090205460ff16610502576040516310cec38560e21b815260040160405180910390fd5b6001600160a01b038116600081815260046020526040808220805460ff19169055513392917fe02b2375d8fb4aef3e5bc5d53bffcf70b6f185c5c93e69dcbe8b6cfc58e837e291a350565b6014546001600160a01b03163314610578576040516354348f0360e01b815260040160405180910390fd5b6001600160a01b03811660009081526016602052604090205460ff16156105b25760405163546da66560e11b815260040160405180910390fd5b6001600160a01b03811660009081526016602052604090819020805460ff19166001179055517f049ccb28ab796d3225573a065712f6e7754487ced56056cda8889c337511807b90610605908390610a55565b60405180910390a150565b606061061c601261097b565b905090565b606061061c600061097b565b6014546001600160a01b03163314610658576040516354348f0360e01b815260040160405180910390fd5b6001600160a01b03811660009081526017602052604090205460ff16156106925760405163274e25dd60e11b815260040160405180910390fd5b6001600160a01b03811660009081526017602052604090819020805460ff19166001179055517f8addc69f897ecca0e41d70ed4ff9d75a9148a615a0fbda8597e53aea2684302f90610605908390610a55565b6014546001600160a01b03163314610710576040516354348f0360e01b815260040160405180910390fd5b6001600160a01b03811660009081526016602052604090205460ff16610749576040516336fe17e760e21b815260040160405180910390fd5b6001600160a01b03811660009081526016602052604090819020805460ff19169055517f3ed8cbce8cab40e59282f1743e2b607effa08b5cbe0111bb4721134f2f80d02590610605908390610a55565b6014546001600160a01b031633146107c4576040516354348f0360e01b815260040160405180910390fd5b601580546001600160a01b0319166001600160a01b0383161790556040517fe987aaedf9d279143bdf1eee16cf1d0feb47742867d81083df8d6cd0a5ac857f90610605908390610a55565b6014546001600160a01b0316331461083a576040516354348f0360e01b815260040160405180910390fd5b6001600160a01b03811660009081526017602052604090205460ff1661087357604051633ca0d42760e11b815260040160405180910390fd5b6001600160a01b03811660009081526017602052604090819020805460ff19169055517f5e8bd21d0a98cb2caf33706e56139ff40ffbdca7ec5d9d412a0a2292496dc70e90610605908390610a55565b3360009081526017602052604090205460ff166108f357604051630942721960e31b815260040160405180910390fd5b6001600160a01b03811660009081526004602052604090205460ff161561092d576040516304ee891b60e11b815260040160405180910390fd5b6001600160a01b038116600081815260046020526040808220805460ff19166001179055513392917f070125a1c0f5202217aae14ec399abfaaa13c2fd98a91d43bd3a897dd4751e8091a350565b606060006109888361098f565b9392505050565b6060816000018054806020026020016040519081016040528092919081815260200182805480156109df57602002820191906000526020600020905b8154815260200190600101908083116109cb575b50505050509050919050565b80356001600160a01b0381168114610a0257600080fd5b919050565b600060208284031215610a1957600080fd5b610988826109eb565b60008060408385031215610a3557600080fd5b610a3e836109eb565b9150610a4c602084016109eb565b90509250929050565b6001600160a01b0391909116815260200190565b6020808252825182820181905260009190848201906040850190845b81811015610aaa5783516001600160a01b031683529284019291840191600101610a85565b5090969550505050505056fea26469706673582212207ad60a451eb391cb77b0cdb07a455859813f21ae461f714a332ac7ad5412b1b264736f6c63430008070033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101385760003560e01c8063951dc22c116100b3578063951dc22c146102d75780639d5c33d8146102df578063a39744b5146102f2578063aac6aa9c1461031d578063ab033ea914610330578063b0103b1a14610343578063b87fcbff14610366578063cd22af1b14610389578063e326ac43146103b4578063f0f346b9146103d4578063f39c38a0146103e7578063f75f9f7b146103fa57600080fd5b806307b435c21461013d57806315006b821461017b578063168f92e7146101a65780631b44555e146101d157806321040b01146101f1578063238efcbc1461021c578063274a8db41461022657806355ea6c47146102595780635aa6e6751461026c57806368a9f19c1461028c5780637c8fce231461029f5780638cb22b76146102b4575b600080fd5b61016861014b366004610a22565b600f60209081526000928352604080842090915290825290205481565b6040519081526020015b60405180910390f35b610168610189366004610a22565b600d60209081526000928352604080842090915290825290205481565b6101686101b4366004610a22565b600660209081526000928352604080842090915290825290205481565b6101686101df366004610a07565b60026020526000908152604090205481565b6101686101ff366004610a22565b601060209081526000928352604080842090915290825290205481565b61022461040d565b005b610249610234366004610a07565b60176020526000908152604090205460ff1681565b6040519015158152602001610172565b610224610267366004610a07565b610499565b60145461027f906001600160a01b031681565b6040516101729190610a55565b61022461029a366004610a07565b61054d565b6102a7610610565b6040516101729190610a69565b6102496102c2366004610a07565b60116020526000908152604090205460ff1681565b6102a7610621565b6102246102ed366004610a07565b61062d565b610168610300366004610a22565b600560209081526000928352604080842090915290825290205481565b61022461032b366004610a07565b6106e5565b61022461033e366004610a07565b610799565b610249610351366004610a07565b60046020526000908152604090205460ff1681565b610249610374366004610a07565b60166020526000908152604090205460ff1681565b610168610397366004610a22565b600e60209081526000928352604080842090915290825290205481565b6101686103c2366004610a07565b60036020526000908152604090205481565b6102246103e2366004610a07565b61080f565b60155461027f906001600160a01b031681565b610224610408366004610a07565b6108c3565b6015546001600160a01b0316331461043857604051637ef5703160e11b815260040160405180910390fd5b60158054601480546001600160a01b0383166001600160a01b031991821681179092559091169091556040517fc73be659241aade67e9a059bcf21494955018b213dbd1179054ccf928b13f3b69161048f91610a55565b60405180910390a1565b3360009081526017602052604090205460ff166104c957604051630942721960e31b815260040160405180910390fd5b6001600160a01b03811660009081526004602052604090205460ff16610502576040516310cec38560e21b815260040160405180910390fd5b6001600160a01b038116600081815260046020526040808220805460ff19169055513392917fe02b2375d8fb4aef3e5bc5d53bffcf70b6f185c5c93e69dcbe8b6cfc58e837e291a350565b6014546001600160a01b03163314610578576040516354348f0360e01b815260040160405180910390fd5b6001600160a01b03811660009081526016602052604090205460ff16156105b25760405163546da66560e11b815260040160405180910390fd5b6001600160a01b03811660009081526016602052604090819020805460ff19166001179055517f049ccb28ab796d3225573a065712f6e7754487ced56056cda8889c337511807b90610605908390610a55565b60405180910390a150565b606061061c601261097b565b905090565b606061061c600061097b565b6014546001600160a01b03163314610658576040516354348f0360e01b815260040160405180910390fd5b6001600160a01b03811660009081526017602052604090205460ff16156106925760405163274e25dd60e11b815260040160405180910390fd5b6001600160a01b03811660009081526017602052604090819020805460ff19166001179055517f8addc69f897ecca0e41d70ed4ff9d75a9148a615a0fbda8597e53aea2684302f90610605908390610a55565b6014546001600160a01b03163314610710576040516354348f0360e01b815260040160405180910390fd5b6001600160a01b03811660009081526016602052604090205460ff16610749576040516336fe17e760e21b815260040160405180910390fd5b6001600160a01b03811660009081526016602052604090819020805460ff19169055517f3ed8cbce8cab40e59282f1743e2b607effa08b5cbe0111bb4721134f2f80d02590610605908390610a55565b6014546001600160a01b031633146107c4576040516354348f0360e01b815260040160405180910390fd5b601580546001600160a01b0319166001600160a01b0383161790556040517fe987aaedf9d279143bdf1eee16cf1d0feb47742867d81083df8d6cd0a5ac857f90610605908390610a55565b6014546001600160a01b0316331461083a576040516354348f0360e01b815260040160405180910390fd5b6001600160a01b03811660009081526017602052604090205460ff1661087357604051633ca0d42760e11b815260040160405180910390fd5b6001600160a01b03811660009081526017602052604090819020805460ff19169055517f5e8bd21d0a98cb2caf33706e56139ff40ffbdca7ec5d9d412a0a2292496dc70e90610605908390610a55565b3360009081526017602052604090205460ff166108f357604051630942721960e31b815260040160405180910390fd5b6001600160a01b03811660009081526004602052604090205460ff161561092d576040516304ee891b60e11b815260040160405180910390fd5b6001600160a01b038116600081815260046020526040808220805460ff19166001179055513392917f070125a1c0f5202217aae14ec399abfaaa13c2fd98a91d43bd3a897dd4751e8091a350565b606060006109888361098f565b9392505050565b6060816000018054806020026020016040519081016040528092919081815260200182805480156109df57602002820191906000526020600020905b8154815260200190600101908083116109cb575b50505050509050919050565b80356001600160a01b0381168114610a0257600080fd5b919050565b600060208284031215610a1957600080fd5b610988826109eb565b60008060408385031215610a3557600080fd5b610a3e836109eb565b9150610a4c602084016109eb565b90509250929050565b6001600160a01b0391909116815260200190565b6020808252825182820181905260009190848201906040850190845b81811015610aaa5783516001600160a01b031683529284019291840191600101610a85565b5090969550505050505056fea26469706673582212207ad60a451eb391cb77b0cdb07a455859813f21ae461f714a332ac7ad5412b1b264736f6c63430008070033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
