{
  "_format": "hh-sol-artifact-1",
  "contractName": "CleanupBlockNumberManager",
  "sourceName": "contracts/token/implementation/CleanupBlockNumberManager.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_governance",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "contract IICleanable",
          "name": "theContract",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "blockNumber",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "success",
          "type": "bool"
        }
      ],
      "name": "CleanupBlockNumberSet",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "proposedGovernance",
          "type": "address"
        }
      ],
      "name": "GovernanceProposed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "oldGovernance",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "newGoveranance",
          "type": "address"
        }
      ],
      "name": "GovernanceUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "contract IICleanable",
          "name": "theContract",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "add",
          "type": "bool"
        }
      ],
      "name": "RegistrationUpdated",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "claimGovernance",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "governance",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_governance",
          "type": "address"
        }
      ],
      "name": "initialise",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_governance",
          "type": "address"
        }
      ],
      "name": "proposeGovernance",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "proposedGovernance",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IICleanable",
          "name": "_cleanableToken",
          "type": "address"
        }
      ],
      "name": "registerToken",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "registeredTokens",
      "outputs": [
        {
          "internalType": "contract IICleanable",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_blockNumber",
          "type": "uint256"
        }
      ],
      "name": "setCleanUpBlockNumber",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_triggerContract",
          "type": "address"
        }
      ],
      "name": "setTriggerContractAddress",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_governance",
          "type": "address"
        }
      ],
      "name": "transferGovernance",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "triggerContract",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IICleanable",
          "name": "_cleanableToken",
          "type": "address"
        }
      ],
      "name": "unregisterToken",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b50604051610cfc380380610cfc8339818101604052602081101561003357600080fd5b505180806001600160a01b0381161561004f5761004f816100a5565b506001600160a01b03811661009e576040805162461bcd60e51b815260206004820152601060248201526f5f676f7665726e616e6365207a65726f60801b604482015290519081900360640190fd5b5050610188565b600154600160a01b900460ff1615610104576040805162461bcd60e51b815260206004820152601460248201527f696e697469616c6973656420213d2066616c7365000000000000000000000000604482015290519081900360640190fd5b6001805460ff60a01b1916600160a01b179055600054604080516001600160a01b039283168152918316602083015280517f434a2db650703b36c824e745330d6397cdaa9ee2cc891a4938ae853e1c50b68d9281900390910190a1600080546001600160a01b039092166001600160a01b0319928316179055600180549091169055565b610b65806101976000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80639a0ba2ea116100715780639a0ba2ea146101615780639d6a890f1461017e578063c373a08e146101a4578063cbc31cf7146101ca578063d2b799ad146101e7578063d38bfff4146101ef576100b4565b806309824a80146100b95780632bcd9f94146100e15780635aa6e675146101075780635d36b1901461012b57806360f7ac971461013357806377860cdd1461013b575b600080fd5b6100df600480360360208110156100cf57600080fd5b50356001600160a01b0316610215565b005b6100df600480360360208110156100f757600080fd5b50356001600160a01b0316610340565b61010f6103b3565b604080516001600160a01b039092168252519081900360200190f35b6100df6103c2565b61010f610484565b6100df6004803603602081101561015157600080fd5b50356001600160a01b0316610493565b61010f6004803603602081101561017757600080fd5b50356106b6565b6100df6004803603602081101561019457600080fd5b50356001600160a01b03166106e0565b6100df600480360360208110156101ba57600080fd5b50356001600160a01b03166107ba565b6100df600480360360208110156101e057600080fd5b503561085f565b61010f610a5e565b6100df6004803603602081101561020557600080fd5b50356001600160a01b0316610a6d565b6000546001600160a01b03163314610266576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b60025460005b818110156102af576002818154811061028157fe5b6000918252602090912001546001600160a01b03848116911614156102a757505061033d565b60010161026c565b5060028054600180820183556000929092527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b0319166001600160a01b03851690811790915560408051918252602082019290925281517f86d03f430c7616021073d7a71766f632f1ce19f289aa989534d9f4732253eb59929181900390910190a1505b50565b6000546001600160a01b03163314610391576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031681565b6001546001600160a01b03163314610411576040805162461bcd60e51b815260206004820152600d60248201526c1b9bdd0818db185a5b585a5b9d609a1b604482015290519081900360640190fd5b600054600154604080516001600160a01b03938416815292909116602083015280517f434a2db650703b36c824e745330d6397cdaa9ee2cc891a4938ae853e1c50b68d9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6001546001600160a01b031681565b6000546001600160a01b031633146104e4576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b60025460005b8181101561060657600281815481106104ff57fe5b6000918252602090912001546001600160a01b03848116911614156105fe576002600183038154811061052e57fe5b600091825260209091200154600280546001600160a01b03909216918390811061055457fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600280548061058d57fe5b60008281526020808220830160001990810180546001600160a01b0319169055909201909255604080516001600160a01b03871681529182019290925281517f86d03f430c7616021073d7a71766f632f1ce19f289aa989534d9f4732253eb59929181900390910190a1505061033d565b6001016104ea565b506040518060400160405280601281526020017118dbdb9d1c9858dd081b9bdd08199bdd5b9960721b81525060405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561067b578181015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b600281815481106106c657600080fd5b6000918252602090912001546001600160a01b0316905081565b600154600160a01b900460ff1615610736576040805162461bcd60e51b8152602060048201526014602482015273696e697469616c6973656420213d2066616c736560601b604482015290519081900360640190fd5b6001805460ff60a01b1916600160a01b179055600054604080516001600160a01b039283168152918316602083015280517f434a2db650703b36c824e745330d6397cdaa9ee2cc891a4938ae853e1c50b68d9281900390910190a1600080546001600160a01b039092166001600160a01b0319928316179055600180549091169055565b6000546001600160a01b0316331461080b576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f1f95fb40be3a947982072902a887b521248d1d8931a39eb38f84f4d6fd758b699181900360200190a150565b6003546001600160a01b031633148061088257506000546001600160a01b031633145b6040518060400160405280601a81526020017f74726967676572206f7220676f7665726e616e6365206f6e6c79000000000000815250906109045760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561067b578181015183820152602001610663565b5060025460005b81811015610a59576002818154811061092057fe5b6000918252602082200154604080516313de97f560e01b81526004810187905290516001600160a01b03909216926313de97f59260248084019382900301818387803b15801561096f57600080fd5b505af1925050508015610980575060015b6109ed577f6e31dc4aae4e8c2369947a8179952c1929b7af7bc75f57e71ebce5d37e62eae7600282815481106109b257fe5b6000918252602080832090910154604080516001600160a01b03909216825291810187905280820192909252519081900360600190a1610a51565b7f6e31dc4aae4e8c2369947a8179952c1929b7af7bc75f57e71ebce5d37e62eae760028281548110610a1b57fe5b60009182526020918290200154604080516001600160a01b03909216825291810186905260018183015290519081900360600190a15b60010161090b565b505050565b6003546001600160a01b031681565b6000546001600160a01b03163314610abe576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b600054604080516001600160a01b039283168152918316602083015280517f434a2db650703b36c824e745330d6397cdaa9ee2cc891a4938ae853e1c50b68d9281900390910190a1600080546001600160a01b039092166001600160a01b031992831617905560018054909116905556fea264697066735822122065d4147220bf4bb33fd8520c3bdd95d3339f5787ea393482448266c0c6abc7ea64736f6c63430007060033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100b45760003560e01c80639a0ba2ea116100715780639a0ba2ea146101615780639d6a890f1461017e578063c373a08e146101a4578063cbc31cf7146101ca578063d2b799ad146101e7578063d38bfff4146101ef576100b4565b806309824a80146100b95780632bcd9f94146100e15780635aa6e675146101075780635d36b1901461012b57806360f7ac971461013357806377860cdd1461013b575b600080fd5b6100df600480360360208110156100cf57600080fd5b50356001600160a01b0316610215565b005b6100df600480360360208110156100f757600080fd5b50356001600160a01b0316610340565b61010f6103b3565b604080516001600160a01b039092168252519081900360200190f35b6100df6103c2565b61010f610484565b6100df6004803603602081101561015157600080fd5b50356001600160a01b0316610493565b61010f6004803603602081101561017757600080fd5b50356106b6565b6100df6004803603602081101561019457600080fd5b50356001600160a01b03166106e0565b6100df600480360360208110156101ba57600080fd5b50356001600160a01b03166107ba565b6100df600480360360208110156101e057600080fd5b503561085f565b61010f610a5e565b6100df6004803603602081101561020557600080fd5b50356001600160a01b0316610a6d565b6000546001600160a01b03163314610266576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b60025460005b818110156102af576002818154811061028157fe5b6000918252602090912001546001600160a01b03848116911614156102a757505061033d565b60010161026c565b5060028054600180820183556000929092527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b0319166001600160a01b03851690811790915560408051918252602082019290925281517f86d03f430c7616021073d7a71766f632f1ce19f289aa989534d9f4732253eb59929181900390910190a1505b50565b6000546001600160a01b03163314610391576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031681565b6001546001600160a01b03163314610411576040805162461bcd60e51b815260206004820152600d60248201526c1b9bdd0818db185a5b585a5b9d609a1b604482015290519081900360640190fd5b600054600154604080516001600160a01b03938416815292909116602083015280517f434a2db650703b36c824e745330d6397cdaa9ee2cc891a4938ae853e1c50b68d9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6001546001600160a01b031681565b6000546001600160a01b031633146104e4576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b60025460005b8181101561060657600281815481106104ff57fe5b6000918252602090912001546001600160a01b03848116911614156105fe576002600183038154811061052e57fe5b600091825260209091200154600280546001600160a01b03909216918390811061055457fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600280548061058d57fe5b60008281526020808220830160001990810180546001600160a01b0319169055909201909255604080516001600160a01b03871681529182019290925281517f86d03f430c7616021073d7a71766f632f1ce19f289aa989534d9f4732253eb59929181900390910190a1505061033d565b6001016104ea565b506040518060400160405280601281526020017118dbdb9d1c9858dd081b9bdd08199bdd5b9960721b81525060405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561067b578181015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b600281815481106106c657600080fd5b6000918252602090912001546001600160a01b0316905081565b600154600160a01b900460ff1615610736576040805162461bcd60e51b8152602060048201526014602482015273696e697469616c6973656420213d2066616c736560601b604482015290519081900360640190fd5b6001805460ff60a01b1916600160a01b179055600054604080516001600160a01b039283168152918316602083015280517f434a2db650703b36c824e745330d6397cdaa9ee2cc891a4938ae853e1c50b68d9281900390910190a1600080546001600160a01b039092166001600160a01b0319928316179055600180549091169055565b6000546001600160a01b0316331461080b576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f1f95fb40be3a947982072902a887b521248d1d8931a39eb38f84f4d6fd758b699181900360200190a150565b6003546001600160a01b031633148061088257506000546001600160a01b031633145b6040518060400160405280601a81526020017f74726967676572206f7220676f7665726e616e6365206f6e6c79000000000000815250906109045760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561067b578181015183820152602001610663565b5060025460005b81811015610a59576002818154811061092057fe5b6000918252602082200154604080516313de97f560e01b81526004810187905290516001600160a01b03909216926313de97f59260248084019382900301818387803b15801561096f57600080fd5b505af1925050508015610980575060015b6109ed577f6e31dc4aae4e8c2369947a8179952c1929b7af7bc75f57e71ebce5d37e62eae7600282815481106109b257fe5b6000918252602080832090910154604080516001600160a01b03909216825291810187905280820192909252519081900360600190a1610a51565b7f6e31dc4aae4e8c2369947a8179952c1929b7af7bc75f57e71ebce5d37e62eae760028281548110610a1b57fe5b60009182526020918290200154604080516001600160a01b03909216825291810186905260018183015290519081900360600190a15b60010161090b565b505050565b6003546001600160a01b031681565b6000546001600160a01b03163314610abe576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b600054604080516001600160a01b039283168152918316602083015280517f434a2db650703b36c824e745330d6397cdaa9ee2cc891a4938ae853e1c50b68d9281900390910190a1600080546001600160a01b039092166001600160a01b031992831617905560018054909116905556fea264697066735822122065d4147220bf4bb33fd8520c3bdd95d3339f5787ea393482448266c0c6abc7ea64736f6c63430007060033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
