Open erichfi opened 1 year ago
Regarding the data structure of the attestation station: https://community.optimism.io/docs/governance/attestation-station/#state
To my understanding the mapping could be as follows:
A. creator (gitcoin smart contract) => about (passport owner) => stamp key (Twitter|TwitterFollowerGT100|TwitterFollowerGT500| ... => val (bytes)
or it could be like:
B. creator (gitcoin smart contract) => about (passport owner) => stamp key (hash) => val (Twitter|TwitterFollowerGT100|TwitterFollowerGT500| ....)
Option A would allow an easy check to see if a user owns a given stamp or not. But it make deduplication hard. On the other hand maybe we do not need deduplication at this level, and this would be done in the Scorer ....
For reference, what would be needed to fulfil the requirements are raw transactions, that are build in the BE and sent to the FE for the user to sign: https://ethereum.stackexchange.com/questions/63805/issues-while-sending-raw-transaction-for-calling-smart-contract-methods
However to be clarified / tested: in the context of the AttestationStation, who is considered the issuer? Is it the user? We need the issuer to be Gitcoin (basically a Gitcoin owned address). But I am not sure this is the case.
As a Passport holder, I want to mint an test net Github account attestation via the Attestation Station
GIVEN I am a Passport holder with a verified Github account stamp in my Gitcoin Passport on Ceramic AND I am connected to the Optimism Goerli test net WHEN I click the "Mint" button THEN am prompted to pay the necessary gas fees for minting the attestation
GIVEN I succesfully sign a Goerli transaction to pay the gas fees WHEN the transction is confirmed THEN the attestation is minted via the Attestation Station
Notes:
key
andval
fields