@settlemint/solidity-attestation-service
Version:
Smart contract set to use the Ethereum Attestation Service in SettleMint
1,550 lines • 54.3 kB
JSON
{
"compiler": {
"version": "0.8.27+commit.40a35a09"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "contract ISchemaRegistry",
"name": "registry",
"type": "address"
}
],
"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": "DeadlineExpired"
},
{
"inputs": [],
"type": "error",
"name": "FailedCall"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "balance",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "needed",
"type": "uint256"
}
],
"type": "error",
"name": "InsufficientBalance"
},
{
"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": "InvalidNonce"
},
{
"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": "InvalidShortString"
},
{
"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": [
{
"internalType": "string",
"name": "str",
"type": "string"
}
],
"type": "error",
"name": "StringTooLong"
},
{
"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": "schemaUID",
"type": "bytes32",
"indexed": true
}
],
"type": "event",
"name": "Attested",
"anonymous": false
},
{
"inputs": [],
"type": "event",
"name": "EIP712DomainChanged",
"anonymous": false
},
{
"inputs": [
{
"internalType": "uint256",
"name": "oldNonce",
"type": "uint256",
"indexed": false
},
{
"internalType": "uint256",
"name": "newNonce",
"type": "uint256",
"indexed": false
}
],
"type": "event",
"name": "NonceIncreased",
"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": "schemaUID",
"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 Signature",
"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"
},
{
"internalType": "uint64",
"name": "deadline",
"type": "uint64"
}
]
}
],
"stateMutability": "payable",
"type": "function",
"name": "attestByDelegation",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "eip712Domain",
"outputs": [
{
"internalType": "bytes1",
"name": "fields",
"type": "bytes1"
},
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "string",
"name": "version",
"type": "string"
},
{
"internalType": "uint256",
"name": "chainId",
"type": "uint256"
},
{
"internalType": "address",
"name": "verifyingContract",
"type": "address"
},
{
"internalType": "bytes32",
"name": "salt",
"type": "bytes32"
},
{
"internalType": "uint256[]",
"name": "extensions",
"type": "uint256[]"
}
]
},
{
"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": "view",
"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": "uint256",
"name": "newNonce",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "increaseNonce"
},
{
"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 Signature[]",
"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"
},
{
"internalType": "uint64",
"name": "deadline",
"type": "uint64"
}
]
}
],
"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 Signature[]",
"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"
},
{
"internalType": "uint64",
"name": "deadline",
"type": "uint64"
}
]
}
],
"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 Signature",
"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"
},
{
"internalType": "uint64",
"name": "deadline",
"type": "uint64"
}
]
}
],
"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. 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,uint64))": {
"params": {
"delegatedRequest": "The arguments of the delegated attestation request."
},
"returns": {
"_0": "The UID of the new attestation. 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', deadline: 1673891048 })"
}
},
"eip712Domain()": {
"details": "returns the fields and values that describe the domain separator used by this contract for EIP-712 signature."
},
"getAttestTypeHash()": {
"returns": {
"_0": "The EIP712 type hash for the attest function."
}
},
"getAttestation(bytes32)": {
"params": {
"uid": "The UID of the attestation to retrieve."
},
"returns": {
"_0": "The attestation data members."
}
},
"getDomainSeparator()": {
"returns": {
"_0": "The domain separator used in the encoding of the signatures for attest, and revoke."
}
},
"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": "The EIP712 type hash for the revoke function."
}
},
"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."
}
},
"increaseNonce(uint256)": {
"params": {
"newNonce": "The (higher) new value."
}
},
"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. 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,uint64)[])": {
"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. 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', deadline: 1673891048 }])"
}
},
"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. 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,uint64)[])": {
"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. 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', deadline: 1673891048 }])"
}
},
"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. Example: revoke({ schema: '0x8e72f5bc0a8d4be6aa98360baa889040c50a0e51f32dbf0baa5199bd93472ebc', data: { uid: '0x101032e487642ee04ee17049f99a70590c735b8614079fc9275f9dd57c00966d', value: 0 } })"
}
},
"revokeByDelegation((bytes32,(bytes32,uint256),(uint8,bytes32,bytes32),address,uint64))": {
"params": {
"delegatedRequest": "The arguments of the delegated revocation request. Example: revokeByDelegation({ schema: '0x8e72f5bc0a8d4be6aa98360baa889040c50a0e51f32dbf0baa5199bd93472ebc', data: { uid: '0xcbbc12102578c642a0f7b34fe7111e41afa25683b6cd7b5a14caf90fa14d24ba', value: 0 }, signature: { v: 27, r: '0xb593...7142', s: '0x0f5b...2cce' }, revoker: '0x244934dd3e31bE2c81f84ECf0b3E6329F5381992', deadline: 1673891048 })"
}
},
"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."
},
"attestByDelegation((bytes32,(address,uint64,bool,bytes32,bytes,uint256),(uint8,bytes32,bytes32),address,uint64))": {
"notice": "Attests to a specific schema via the provided ECDSA signature."
},
"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."
},
"increaseNonce(uint256)": {
"notice": "Provides users an option to invalidate nonces by increasing their nonces to (higher) new values."
},
"isAttestationValid(bytes32)": {
"notice": "Checks whether an attestation exists."
},
"multiAttest((bytes32,(address,uint64,bool,bytes32,bytes,uint256)[])[])": {
"notice": "Attests to multiple schemas."
},
"multiAttestByDelegation((bytes32,(address,uint64,bool,bytes32,bytes,uint256)[],(uint8,bytes32,bytes32)[],address,uint64)[])": {
"notice": "Attests to multiple schemas using via provided ECDSA signatures."
},
"multiRevoke((bytes32,(bytes32,uint256)[])[])": {
"notice": "Revokes existing attestations to multiple schemas."
},
"multiRevokeByDelegation((bytes32,(bytes32,uint256)[],(uint8,bytes32,bytes32)[],address,uint64)[])": {
"notice": "Revokes existing attestations to multiple schemas via provided ECDSA signatures."
},
"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."
},
"revokeByDelegation((bytes32,(bytes32,uint256),(uint8,bytes32,bytes32),address,uint64))": {
"notice": "Revokes an existing attestation to a specific schema via the provided ECDSA signature."
},
"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": [
"@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/",
"@openzeppelin/=node_modules/@openzeppelin/",
"eth-gas-reporter/=node_modules/eth-gas-reporter/",
"forge-std/=lib/forge-std/src/",
"hardhat/=node_modules/hardhat/"
],
"optimizer": {
"enabled": true,
"runs": 10000
},
"metadata": {
"bytecodeHash": "ipfs"
},
"compilationTarget": {
"contracts/CustomEAS.sol": "CustomEAS"
},
"evmVersion": "cancun",
"libraries": {},
"viaIR": true
},
"sources": {
"contracts/CustomEAS.sol": {
"keccak256": "0xf4ade198ec0e78b9b9db3f9d9e7d0695a244cd29b8fa5ebe6a72e2c24f006e74",
"urls": [
"bzz-raw://223853f1d30fc85de32548d47e9ed977851200afc3daa6cf9a88d419b42db806",
"dweb:/ipfs/QmTJEDpWT4LnXw8LQwSuZGHsSY8tSHpEk7x29Nqkn3tMvX"
],
"license": "FSL-1.1-MIT"
},
"node_modules/@ethereum-attestation-service/eas-contracts/contracts/Common.sol": {
"keccak256": "0x957bd2e6d0d6d637f86208b135c29fbaf4412cb08e5e7a61ede16b80561bf685",
"urls": [
"bzz-raw://da1dc9aedbb1d4d39c46c2235918d3adfbc5741dd34a46010cf425d134e7936d",
"dweb:/ipfs/QmWUk6bXnLaghS2riF3GTFEeURCzgYFMA5woa6AsgPwEgc"
],
"license": "MIT"
},
"node_modules/@ethereum-attestation-service/eas-contracts/contracts/EAS.sol": {
"keccak256": "0x60d59e039e6ec40887e8a946f516b55997d689212c44a89f434119535dd9a3c4",
"urls": [
"bzz-raw://b5234ba00beaf7a43005c0759e883c6878eecc4d0efeb42c10be8c9e8b17ba21",
"dweb:/ipfs/QmPdUaubX2Yr9kMSyyYxkY3ueHiGzPfqTq5ubzbmQiQA6B"
],
"license": "MIT"
},
"node_modules/@ethereum-attestation-service/eas-contracts/contracts/IEAS.sol": {
"keccak256": "0xdad0674defce04905dc7935f2756d6c477a6e876c0b1b7094b112a862f164c12",
"urls": [
"bzz-raw://49e448c26c08952df034692d2ab3519dd40a1ebbeae4ce68b294567441933880",
"dweb:/ipfs/QmWHcudjskUSCjgqsNWE65LVfWvcYB2vBn8RB1SmzvRLNR"
],
"license": "MIT"
},
"node_modules/@ethereum-attestation-service/eas-contracts/contracts/ISchemaRegistry.sol": {
"keccak256": "0xea97dcd36a0c422169cbaac06698249e199049b627c16bff93fb8ab829058754",
"urls": [
"bzz-raw://d453a929ef64a69cd31195ec2ee5ed1193bfa29f633e13c960e92154c37ad158",
"dweb:/ipfs/QmXs1Z3njbHs2EMgHonrZDfcwdog4kozHY5tYNrhZK5yqz"
],
"license": "MIT"
},
"node_modules/@ethereum-attestation-service/eas-contracts/contracts/ISemver.sol": {
"keccak256": "0x04a67939b4e1a8d0a51101b8f69f8882930bbdc66319f38023828625b5d1ff18",
"urls": [
"bzz-raw://3dd543fa0e33cef1ea757627f9c2a10a66ee1ce17aa9087f437c5b53a903c7f0",
"dweb:/ipfs/QmXsy6UsGBzF9zPCCjmiwPpCcX3tHqU13TmR67B69tKnR6"
],
"license": "MIT"
},
"node_modules/@ethereum-attestation-service/eas-contracts/contracts/Semver.sol": {
"keccak256": "0x4f23442d048661b6aaa188ddc16b69cb310c2e44066b3852026afcb4201d61a9",
"urls": [
"bzz-raw://30c36e580cd93d9acb13e1a11e833946a8bd0bd2a8d1b2be049f0d96e0989808",
"dweb:/ipfs/QmXmQTxKjSrUWutafQsqkbGufXqtzxuDAiMMJjXCHXiEqh"
],
"license": "MIT"
},
"node_modules/@ethereum-attestation-service/eas-contracts/contracts/eip1271/EIP1271Verifier.sol": {
"keccak256": "0x590977110db1256cc00416bdf74eb8264a0eda358ccded303610369a2930b614",
"urls": [
"bzz-raw://ef015b3bee8859e6658c0eac6471d05f2991a5f4b6b5c2aa5571bbdab622d6e9",
"dweb:/ipfs/QmUHriGkixE62c5qWjyM9DWZFykDcjQ7T6Tbfi3DPD38ym"
],
"license": "MIT"
},
"node_modules/@ethereum-attestation-service/eas-contracts/contracts/resolver/ISchemaResolver.sol": {
"keccak256": "0xb7d1961ed928c620cddf35c2bf46845b10828bc5d73145214630202ed355b6bb",
"urls": [
"bzz-raw://cf1cabacfb15c9bace8280b540b52e5aa440e1b4eba675f9782c34ce0f03902f",
"dweb:/ipfs/QmakYcK4xbrijzvoaBCmBJK6HeaBqbXxWKtDQ1z62aXwCR"
],
"license": "MIT"
},
"node_modules/@openzeppelin/contracts/interfaces/IERC1271.sol": {
"keccak256": "0x3d4cd07258d675b6dfa3d9dfd623a77b38fb9935f4a5381ff4bc969948720976",
"urls": [
"bzz-raw://30abb60a4d98ad9a33de4fa5e9072342e12df3a79e9c71b5f59ce049ae8cd535",
"dweb:/ipfs/QmT6NXJDjsf8H14nPYQsFELDB8q5ZTmG9cjdX2bEQJW7ST"
],
"license": "MIT"
},
"node_modules/@openzeppelin/contracts/interfaces/IERC5267.sol": {
"keccak256": "0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92",
"urls": [
"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a",
"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"
],
"license": "MIT"
},
"node_modules/@openzeppelin/contracts/utils/Address.sol": {
"keccak256": "0xaaa1d17c1129b127a4a401db2fbd72960e2671474be3d08cae71ccdc42f7624c",
"urls": [
"bzz-raw://cb2f27cd3952aa667e198fba0d9b7bcec52fbb12c16f013c25fe6fb52b29cc0e",
"dweb:/ipfs/QmeuohBFoeyDPZA9JNCTEDz3VBfBD4EABWuWXVhHAuEpKR"
],
"license": "MIT"
},
"node_modules/@openzeppelin/contracts/utils/Errors.sol": {
"keccak256": "0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a