Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Complete porting for MACI gatekeepers #31

Merged
merged 13 commits into from
Jul 10, 2024
Merged

Conversation

0xjei
Copy link
Member

@0xjei 0xjei commented Jul 9, 2024

Description

This PR adds the GitcoinPassportExcubia, ZKEdDSAEventTicketPCDExcubia (prev Zupass) and, HatsExcubia. During the porting process, certain interfaces were extended and controls and methods generalised. The code coverage is 100%.

Also, this PR introduces the concept of trait aka the specific type of an Excubia contract. For example, SemaphoreExcubia has trait Semaphore and so on. This will make easy to discriminate and query multiple Excubiae sharing the same characteristics.

Related Issue(s)

closes #18

Checklist

  • My code follows the style guidelines of this project
  • I have performed a self-review of my code
  • I have commented my code, particularly in hard-to-understand areas
  • My changes generate no new warnings
  • I have run yarn format and yarn compile without getting any errors
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes

Copy link

@github-advanced-security github-advanced-security bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Slither found more than 20 potential problems in the proposed changes. Check the Files changed tab for more details.

@0xjei 0xjei force-pushed the feat/porting-maci-gatekeepers branch from 771ec0b to 23f080e Compare July 9, 2024 21:15
@0xjei 0xjei marked this pull request as ready for review July 9, 2024 21:19
@0xjei 0xjei requested review from ctrlc03 and cedoor July 9, 2024 21:19
@0xjei
Copy link
Member Author

0xjei commented Jul 9, 2024

Slither found more than 20 potential problems in the proposed changes. Check the Files changed tab for more details.

these should just be inline-assembly (verifier) and naming (which is a false positive).

Copy link

@ctrlc03 ctrlc03 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great work, left some comments

@0xjei 0xjei requested a review from ctrlc03 July 10, 2024 14:13
Copy link

@ctrlc03 ctrlc03 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Copy link
Member

@cedoor cedoor left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I haven't checked all the implementation details but overall looks good to me!

@0xjei 0xjei enabled auto-merge (squash) July 10, 2024 14:40
@cedoor cedoor disabled auto-merge July 10, 2024 14:41
@cedoor cedoor merged commit f49d978 into main Jul 10, 2024
16 checks passed
@cedoor cedoor deleted the feat/porting-maci-gatekeepers branch July 10, 2024 14:41
github-actions bot added a commit that referenced this pull request Jul 11, 2024
<!-- Please refer to our CONTRIBUTING documentation for any questions on
submitting a pull request. -->
<!-- Provide a general summary of your changes in the Title above. -->

## Description
This PR adds the `GitcoinPassportExcubia`,
`ZKEdDSAEventTicketPCDExcubia` (prev Zupass) and, `HatsExcubia`. During
the porting process, certain interfaces were extended and controls and
methods generalised. The code coverage is 100%.

Also, this PR introduces the concept of `trait` aka the specific type of
an Excubia contract. For example, `SemaphoreExcubia` has trait
`Semaphore` and so on. This will make easy to discriminate and query
multiple Excubiae sharing the same characteristics.

<!-- Describe your changes in detail. -->
<!-- You may want to answer some of the following questions: -->
<!-- What kind of change does this PR introduce?** (Bug fix, feature,
docs update, ...) -->
<!-- What is the current behavior?** (You can also link to an open issue
here) -->
<!-- What is the new behavior (if this is a feature change)? -->
<!-- Does this PR introduce a breaking change?** (What changes might
users need to make in their application due to this PR?) -->

## Related Issue(s)
closes #18
<!-- This project accepts pull requests related to open issues. -->
<!-- If suggesting a new feature or change, please discuss it in an
issue first. -->
<!-- If fixing a bug, there should be an issue describing it with steps
to reproduce. -->
<!-- Please link to the issue(s) here -->

<!-- Closes # -->
<!-- Fixes # -->

## Checklist

<!-- Please check if the PR fulfills these requirements. -->

-   [x] My code follows the style guidelines of this project
-   [x] I have performed a self-review of my code
- [x] I have commented my code, particularly in hard-to-understand areas
-   [x] My changes generate no new warnings
- [x] I have run `yarn format` and `yarn compile` without getting any
errors
- [x] I have added tests that prove my fix is effective or that my
feature works
-   [x] New and existing unit tests pass locally with my changes
github-actions bot added a commit that referenced this pull request Jul 11, 2024
<!-- Please refer to our CONTRIBUTING documentation for any questions on
submitting a pull request. -->
<!-- Provide a general summary of your changes in the Title above. -->

## Description
This PR adds the `GitcoinPassportExcubia`,
`ZKEdDSAEventTicketPCDExcubia` (prev Zupass) and, `HatsExcubia`. During
the porting process, certain interfaces were extended and controls and
methods generalised. The code coverage is 100%.

Also, this PR introduces the concept of `trait` aka the specific type of
an Excubia contract. For example, `SemaphoreExcubia` has trait
`Semaphore` and so on. This will make easy to discriminate and query
multiple Excubiae sharing the same characteristics.

