{
  "_format": "hh-sol-artifact-1",
  "contractName": "AttestationResolver",
  "sourceName": "contracts/resolver/examples/AttestationResolver.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "contract IEAS",
          "name": "eas",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "AccessDenied",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InsufficientValue",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidEAS",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidLength",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "NotPayable",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "OutOfBounds",
      "type": "error"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "bytes32",
              "name": "uid",
              "type": "bytes32"
            },
            {
              "internalType": "bytes32",
              "name": "schema",
              "type": "bytes32"
            },
            {
              "internalType": "uint64",
              "name": "time",
              "type": "uint64"
            },
            {
              "internalType": "uint64",
              "name": "expirationTime",
              "type": "uint64"
            },
            {
              "internalType": "uint64",
              "name": "revocationTime",
              "type": "uint64"
            },
            {
              "internalType": "bytes32",
              "name": "refUID",
              "type": "bytes32"
            },
            {
              "internalType": "address",
              "name": "recipient",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "attester",
              "type": "address"
            },
            {
              "internalType": "bool",
              "name": "revocable",
              "type": "bool"
            },
            {
              "internalType": "bytes",
              "name": "data",
              "type": "bytes"
            }
          ],
          "internalType": "struct Attestation",
          "name": "attestation",
          "type": "tuple"
        }
      ],
      "name": "attest",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "isPayable",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "bytes32",
              "name": "uid",
              "type": "bytes32"
            },
            {
              "internalType": "bytes32",
              "name": "schema",
              "type": "bytes32"
            },
            {
              "internalType": "uint64",
              "name": "time",
              "type": "uint64"
            },
            {
              "internalType": "uint64",
              "name": "expirationTime",
              "type": "uint64"
            },
            {
              "internalType": "uint64",
              "name": "revocationTime",
              "type": "uint64"
            },
            {
              "internalType": "bytes32",
              "name": "refUID",
              "type": "bytes32"
            },
            {
              "internalType": "address",
              "name": "recipient",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "attester",
              "type": "address"
            },
            {
              "internalType": "bool",
              "name": "revocable",
              "type": "bool"
            },
            {
              "internalType": "bytes",
              "name": "data",
              "type": "bytes"
            }
          ],
          "internalType": "struct Attestation[]",
          "name": "attestations",
          "type": "tuple[]"
        },
        {
          "internalType": "uint256[]",
          "name": "values",
          "type": "uint256[]"
        }
      ],
      "name": "multiAttest",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "bytes32",
              "name": "uid",
              "type": "bytes32"
            },
            {
              "internalType": "bytes32",
              "name": "schema",
              "type": "bytes32"
            },
            {
              "internalType": "uint64",
              "name": "time",
              "type": "uint64"
            },
            {
              "internalType": "uint64",
              "name": "expirationTime",
              "type": "uint64"
            },
            {
              "internalType": "uint64",
              "name": "revocationTime",
              "type": "uint64"
            },
            {
              "internalType": "bytes32",
              "name": "refUID",
              "type": "bytes32"
            },
            {
              "internalType": "address",
              "name": "recipient",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "attester",
              "type": "address"
            },
            {
              "internalType": "bool",
              "name": "revocable",
              "type": "bool"
            },
            {
              "internalType": "bytes",
              "name": "data",
              "type": "bytes"
            }
          ],
          "internalType": "struct Attestation[]",
          "name": "attestations",
          "type": "tuple[]"
        },
        {
          "internalType": "uint256[]",
          "name": "values",
          "type": "uint256[]"
        }
      ],
      "name": "multiRevoke",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "bytes32",
              "name": "uid",
              "type": "bytes32"
            },
            {
              "internalType": "bytes32",
              "name": "schema",
              "type": "bytes32"
            },
            {
              "internalType": "uint64",
              "name": "time",
              "type": "uint64"
            },
            {
              "internalType": "uint64",
              "name": "expirationTime",
              "type": "uint64"
            },
            {
              "internalType": "uint64",
              "name": "revocationTime",
              "type": "uint64"
            },
            {
              "internalType": "bytes32",
              "name": "refUID",
              "type": "bytes32"
            },
            {
              "internalType": "address",
              "name": "recipient",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "attester",
              "type": "address"
            },
            {
              "internalType": "bool",
              "name": "revocable",
              "type": "bool"
            },
            {
              "internalType": "bytes",
              "name": "data",
              "type": "bytes"
            }
          ],
          "internalType": "struct Attestation",
          "name": "attestation",
          "type": "tuple"
        }
      ],
      "name": "revoke",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        },
        {
          "internalType": "uint256",
          "name": "start",
          "type": "uint256"
        }
      ],
      "name": "toBytes32",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "version",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "stateMutability": "payable",
      "type": "receive"
    }
  ],
  "bytecode": "0x61010060405234801561001157600080fd5b50604051610f26380380610f2683398101604081905261003091610079565b6001608052600460a052600060c052806001600160a01b038116610067576040516341bc07ff60e11b815260040160405180910390fd5b6001600160a01b031660e052506100a9565b60006020828403121561008b57600080fd5b81516001600160a01b03811681146100a257600080fd5b9392505050565b60805160a05160c05160e051610e3d6100e9600039600081816105200152610611015260006101d2015260006101a9015260006101800152610e3d6000f3fe6080604052600436106100745760003560e01c806399dd9bd71161004e57806399dd9bd714610111578063ce46e0461461013f578063e49617e114610153578063e60c35051461016657600080fd5b806354fd4d50146100b057806388e5b2d9146100db57806391db0b7e146100fe57600080fd5b366100ab576040517f1574f9f300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080fd5b3480156100bc57600080fd5b506100c5610179565b6040516100d2919061083d565b60405180910390f35b6100ee6100e93660046108da565b61021c565b60405190151581526020016100d2565b6100ee61010c3660046108da565b61031d565b34801561011d57600080fd5b5061013161012c366004610a39565b61040e565b6040519081526020016100d2565b34801561014b57600080fd5b5060006100ee565b6100ee610161366004610abb565b610421565b6100ee610174366004610abb565b610436565b60606101a47f000000000000000000000000000000000000000000000000000000000000000061044a565b6101cd7f000000000000000000000000000000000000000000000000000000000000000061044a565b6101f67f000000000000000000000000000000000000000000000000000000000000000061044a565b60405160200161020893929190610af7565b604051602081830303815290604052905090565b6000610226610508565b83828114610260576040517f947d5a8400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3460005b8281101561030d57600086868381811061028057610280610b8e565b905060200201359050828111156102c3576040517f1101129400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6102f08989848181106102d8576102d8610b8e565b90506020028101906102ea9190610bbd565b50600190565b610301576000945050505050610315565b90910390600101610264565b506001925050505b949350505050565b6000610327610508565b83828114610361576040517f947d5a8400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3460005b8281101561030d57600086868381811061038157610381610b8e565b905060200201359050828111156103c4576040517f1101129400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6103f18989848181106103d9576103d9610b8e565b90506020028101906103eb9190610bbd565b82610579565b610402576000945050505050610315565b90910390600101610365565b600061041a83836106ed565b9392505050565b600061042b610508565b60015b90505b919050565b6000610440610508565b61042e8234610579565b6060600061045783610736565b600101905060008167ffffffffffffffff8111156104775761047761094b565b6040519080825280601f01601f1916602001820160405280156104a1576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85049450846104ab57509392505050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610577576040517f4ca8886700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6000806105c761058d610120860186610bfb565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525092506106ed915050565b6040517fa3112a640000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063a3112a6490602401600060405180830381865afa158015610658573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261069e9190810190610cf1565b6101208101515190915060201480156106e457507f45413545413545413545413545413545413545413545413545413545413500008161012001516106e290610deb565b145b95945050505050565b6000816020018351101561072d576040517fb4120f1400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50016020015190565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061077f577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef810000000083106107ab576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106107c957662386f26fc10000830492506010015b6305f5e10083106107e1576305f5e100830492506008015b61271083106107f557612710830492506004015b60648310610807576064830492506002015b600a8310610813576001015b92915050565b60005b8381101561083457818101518382015260200161081c565b50506000910152565b602081526000825180602084015261085c816040850160208701610819565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b60008083601f8401126108a057600080fd5b50813567ffffffffffffffff8111156108b857600080fd5b6020830191508360208260051b85010111156108d357600080fd5b9250929050565b600080600080604085870312156108f057600080fd5b843567ffffffffffffffff81111561090757600080fd5b6109138782880161088e565b909550935050602085013567ffffffffffffffff81111561093357600080fd5b61093f8782880161088e565b95989497509550505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051610140810167ffffffffffffffff8111828210171561099e5761099e61094b565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156109eb576109eb61094b565b604052919050565b600067ffffffffffffffff821115610a0d57610a0d61094b565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60008060408385031215610a4c57600080fd5b823567ffffffffffffffff811115610a6357600080fd5b8301601f81018513610a7457600080fd5b8035610a87610a82826109f3565b6109a4565b818152866020838501011115610a9c57600080fd5b8160208401602083013760006020928201830152969401359450505050565b600060208284031215610acd57600080fd5b813567ffffffffffffffff811115610ae457600080fd5b8201610140818503121561041a57600080fd5b60008451610b09818460208901610819565b7f2e000000000000000000000000000000000000000000000000000000000000009083019081528451610b43816001840160208901610819565b7f2e00000000000000000000000000000000000000000000000000000000000000600192909101918201528351610b81816002840160208801610819565b0160020195945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec1833603018112610bf157600080fd5b9190910192915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112610c3057600080fd5b83018035915067ffffffffffffffff821115610c4b57600080fd5b6020019150368190038213156108d357600080fd5b805167ffffffffffffffff8116811461043157600080fd5b805173ffffffffffffffffffffffffffffffffffffffff8116811461043157600080fd5b8051801515811461043157600080fd5b600082601f830112610cbd57600080fd5b8151610ccb610a82826109f3565b818152846020838601011115610ce057600080fd5b610315826020830160208701610819565b600060208284031215610d0357600080fd5b815167ffffffffffffffff811115610d1a57600080fd5b82016101408185031215610d2d57600080fd5b610d3561097a565b8151815260208083015190820152610d4f60408301610c60565b6040820152610d6060608301610c60565b6060820152610d7160808301610c60565b608082015260a08281015190820152610d8c60c08301610c78565b60c0820152610d9d60e08301610c78565b60e0820152610daf6101008301610c9c565b61010082015261012082015167ffffffffffffffff811115610dd057600080fd5b610ddc86828501610cac565b61012083015250949350505050565b80516020808301519190811015610e2a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8160200360031b1b821691505b5091905056fea164736f6c634300081d000a",
  "deployedBytecode": "0x6080604052600436106100745760003560e01c806399dd9bd71161004e57806399dd9bd714610111578063ce46e0461461013f578063e49617e114610153578063e60c35051461016657600080fd5b806354fd4d50146100b057806388e5b2d9146100db57806391db0b7e146100fe57600080fd5b366100ab576040517f1574f9f300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080fd5b3480156100bc57600080fd5b506100c5610179565b6040516100d2919061083d565b60405180910390f35b6100ee6100e93660046108da565b61021c565b60405190151581526020016100d2565b6100ee61010c3660046108da565b61031d565b34801561011d57600080fd5b5061013161012c366004610a39565b61040e565b6040519081526020016100d2565b34801561014b57600080fd5b5060006100ee565b6100ee610161366004610abb565b610421565b6100ee610174366004610abb565b610436565b60606101a47f000000000000000000000000000000000000000000000000000000000000000061044a565b6101cd7f000000000000000000000000000000000000000000000000000000000000000061044a565b6101f67f000000000000000000000000000000000000000000000000000000000000000061044a565b60405160200161020893929190610af7565b604051602081830303815290604052905090565b6000610226610508565b83828114610260576040517f947d5a8400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3460005b8281101561030d57600086868381811061028057610280610b8e565b905060200201359050828111156102c3576040517f1101129400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6102f08989848181106102d8576102d8610b8e565b90506020028101906102ea9190610bbd565b50600190565b610301576000945050505050610315565b90910390600101610264565b506001925050505b949350505050565b6000610327610508565b83828114610361576040517f947d5a8400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3460005b8281101561030d57600086868381811061038157610381610b8e565b905060200201359050828111156103c4576040517f1101129400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6103f18989848181106103d9576103d9610b8e565b90506020028101906103eb9190610bbd565b82610579565b610402576000945050505050610315565b90910390600101610365565b600061041a83836106ed565b9392505050565b600061042b610508565b60015b90505b919050565b6000610440610508565b61042e8234610579565b6060600061045783610736565b600101905060008167ffffffffffffffff8111156104775761047761094b565b6040519080825280601f01601f1916602001820160405280156104a1576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85049450846104ab57509392505050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610577576040517f4ca8886700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6000806105c761058d610120860186610bfb565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525092506106ed915050565b6040517fa3112a640000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063a3112a6490602401600060405180830381865afa158015610658573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261069e9190810190610cf1565b6101208101515190915060201480156106e457507f45413545413545413545413545413545413545413545413545413545413500008161012001516106e290610deb565b145b95945050505050565b6000816020018351101561072d576040517fb4120f1400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50016020015190565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061077f577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef810000000083106107ab576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106107c957662386f26fc10000830492506010015b6305f5e10083106107e1576305f5e100830492506008015b61271083106107f557612710830492506004015b60648310610807576064830492506002015b600a8310610813576001015b92915050565b60005b8381101561083457818101518382015260200161081c565b50506000910152565b602081526000825180602084015261085c816040850160208701610819565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b60008083601f8401126108a057600080fd5b50813567ffffffffffffffff8111156108b857600080fd5b6020830191508360208260051b85010111156108d357600080fd5b9250929050565b600080600080604085870312156108f057600080fd5b843567ffffffffffffffff81111561090757600080fd5b6109138782880161088e565b909550935050602085013567ffffffffffffffff81111561093357600080fd5b61093f8782880161088e565b95989497509550505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051610140810167ffffffffffffffff8111828210171561099e5761099e61094b565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156109eb576109eb61094b565b604052919050565b600067ffffffffffffffff821115610a0d57610a0d61094b565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60008060408385031215610a4c57600080fd5b823567ffffffffffffffff811115610a6357600080fd5b8301601f81018513610a7457600080fd5b8035610a87610a82826109f3565b6109a4565b818152866020838501011115610a9c57600080fd5b8160208401602083013760006020928201830152969401359450505050565b600060208284031215610acd57600080fd5b813567ffffffffffffffff811115610ae457600080fd5b8201610140818503121561041a57600080fd5b60008451610b09818460208901610819565b7f2e000000000000000000000000000000000000000000000000000000000000009083019081528451610b43816001840160208901610819565b7f2e00000000000000000000000000000000000000000000000000000000000000600192909101918201528351610b81816002840160208801610819565b0160020195945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec1833603018112610bf157600080fd5b9190910192915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112610c3057600080fd5b83018035915067ffffffffffffffff821115610c4b57600080fd5b6020019150368190038213156108d357600080fd5b805167ffffffffffffffff8116811461043157600080fd5b805173ffffffffffffffffffffffffffffffffffffffff8116811461043157600080fd5b8051801515811461043157600080fd5b600082601f830112610cbd57600080fd5b8151610ccb610a82826109f3565b818152846020838601011115610ce057600080fd5b610315826020830160208701610819565b600060208284031215610d0357600080fd5b815167ffffffffffffffff811115610d1a57600080fd5b82016101408185031215610d2d57600080fd5b610d3561097a565b8151815260208083015190820152610d4f60408301610c60565b6040820152610d6060608301610c60565b6060820152610d7160808301610c60565b608082015260a08281015190820152610d8c60c08301610c78565b60c0820152610d9d60e08301610c78565b60e0820152610daf6101008301610c9c565b61010082015261012082015167ffffffffffffffff811115610dd057600080fd5b610ddc86828501610cac565b61012083015250949350505050565b80516020808301519190811015610e2a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8160200360031b1b821691505b5091905056fea164736f6c634300081d000a",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
