passportxyz / passport

Passport allows users to prove their identity through a secure, decentralized UI
Other
992 stars 461 forks source link

[OP] As a Passport holder, I want to mint an test net Github account attestation via the Attestation Station #813

Open erichfi opened 1 year ago

erichfi commented 1 year ago

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:

nutrina commented 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 ....

nutrina commented 1 year ago

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.