{
  "abi": [
    {
      "inputs": [],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "AccessDenied",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "AlreadyRevoked",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "AlreadyRevokedOffchain",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "AlreadyTimestamped",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InsufficientValue",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidAttestation",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidAttestations",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidExpirationTime",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidLength",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidOffset",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidRegistry",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidRevocation",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidRevocations",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidSchema",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidSignature",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidVerifier",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "Irrevocable",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "NotFound",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "NotPayable",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "WrongSchema",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "attester",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "uid",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "schema",
          "type": "bytes32"
        }
      ],
      "name": "Attested",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "attester",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "uid",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "schema",
          "type": "bytes32"
        }
      ],
      "name": "Revoked",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "revoker",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "data",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "uint64",
          "name": "timestamp",
          "type": "uint64"
        }
      ],
      "name": "RevokedOffchain",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "data",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "uint64",
          "name": "timestamp",
          "type": "uint64"
        }
      ],
      "name": "Timestamped",
      "type": "event"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "bytes32",
              "name": "schema",
              "type": "bytes32"
            },
            {
              "components": [
                {
                  "internalType": "address",
                  "name": "recipient",
                  "type": "address"
                },
                {
                  "internalType": "uint64",
                  "name": "expirationTime",
                  "type": "uint64"
                },
                {
                  "internalType": "bool",
                  "name": "revocable",
                  "type": "bool"
                },
                {
                  "internalType": "bytes32",
                  "name": "refUID",
                  "type": "bytes32"
                },
                {
                  "internalType": "bytes",
                  "name": "data",
                  "type": "bytes"
                },
                {
                  "internalType": "uint256",
                  "name": "value",
                  "type": "uint256"
                }
              ],
              "internalType": "struct AttestationRequestData",
              "name": "data",
              "type": "tuple"
            }
          ],
          "internalType": "struct AttestationRequest",
          "name": "request",
          "type": "tuple"
        }
      ],
      "name": "attest",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "bytes32",
              "name": "schema",
              "type": "bytes32"
            },
            {
              "components": [
                {
                  "internalType": "address",
                  "name": "recipient",
                  "type": "address"
                },
                {
                  "internalType": "uint64",
                  "name": "expirationTime",
                  "type": "uint64"
                },
                {
                  "internalType": "bool",
                  "name": "revocable",
                  "type": "bool"
                },
                {
                  "internalType": "bytes32",
                  "name": "refUID",
                  "type": "bytes32"
                },
                {
                  "internalType": "bytes",
                  "name": "data",
                  "type": "bytes"
                },
                {
                  "internalType": "uint256",
                  "name": "value",
                  "type": "uint256"
                }
              ],
              "internalType": "struct AttestationRequestData",
              "name": "data",
              "type": "tuple"
            },
            {
              "components": [
                {
                  "internalType": "uint8",
                  "name": "v",
                  "type": "uint8"
                },
                {
                  "internalType": "bytes32",
                  "name": "r",
                  "type": "bytes32"
                },
                {
                  "internalType": "bytes32",
                  "name": "s",
                  "type": "bytes32"
                }
              ],
              "internalType": "struct EIP712Signature",
              "name": "signature",
              "type": "tuple"
            },
            {
              "internalType": "address",
              "name": "attester",
              "type": "address"
            }
          ],
          "internalType": "struct DelegatedAttestationRequest",
          "name": "delegatedRequest",
          "type": "tuple"
        }
      ],
      "name": "attestByDelegation",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getAttestTypeHash",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "uid",
          "type": "bytes32"
        }
      ],
      "name": "getAttestation",
      "outputs": [
        {
          "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": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getDomainSeparator",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getName",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "getNonce",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "revoker",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "data",
          "type": "bytes32"
        }
      ],
      "name": "getRevokeOffchain",
      "outputs": [
        {
          "internalType": "uint64",
          "name": "",
          "type": "uint64"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getRevokeTypeHash",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getSchemaRegistry",
      "outputs": [
        {
          "internalType": "contract ISchemaRegistry",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "data",
          "type": "bytes32"
        }
      ],
      "name": "getTimestamp",
      "outputs": [
        {
          "internalType": "uint64",
          "name": "",
          "type": "uint64"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "uid",
          "type": "bytes32"
        }
      ],
      "name": "isAttestationValid",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "bytes32",
              "name": "schema",
              "type": "bytes32"
            },
            {
              "components": [
                {
                  "internalType": "address",
                  "name": "recipient",
                  "type": "address"
                },
                {
                  "internalType": "uint64",
                  "name": "expirationTime",
                  "type": "uint64"
                },
                {
                  "internalType": "bool",
                  "name": "revocable",
                  "type": "bool"
                },
                {
                  "internalType": "bytes32",
                  "name": "refUID",
                  "type": "bytes32"
                },
                {
                  "internalType": "bytes",
                  "name": "data",
                  "type": "bytes"
                },
                {
                  "internalType": "uint256",
                  "name": "value",
                  "type": "uint256"
                }
              ],
              "internalType": "struct AttestationRequestData[]",
              "name": "data",
              "type": "tuple[]"
            }
          ],
          "internalType": "struct MultiAttestationRequest[]",
          "name": "multiRequests",
          "type": "tuple[]"
        }
      ],
      "name": "multiAttest",
      "outputs": [
        {
          "internalType": "bytes32[]",
          "name": "",
          "type": "bytes32[]"
        }
      ],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "bytes32",
              "name": "schema",
              "type": "bytes32"
            },
            {
              "components": [
                {
                  "internalType": "address",
                  "name": "recipient",
                  "type": "address"
                },
                {
                  "internalType": "uint64",
                  "name": "expirationTime",
                  "type": "uint64"
                },
                {
                  "internalType": "bool",
                  "name": "revocable",
                  "type": "bool"
                },
                {
                  "internalType": "bytes32",
                  "name": "refUID",
                  "type": "bytes32"
                },
                {
                  "internalType": "bytes",
                  "name": "data",
                  "type": "bytes"
                },
                {
                  "internalType": "uint256",
                  "name": "value",
                  "type": "uint256"
                }
              ],
              "internalType": "struct AttestationRequestData[]",
              "name": "data",
              "type": "tuple[]"
            },
            {
              "components": [
                {
                  "internalType": "uint8",
                  "name": "v",
                  "type": "uint8"
                },
                {
                  "internalType": "bytes32",
                  "name": "r",
                  "type": "bytes32"
                },
                {
                  "internalType": "bytes32",
                  "name": "s",
                  "type": "bytes32"
                }
              ],
              "internalType": "struct EIP712Signature[]",
              "name": "signatures",
              "type": "tuple[]"
            },
            {
              "internalType": "address",
              "name": "attester",
              "type": "address"
            }
          ],
          "internalType": "struct MultiDelegatedAttestationRequest[]",
          "name": "multiDelegatedRequests",
          "type": "tuple[]"
        }
      ],
      "name": "multiAttestByDelegation",
      "outputs": [
        {
          "internalType": "bytes32[]",
          "name": "",
          "type": "bytes32[]"
        }
      ],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "bytes32",
              "name": "schema",
              "type": "bytes32"
            },
            {
              "components": [
                {
                  "internalType": "bytes32",
                  "name": "uid",
                  "type": "bytes32"
                },
                {
                  "internalType": "uint256",
                  "name": "value",
                  "type": "uint256"
                }
              ],
              "internalType": "struct RevocationRequestData[]",
              "name": "data",
              "type": "tuple[]"
            }
          ],
          "internalType": "struct MultiRevocationRequest[]",
          "name": "multiRequests",
          "type": "tuple[]"
        }
      ],
      "name": "multiRevoke",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "bytes32",
              "name": "schema",
              "type": "bytes32"
            },
            {
              "components": [
                {
                  "internalType": "bytes32",
                  "name": "uid",
                  "type": "bytes32"
                },
                {
                  "internalType": "uint256",
                  "name": "value",
                  "type": "uint256"
                }
              ],
              "internalType": "struct RevocationRequestData[]",
              "name": "data",
              "type": "tuple[]"
            },
            {
              "components": [
                {
                  "internalType": "uint8",
                  "name": "v",
                  "type": "uint8"
                },
                {
                  "internalType": "bytes32",
                  "name": "r",
                  "type": "bytes32"
                },
                {
                  "internalType": "bytes32",
                  "name": "s",
                  "type": "bytes32"
                }
              ],
              "internalType": "struct EIP712Signature[]",
              "name": "signatures",
              "type": "tuple[]"
            },
            {
              "internalType": "address",
              "name": "revoker",
              "type": "address"
            }
          ],
          "internalType": "struct MultiDelegatedRevocationRequest[]",
          "name": "multiDelegatedRequests",
          "type": "tuple[]"
        }
      ],
      "name": "multiRevokeByDelegation",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32[]",
          "name": "data",
          "type": "bytes32[]"
        }
      ],
      "name": "multiRevokeOffchain",
      "outputs": [
        {
          "internalType": "uint64",
          "name": "",
          "type": "uint64"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32[]",
          "name": "data",
          "type": "bytes32[]"
        }
      ],
      "name": "multiTimestamp",
      "outputs": [
        {
          "internalType": "uint64",
          "name": "",
          "type": "uint64"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "bytes32",
              "name": "schema",
              "type": "bytes32"
            },
            {
              "components": [
                {
                  "internalType": "bytes32",
                  "name": "uid",
                  "type": "bytes32"
                },
                {
                  "internalType": "uint256",
                  "name": "value",
                  "type": "uint256"
                }
              ],
              "internalType": "struct RevocationRequestData",
              "name": "data",
              "type": "tuple"
            }
          ],
          "internalType": "struct RevocationRequest",
          "name": "request",
          "type": "tuple"
        }
      ],
      "name": "revoke",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "bytes32",
              "name": "schema",
              "type": "bytes32"
            },
            {
              "components": [
                {
                  "internalType": "bytes32",
                  "name": "uid",
                  "type": "bytes32"
                },
                {
                  "internalType": "uint256",
                  "name": "value",
                  "type": "uint256"
                }
              ],
              "internalType": "struct RevocationRequestData",
              "name": "data",
              "type": "tuple"
            },
            {
              "components": [
                {
                  "internalType": "uint8",
                  "name": "v",
                  "type": "uint8"
                },
                {
                  "internalType": "bytes32",
                  "name": "r",
                  "type": "bytes32"
                },
                {
                  "internalType": "bytes32",
                  "name": "s",
                  "type": "bytes32"
                }
              ],
              "internalType": "struct EIP712Signature",
              "name": "signature",
              "type": "tuple"
            },
            {
              "internalType": "address",
              "name": "revoker",
              "type": "address"
            }
          ],
          "internalType": "struct DelegatedRevocationRequest",
          "name": "delegatedRequest",
          "type": "tuple"
        }
      ],
      "name": "revokeByDelegation",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "data",
          "type": "bytes32"
        }
      ],
      "name": "revokeOffchain",
      "outputs": [
        {
          "internalType": "uint64",
          "name": "",
          "type": "uint64"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "data",
          "type": "bytes32"
        }
      ],
      "name": "timestamp",
      "outputs": [
        {
          "internalType": "uint64",
          "name": "",
          "type": "uint64"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "version",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "address": "0x4E0275Ea5a89e7a3c1B58411379D1a0eDdc5b088",
  "args": [],
  "bytecode": "[encoded data, 36052 characters]",
  "deployedBytecode": "[encoded data, 35264 characters]",
  "devdoc": {
    "version": 1,
    "kind": "dev",
    "methods": {
      "attest((bytes32,(address,uint64,bool,bytes32,bytes,uint256)))": {
        "params": {
          "request": "The arguments of the attestation request."
        },
        "returns": {
          "_0": "The UID of the new attestation."
        }
      },
      "attestByDelegation((bytes32,(address,uint64,bool,bytes32,bytes,uint256),(uint8,bytes32,bytes32),address))": {
        "params": {
          "delegatedRequest": "The arguments of the delegated attestation request."
        },
        "returns": {
          "_0": "The UID of the new attestation."
        }
      },
      "constructor": {
        "details": "Creates a new EAS instance."
      },
      "getAttestTypeHash()": {
        "returns": {
          "_0": "The EIP712 attest function type hash."
        }
      },
      "getAttestation(bytes32)": {
        "params": {
          "uid": "The UID of the attestation to retrieve."
        },
        "returns": {
          "_0": "The attestation data members."
        }
      },
      "getName()": {
        "returns": {
          "_0": "The EIP712 name."
        }
      },
      "getNonce(address)": {
        "params": {
          "account": "The requested account."
        },
        "returns": {
          "_0": "The current nonce."
        }
      },
      "getRevokeOffchain(address,bytes32)": {
        "params": {
          "data": "The data to query."
        },
        "returns": {
          "_0": "The timestamp the data was timestamped with."
        }
      },
      "getRevokeTypeHash()": {
        "returns": {
          "_0": "hash_ The EIP712 revoke function type hash."
        }
      },
      "getSchemaRegistry()": {
        "returns": {
          "_0": "The address of the global schema registry."
        }
      },
      "getTimestamp(bytes32)": {
        "params": {
          "data": "The data to query."
        },
        "returns": {
          "_0": "The timestamp the data was timestamped with."
        }
      },
      "isAttestationValid(bytes32)": {
        "params": {
          "uid": "The UID of the attestation to retrieve."
        },
        "returns": {
          "_0": "Whether an attestation exists."
        }
      },
      "multiAttest((bytes32,(address,uint64,bool,bytes32,bytes,uint256)[])[])": {
        "params": {
          "multiRequests": "The arguments of the multi attestation requests. The requests should be grouped by distinct        schema ids to benefit from the best batching optimization."
        },
        "returns": {
          "_0": "The UIDs of the new attestations."
        }
      },
      "multiAttestByDelegation((bytes32,(address,uint64,bool,bytes32,bytes,uint256)[],(uint8,bytes32,bytes32)[],address)[])": {
        "params": {
          "multiDelegatedRequests": "The arguments of the delegated multi attestation requests. The requests should be        grouped by distinct schema ids to benefit from the best batching optimization."
        },
        "returns": {
          "_0": "The UIDs of the new attestations."
        }
      },
      "multiRevoke((bytes32,(bytes32,uint256)[])[])": {
        "params": {
          "multiRequests": "The arguments of the multi revocation requests. The requests should be grouped by distinct        schema ids to benefit from the best batching optimization."
        }
      },
      "multiRevokeByDelegation((bytes32,(bytes32,uint256)[],(uint8,bytes32,bytes32)[],address)[])": {
        "params": {
          "multiDelegatedRequests": "The arguments of the delegated multi revocation attestation requests. The requests should be        grouped by distinct schema ids to benefit from the best batching optimization."
        }
      },
      "multiRevokeOffchain(bytes32[])": {
        "params": {
          "data": "The data to timestamp."
        },
        "returns": {
          "_0": "The timestamp the data was revoked with."
        }
      },
      "multiTimestamp(bytes32[])": {
        "params": {
          "data": "The data to timestamp."
        },
        "returns": {
          "_0": "The timestamp the data was timestamped with."
        }
      },
      "revoke((bytes32,(bytes32,uint256)))": {
        "params": {
          "request": "The arguments of the revocation request."
        }
      },
      "revokeByDelegation((bytes32,(bytes32,uint256),(uint8,bytes32,bytes32),address))": {
        "params": {
          "delegatedRequest": "The arguments of the delegated revocation request."
        }
      },
      "revokeOffchain(bytes32)": {
        "params": {
          "data": "The data to timestamp."
        },
        "returns": {
          "_0": "The timestamp the data was revoked with."
        }
      },
      "timestamp(bytes32)": {
        "params": {
          "data": "The data to timestamp."
        },
        "returns": {
          "_0": "The timestamp the data was timestamped with."
        }
      },
      "version()": {
        "returns": {
          "_0": "Semver contract version as a string."
        }
      }
    },
    "events": {
      "Attested(address,address,bytes32,bytes32)": {
        "details": "Emitted when an attestation has been made.",
        "params": {
          "attester": "The attesting account.",
          "recipient": "The recipient of the attestation.",
          "schema": "The UID of the schema.",
          "uid": "The UID the revoked attestation."
        }
      },
      "Revoked(address,address,bytes32,bytes32)": {
        "details": "Emitted when an attestation has been revoked.",
        "params": {
          "attester": "The attesting account.",
          "recipient": "The recipient of the attestation.",
          "schema": "The UID of the schema.",
          "uid": "The UID the revoked attestation."
        }
      },
      "RevokedOffchain(address,bytes32,uint64)": {
        "details": "Emitted when a data has been revoked.",
        "params": {
          "data": "The data.",
          "revoker": "The address of the revoker.",
          "timestamp": "The timestamp."
        }
      },
      "Timestamped(bytes32,uint64)": {
        "details": "Emitted when a data has been timestamped.",
        "params": {
          "data": "The data.",
          "timestamp": "The timestamp."
        }
      }
    },
    "title": "EAS"
  },
  "metadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"type\":\"error\",\"name\":\"AccessDenied\"},{\"inputs\":[],\"type\":\"error\",\"name\":\"AlreadyRevoked\"},{\"inputs\":[],\"type\":\"error\",\"name\":\"AlreadyRevokedOffchain\"},{\"inputs\":[],\"type\":\"error\",\"name\":\"AlreadyTimestamped\"},{\"inputs\":[],\"type\":\"error\",\"name\":\"InsufficientValue\"},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidAttestation\"},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidAttestations\"},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidExpirationTime\"},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidLength\"},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidOffset\"},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidRegistry\"},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidRevocation\"},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidRevocations\"},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidSchema\"},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidSignature\"},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidVerifier\"},{\"inputs\":[],\"type\":\"error\",\"name\":\"Irrevocable\"},{\"inputs\":[],\"type\":\"error\",\"name\":\"NotFound\"},{\"inputs\":[],\"type\":\"error\",\"name\":\"NotPayable\"},{\"inputs\":[],\"type\":\"error\",\"name\":\"WrongSchema\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\",\"indexed\":true},{\"internalType\":\"address\",\"name\":\"attester\",\"type\":\"address\",\"indexed\":true},{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\",\"indexed\":false},{\"internalType\":\"bytes32\",\"name\":\"schema\",\"type\":\"bytes32\",\"indexed\":true}],\"type\":\"event\",\"name\":\"Attested\",\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\",\"indexed\":true},{\"internalType\":\"address\",\"name\":\"attester\",\"type\":\"address\",\"indexed\":true},{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\",\"indexed\":false},{\"internalType\":\"bytes32\",\"name\":\"schema\",\"type\":\"bytes32\",\"indexed\":true}],\"type\":\"event\",\"name\":\"Revoked\",\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"revoker\",\"type\":\"address\",\"indexed\":true},{\"internalType\":\"bytes32\",\"name\":\"data\",\"type\":\"bytes32\",\"indexed\":true},{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\",\"indexed\":true}],\"type\":\"event\",\"name\":\"RevokedOffchain\",\"anonymous\":false},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"data\",\"type\":\"bytes32\",\"indexed\":true},{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\",\"indexed\":true}],\"type\":\"event\",\"name\":\"Timestamped\",\"anonymous\":false},{\"inputs\":[{\"internalType\":\"struct AttestationRequest\",\"name\":\"request\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"bytes32\",\"name\":\"schema\",\"type\":\"bytes32\"},{\"internalType\":\"struct AttestationRequestData\",\"name\":\"data\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"expirationTime\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"refUID\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}]}]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"attest\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}]},{\"inputs\":[{\"internalType\":\"struct DelegatedAttestationRequest\",\"name\":\"delegatedRequest\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"bytes32\",\"name\":\"schema\",\"type\":\"bytes32\"},{\"internalType\":\"struct AttestationRequestData\",\"name\":\"data\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"expirationTime\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"refUID\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}]},{\"internalType\":\"struct EIP712Signature\",\"name\":\"signature\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}]},{\"internalType\":\"address\",\"name\":\"attester\",\"type\":\"address\"}]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"attestByDelegation\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}]},{\"inputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\",\"name\":\"getAttestTypeHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}]},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getAttestation\",\"outputs\":[{\"internalType\":\"struct Attestation\",\"name\":\"\",\"type\":\"tuple\",\"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\"}]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getDomainSeparator\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getName\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"revoker\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"data\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getRevokeOffchain\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}]},{\"inputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\",\"name\":\"getRevokeTypeHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}]},{\"inputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\",\"name\":\"getSchemaRegistry\",\"outputs\":[{\"internalType\":\"contract ISchemaRegistry\",\"name\":\"\",\"type\":\"address\"}]},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"data\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getTimestamp\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}]},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"isAttestationValid\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}]},{\"inputs\":[{\"internalType\":\"struct MultiAttestationRequest[]\",\"name\":\"multiRequests\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"bytes32\",\"name\":\"schema\",\"type\":\"bytes32\"},{\"internalType\":\"struct AttestationRequestData[]\",\"name\":\"data\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"expirationTime\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"refUID\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}]}]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"multiAttest\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}]},{\"inputs\":[{\"internalType\":\"struct MultiDelegatedAttestationRequest[]\",\"name\":\"multiDelegatedRequests\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"bytes32\",\"name\":\"schema\",\"type\":\"bytes32\"},{\"internalType\":\"struct AttestationRequestData[]\",\"name\":\"data\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"expirationTime\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"refUID\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}]},{\"internalType\":\"struct EIP712Signature[]\",\"name\":\"signatures\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}]},{\"internalType\":\"address\",\"name\":\"attester\",\"type\":\"address\"}]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"multiAttestByDelegation\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}]},{\"inputs\":[{\"internalType\":\"struct MultiRevocationRequest[]\",\"name\":\"multiRequests\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"bytes32\",\"name\":\"schema\",\"type\":\"bytes32\"},{\"internalType\":\"struct RevocationRequestData[]\",\"name\":\"data\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}]}]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"multiRevoke\"},{\"inputs\":[{\"internalType\":\"struct MultiDelegatedRevocationRequest[]\",\"name\":\"multiDelegatedRequests\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"bytes32\",\"name\":\"schema\",\"type\":\"bytes32\"},{\"internalType\":\"struct RevocationRequestData[]\",\"name\":\"data\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}]},{\"internalType\":\"struct EIP712Signature[]\",\"name\":\"signatures\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}]},{\"internalType\":\"address\",\"name\":\"revoker\",\"type\":\"address\"}]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"multiRevokeByDelegation\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"data\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"multiRevokeOffchain\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}]},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"data\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"multiTimestamp\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}]},{\"inputs\":[{\"internalType\":\"struct RevocationRequest\",\"name\":\"request\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"bytes32\",\"name\":\"schema\",\"type\":\"bytes32\"},{\"internalType\":\"struct RevocationRequestData\",\"name\":\"data\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}]}]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"revoke\"},{\"inputs\":[{\"internalType\":\"struct DelegatedRevocationRequest\",\"name\":\"delegatedRequest\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"bytes32\",\"name\":\"schema\",\"type\":\"bytes32\"},{\"internalType\":\"struct RevocationRequestData\",\"name\":\"data\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}]},{\"internalType\":\"struct EIP712Signature\",\"name\":\"signature\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}]},{\"internalType\":\"address\",\"name\":\"revoker\",\"type\":\"address\"}]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"revokeByDelegation\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"data\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"revokeOffchain\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}]},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"data\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"timestamp\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}]}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"attest((bytes32,(address,uint64,bool,bytes32,bytes,uint256)))\":{\"params\":{\"request\":\"The arguments of the attestation request.\"},\"returns\":{\"_0\":\"The UID of the new attestation.\"}},\"attestByDelegation((bytes32,(address,uint64,bool,bytes32,bytes,uint256),(uint8,bytes32,bytes32),address))\":{\"params\":{\"delegatedRequest\":\"The arguments of the delegated attestation request.\"},\"returns\":{\"_0\":\"The UID of the new attestation.\"}},\"constructor\":{\"details\":\"Creates a new EAS instance.\"},\"getAttestTypeHash()\":{\"returns\":{\"_0\":\"The EIP712 attest function type hash.\"}},\"getAttestation(bytes32)\":{\"params\":{\"uid\":\"The UID of the attestation to retrieve.\"},\"returns\":{\"_0\":\"The attestation data members.\"}},\"getName()\":{\"returns\":{\"_0\":\"The EIP712 name.\"}},\"getNonce(address)\":{\"params\":{\"account\":\"The requested account.\"},\"returns\":{\"_0\":\"The current nonce.\"}},\"getRevokeOffchain(address,bytes32)\":{\"params\":{\"data\":\"The data to query.\"},\"returns\":{\"_0\":\"The timestamp the data was timestamped with.\"}},\"getRevokeTypeHash()\":{\"returns\":{\"_0\":\"hash_ The EIP712 revoke function type hash.\"}},\"getSchemaRegistry()\":{\"returns\":{\"_0\":\"The address of the global schema registry.\"}},\"getTimestamp(bytes32)\":{\"params\":{\"data\":\"The data to query.\"},\"returns\":{\"_0\":\"The timestamp the data was timestamped with.\"}},\"isAttestationValid(bytes32)\":{\"params\":{\"uid\":\"The UID of the attestation to retrieve.\"},\"returns\":{\"_0\":\"Whether an attestation exists.\"}},\"multiAttest((bytes32,(address,uint64,bool,bytes32,bytes,uint256)[])[])\":{\"params\":{\"multiRequests\":\"The arguments of the multi attestation requests. The requests should be grouped by distinct        schema ids to benefit from the best batching optimization.\"},\"returns\":{\"_0\":\"The UIDs of the new attestations.\"}},\"multiAttestByDelegation((bytes32,(address,uint64,bool,bytes32,bytes,uint256)[],(uint8,bytes32,bytes32)[],address)[])\":{\"params\":{\"multiDelegatedRequests\":\"The arguments of the delegated multi attestation requests. The requests should be        grouped by distinct schema ids to benefit from the best batching optimization.\"},\"returns\":{\"_0\":\"The UIDs of the new attestations.\"}},\"multiRevoke((bytes32,(bytes32,uint256)[])[])\":{\"params\":{\"multiRequests\":\"The arguments of the multi revocation requests. The requests should be grouped by distinct        schema ids to benefit from the best batching optimization.\"}},\"multiRevokeByDelegation((bytes32,(bytes32,uint256)[],(uint8,bytes32,bytes32)[],address)[])\":{\"params\":{\"multiDelegatedRequests\":\"The arguments of the delegated multi revocation attestation requests. The requests should be        grouped by distinct schema ids to benefit from the best batching optimization.\"}},\"multiRevokeOffchain(bytes32[])\":{\"params\":{\"data\":\"The data to timestamp.\"},\"returns\":{\"_0\":\"The timestamp the data was revoked with.\"}},\"multiTimestamp(bytes32[])\":{\"params\":{\"data\":\"The data to timestamp.\"},\"returns\":{\"_0\":\"The timestamp the data was timestamped with.\"}},\"revoke((bytes32,(bytes32,uint256)))\":{\"params\":{\"request\":\"The arguments of the revocation request.\"}},\"revokeByDelegation((bytes32,(bytes32,uint256),(uint8,bytes32,bytes32),address))\":{\"params\":{\"delegatedRequest\":\"The arguments of the delegated revocation request.\"}},\"revokeOffchain(bytes32)\":{\"params\":{\"data\":\"The data to timestamp.\"},\"returns\":{\"_0\":\"The timestamp the data was revoked with.\"}},\"timestamp(bytes32)\":{\"params\":{\"data\":\"The data to timestamp.\"},\"returns\":{\"_0\":\"The timestamp the data was timestamped with.\"}},\"version()\":{\"returns\":{\"_0\":\"Semver contract version as a string.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"attest((bytes32,(address,uint64,bool,bytes32,bytes,uint256)))\":{\"notice\":\"Attests to a specific schema.      Example:      attest({         schema: \\\"0facc36681cbe2456019c1b0d1e7bedd6d1d40f6f324bf3dd3a4cef2999200a0\\\",         data: {             recipient: \\\"0xdEADBeAFdeAdbEafdeadbeafDeAdbEAFdeadbeaf\\\",             expirationTime: 0,             revocable: true,             refUID: \\\"0x0000000000000000000000000000000000000000000000000000000000000000\\\",             data: \\\"0xF00D\\\",             value: 0         }      })\"},\"attestByDelegation((bytes32,(address,uint64,bool,bytes32,bytes,uint256),(uint8,bytes32,bytes32),address))\":{\"notice\":\"Attests to a specific schema via the provided EIP712 signature.         Example:         attestByDelegation({             schema: '0x8e72f5bc0a8d4be6aa98360baa889040c50a0e51f32dbf0baa5199bd93472ebc',             data: {                 recipient: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',                 expirationTime: 1673891048,                 revocable: true,                 refUID: '0x0000000000000000000000000000000000000000000000000000000000000000',                 data: '0x1234',                 value: 0             },             signature: {                 v: 28,                 r: '0x148c...b25b',                 s: '0x5a72...be22'             },             attester: '0xc5E8740aD971409492b1A63Db8d83025e0Fc427e'         })\"},\"getAttestTypeHash()\":{\"notice\":\"Returns the EIP712 type hash for the attest function.\"},\"getAttestation(bytes32)\":{\"notice\":\"Returns an existing attestation by UID.\"},\"getDomainSeparator()\":{\"notice\":\"Returns the domain separator used in the encoding of the signatures for attest, and revoke.\"},\"getName()\":{\"notice\":\"Returns the EIP712 name.\"},\"getNonce(address)\":{\"notice\":\"Returns the current nonce per-account.\"},\"getRevokeOffchain(address,bytes32)\":{\"notice\":\"Returns the timestamp that the specified data was timestamped with.\"},\"getRevokeTypeHash()\":{\"notice\":\"Returns the EIP712 type hash for the revoke function.\"},\"getSchemaRegistry()\":{\"notice\":\"Returns the address of the global schema registry.\"},\"getTimestamp(bytes32)\":{\"notice\":\"Returns the timestamp that the specified data was timestamped with.\"},\"isAttestationValid(bytes32)\":{\"notice\":\"Checks whether an attestation exists.\"},\"multiAttest((bytes32,(address,uint64,bool,bytes32,bytes,uint256)[])[])\":{\"notice\":\"Attests to multiple schemas.         Example:         multiAttest([{             schema: '0x33e9094830a5cba5554d1954310e4fbed2ef5f859ec1404619adea4207f391fd',             data: [{                 recipient: '0xdEADBeAFdeAdbEafdeadbeafDeAdbEAFdeadbeaf',                 expirationTime: 1673891048,                 revocable: true,                 refUID: '0x0000000000000000000000000000000000000000000000000000000000000000',                 data: '0x1234',                 value: 1000             },             {                 recipient: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',                 expirationTime: 0,                 revocable: false,                 refUID: '0x480df4a039efc31b11bfdf491b383ca138b6bde160988222a2a3509c02cee174',                 data: '0x00',                 value: 0             }],         },         {             schema: '0x5ac273ce41e3c8bfa383efe7c03e54c5f0bff29c9f11ef6ffa930fc84ca32425',             data: [{                 recipient: '0xdEADBeAFdeAdbEafdeadbeafDeAdbEAFdeadbeaf',                 expirationTime: 0,                 revocable: true,                 refUID: '0x75bf2ed8dca25a8190c50c52db136664de25b2449535839008ccfdab469b214f',                 data: '0x12345678',                 value: 0             },         }])\"},\"multiAttestByDelegation((bytes32,(address,uint64,bool,bytes32,bytes,uint256)[],(uint8,bytes32,bytes32)[],address)[])\":{\"notice\":\"Attests to multiple schemas using via provided EIP712 signatures.         Example:         multiAttestByDelegation([{             schema: '0x8e72f5bc0a8d4be6aa98360baa889040c50a0e51f32dbf0baa5199bd93472ebc',             data: [{                 recipient: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',                 expirationTime: 1673891048,                 revocable: true,                 refUID: '0x0000000000000000000000000000000000000000000000000000000000000000',                 data: '0x1234',                 value: 0             },             {                 recipient: '0xdEADBeAFdeAdbEafdeadbeafDeAdbEAFdeadbeaf',                 expirationTime: 0,                 revocable: false,                 refUID: '0x0000000000000000000000000000000000000000000000000000000000000000',                 data: '0x00',                 value: 0             }],             signatures: [{                 v: 28,                 r: '0x148c...b25b',                 s: '0x5a72...be22'             },             {                 v: 28,                 r: '0x487s...67bb',                 s: '0x12ad...2366'             }],             attester: '0x1D86495b2A7B524D747d2839b3C645Bed32e8CF4'         }])\"},\"multiRevoke((bytes32,(bytes32,uint256)[])[])\":{\"notice\":\"Revokes existing attestations to multiple schemas.         Example:         multiRevoke([{             schema: '0x8e72f5bc0a8d4be6aa98360baa889040c50a0e51f32dbf0baa5199bd93472ebc',             data: [{                 uid: '0x211296a1ca0d7f9f2cfebf0daaa575bea9b20e968d81aef4e743d699c6ac4b25',                 value: 1000             },             {                 uid: '0xe160ac1bd3606a287b4d53d5d1d6da5895f65b4b4bab6d93aaf5046e48167ade',                 value: 0             }],         },         {             schema: '0x5ac273ce41e3c8bfa383efe7c03e54c5f0bff29c9f11ef6ffa930fc84ca32425',             data: [{                 uid: '0x053d42abce1fd7c8fcddfae21845ad34dae287b2c326220b03ba241bc5a8f019',                 value: 0             },         }])\"},\"multiRevokeByDelegation((bytes32,(bytes32,uint256)[],(uint8,bytes32,bytes32)[],address)[])\":{\"notice\":\"Revokes existing attestations to multiple schemas via provided EIP712 signatures.         Example:         multiRevokeByDelegation([{             schema: '0x8e72f5bc0a8d4be6aa98360baa889040c50a0e51f32dbf0baa5199bd93472ebc',             data: [{                 uid: '0x211296a1ca0d7f9f2cfebf0daaa575bea9b20e968d81aef4e743d699c6ac4b25',                 value: 1000             },             {                 uid: '0xe160ac1bd3606a287b4d53d5d1d6da5895f65b4b4bab6d93aaf5046e48167ade',                 value: 0             }],             signatures: [{                 v: 28,                 r: '0x148c...b25b',                 s: '0x5a72...be22'             },             {                 v: 28,                 r: '0x487s...67bb',                 s: '0x12ad...2366'             }],             revoker: '0x244934dd3e31bE2c81f84ECf0b3E6329F5381992'         }])\"},\"multiRevokeOffchain(bytes32[])\":{\"notice\":\"Revokes the specified multiple bytes32 data.\"},\"multiTimestamp(bytes32[])\":{\"notice\":\"Timestamps the specified multiple bytes32 data.\"},\"revoke((bytes32,(bytes32,uint256)))\":{\"notice\":\"Revokes an existing attestation to a specific schema.         Example:         revoke({             schema: '0x8e72f5bc0a8d4be6aa98360baa889040c50a0e51f32dbf0baa5199bd93472ebc',             data: {                 uid: '0x101032e487642ee04ee17049f99a70590c735b8614079fc9275f9dd57c00966d',                 value: 0             }         })\"},\"revokeByDelegation((bytes32,(bytes32,uint256),(uint8,bytes32,bytes32),address))\":{\"notice\":\"Revokes an existing attestation to a specific schema via the provided EIP712 signature.         Example:         revokeByDelegation({             schema: '0x8e72f5bc0a8d4be6aa98360baa889040c50a0e51f32dbf0baa5199bd93472ebc',             data: {                 uid: '0xcbbc12102578c642a0f7b34fe7111e41afa25683b6cd7b5a14caf90fa14d24ba',                 value: 0             },             signature: {                 v: 27,                 r: '0xb593...7142',                 s: '0x0f5b...2cce'             },             revoker: '0x244934dd3e31bE2c81f84ECf0b3E6329F5381992'         })\"},\"revokeOffchain(bytes32)\":{\"notice\":\"Revokes the specified bytes32 data.\"},\"timestamp(bytes32)\":{\"notice\":\"Timestamps the specified bytes32 data.\"},\"version()\":{\"notice\":\"Returns the full semver contract version.\"}},\"version\":1}},\"settings\":{\"remappings\":[\":@cwia/=node_modules/clones-with-immutable-args/src/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/\",\":@rari-capital/=node_modules/@rari-capital/\",\":@rari-capital/solmate/=node_modules/@rari-capital/solmate/\",\":clones-with-immutable-args/=node_modules/clones-with-immutable-args/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\"],\"optimizer\":{\"enabled\":true,\"runs\":999999},\"metadata\":{\"bytecodeHash\":\"none\"},\"compilationTarget\":{\"contracts/EAS/EAS.sol\":\"EAS\"},\"libraries\":{}},\"sources\":{\"contracts/EAS/Common.sol\":{\"keccak256\":\"0x880e8262ee6682eeca6140e5a0b71f98e0c4024720c777da161e05a7715ed09a\",\"urls\":[\"bzz-raw://56ed7dc6b538070a66b851275a6a9721275da9e5e83631d94e93620cd679c3f6\",\"dweb:/ipfs/QmVjKgNr3jbnYerjDyFGLky8wXCUR8SuzxrsypBVVSW3tk\"],\"license\":\"MIT\"},\"contracts/EAS/EAS.sol\":{\"keccak256\":\"0x6b2cb86e523e76ab186c84ec7e9ee3451e993ddeea97c0c775d7e716b3379423\",\"urls\":[\"bzz-raw://3d05621ec6e9f83b4b6a77cf934d042d06bf6edb16e200245d9ac6620fabf7c0\",\"dweb:/ipfs/QmZWSECRBQMg4fduaYCrUhgmbmxK5cqaPSUAYHGWp4az5g\"],\"license\":\"MIT\"},\"contracts/EAS/IEAS.sol\":{\"keccak256\":\"0x8370442f2f2a19eef31653d46860ddcaa1c10bd5ec70113ce93fc43e672378c6\",\"urls\":[\"bzz-raw://37968de66d77a84bf03876d2ec6363f155dfccf87f00df9876d154ac8a6a87d6\",\"dweb:/ipfs/Qmb82nUieu66cfTLVdRcGwGGs2yYqmut4hDJ5vUVqtnXFe\"],\"license\":\"MIT\"},\"contracts/EAS/ISchemaRegistry.sol\":{\"keccak256\":\"0x4e988bea43a70e8ed156c7ee74dd3667872a68f65fa10dc4f07ddd4d89b929f1\",\"urls\":[\"bzz-raw://046977484b8089aad16f2064099b3f7604bcbddd61334e046838c3c448b5ebb5\",\"dweb:/ipfs/QmXdorYunKEbiosCGL4teYCd1W2njCqujvMWQjYonAxU6w\"],\"license\":\"MIT\"},\"contracts/EAS/eip712/EIP712Verifier.sol\":{\"keccak256\":\"0x048e65ebd0d8a0e3195affa57e7f7b904b3195fe28b160169244fc89c0eb55f2\",\"urls\":[\"bzz-raw://7c8760a59d43cf81c43f2945283f0f0e5f6f205136064d4e48ee2abe67fe687b\",\"dweb:/ipfs/QmaGXYY8g17CTMYyVCZK42P8MM3ntcQye1KK1ytc6sbbVb\"],\"license\":\"MIT\"},\"contracts/EAS/resolver/ISchemaResolver.sol\":{\"keccak256\":\"0xe537341e3d8d9c8e0eada21b4278beef510781fb1745892312c286a3c8287c2d\",\"urls\":[\"bzz-raw://5ab80b1fd7b6ad0ca94ff14358c5ba942614e25632d8a07c8e364d3f45c08453\",\"dweb:/ipfs/QmY6WToUtVo1HpDq7z7Tb17othZnJwpz4m26GuzKAsGTeM\"],\"license\":\"MIT\"},\"contracts/libraries/Predeploys.sol\":{\"keccak256\":\"0xe46f53d83bbc978cebc11cb702e6b9f046cfbafdcbb79bba2837edf28515cbe4\",\"urls\":[\"bzz-raw://c80c47543cad25cc10ddd7ec2a2399ef1dac50bd5c90d8042211ded0692416a8\",\"dweb:/ipfs/QmeKCGE85eJpJzEXSLmQmhWT9aniSqvwNc8XDcSVedh9F8\"],\"license\":\"MIT\"},\"contracts/universal/Semver.sol\":{\"keccak256\":\"0xc455c84bb1f17e994dea0451fd363f81f83965bfa86e81ac6c8b3a327b9a0ff0\",\"urls\":[\"bzz-raw://fab499f3c0d7df8eb763b50621848d5d2147fb9c42a8eb9b65a11093090bb482\",\"dweb:/ipfs/QmUKsG4ztwtUZFjuRYAxgUFTgH5YxWSGF1BFFaB7vdM2K3\"],\"license\":\"MIT\"},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"],\"license\":\"MIT\"},\"node_modules/@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"],\"license\":\"MIT\"},\"node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5\",\"urls\":[\"bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900\",\"dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2\"],\"license\":\"MIT\"},\"node_modules/@openzeppelin/contracts/utils/cryptography/draft-EIP712.sol\":{\"keccak256\":\"0x6688fad58b9ec0286d40fa957152e575d5d8bd4c3aa80985efdb11b44f776ae7\",\"urls\":[\"bzz-raw://8bc00ab7f133cdaafd212a5cc6a16c8d37319721105d130c8e5af0c4e8f170ba\",\"dweb:/ipfs/QmVmf6LVMfFiEkvKYLzSv3bGHzymEW93AcUuFrNUdY3NtT\"],\"license\":\"MIT\"}},\"version\":1}",
  "numDeployments": 1,
  "receipt": {
    "transactionHash": "0xb17f2eb6e221002683f7427bd2481ce78b0f82094c4eeb0e701442cba4904db5",
    "transactionIndex": "0x2",
    "blockHash": "0xfcbb8967e5e2d9c6547cd7ae13b0f7973cc2bbd01fbf506e64ef0959ae345f19",
    "blockNumber": "0x6645706",
    "from": "0x9bbFB9919062C29a5eE15aCD93c9D7c3b14d31aa",
    "to": null,
    "cumulativeGasUsed": "0x3bf2b8",
    "gasUsed": "0x3aa40b",
    "contractAddress": "0x4E0275Ea5a89e7a3c1B58411379D1a0eDdc5b088",
    "logs": [],
    "status": "0x1",
    "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
    "type": "0x2",
    "effectiveGasPrice": "0xb2d05e44"
  },
  "solcInputHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "storageLayout": {
    "storage": [
      {
        "astId": 27260,
        "contract": "contracts/EAS/EAS.sol:EAS",
        "label": "_nonces",
        "offset": 0,
        "slot": "0",
        "type": "t_mapping(t_address,t_uint256)"
      },
      {
        "astId": 27266,
        "contract": "contracts/EAS/EAS.sol:EAS",
        "label": "__gap",
        "offset": 0,
        "slot": "1",
        "type": "t_array(t_uint256)49_storage"
      },
      {
        "astId": 24954,
        "contract": "contracts/EAS/EAS.sol:EAS",
        "label": "_db",
        "offset": 0,
        "slot": "50",
        "type": "t_mapping(t_bytes32,t_struct(Attestation)24729_storage)"
      },
      {
        "astId": 24958,
        "contract": "contracts/EAS/EAS.sol:EAS",
        "label": "_timestamps",
        "offset": 0,
        "slot": "51",
        "type": "t_mapping(t_bytes32,t_uint64)"
      },
      {
        "astId": 24964,
        "contract": "contracts/EAS/EAS.sol:EAS",
        "label": "_revocationsOffchain",
        "offset": 0,
        "slot": "52",
        "type": "t_mapping(t_address,t_mapping(t_bytes32,t_uint64))"
      },
      {
        "astId": 24970,
        "contract": "contracts/EAS/EAS.sol:EAS",
        "label": "__gap",
        "offset": 0,
        "slot": "53",
        "type": "t_array(t_uint256)47_storage"
      }
    ],
    "types": {
      "t_address": {
        "encoding": "inplace",
        "label": "address",
        "numberOfBytes": "20"
      },
      "t_array(t_uint256)47_storage": {
        "encoding": "inplace",
        "label": "uint256[47]",
        "numberOfBytes": "1504",
        "base": "t_uint256"
      },
      "t_array(t_uint256)49_storage": {
        "encoding": "inplace",
        "label": "uint256[49]",
        "numberOfBytes": "1568",
        "base": "t_uint256"
      },
      "t_bool": {
        "encoding": "inplace",
        "label": "bool",
        "numberOfBytes": "1"
      },
      "t_bytes32": {
        "encoding": "inplace",
        "label": "bytes32",
        "numberOfBytes": "32"
      },
      "t_bytes_storage": {
        "encoding": "bytes",
        "label": "bytes",
        "numberOfBytes": "32"
      },
      "t_mapping(t_address,t_mapping(t_bytes32,t_uint64))": {
        "encoding": "mapping",
        "key": "t_address",
        "label": "mapping(address => mapping(bytes32 => uint64))",
        "numberOfBytes": "32",
        "value": "t_mapping(t_bytes32,t_uint64)"
      },
      "t_mapping(t_address,t_uint256)": {
        "encoding": "mapping",
        "key": "t_address",
        "label": "mapping(address => uint256)",
        "numberOfBytes": "32",
        "value": "t_uint256"
      },
      "t_mapping(t_bytes32,t_struct(Attestation)24729_storage)": {
        "encoding": "mapping",
        "key": "t_bytes32",
        "label": "mapping(bytes32 => struct Attestation)",
        "numberOfBytes": "32",
        "value": "t_struct(Attestation)24729_storage"
      },
      "t_mapping(t_bytes32,t_uint64)": {
        "encoding": "mapping",
        "key": "t_bytes32",
        "label": "mapping(bytes32 => uint64)",
        "numberOfBytes": "32",
        "value": "t_uint64"
      },
      "t_struct(Attestation)24729_storage": {
        "encoding": "inplace",
        "label": "struct Attestation",
        "numberOfBytes": "224",
        "members": [
          {
            "astId": 24710,
            "contract": "contracts/EAS/EAS.sol:EAS",
            "label": "uid",
            "offset": 0,
            "slot": "0",
            "type": "t_bytes32"
          },
          {
            "astId": 24712,
            "contract": "contracts/EAS/EAS.sol:EAS",
            "label": "schema",
            "offset": 0,
            "slot": "1",
            "type": "t_bytes32"
          },
          {
            "astId": 24714,
            "contract": "contracts/EAS/EAS.sol:EAS",
            "label": "time",
            "offset": 0,
            "slot": "2",
            "type": "t_uint64"
          },
          {
            "astId": 24716,
            "contract": "contracts/EAS/EAS.sol:EAS",
            "label": "expirationTime",
            "offset": 8,
            "slot": "2",
            "type": "t_uint64"
          },
          {
            "astId": 24718,
            "contract": "contracts/EAS/EAS.sol:EAS",
            "label": "revocationTime",
            "offset": 16,
            "slot": "2",
            "type": "t_uint64"
          },
          {
            "astId": 24720,
            "contract": "contracts/EAS/EAS.sol:EAS",
            "label": "refUID",
            "offset": 0,
            "slot": "3",
            "type": "t_bytes32"
          },
          {
            "astId": 24722,
            "contract": "contracts/EAS/EAS.sol:EAS",
            "label": "recipient",
            "offset": 0,
            "slot": "4",
            "type": "t_address"
          },
          {
            "astId": 24724,
            "contract": "contracts/EAS/EAS.sol:EAS",
            "label": "attester",
            "offset": 0,
            "slot": "5",
            "type": "t_address"
          },
          {
            "astId": 24726,
            "contract": "contracts/EAS/EAS.sol:EAS",
            "label": "revocable",
            "offset": 20,
            "slot": "5",
            "type": "t_bool"
          },
          {
            "astId": 24728,
            "contract": "contracts/EAS/EAS.sol:EAS",
            "label": "data",
            "offset": 0,
            "slot": "6",
            "type": "t_bytes_storage"
          }
        ]
      },
      "t_uint256": {
        "encoding": "inplace",
        "label": "uint256",
        "numberOfBytes": "32"
      },
      "t_uint64": {
        "encoding": "inplace",
        "label": "uint64",
        "numberOfBytes": "8"
      }
    }
  },
  "transactionHash": "0xb17f2eb6e221002683f7427bd2481ce78b0f82094c4eeb0e701442cba4904db5",
  "userdoc": {
    "version": 1,
    "kind": "user",
    "methods": {
      "attest((bytes32,(address,uint64,bool,bytes32,bytes,uint256)))": {
        "notice": "Attests to a specific schema.      Example:      attest({         schema: \"0facc36681cbe2456019c1b0d1e7bedd6d1d40f6f324bf3dd3a4cef2999200a0\",         data: {             recipient: \"0xdEADBeAFdeAdbEafdeadbeafDeAdbEAFdeadbeaf\",             expirationTime: 0,             revocable: true,             refUID: \"0x0000000000000000000000000000000000000000000000000000000000000000\",             data: \"0xF00D\",             value: 0         }      })"
      },
      "attestByDelegation((bytes32,(address,uint64,bool,bytes32,bytes,uint256),(uint8,bytes32,bytes32),address))": {
        "notice": "Attests to a specific schema via the provided EIP712 signature.         Example:         attestByDelegation({             schema: '0x8e72f5bc0a8d4be6aa98360baa889040c50a0e51f32dbf0baa5199bd93472ebc',             data: {                 recipient: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',                 expirationTime: 1673891048,                 revocable: true,                 refUID: '0x0000000000000000000000000000000000000000000000000000000000000000',                 data: '0x1234',                 value: 0             },             signature: {                 v: 28,                 r: '0x148c...b25b',                 s: '0x5a72...be22'             },             attester: '0xc5E8740aD971409492b1A63Db8d83025e0Fc427e'         })"
      },
      "getAttestTypeHash()": {
        "notice": "Returns the EIP712 type hash for the attest function."
      },
      "getAttestation(bytes32)": {
        "notice": "Returns an existing attestation by UID."
      },
      "getDomainSeparator()": {
        "notice": "Returns the domain separator used in the encoding of the signatures for attest, and revoke."
      },
      "getName()": {
        "notice": "Returns the EIP712 name."
      },
      "getNonce(address)": {
        "notice": "Returns the current nonce per-account."
      },
      "getRevokeOffchain(address,bytes32)": {
        "notice": "Returns the timestamp that the specified data was timestamped with."
      },
      "getRevokeTypeHash()": {
        "notice": "Returns the EIP712 type hash for the revoke function."
      },
      "getSchemaRegistry()": {
        "notice": "Returns the address of the global schema registry."
      },
      "getTimestamp(bytes32)": {
        "notice": "Returns the timestamp that the specified data was timestamped with."
      },
      "isAttestationValid(bytes32)": {
        "notice": "Checks whether an attestation exists."
      },
      "multiAttest((bytes32,(address,uint64,bool,bytes32,bytes,uint256)[])[])": {
        "notice": "Attests to multiple schemas.         Example:         multiAttest([{             schema: '0x33e9094830a5cba5554d1954310e4fbed2ef5f859ec1404619adea4207f391fd',             data: [{                 recipient: '0xdEADBeAFdeAdbEafdeadbeafDeAdbEAFdeadbeaf',                 expirationTime: 1673891048,                 revocable: true,                 refUID: '0x0000000000000000000000000000000000000000000000000000000000000000',                 data: '0x1234',                 value: 1000             },             {                 recipient: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',                 expirationTime: 0,                 revocable: false,                 refUID: '0x480df4a039efc31b11bfdf491b383ca138b6bde160988222a2a3509c02cee174',                 data: '0x00',                 value: 0             }],         },         {             schema: '0x5ac273ce41e3c8bfa383efe7c03e54c5f0bff29c9f11ef6ffa930fc84ca32425',             data: [{                 recipient: '0xdEADBeAFdeAdbEafdeadbeafDeAdbEAFdeadbeaf',                 expirationTime: 0,                 revocable: true,                 refUID: '0x75bf2ed8dca25a8190c50c52db136664de25b2449535839008ccfdab469b214f',                 data: '0x12345678',                 value: 0             },         }])"
      },
      "multiAttestByDelegation((bytes32,(address,uint64,bool,bytes32,bytes,uint256)[],(uint8,bytes32,bytes32)[],address)[])": {
        "notice": "Attests to multiple schemas using via provided EIP712 signatures.         Example:         multiAttestByDelegation([{             schema: '0x8e72f5bc0a8d4be6aa98360baa889040c50a0e51f32dbf0baa5199bd93472ebc',             data: [{                 recipient: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',                 expirationTime: 1673891048,                 revocable: true,                 refUID: '0x0000000000000000000000000000000000000000000000000000000000000000',                 data: '0x1234',                 value: 0             },             {                 recipient: '0xdEADBeAFdeAdbEafdeadbeafDeAdbEAFdeadbeaf',                 expirationTime: 0,                 revocable: false,                 refUID: '0x0000000000000000000000000000000000000000000000000000000000000000',                 data: '0x00',                 value: 0             }],             signatures: [{                 v: 28,                 r: '0x148c...b25b',                 s: '0x5a72...be22'             },             {                 v: 28,                 r: '0x487s...67bb',                 s: '0x12ad...2366'             }],             attester: '0x1D86495b2A7B524D747d2839b3C645Bed32e8CF4'         }])"
      },
      "multiRevoke((bytes32,(bytes32,uint256)[])[])": {
        "notice": "Revokes existing attestations to multiple schemas.         Example:         multiRevoke([{             schema: '0x8e72f5bc0a8d4be6aa98360baa889040c50a0e51f32dbf0baa5199bd93472ebc',             data: [{                 uid: '0x211296a1ca0d7f9f2cfebf0daaa575bea9b20e968d81aef4e743d699c6ac4b25',                 value: 1000             },             {                 uid: '0xe160ac1bd3606a287b4d53d5d1d6da5895f65b4b4bab6d93aaf5046e48167ade',                 value: 0             }],         },         {             schema: '0x5ac273ce41e3c8bfa383efe7c03e54c5f0bff29c9f11ef6ffa930fc84ca32425',             data: [{                 uid: '0x053d42abce1fd7c8fcddfae21845ad34dae287b2c326220b03ba241bc5a8f019',                 value: 0             },         }])"
      },
      "multiRevokeByDelegation((bytes32,(bytes32,uint256)[],(uint8,bytes32,bytes32)[],address)[])": {
        "notice": "Revokes existing attestations to multiple schemas via provided EIP712 signatures.         Example:         multiRevokeByDelegation([{             schema: '0x8e72f5bc0a8d4be6aa98360baa889040c50a0e51f32dbf0baa5199bd93472ebc',             data: [{                 uid: '0x211296a1ca0d7f9f2cfebf0daaa575bea9b20e968d81aef4e743d699c6ac4b25',                 value: 1000             },             {                 uid: '0xe160ac1bd3606a287b4d53d5d1d6da5895f65b4b4bab6d93aaf5046e48167ade',                 value: 0             }],             signatures: [{                 v: 28,                 r: '0x148c...b25b',                 s: '0x5a72...be22'             },             {                 v: 28,                 r: '0x487s...67bb',                 s: '0x12ad...2366'             }],             revoker: '0x244934dd3e31bE2c81f84ECf0b3E6329F5381992'         }])"
      },
      "multiRevokeOffchain(bytes32[])": {
        "notice": "Revokes the specified multiple bytes32 data."
      },
      "multiTimestamp(bytes32[])": {
        "notice": "Timestamps the specified multiple bytes32 data."
      },
      "revoke((bytes32,(bytes32,uint256)))": {
        "notice": "Revokes an existing attestation to a specific schema.         Example:         revoke({             schema: '0x8e72f5bc0a8d4be6aa98360baa889040c50a0e51f32dbf0baa5199bd93472ebc',             data: {                 uid: '0x101032e487642ee04ee17049f99a70590c735b8614079fc9275f9dd57c00966d',                 value: 0             }         })"
      },
      "revokeByDelegation((bytes32,(bytes32,uint256),(uint8,bytes32,bytes32),address))": {
        "notice": "Revokes an existing attestation to a specific schema via the provided EIP712 signature.         Example:         revokeByDelegation({             schema: '0x8e72f5bc0a8d4be6aa98360baa889040c50a0e51f32dbf0baa5199bd93472ebc',             data: {                 uid: '0xcbbc12102578c642a0f7b34fe7111e41afa25683b6cd7b5a14caf90fa14d24ba',                 value: 0             },             signature: {                 v: 27,                 r: '0xb593...7142',                 s: '0x0f5b...2cce'             },             revoker: '0x244934dd3e31bE2c81f84ECf0b3E6329F5381992'         })"
      },
      "revokeOffchain(bytes32)": {
        "notice": "Revokes the specified bytes32 data."
      },
      "timestamp(bytes32)": {
        "notice": "Timestamps the specified bytes32 data."
      },
      "version()": {
        "notice": "Returns the full semver contract version."
      }
    },
    "notice": "The Ethereum Attestation Service protocol."
  }
}