{
  "_format": "hh-sol-artifact-1",
  "contractName": "BlockBuilderRegistry2Test",
  "sourceName": "contracts/test/block-builder-registry/BlockBuilderRegistry2Test.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "target",
          "type": "address"
        }
      ],
      "name": "AddressEmptyCode",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "implementation",
          "type": "address"
        }
      ],
      "name": "ERC1967InvalidImplementation",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ERC1967NonPayable",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "FailedCall",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidInitialization",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "NotInitializing",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        }
      ],
      "name": "OwnableInvalidOwner",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "OwnableUnauthorizedAccount",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "UUPSUnauthorizedCallContext",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "slot",
          "type": "bytes32"
        }
      ],
      "name": "UUPSUnsupportedProxiableUUID",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "blockBuilder",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "url",
          "type": "string"
        }
      ],
      "name": "BlockBuilderHeartbeat",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint64",
          "name": "version",
          "type": "uint64"
        }
      ],
      "name": "Initialized",
      "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": "address",
          "name": "implementation",
          "type": "address"
        }
      ],
      "name": "Upgraded",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "UPGRADE_INTERFACE_VERSION",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "url",
          "type": "string"
        }
      ],
      "name": "emitHeartbeat",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getVal",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "admin",
          "type": "address"
        }
      ],
      "name": "initialize",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "proxiableUUID",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newImplementation",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "upgradeToAndCall",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    }
  ],
  "bytecode": "0x60a06040523060805234801561001457600080fd5b5061001d610022565b6100d4565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100725760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100d15780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051610b2a6100fd600039600081816103d3015281816103fc01526105420152610b2a6000f3fe6080604052600436106100865760003560e01c80638da5cb5b116100595780638da5cb5b146100fd578063ad3cb1cc14610144578063c4d66de814610182578063e1cb0e52146101a2578063f2fde38b146101b657600080fd5b806307a4104c1461008b5780634f1ef286146100ad57806352d1902d146100c0578063715018a6146100e8575b600080fd5b34801561009757600080fd5b506100ab6100a636600461088e565b6101d6565b005b6100ab6100bb366004610934565b61021d565b3480156100cc57600080fd5b506100d561023c565b6040519081526020015b60405180910390f35b3480156100f457600080fd5b506100ab610259565b34801561010957600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546040516001600160a01b0390911681526020016100df565b34801561015057600080fd5b50610175604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516100df9190610a22565b34801561018e57600080fd5b506100ab61019d366004610a55565b61026d565b3480156101ae57600080fd5b5060016100d5565b3480156101c257600080fd5b506100ab6101d1366004610a55565b610385565b336001600160a01b03167f67981767cba56b93db9acb6becc4635fc1177e7837379bdd332bbcae78a555058383604051610211929190610a70565b60405180910390a25050565b6102256103c8565b61022e8261046d565b6102388282610475565b5050565b6000610246610537565b50600080516020610ad583398151915290565b610261610580565b61026b60006105db565b565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff166000811580156102b35750825b905060008267ffffffffffffffff1660011480156102d05750303b155b9050811580156102de575080155b156102fc5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561032657845460ff60401b1916600160401b1785555b61032f8661064c565b61033761065d565b831561037d57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b61038d610580565b6001600160a01b0381166103bc57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6103c5816105db565b50565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061044f57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610443600080516020610ad5833981519152546001600160a01b031690565b6001600160a01b031614155b1561026b5760405163703e46dd60e11b815260040160405180910390fd5b6103c5610580565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156104cf575060408051601f3d908101601f191682019092526104cc91810190610a9f565b60015b6104f757604051634c9c8ce360e01b81526001600160a01b03831660048201526024016103b3565b600080516020610ad5833981519152811461052857604051632a87526960e21b8152600481018290526024016103b3565b6105328383610665565b505050565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461026b5760405163703e46dd60e11b815260040160405180910390fd5b336105b27f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b03161461026b5760405163118cdaa760e01b81523360048201526024016103b3565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6106546106bb565b6103c581610704565b61026b6106bb565b61066e8261070c565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156106b3576105328282610771565b6102386107e7565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661026b57604051631afcd79f60e31b815260040160405180910390fd5b61038d6106bb565b806001600160a01b03163b60000361074257604051634c9c8ce360e01b81526001600160a01b03821660048201526024016103b3565b600080516020610ad583398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161078e9190610ab8565b600060405180830381855af49150503d80600081146107c9576040519150601f19603f3d011682016040523d82523d6000602084013e6107ce565b606091505b50915091506107de858383610806565b95945050505050565b341561026b5760405163b398979f60e01b815260040160405180910390fd5b60608261081b5761081682610865565b61085e565b815115801561083257506001600160a01b0384163b155b1561085b57604051639996b31560e01b81526001600160a01b03851660048201526024016103b3565b50805b9392505050565b8051156108755780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b600080602083850312156108a157600080fd5b823567ffffffffffffffff8111156108b857600080fd5b8301601f810185136108c957600080fd5b803567ffffffffffffffff8111156108e057600080fd5b8560208284010111156108f257600080fd5b6020919091019590945092505050565b80356001600160a01b038116811461091957600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561094757600080fd5b61095083610902565b9150602083013567ffffffffffffffff81111561096c57600080fd5b8301601f8101851361097d57600080fd5b803567ffffffffffffffff8111156109975761099761091e565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156109c6576109c661091e565b6040528181528282016020018710156109de57600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b83811015610a19578181015183820152602001610a01565b50506000910152565b6020815260008251806020840152610a418160408501602087016109fe565b601f01601f19169190910160400192915050565b600060208284031215610a6757600080fd5b61085e82610902565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b600060208284031215610ab157600080fd5b5051919050565b60008251610aca8184602087016109fe565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca264697066735822122028d6dced2338cf38d00860d4608945fb539593a4b933446dcd8fc513d93a9ae564736f6c634300081b0033",
  "deployedBytecode": "0x6080604052600436106100865760003560e01c80638da5cb5b116100595780638da5cb5b146100fd578063ad3cb1cc14610144578063c4d66de814610182578063e1cb0e52146101a2578063f2fde38b146101b657600080fd5b806307a4104c1461008b5780634f1ef286146100ad57806352d1902d146100c0578063715018a6146100e8575b600080fd5b34801561009757600080fd5b506100ab6100a636600461088e565b6101d6565b005b6100ab6100bb366004610934565b61021d565b3480156100cc57600080fd5b506100d561023c565b6040519081526020015b60405180910390f35b3480156100f457600080fd5b506100ab610259565b34801561010957600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546040516001600160a01b0390911681526020016100df565b34801561015057600080fd5b50610175604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516100df9190610a22565b34801561018e57600080fd5b506100ab61019d366004610a55565b61026d565b3480156101ae57600080fd5b5060016100d5565b3480156101c257600080fd5b506100ab6101d1366004610a55565b610385565b336001600160a01b03167f67981767cba56b93db9acb6becc4635fc1177e7837379bdd332bbcae78a555058383604051610211929190610a70565b60405180910390a25050565b6102256103c8565b61022e8261046d565b6102388282610475565b5050565b6000610246610537565b50600080516020610ad583398151915290565b610261610580565b61026b60006105db565b565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff166000811580156102b35750825b905060008267ffffffffffffffff1660011480156102d05750303b155b9050811580156102de575080155b156102fc5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561032657845460ff60401b1916600160401b1785555b61032f8661064c565b61033761065d565b831561037d57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b61038d610580565b6001600160a01b0381166103bc57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6103c5816105db565b50565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061044f57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610443600080516020610ad5833981519152546001600160a01b031690565b6001600160a01b031614155b1561026b5760405163703e46dd60e11b815260040160405180910390fd5b6103c5610580565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156104cf575060408051601f3d908101601f191682019092526104cc91810190610a9f565b60015b6104f757604051634c9c8ce360e01b81526001600160a01b03831660048201526024016103b3565b600080516020610ad5833981519152811461052857604051632a87526960e21b8152600481018290526024016103b3565b6105328383610665565b505050565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461026b5760405163703e46dd60e11b815260040160405180910390fd5b336105b27f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b03161461026b5760405163118cdaa760e01b81523360048201526024016103b3565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6106546106bb565b6103c581610704565b61026b6106bb565b61066e8261070c565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156106b3576105328282610771565b6102386107e7565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661026b57604051631afcd79f60e31b815260040160405180910390fd5b61038d6106bb565b806001600160a01b03163b60000361074257604051634c9c8ce360e01b81526001600160a01b03821660048201526024016103b3565b600080516020610ad583398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161078e9190610ab8565b600060405180830381855af49150503d80600081146107c9576040519150601f19603f3d011682016040523d82523d6000602084013e6107ce565b606091505b50915091506107de858383610806565b95945050505050565b341561026b5760405163b398979f60e01b815260040160405180910390fd5b60608261081b5761081682610865565b61085e565b815115801561083257506001600160a01b0384163b155b1561085b57604051639996b31560e01b81526001600160a01b03851660048201526024016103b3565b50805b9392505050565b8051156108755780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b600080602083850312156108a157600080fd5b823567ffffffffffffffff8111156108b857600080fd5b8301601f810185136108c957600080fd5b803567ffffffffffffffff8111156108e057600080fd5b8560208284010111156108f257600080fd5b6020919091019590945092505050565b80356001600160a01b038116811461091957600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561094757600080fd5b61095083610902565b9150602083013567ffffffffffffffff81111561096c57600080fd5b8301601f8101851361097d57600080fd5b803567ffffffffffffffff8111156109975761099761091e565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156109c6576109c661091e565b6040528181528282016020018710156109de57600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b83811015610a19578181015183820152602001610a01565b50506000910152565b6020815260008251806020840152610a418160408501602087016109fe565b601f01601f19169190910160400192915050565b600060208284031215610a6757600080fd5b61085e82610902565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b600060208284031215610ab157600080fd5b5051919050565b60008251610aca8184602087016109fe565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca264697066735822122028d6dced2338cf38d00860d4608945fb539593a4b933446dcd8fc513d93a9ae564736f6c634300081b0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
