Skip to main content
Version: v1.2

EASGatekeeper

A gatekeeper contract which allows users to sign up to MACI only if they've received an attestation of a specific schema from a trusted attester

schema

bytes32 schema

attester

address attester

maci

address maci

the reference to the MACI contract

registeredAttestations

mapping(bytes32 => bool) registeredAttestations

AttestationRevoked

error AttestationRevoked()

custom errors

AlreadyRegistered

error AlreadyRegistered()

AttesterNotTrusted

error AttesterNotTrusted()

NotYourAttestation

error NotYourAttestation()

InvalidSchema

error InvalidSchema()

OnlyMACI

error OnlyMACI()

ZeroAddress

error ZeroAddress()

constructor

constructor(address _eas, address _attester, bytes32 _schema) public payable

Deploy an instance of EASGatekeeper

Parameters

NameTypeDescription
_easaddressThe EAS contract
_attesteraddressThe trusted attester
_schemabytes32The schema UID

setMaciInstance

function setMaciInstance(address _maci) public

Adds an uninitialised MACI instance to allow for token signups

Parameters

NameTypeDescription
_maciaddressThe MACI contract interface to be stored

register

function register(address _user, bytes _data) public

Register an user based on their attestation

Throw if the attestation is not valid or just complete silently

Parameters

NameTypeDescription
_useraddressThe user's Ethereum address.
_databytesThe ABI-encoded schemaId as a uint256.