<!-- Describe your changes in detail. -->
<!-- You may want to answer some of the following questions: -->
<!-- What kind of change does this PR introduce?** (Bug fix, feature,
docs update, ...) -->
<!-- What is the current behavior?** (You can also link to an open issue
here) -->
<!-- What is the new behavior (if this is a feature change)? -->
<!-- Does this PR introduce a breaking change?** (What changes might
users need to make in their application due to this PR?) -->

## Related Issue(s)
closes #18
<!-- This project accepts pull requests related to open issues. -->
<!-- If suggesting a new feature or change, please discuss it in an
issue first. -->
<!-- If fixing a bug, there should be an issue describing it with steps
to reproduce. -->
<!-- Please link to the issue(s) here -->

<!-- Closes # -->
<!-- Fixes # -->

## Checklist

<!-- Please check if the PR fulfills these requirements. -->

-   [x] My code follows the style guidelines of this project
-   [x] I have performed a self-review of my code
- [x] I have commented my code, particularly in hard-to-understand areas
-   [x] My changes generate no new warnings
- [x] I have run `yarn format` and `yarn compile` without getting any
errors
- [x] I have added tests that prove my fix is effective or that my
feature works
-   [x] New and existing unit tests pass locally with my changes
github-actions bot added a commit that referenced this pull request Jul 11, 2024
<!-- Please refer to our CONTRIBUTING documentation for any questions on
submitting a pull request. -->
<!-- Provide a general summary of your changes in the Title above. -->

## Description
This PR adds the `GitcoinPassportExcubia`,
`ZKEdDSAEventTicketPCDExcubia` (prev Zupass) and, `HatsExcubia`. During
the porting process, certain interfaces were extended and controls and
methods generalised. The code coverage is 100%.

Also, this PR introduces the concept of `trait` aka the specific type of
an Excubia contract. For example, `SemaphoreExcubia` has trait
`Semaphore` and so on. This will make easy to discriminate and query
multiple Excubiae sharing the same characteristics.

<!-- Describe your changes in detail. -->
<!-- You may want to answer some of the following questions: -->
<!-- What kind of change does this PR introduce?** (Bug fix, feature,
docs update, ...) -->
<!-- What is the current behavior?** (You can also link to an open issue
here) -->
<!-- What is the new behavior (if this is a feature change)? -->
<!-- Does this PR introduce a breaking change?** (What changes might
users need to make in their application due to this PR?) -->

## Related Issue(s)
closes #18
<!-- This project accepts pull requests related to open issues. -->
<!-- If suggesting a new feature or change, please discuss it in an
issue first. -->
<!-- If fixing a bug, there should be an issue describing it with steps
to reproduce. -->
<!-- Please link to the issue(s) here -->

<!-- Closes # -->
<!-- Fixes # -->

## Checklist

<!-- Please check if the PR fulfills these requirements. -->

-   [x] My code follows the style guidelines of this project
-   [x] I have performed a self-review of my code
- [x] I have commented my code, particularly in hard-to-understand areas
-   [x] My changes generate no new warnings
- [x] I have run `yarn format` and `yarn compile` without getting any
errors
- [x] I have added tests that prove my fix is effective or that my
feature works
-   [x] New and existing unit tests pass locally with my changes
github-actions bot added a commit that referenced this pull request Jul 11, 2024
<!-- Please refer to our CONTRIBUTING documentation for any questions on
submitting a pull request. -->
<!-- Provide a general summary of your changes in the Title above. -->

## Description
This PR adds the `GitcoinPassportExcubia`,
`ZKEdDSAEventTicketPCDExcubia` (prev Zupass) and, `HatsExcubia`. During
the porting process, certain interfaces were extended and controls and
methods generalised. The code coverage is 100%.

Also, this PR introduces the concept of `trait` aka the specific type of
an Excubia contract. For example, `SemaphoreExcubia` has trait
`Semaphore` and so on. This will make easy to discriminate and query
multiple Excubiae sharing the same characteristics.

<!-- Describe your changes in detail. -->
<!-- You may want to answer some of the following questions: -->
<!-- What kind of change does this PR introduce?** (Bug fix, feature,
docs update, ...) -->
<!-- What is the current behavior?** (You can also link to an open issue
here) -->
<!-- What is the new behavior (if this is a feature change)? -->
<!-- Does this PR introduce a breaking change?** (What changes might
users need to make in their application due to this PR?) -->

## Related Issue(s)
closes #18
<!-- This project accepts pull requests related to open issues. -->
<!-- If suggesting a new feature or change, please discuss it in an
issue first. -->
<!-- If fixing a bug, there should be an issue describing it with steps
to reproduce. -->
<!-- Please link to the issue(s) here -->

<!-- Closes # -->
<!-- Fixes # -->

## Checklist

<!-- Please check if the PR fulfills these requirements. -->

-   [x] My code follows the style guidelines of this project
-   [x] I have performed a self-review of my code
- [x] I have commented my code, particularly in hard-to-understand areas
-   [x] My changes generate no new warnings
- [x] I have run `yarn format` and `yarn compile` without getting any
errors
- [x] I have added tests that prove my fix is effective or that my
feature works
-   [x] New and existing unit tests pass locally with my changes
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Porting MACI gatekeepers inside excubiae
3 participants