{
  "_format": "hh-sol-artifact-1",
  "contractName": "L1TimelockTrigger",
  "sourceName": "@pooltogether/v4-timelocks/contracts/L1TimelockTrigger.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_owner",
          "type": "address"
        },
        {
          "internalType": "contract IPrizeDistributionBuffer",
          "name": "_prizeDistributionBuffer",
          "type": "address"
        },
        {
          "internalType": "contract IDrawCalculatorTimelock",
          "name": "_timelock",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "contract IPrizeDistributionBuffer",
          "name": "prizeDistributionBuffer",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "contract IDrawCalculatorTimelock",
          "name": "timelock",
          "type": "address"
        }
      ],
      "name": "Deployed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousManager",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newManager",
          "type": "address"
        }
      ],
      "name": "ManagerTransferred",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "pendingOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipOffered",
      "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": true,
          "internalType": "uint32",
          "name": "drawId",
          "type": "uint32"
        },
        {
          "components": [
            {
              "internalType": "uint8",
              "name": "bitRangeSize",
              "type": "uint8"
            },
            {
              "internalType": "uint8",
              "name": "matchCardinality",
              "type": "uint8"
            },
            {
              "internalType": "uint32",
              "name": "startTimestampOffset",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "endTimestampOffset",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "maxPicksPerUser",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "expiryDuration",
              "type": "uint32"
            },
            {
              "internalType": "uint104",
              "name": "numberOfPicks",
              "type": "uint104"
            },
            {
              "internalType": "uint32[16]",
              "name": "tiers",
              "type": "uint32[16]"
            },
            {
              "internalType": "uint256",
              "name": "prize",
              "type": "uint256"
            }
          ],
          "indexed": false,
          "internalType": "struct IPrizeDistributionBuffer.PrizeDistribution",
          "name": "prizeDistribution",
          "type": "tuple"
        }
      ],
      "name": "PrizeDistributionPushed",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "claimOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "manager",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "pendingOwner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "prizeDistributionBuffer",
      "outputs": [
        {
          "internalType": "contract IPrizeDistributionBuffer",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "winningRandomNumber",
              "type": "uint256"
            },
            {
              "internalType": "uint32",
              "name": "drawId",
              "type": "uint32"
            },
            {
              "internalType": "uint64",
              "name": "timestamp",
              "type": "uint64"
            },
            {
              "internalType": "uint64",
              "name": "beaconPeriodStartedAt",
              "type": "uint64"
            },
            {
              "internalType": "uint32",
              "name": "beaconPeriodSeconds",
              "type": "uint32"
            }
          ],
          "internalType": "struct IDrawBeacon.Draw",
          "name": "_draw",
          "type": "tuple"
        },
        {
          "components": [
            {
              "internalType": "uint8",
              "name": "bitRangeSize",
              "type": "uint8"
            },
            {
              "internalType": "uint8",
              "name": "matchCardinality",
              "type": "uint8"
            },
            {
              "internalType": "uint32",
              "name": "startTimestampOffset",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "endTimestampOffset",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "maxPicksPerUser",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "expiryDuration",
              "type": "uint32"
            },
            {
              "internalType": "uint104",
              "name": "numberOfPicks",
              "type": "uint104"
            },
            {
              "internalType": "uint32[16]",
              "name": "tiers",
              "type": "uint32[16]"
            },
            {
              "internalType": "uint256",
              "name": "prize",
              "type": "uint256"
            }
          ],
          "internalType": "struct IPrizeDistributionBuffer.PrizeDistribution",
          "name": "_prizeDistribution",
          "type": "tuple"
        }
      ],
      "name": "push",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_newManager",
          "type": "address"
        }
      ],
      "name": "setManager",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "timelock",
      "outputs": [
        {
          "internalType": "contract IDrawCalculatorTimelock",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x60a060405234801561001057600080fd5b50604051610e23380380610e2383398101604081905261002f916100f1565b82610039816100a1565b50606082901b6001600160601b031916608052600380546001600160a01b0319166001600160a01b0383811691821790925560405190918416907f09e48df7857bd0c1e0d31bb8a85d42cf1874817895f171c917f6ee2cea73ec2090600090a3505050610156565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008060006060848603121561010657600080fd5b83516101118161013e565b60208501519093506101228161013e565b60408501519092506101338161013e565b809150509250925092565b6001600160a01b038116811461015357600080fd5b50565b60805160601c610ca961017a6000396000818160c8015261045d0152610ca96000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c8063af32b60511610076578063d33219b41161005b578063d33219b414610171578063e30c397814610184578063f2fde38b1461019557600080fd5b8063af32b6051461013b578063d0ebdbe71461014e57600080fd5b80634e71e0c8116100a75780634e71e0c814610118578063715018a6146101225780638da5cb5b1461012a57600080fd5b80630840bbdd146100c3578063481c6a7514610107575b600080fd5b6100ea7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6002546001600160a01b03166100ea565b6101206101a8565b005b61012061023b565b6000546001600160a01b03166100ea565b61012061014936600461096a565b6102b0565b61016161015c366004610918565b610554565b60405190151581526020016100fe565b6003546100ea906001600160a01b031681565b6001546001600160a01b03166100ea565b6101206101a3366004610918565b6105d0565b6001546001600160a01b031633146102075760405162461bcd60e51b815260206004820152601f60248201527f4f776e61626c652f63616c6c65722d6e6f742d70656e64696e674f776e65720060448201526064015b60405180910390fd5b60015461021c906001600160a01b031661070c565b6001805473ffffffffffffffffffffffffffffffffffffffff19169055565b3361024e6000546001600160a01b031690565b6001600160a01b0316146102a45760405162461bcd60e51b815260206004820152601860248201527f4f776e61626c652f63616c6c65722d6e6f742d6f776e6572000000000000000060448201526064016101fe565b6102ae600061070c565b565b336102c36002546001600160a01b031690565b6001600160a01b031614806102f15750336102e66000546001600160a01b031690565b6001600160a01b0316145b6103635760405162461bcd60e51b815260206004820152602660248201527f4d616e61676561626c652f63616c6c65722d6e6f742d6d616e616765722d6f7260448201527f2d6f776e6572000000000000000000000000000000000000000000000000000060648201526084016101fe565b6003546001600160a01b0316638871189b6103846040850160208601610a6c565b61039460a0860160808701610a6c565b63ffffffff166103aa6060870160408801610a87565b6103b49190610bf1565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815263ffffffff92909216600483015267ffffffffffffffff166024820152604401602060405180830381600087803b15801561041a57600080fd5b505af115801561042e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104529190610948565b506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016631124e1dc6104926040850160208601610a6c565b836040518363ffffffff1660e01b81526004016104b0929190610bac565b602060405180830381600087803b1580156104ca57600080fd5b505af11580156104de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105029190610948565b506105136040830160208401610a6c565b63ffffffff167fa8d834c585da75dc5076dfaed2f4cc0c65d2d07cfc01f7c27023ab61563f257e826040516105489190610b97565b60405180910390a25050565b6000336105696000546001600160a01b031690565b6001600160a01b0316146105bf5760405162461bcd60e51b815260206004820152601860248201527f4f776e61626c652f63616c6c65722d6e6f742d6f776e6572000000000000000060448201526064016101fe565b6105c882610769565b90505b919050565b336105e36000546001600160a01b031690565b6001600160a01b0316146106395760405162461bcd60e51b815260206004820152601860248201527f4f776e61626c652f63616c6c65722d6e6f742d6f776e6572000000000000000060448201526064016101fe565b6001600160a01b0381166106b55760405162461bcd60e51b815260206004820152602560248201527f4f776e61626c652f70656e64696e674f776e65722d6e6f742d7a65726f2d616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016101fe565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040517f239a2ddded15777fa246aed5f7e1a9bc69a39d4eb4a397034d1d85766cca7d4c90600090a250565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6002546000906001600160a01b039081169083168114156107f25760405162461bcd60e51b815260206004820152602360248201527f4d616e61676561626c652f6578697374696e672d6d616e616765722d6164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016101fe565b6002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385811691821790925560405190918316907f9cb45c728de594dab506a1f1a8554e24c8eeaf983618d5ec5dd7bc6f3c49feee90600090a350600192915050565b600082601f83011261086657600080fd5b60405161020080820182811067ffffffffffffffff8211171561088b5761088b610c44565b604052818482810187101561089f57600080fd5b600092505b60108310156108cb576108b6816108f3565b825260019290920191602091820191016108a4565b509195945050505050565b80356cffffffffffffffffffffffffff811681146105cb57600080fd5b803563ffffffff811681146105cb57600080fd5b803560ff811681146105cb57600080fd5b60006020828403121561092a57600080fd5b81356001600160a01b038116811461094157600080fd5b9392505050565b60006020828403121561095a57600080fd5b8151801515811461094157600080fd5b6000808284036103a081121561097f57600080fd5b60a081121561098d57600080fd5b8392506103007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60820112156109c157600080fd5b506109ca610bc7565b6109d660a08501610907565b81526109e460c08501610907565b60208201526109f560e085016108f3565b6040820152610100610a088186016108f3565b6060830152610a1a61012086016108f3565b6080830152610a2c61014086016108f3565b60a0830152610a3e61016086016108d6565b60c0830152610a51866101808701610855565b60e08301526103808501358183015250809150509250929050565b600060208284031215610a7e57600080fd5b610941826108f3565b600060208284031215610a9957600080fd5b813567ffffffffffffffff8116811461094157600080fd5b8060005b6010811015610ada57815163ffffffff16845260209384019390910190600101610ab5565b50505050565b60ff815116825260ff60208201511660208301526040810151610b0b604084018263ffffffff169052565b506060810151610b23606084018263ffffffff169052565b506080810151610b3b608084018263ffffffff169052565b5060a0810151610b5360a084018263ffffffff169052565b5060c0810151610b7460c08401826cffffffffffffffffffffffffff169052565b5060e0810151610b8760e0840182610ab1565b5061010001516102e09190910152565b6103008101610ba68284610ae0565b92915050565b63ffffffff8316815261032081016109416020830184610ae0565b604051610120810167ffffffffffffffff81118282101715610beb57610beb610c44565b60405290565b600067ffffffffffffffff808316818516808303821115610c3b577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b01949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fdfea2646970667358221220cc9a2293ede58992a97601778f8b737433ca1ee51419db5312b578ee2290681464736f6c63430008060033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100be5760003560e01c8063af32b60511610076578063d33219b41161005b578063d33219b414610171578063e30c397814610184578063f2fde38b1461019557600080fd5b8063af32b6051461013b578063d0ebdbe71461014e57600080fd5b80634e71e0c8116100a75780634e71e0c814610118578063715018a6146101225780638da5cb5b1461012a57600080fd5b80630840bbdd146100c3578063481c6a7514610107575b600080fd5b6100ea7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6002546001600160a01b03166100ea565b6101206101a8565b005b61012061023b565b6000546001600160a01b03166100ea565b61012061014936600461096a565b6102b0565b61016161015c366004610918565b610554565b60405190151581526020016100fe565b6003546100ea906001600160a01b031681565b6001546001600160a01b03166100ea565b6101206101a3366004610918565b6105d0565b6001546001600160a01b031633146102075760405162461bcd60e51b815260206004820152601f60248201527f4f776e61626c652f63616c6c65722d6e6f742d70656e64696e674f776e65720060448201526064015b60405180910390fd5b60015461021c906001600160a01b031661070c565b6001805473ffffffffffffffffffffffffffffffffffffffff19169055565b3361024e6000546001600160a01b031690565b6001600160a01b0316146102a45760405162461bcd60e51b815260206004820152601860248201527f4f776e61626c652f63616c6c65722d6e6f742d6f776e6572000000000000000060448201526064016101fe565b6102ae600061070c565b565b336102c36002546001600160a01b031690565b6001600160a01b031614806102f15750336102e66000546001600160a01b031690565b6001600160a01b0316145b6103635760405162461bcd60e51b815260206004820152602660248201527f4d616e61676561626c652f63616c6c65722d6e6f742d6d616e616765722d6f7260448201527f2d6f776e6572000000000000000000000000000000000000000000000000000060648201526084016101fe565b6003546001600160a01b0316638871189b6103846040850160208601610a6c565b61039460a0860160808701610a6c565b63ffffffff166103aa6060870160408801610a87565b6103b49190610bf1565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815263ffffffff92909216600483015267ffffffffffffffff166024820152604401602060405180830381600087803b15801561041a57600080fd5b505af115801561042e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104529190610948565b506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016631124e1dc6104926040850160208601610a6c565b836040518363ffffffff1660e01b81526004016104b0929190610bac565b602060405180830381600087803b1580156104ca57600080fd5b505af11580156104de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105029190610948565b506105136040830160208401610a6c565b63ffffffff167fa8d834c585da75dc5076dfaed2f4cc0c65d2d07cfc01f7c27023ab61563f257e826040516105489190610b97565b60405180910390a25050565b6000336105696000546001600160a01b031690565b6001600160a01b0316146105bf5760405162461bcd60e51b815260206004820152601860248201527f4f776e61626c652f63616c6c65722d6e6f742d6f776e6572000000000000000060448201526064016101fe565b6105c882610769565b90505b919050565b336105e36000546001600160a01b031690565b6001600160a01b0316146106395760405162461bcd60e51b815260206004820152601860248201527f4f776e61626c652f63616c6c65722d6e6f742d6f776e6572000000000000000060448201526064016101fe565b6001600160a01b0381166106b55760405162461bcd60e51b815260206004820152602560248201527f4f776e61626c652f70656e64696e674f776e65722d6e6f742d7a65726f2d616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016101fe565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040517f239a2ddded15777fa246aed5f7e1a9bc69a39d4eb4a397034d1d85766cca7d4c90600090a250565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6002546000906001600160a01b039081169083168114156107f25760405162461bcd60e51b815260206004820152602360248201527f4d616e61676561626c652f6578697374696e672d6d616e616765722d6164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016101fe565b6002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385811691821790925560405190918316907f9cb45c728de594dab506a1f1a8554e24c8eeaf983618d5ec5dd7bc6f3c49feee90600090a350600192915050565b600082601f83011261086657600080fd5b60405161020080820182811067ffffffffffffffff8211171561088b5761088b610c44565b604052818482810187101561089f57600080fd5b600092505b60108310156108cb576108b6816108f3565b825260019290920191602091820191016108a4565b509195945050505050565b80356cffffffffffffffffffffffffff811681146105cb57600080fd5b803563ffffffff811681146105cb57600080fd5b803560ff811681146105cb57600080fd5b60006020828403121561092a57600080fd5b81356001600160a01b038116811461094157600080fd5b9392505050565b60006020828403121561095a57600080fd5b8151801515811461094157600080fd5b6000808284036103a081121561097f57600080fd5b60a081121561098d57600080fd5b8392506103007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60820112156109c157600080fd5b506109ca610bc7565b6109d660a08501610907565b81526109e460c08501610907565b60208201526109f560e085016108f3565b6040820152610100610a088186016108f3565b6060830152610a1a61012086016108f3565b6080830152610a2c61014086016108f3565b60a0830152610a3e61016086016108d6565b60c0830152610a51866101808701610855565b60e08301526103808501358183015250809150509250929050565b600060208284031215610a7e57600080fd5b610941826108f3565b600060208284031215610a9957600080fd5b813567ffffffffffffffff8116811461094157600080fd5b8060005b6010811015610ada57815163ffffffff16845260209384019390910190600101610ab5565b50505050565b60ff815116825260ff60208201511660208301526040810151610b0b604084018263ffffffff169052565b506060810151610b23606084018263ffffffff169052565b506080810151610b3b608084018263ffffffff169052565b5060a0810151610b5360a084018263ffffffff169052565b5060c0810151610b7460c08401826cffffffffffffffffffffffffff169052565b5060e0810151610b8760e0840182610ab1565b5061010001516102e09190910152565b6103008101610ba68284610ae0565b92915050565b63ffffffff8316815261032081016109416020830184610ae0565b604051610120810167ffffffffffffffff81118282101715610beb57610beb610c44565b60405290565b600067ffffffffffffffff808316818516808303821115610c3b577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b01949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fdfea2646970667358221220cc9a2293ede58992a97601778f8b737433ca1ee51419db5312b578ee2290681464736f6c63430008060033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
