{
    "_format": "hh-sol-artifact-1",
    "contractName": "EraManager",
    "sourceName": "contracts/l2/EraManager.sol",
    "abi": [
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "uint256",
                    "name": "era",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "eraPeriod",
                    "type": "uint256"
                }
            ],
            "name": "EraPeriodUpdate",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "internalType": "uint8",
                    "name": "version",
                    "type": "uint8"
                }
            ],
            "name": "Initialized",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "uint256",
                    "name": "era",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "caller",
                    "type": "address"
                }
            ],
            "name": "NewEraStart",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "previousOwner",
                    "type": "address"
                },
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "newOwner",
                    "type": "address"
                }
            ],
            "name": "OwnershipTransferred",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "internalType": "string",
                    "name": "name",
                    "type": "string"
                },
                {
                    "indexed": false,
                    "internalType": "bytes",
                    "name": "value",
                    "type": "bytes"
                }
            ],
            "name": "Parameter",
            "type": "event"
        },
        {
            "inputs": [],
            "name": "disableMaintenance",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "enableMaintenance",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "eraNumber",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "eraPeriod",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "eraStartTime",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "contract ISettings",
                    "name": "_settings",
                    "type": "address"
                },
                {
                    "internalType": "uint256",
                    "name": "_eraPeriod",
                    "type": "uint256"
                }
            ],
            "name": "initialize",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "maintenance",
            "outputs": [
                {
                    "internalType": "bool",
                    "name": "",
                    "type": "bool"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "owner",
            "outputs": [
                {
                    "internalType": "address",
                    "name": "",
                    "type": "address"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "renounceOwnership",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "safeUpdateAndGetEra",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "contract ISettings",
                    "name": "_settings",
                    "type": "address"
                }
            ],
            "name": "setSettings",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "settings",
            "outputs": [
                {
                    "internalType": "contract ISettings",
                    "name": "",
                    "type": "address"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "startNewEra",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "timestamp",
                    "type": "uint256"
                }
            ],
            "name": "timestampToEraNumber",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "newOwner",
                    "type": "address"
                }
            ],
            "name": "transferOwnership",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "newEraPeriod",
                    "type": "uint256"
                }
            ],
            "name": "updateEraPeriod",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        }
    ],
    "bytecode": "0x608060405234801561001057600080fd5b50610b4c806100206000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c8063b811419011610097578063cd6dc68711610066578063cd6dc687146101c5578063e06174e4146101d8578063f2fde38b146101eb578063f40241bb146101fe57600080fd5b8063b811419014610199578063ba08553a146101ac578063bdc0ba8e146101b5578063cc0e13e2146101bd57600080fd5b8063715018a6116100d3578063715018a6146101505780637d884c74146101585780638da5cb5b14610161578063a01d3c2c1461018657600080fd5b80631e70953e14610105578063234017631461010f5780636c376cc51461012b5780636f853a5d14610148575b600080fd5b61010d610211565b005b61011860685481565b6040519081526020015b60405180910390f35b6069546101389060ff1681565b6040519015158152602001610122565b6101186102ee565b61010d610353565b61011860675481565b6033546001600160a01b03165b6040516001600160a01b039091168152602001610122565b61010d61019436600461090d565b610367565b6101186101a7366004610931565b610391565b61011860665481565b61010d6103fb565b61010d61044f565b61010d6101d336600461094a565b610489565b60655461016e906001600160a01b031681565b61010d6101f936600461090d565b6106b4565b61010d61020c366004610931565b61072d565b60695460ff16156102565760405162461bcd60e51b815260040161024d906020808252600490820152634730313960e01b604082015260600190565b60405180910390fd5b42606654606854610267919061098c565b1061029d5760405162461bcd60e51b815260040161024d906020808252600490820152632298181960e11b604082015260600190565b606780549060006102ad836109a4565b9091555050426068556067546040513381527f7835cd24e2804ab5cb4f4a613f38e83f9c79ca4b42b58beef4faf77de9e50c359060200160405180910390a2565b60695460009060ff161561032d5760405162461bcd60e51b815260040161024d906020808252600490820152634730313960e01b604082015260600190565b4260665460685461033e919061098c565b101561034c5761034c610211565b5060675490565b61035b6107f2565b610365600061084c565b565b61036f6107f2565b606580546001600160a01b0319166001600160a01b0392909216919091179055565b60006068548210156103ce5760405162461bcd60e51b815260040161024d906020808252600490820152634530303360e01b604082015260600190565b6066546068546103de90846109bd565b6103e891906109d4565b6067546103f5919061098c565b92915050565b6104036107f2565b6069805460ff1916905560405160006020820152600080516020610af7833981519152906021015b60408051601f198184030181529082905261044591610a43565b60405180910390a1565b6104576107f2565b6069805460ff19166001179055604051600160f81b6020820152600080516020610af78339815191529060210161042b565b600054610100900460ff16158080156104a95750600054600160ff909116105b806104c35750303b1580156104c3575060005460ff166001145b6105265760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161024d565b6000805460ff191660011790558015610549576000805461ff0019166101001790555b61055161089e565b6000821161058a5760405162461bcd60e51b815260040161024d906020808252600490820152634530303160e01b604082015260600190565b606580546001600160a01b0319166001600160a01b0385161790556066829055600160678190556040513381527f7835cd24e2804ab5cb4f4a613f38e83f9c79ca4b42b58beef4faf77de9e50c359060200160405180910390a2600080516020610af783398151915260665460405160200161060891815260200190565b60408051601f198184030181529082905261062291610a78565b60405180910390a160405160006020820152600080516020610af78339815191529060210160408051601f198184030181529082905261066191610a43565b60405180910390a180156106af576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b6106bc6107f2565b6001600160a01b0381166107215760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161024d565b61072a8161084c565b50565b6107356107f2565b6000811161076e5760405162461bcd60e51b815260040161024d906020808252600490820152634530303160e01b604082015260600190565b60668190556067546040518281527f561a1e0e9bcf8e14fe06886c6c8d275bda3d294425400f65e4b3cf93db7e43db9060200160405180910390a2600080516020610af78339815191526066546040516020016107cd91815260200190565b60408051601f19818403018152908290526107e791610a78565b60405180910390a150565b6033546001600160a01b031633146103655760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161024d565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166108c55760405162461bcd60e51b815260040161024d90610aab565b610365600054610100900460ff166108ef5760405162461bcd60e51b815260040161024d90610aab565b6103653361084c565b6001600160a01b038116811461072a57600080fd5b60006020828403121561091f57600080fd5b813561092a816108f8565b9392505050565b60006020828403121561094357600080fd5b5035919050565b6000806040838503121561095d57600080fd5b8235610968816108f8565b946020939093013593505050565b634e487b7160e01b600052601160045260246000fd5b6000821982111561099f5761099f610976565b500190565b6000600182016109b6576109b6610976565b5060010190565b6000828210156109cf576109cf610976565b500390565b6000826109f157634e487b7160e01b600052601260045260246000fd5b500490565b6000815180845260005b81811015610a1c57602081850181015186830182015201610a00565b81811115610a2e576000602083870101525b50601f01601f19169290920160200192915050565b60408152600b60408201526a6d61696e74656e616e636560a81b606082015260806020820152600061092a60808301846109f6565b604081526009604082015268195c9854195c9a5bd960ba1b606082015260806020820152600061092a60808301846109f6565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b60608201526080019056fe63c3003ba148ae22ef0cecea7dab164660fafd04037d699677e4478e17ef7b1ba264697066735822122062aad71c6b958f2523c6046322a74b5f4f07192cbdb3986c517c9758c9fa995c64736f6c634300080f0033",
    "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101005760003560e01c8063b811419011610097578063cd6dc68711610066578063cd6dc687146101c5578063e06174e4146101d8578063f2fde38b146101eb578063f40241bb146101fe57600080fd5b8063b811419014610199578063ba08553a146101ac578063bdc0ba8e146101b5578063cc0e13e2146101bd57600080fd5b8063715018a6116100d3578063715018a6146101505780637d884c74146101585780638da5cb5b14610161578063a01d3c2c1461018657600080fd5b80631e70953e14610105578063234017631461010f5780636c376cc51461012b5780636f853a5d14610148575b600080fd5b61010d610211565b005b61011860685481565b6040519081526020015b60405180910390f35b6069546101389060ff1681565b6040519015158152602001610122565b6101186102ee565b61010d610353565b61011860675481565b6033546001600160a01b03165b6040516001600160a01b039091168152602001610122565b61010d61019436600461090d565b610367565b6101186101a7366004610931565b610391565b61011860665481565b61010d6103fb565b61010d61044f565b61010d6101d336600461094a565b610489565b60655461016e906001600160a01b031681565b61010d6101f936600461090d565b6106b4565b61010d61020c366004610931565b61072d565b60695460ff16156102565760405162461bcd60e51b815260040161024d906020808252600490820152634730313960e01b604082015260600190565b60405180910390fd5b42606654606854610267919061098c565b1061029d5760405162461bcd60e51b815260040161024d906020808252600490820152632298181960e11b604082015260600190565b606780549060006102ad836109a4565b9091555050426068556067546040513381527f7835cd24e2804ab5cb4f4a613f38e83f9c79ca4b42b58beef4faf77de9e50c359060200160405180910390a2565b60695460009060ff161561032d5760405162461bcd60e51b815260040161024d906020808252600490820152634730313960e01b604082015260600190565b4260665460685461033e919061098c565b101561034c5761034c610211565b5060675490565b61035b6107f2565b610365600061084c565b565b61036f6107f2565b606580546001600160a01b0319166001600160a01b0392909216919091179055565b60006068548210156103ce5760405162461bcd60e51b815260040161024d906020808252600490820152634530303360e01b604082015260600190565b6066546068546103de90846109bd565b6103e891906109d4565b6067546103f5919061098c565b92915050565b6104036107f2565b6069805460ff1916905560405160006020820152600080516020610af7833981519152906021015b60408051601f198184030181529082905261044591610a43565b60405180910390a1565b6104576107f2565b6069805460ff19166001179055604051600160f81b6020820152600080516020610af78339815191529060210161042b565b600054610100900460ff16158080156104a95750600054600160ff909116105b806104c35750303b1580156104c3575060005460ff166001145b6105265760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161024d565b6000805460ff191660011790558015610549576000805461ff0019166101001790555b61055161089e565b6000821161058a5760405162461bcd60e51b815260040161024d906020808252600490820152634530303160e01b604082015260600190565b606580546001600160a01b0319166001600160a01b0385161790556066829055600160678190556040513381527f7835cd24e2804ab5cb4f4a613f38e83f9c79ca4b42b58beef4faf77de9e50c359060200160405180910390a2600080516020610af783398151915260665460405160200161060891815260200190565b60408051601f198184030181529082905261062291610a78565b60405180910390a160405160006020820152600080516020610af78339815191529060210160408051601f198184030181529082905261066191610a43565b60405180910390a180156106af576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b6106bc6107f2565b6001600160a01b0381166107215760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161024d565b61072a8161084c565b50565b6107356107f2565b6000811161076e5760405162461bcd60e51b815260040161024d906020808252600490820152634530303160e01b604082015260600190565b60668190556067546040518281527f561a1e0e9bcf8e14fe06886c6c8d275bda3d294425400f65e4b3cf93db7e43db9060200160405180910390a2600080516020610af78339815191526066546040516020016107cd91815260200190565b60408051601f19818403018152908290526107e791610a78565b60405180910390a150565b6033546001600160a01b031633146103655760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161024d565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166108c55760405162461bcd60e51b815260040161024d90610aab565b610365600054610100900460ff166108ef5760405162461bcd60e51b815260040161024d90610aab565b6103653361084c565b6001600160a01b038116811461072a57600080fd5b60006020828403121561091f57600080fd5b813561092a816108f8565b9392505050565b60006020828403121561094357600080fd5b5035919050565b6000806040838503121561095d57600080fd5b8235610968816108f8565b946020939093013593505050565b634e487b7160e01b600052601160045260246000fd5b6000821982111561099f5761099f610976565b500190565b6000600182016109b6576109b6610976565b5060010190565b6000828210156109cf576109cf610976565b500390565b6000826109f157634e487b7160e01b600052601260045260246000fd5b500490565b6000815180845260005b81811015610a1c57602081850181015186830182015201610a00565b81811115610a2e576000602083870101525b50601f01601f19169290920160200192915050565b60408152600b60408201526a6d61696e74656e616e636560a81b606082015260806020820152600061092a60808301846109f6565b604081526009604082015268195c9854195c9a5bd960ba1b606082015260806020820152600061092a60808301846109f6565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b60608201526080019056fe63c3003ba148ae22ef0cecea7dab164660fafd04037d699677e4478e17ef7b1ba264697066735822122062aad71c6b958f2523c6046322a74b5f4f07192cbdb3986c517c9758c9fa995c64736f6c634300080f0033",
    "linkReferences": {},
    "deployedLinkReferences": {}
}
