{
  "_format": "hh3-artifact-1",
  "contractName": "BfvPkVerifier",
  "sourceName": "contracts/verifiers/bfv/BfvPkVerifier.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_circuitVerifier",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "_expectedNodesFoldKeyHash",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "_expectedC5KeyHash",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "_h",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "DomainBindingMismatch",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidProof",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidPublicInputsLength",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "PkCommitmentMismatch",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "VkHashMismatch",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "circuitVerifier",
      "outputs": [
        {
          "internalType": "contract ICircuitVerifier",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "expectedC5KeyHash",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "expectedNodesFoldKeyHash",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "h",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "e3Id",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "committeeRoot",
          "type": "uint256"
        },
        {
          "internalType": "address[]",
          "name": "sortedNodes",
          "type": "address[]"
        },
        {
          "internalType": "bytes32",
          "name": "pkCommitment",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "committeeHash",
          "type": "bytes32"
        },
        {
          "internalType": "bytes",
          "name": "proof",
          "type": "bytes"
        }
      ],
      "name": "verify",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x61018060405234801561001157600080fd5b506040516109aa3803806109aa833981016040819052610030916100a6565b6000811161003d57600080fd5b608081905261004d816002610107565b60a05261005b816003610107565b60c052610069816003610120565b610074906006610107565b60e081905261008590600190610137565b61010052506001600160a01b0390921661012052610140526101605261014a565b600080600080608085870312156100bc57600080fd5b84516001600160a01b03811681146100d357600080fd5b60208601516040870151606090970151919890975090945092505050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561011a5761011a6100f1565b92915050565b808202811582820484141761011a5761011a6100f1565b8181038181111561011a5761011a6100f1565b60805160a05160c05160e051610100516101205161014051610160516107e96101c160003960008181606101526101f701526000818160be015261019d01526000818161010c0152610382015260006103160152600061015c015260006102bd0152600061025c0152600060e501526107e96000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c806302abc7401461005c5780630741a9da14610096578063767b2e69146100b9578063b8c9d365146100e0578063d0ea9ff014610107575b600080fd5b6100837f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b6100a96100a4366004610489565b610146565b604051901515815260200161008d565b6100837f000000000000000000000000000000000000000000000000000000000000000081565b6100837f000000000000000000000000000000000000000000000000000000000000000081565b61012e7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161008d565b600080806101568486018661061e565b915091507f000000000000000000000000000000000000000000000000000000000000000081511461019b57604051633e15742360e01b815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000816000815181106101cf576101cf6106de565b6020026020010151146101f557604051630c26025960e01b815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000081600181518110610229576102296106de565b60200260200101511461024f57604051630c26025960e01b815260040160405180910390fd5b6102598660801c90565b817f00000000000000000000000000000000000000000000000000000000000000008151811061028b5761028b6106de565b6020026020010151146102b157604051630285464360e01b815260040160405180910390fd5b6102ba86610428565b817f0000000000000000000000000000000000000000000000000000000000000000815181106102ec576102ec6106de565b60200260200101511461031257604051630285464360e01b815260040160405180910390fd5b86817f000000000000000000000000000000000000000000000000000000000000000081518110610345576103456106de565b60200260200101511461036b5760405163151637bd60e31b815260040160405180910390fd5b604051633a94343960e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ea50d0e4906103b990859085906004016106f4565b602060405180830381865afa1580156103d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103fa919061078c565b610417576040516309bde33960e01b815260040160405180910390fd5b5060019a9950505050505050505050565b60006104396001600160801b6107b5565b909116919050565b60008083601f84011261045357600080fd5b5081356001600160401b0381111561046a57600080fd5b60208301915083602082850101111561048257600080fd5b9250929050565b60008060008060008060008060c0898b0312156104a557600080fd5b883597506020890135965060408901356001600160401b038111156104c957600080fd5b8901601f81018b136104da57600080fd5b80356001600160401b038111156104f057600080fd5b8b60208260051b840101111561050557600080fd5b60209190910196509450606089013593506080890135925060a08901356001600160401b0381111561053657600080fd5b6105428b828c01610441565b999c989b5096995094979396929594505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561059457610594610556565b604052919050565b600082601f8301126105ad57600080fd5b81356001600160401b038111156105c6576105c6610556565b8060051b6105d66020820161056c565b918252602081850181019290810190868411156105f257600080fd5b6020860192505b838310156106145782358252602092830192909101906105f9565b9695505050505050565b6000806040838503121561063157600080fd5b82356001600160401b0381111561064757600080fd5b8301601f8101851361065857600080fd5b80356001600160401b0381111561067157610671610556565b610684601f8201601f191660200161056c565b81815286602083850101111561069957600080fd5b8160208401602083013760006020928201830152935084013590506001600160401b038111156106c857600080fd5b6106d48582860161059c565b9150509250929050565b634e487b7160e01b600052603260045260246000fd5b604081526000835180604084015260005b818110156107225760208187018101516060868401015201610705565b50600060608285010152601f19601f82011683019050606081016060848303016020850152808551808352608084019150602087019350600092505b80831015610781578351825260208201915060208401935060018301925061075e565b509695505050505050565b60006020828403121561079e57600080fd5b815180151581146107ae57600080fd5b9392505050565b818103818111156107d657634e487b7160e01b600052601160045260246000fd5b9291505056fea164736f6c634300081c000a",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100575760003560e01c806302abc7401461005c5780630741a9da14610096578063767b2e69146100b9578063b8c9d365146100e0578063d0ea9ff014610107575b600080fd5b6100837f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b6100a96100a4366004610489565b610146565b604051901515815260200161008d565b6100837f000000000000000000000000000000000000000000000000000000000000000081565b6100837f000000000000000000000000000000000000000000000000000000000000000081565b61012e7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161008d565b600080806101568486018661061e565b915091507f000000000000000000000000000000000000000000000000000000000000000081511461019b57604051633e15742360e01b815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000816000815181106101cf576101cf6106de565b6020026020010151146101f557604051630c26025960e01b815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000081600181518110610229576102296106de565b60200260200101511461024f57604051630c26025960e01b815260040160405180910390fd5b6102598660801c90565b817f00000000000000000000000000000000000000000000000000000000000000008151811061028b5761028b6106de565b6020026020010151146102b157604051630285464360e01b815260040160405180910390fd5b6102ba86610428565b817f0000000000000000000000000000000000000000000000000000000000000000815181106102ec576102ec6106de565b60200260200101511461031257604051630285464360e01b815260040160405180910390fd5b86817f000000000000000000000000000000000000000000000000000000000000000081518110610345576103456106de565b60200260200101511461036b5760405163151637bd60e31b815260040160405180910390fd5b604051633a94343960e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ea50d0e4906103b990859085906004016106f4565b602060405180830381865afa1580156103d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103fa919061078c565b610417576040516309bde33960e01b815260040160405180910390fd5b5060019a9950505050505050505050565b60006104396001600160801b6107b5565b909116919050565b60008083601f84011261045357600080fd5b5081356001600160401b0381111561046a57600080fd5b60208301915083602082850101111561048257600080fd5b9250929050565b60008060008060008060008060c0898b0312156104a557600080fd5b883597506020890135965060408901356001600160401b038111156104c957600080fd5b8901601f81018b136104da57600080fd5b80356001600160401b038111156104f057600080fd5b8b60208260051b840101111561050557600080fd5b60209190910196509450606089013593506080890135925060a08901356001600160401b0381111561053657600080fd5b6105428b828c01610441565b999c989b5096995094979396929594505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561059457610594610556565b604052919050565b600082601f8301126105ad57600080fd5b81356001600160401b038111156105c6576105c6610556565b8060051b6105d66020820161056c565b918252602081850181019290810190868411156105f257600080fd5b6020860192505b838310156106145782358252602092830192909101906105f9565b9695505050505050565b6000806040838503121561063157600080fd5b82356001600160401b0381111561064757600080fd5b8301601f8101851361065857600080fd5b80356001600160401b0381111561067157610671610556565b610684601f8201601f191660200161056c565b81815286602083850101111561069957600080fd5b8160208401602083013760006020928201830152935084013590506001600160401b038111156106c857600080fd5b6106d48582860161059c565b9150509250929050565b634e487b7160e01b600052603260045260246000fd5b604081526000835180604084015260005b818110156107225760208187018101516060868401015201610705565b50600060608285010152601f19601f82011683019050606081016060848303016020850152808551808352608084019150602087019350600092505b80831015610781578351825260208201915060208401935060018301925061075e565b509695505050505050565b60006020828403121561079e57600080fd5b815180151581146107ae57600080fd5b9392505050565b818103818111156107d657634e487b7160e01b600052601160045260246000fd5b9291505056fea164736f6c634300081c000a",
  "linkReferences": {},
  "deployedLinkReferences": {},
  "immutableReferences": {
    "36231": [
      {
        "length": 32,
        "start": 229
      }
    ],
    "36234": [
      {
        "length": 32,
        "start": 604
      }
    ],
    "36237": [
      {
        "length": 32,
        "start": 701
      }
    ],
    "36240": [
      {
        "length": 32,
        "start": 348
      }
    ],
    "36243": [
      {
        "length": 32,
        "start": 790
      }
    ],
    "36247": [
      {
        "length": 32,
        "start": 268
      },
      {
        "length": 32,
        "start": 898
      }
    ],
    "36250": [
      {
        "length": 32,
        "start": 190
      },
      {
        "length": 32,
        "start": 413
      }
    ],
    "36253": [
      {
        "length": 32,
        "start": 97
      },
      {
        "length": 32,
        "start": 503
      }
    ]
  },
  "inputSourceName": "project/contracts/verifiers/bfv/BfvPkVerifier.sol",
  "buildInfoId": "solc-0_8_28-58b894a0ac77a2d784be77b69288a062b8f6f518"
}