diff --git a/packages/cli-template-contracts-hardhat/contracts/Feedback.sol b/packages/cli-template-contracts-hardhat/contracts/Feedback.sol
index 0a418c4f..09dee3ec 100644
--- a/packages/cli-template-contracts-hardhat/contracts/Feedback.sol
+++ b/packages/cli-template-contracts-hardhat/contracts/Feedback.sol
@@ -8,11 +8,10 @@ contract Feedback {
uint256 public groupId;
- constructor(address semaphoreAddress, uint256 _groupId) {
+ constructor(address semaphoreAddress) {
semaphore = ISemaphore(semaphoreAddress);
- groupId = _groupId;
- semaphore.createGroup(groupId, address(this));
+ groupId = semaphore.createGroup();
}
function joinGroup(uint256 identityCommitment) external {
diff --git a/packages/cli-template-contracts-hardhat/tasks/deploy.ts b/packages/cli-template-contracts-hardhat/tasks/deploy.ts
index 0dd175e4..65a156e0 100644
--- a/packages/cli-template-contracts-hardhat/tasks/deploy.ts
+++ b/packages/cli-template-contracts-hardhat/tasks/deploy.ts
@@ -2,9 +2,8 @@ import { task, types } from "hardhat/config"
task("deploy", "Deploy a Feedback contract")
.addOptionalParam("semaphore", "Semaphore contract address", undefined, types.string)
- .addOptionalParam("group", "Group id", "42", types.string)
.addOptionalParam("logs", "Print the logs", true, types.boolean)
- .setAction(async ({ logs, semaphore: semaphoreAddress, group: groupId }, { ethers, run }) => {
+ .setAction(async ({ logs, semaphore: semaphoreAddress }, { ethers, run }) => {
if (!semaphoreAddress) {
const { semaphore } = await run("deploy:semaphore", {
logs
@@ -13,13 +12,9 @@ task("deploy", "Deploy a Feedback contract")
semaphoreAddress = await semaphore.getAddress()
}
- if (!groupId) {
- groupId = process.env.GROUP_ID
- }
-
const FeedbackFactory = await ethers.getContractFactory("Feedback")
- const feedbackContract = await FeedbackFactory.deploy(semaphoreAddress, groupId)
+ const feedbackContract = await FeedbackFactory.deploy(semaphoreAddress)
if (logs) {
console.info(`Feedback contract has been deployed to: ${await feedbackContract.getAddress()}`)
diff --git a/packages/cli-template-contracts-hardhat/test/Feedback.ts b/packages/cli-template-contracts-hardhat/test/Feedback.ts
index 7733e3b8..6d18aabc 100644
--- a/packages/cli-template-contracts-hardhat/test/Feedback.ts
+++ b/packages/cli-template-contracts-hardhat/test/Feedback.ts
@@ -9,8 +9,6 @@ import { Feedback, ISemaphore } from "../typechain-types"
describe("Feedback", () => {
async function deployFeedbackFixture() {
- const groupId = "42"
-
const { semaphore } = await run("deploy:semaphore", {
logs: false
})
@@ -19,10 +17,11 @@ describe("Feedback", () => {
const feedbackContract: Feedback = await run("deploy", {
logs: false,
- group: groupId,
semaphore: await semaphoreContract.getAddress()
})
+ const groupId = await feedbackContract.groupId()
+
return { semaphoreContract, feedbackContract, groupId }
}
diff --git a/packages/cli-template-monorepo-ethers/.env.example b/packages/cli-template-monorepo-ethers/.env.example
index 4d1776c7..14e18ade 100644
--- a/packages/cli-template-monorepo-ethers/.env.example
+++ b/packages/cli-template-monorepo-ethers/.env.example
@@ -1,4 +1,4 @@
-DEFAULT_NETWORK=localhost
+DEFAULT_NETWORK=hardhat
ETHEREUM_PRIVATE_KEY=ac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80
REPORT_GAS=false
COINMARKETCAP_API_KEY=
diff --git a/packages/cli-template-monorepo-ethers/apps/contracts/contracts/Feedback.sol b/packages/cli-template-monorepo-ethers/apps/contracts/contracts/Feedback.sol
index 0a418c4f..09dee3ec 100644
--- a/packages/cli-template-monorepo-ethers/apps/contracts/contracts/Feedback.sol
+++ b/packages/cli-template-monorepo-ethers/apps/contracts/contracts/Feedback.sol
@@ -8,11 +8,10 @@ contract Feedback {
uint256 public groupId;
- constructor(address semaphoreAddress, uint256 _groupId) {
+ constructor(address semaphoreAddress) {
semaphore = ISemaphore(semaphoreAddress);
- groupId = _groupId;
- semaphore.createGroup(groupId, address(this));
+ groupId = semaphore.createGroup();
}
function joinGroup(uint256 identityCommitment) external {
diff --git a/packages/cli-template-monorepo-ethers/apps/contracts/hardhat.config.ts b/packages/cli-template-monorepo-ethers/apps/contracts/hardhat.config.ts
index ef1c30c6..7010a533 100644
--- a/packages/cli-template-monorepo-ethers/apps/contracts/hardhat.config.ts
+++ b/packages/cli-template-monorepo-ethers/apps/contracts/hardhat.config.ts
@@ -10,7 +10,7 @@ dotenvConfig({ path: resolve(__dirname, "../../.env") })
const config: HardhatUserConfig = {
solidity: "0.8.23",
- defaultNetwork: process.env.DEFAULT_NETWORK || "localhost",
+ defaultNetwork: process.env.DEFAULT_NETWORK || "hardhat",
networks: {
hardhat: {
chainId: 1337
diff --git a/packages/cli-template-monorepo-ethers/apps/contracts/tasks/deploy.ts b/packages/cli-template-monorepo-ethers/apps/contracts/tasks/deploy.ts
index 0dd175e4..65a156e0 100644
--- a/packages/cli-template-monorepo-ethers/apps/contracts/tasks/deploy.ts
+++ b/packages/cli-template-monorepo-ethers/apps/contracts/tasks/deploy.ts
@@ -2,9 +2,8 @@ import { task, types } from "hardhat/config"
task("deploy", "Deploy a Feedback contract")
.addOptionalParam("semaphore", "Semaphore contract address", undefined, types.string)
- .addOptionalParam("group", "Group id", "42", types.string)
.addOptionalParam("logs", "Print the logs", true, types.boolean)
- .setAction(async ({ logs, semaphore: semaphoreAddress, group: groupId }, { ethers, run }) => {
+ .setAction(async ({ logs, semaphore: semaphoreAddress }, { ethers, run }) => {
if (!semaphoreAddress) {
const { semaphore } = await run("deploy:semaphore", {
logs
@@ -13,13 +12,9 @@ task("deploy", "Deploy a Feedback contract")
semaphoreAddress = await semaphore.getAddress()
}
- if (!groupId) {
- groupId = process.env.GROUP_ID
- }
-
const FeedbackFactory = await ethers.getContractFactory("Feedback")
- const feedbackContract = await FeedbackFactory.deploy(semaphoreAddress, groupId)
+ const feedbackContract = await FeedbackFactory.deploy(semaphoreAddress)
if (logs) {
console.info(`Feedback contract has been deployed to: ${await feedbackContract.getAddress()}`)
diff --git a/packages/cli-template-monorepo-ethers/apps/contracts/test/Feedback.ts b/packages/cli-template-monorepo-ethers/apps/contracts/test/Feedback.ts
index 7733e3b8..6d18aabc 100644
--- a/packages/cli-template-monorepo-ethers/apps/contracts/test/Feedback.ts
+++ b/packages/cli-template-monorepo-ethers/apps/contracts/test/Feedback.ts
@@ -9,8 +9,6 @@ import { Feedback, ISemaphore } from "../typechain-types"
describe("Feedback", () => {
async function deployFeedbackFixture() {
- const groupId = "42"
-
const { semaphore } = await run("deploy:semaphore", {
logs: false
})
@@ -19,10 +17,11 @@ describe("Feedback", () => {
const feedbackContract: Feedback = await run("deploy", {
logs: false,
- group: groupId,
semaphore: await semaphoreContract.getAddress()
})
+ const groupId = await feedbackContract.groupId()
+
return { semaphoreContract, feedbackContract, groupId }
}
diff --git a/packages/cli-template-monorepo-ethers/apps/web-app/.env.development b/packages/cli-template-monorepo-ethers/apps/web-app/.env.development
index afa31569..1d41062f 100644
--- a/packages/cli-template-monorepo-ethers/apps/web-app/.env.development
+++ b/packages/cli-template-monorepo-ethers/apps/web-app/.env.development
@@ -1,4 +1,4 @@
NEXT_PUBLIC_DEFAULT_NETWORK=localhost
NEXT_PUBLIC_FEEDBACK_CONTRACT_ADDRESS=0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9
NEXT_PUBLIC_SEMAPHORE_CONTRACT_ADDRESS=0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0
-NEXT_PUBLIC_GROUP_ID=42
+NEXT_PUBLIC_GROUP_ID=0
diff --git a/packages/cli-template-monorepo-ethers/apps/web-app/next-env.d.ts b/packages/cli-template-monorepo-ethers/apps/web-app/next-env.d.ts
new file mode 100644
index 00000000..4f11a03d
--- /dev/null
+++ b/packages/cli-template-monorepo-ethers/apps/web-app/next-env.d.ts
@@ -0,0 +1,5 @@
+///
+///
+
+// NOTE: This file should not be edited
+// see https://nextjs.org/docs/basic-features/typescript for more information.
diff --git a/packages/cli-template-monorepo-ethers/apps/web-app/package.json b/packages/cli-template-monorepo-ethers/apps/web-app/package.json
index cd3e8528..0b53b0c4 100644
--- a/packages/cli-template-monorepo-ethers/apps/web-app/package.json
+++ b/packages/cli-template-monorepo-ethers/apps/web-app/package.json
@@ -11,6 +11,7 @@
"dependencies": {
"@semaphore-protocol/core": "4.0.0-beta.4",
"@semaphore-protocol/data": "4.0.0-beta.4",
+ "@semaphore-protocol/utils": "4.0.0-beta.4",
"ethers": "^6.11.1",
"next": "14.1.0",
"next-pwa": "^5.6.0",
diff --git a/packages/cli-template-monorepo-ethers/apps/web-app/src/app/groups/page.tsx b/packages/cli-template-monorepo-ethers/apps/web-app/src/app/groups/page.tsx
index 7163f315..751d345c 100644
--- a/packages/cli-template-monorepo-ethers/apps/web-app/src/app/groups/page.tsx
+++ b/packages/cli-template-monorepo-ethers/apps/web-app/src/app/groups/page.tsx
@@ -74,7 +74,7 @@ export default function GroupsPage() {
setLoading(false)
}, [_identity])
- const userHasJoined = useCallback((identity: Identity) => _users.includes(identity.commitment), [_users])
+ const userHasJoined = useCallback((identity: Identity) => _users.includes(identity.commitment.toString()), [_users])
return (
<>
diff --git a/packages/cli-template-monorepo-ethers/apps/web-app/src/components/PageContainer.tsx b/packages/cli-template-monorepo-ethers/apps/web-app/src/components/PageContainer.tsx
index 854dd681..63b1499e 100644
--- a/packages/cli-template-monorepo-ethers/apps/web-app/src/components/PageContainer.tsx
+++ b/packages/cli-template-monorepo-ethers/apps/web-app/src/components/PageContainer.tsx
@@ -4,7 +4,7 @@ import LogsContext from "@/context/LogsContext"
import SemaphoreContext from "@/context/SemaphoreContext"
import useSemaphore from "@/hooks/useSemaphore"
import shortenString from "@/utils/shortenString"
-import { SupportedNetwork } from "@semaphore-protocol/data"
+import { SupportedNetwork } from "@semaphore-protocol/utils"
import { usePathname } from "next/navigation"
import { useEffect, useState } from "react"
import Link from "next/link"
@@ -52,7 +52,7 @@ export default function PageContainer({
{shortenString(process.env.NEXT_PUBLIC_FEEDBACK_CONTRACT_ADDRESS as string, [6, 4])}
diff --git a/packages/cli-template-monorepo-ethers/apps/web-app/src/hooks/useSemaphore.ts b/packages/cli-template-monorepo-ethers/apps/web-app/src/hooks/useSemaphore.ts
index bc71ab43..4f5dab63 100644
--- a/packages/cli-template-monorepo-ethers/apps/web-app/src/hooks/useSemaphore.ts
+++ b/packages/cli-template-monorepo-ethers/apps/web-app/src/hooks/useSemaphore.ts
@@ -9,7 +9,7 @@ const ethereumNetwork =
: process.env.NEXT_PUBLIC_DEFAULT_NETWORK
export default function useSemaphore(): SemaphoreContextType {
- const [_users, setUsers] = useState([])
+ const [_users, setUsers] = useState([])
const [_feedback, setFeedback] = useState([])
const refreshUsers = useCallback(async (): Promise => {
@@ -19,7 +19,7 @@ export default function useSemaphore(): SemaphoreContextType {
const members = await semaphore.getGroupMembers(process.env.NEXT_PUBLIC_GROUP_ID as string)
- setUsers(members.map((member) => member.toString()))
+ setUsers(members)
}, [])
const addUser = useCallback(
diff --git a/packages/cli-template-monorepo-subgraph/.env.example b/packages/cli-template-monorepo-subgraph/.env.example
index 4d1776c7..14e18ade 100644
--- a/packages/cli-template-monorepo-subgraph/.env.example
+++ b/packages/cli-template-monorepo-subgraph/.env.example
@@ -1,4 +1,4 @@
-DEFAULT_NETWORK=localhost
+DEFAULT_NETWORK=hardhat
ETHEREUM_PRIVATE_KEY=ac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80
REPORT_GAS=false
COINMARKETCAP_API_KEY=
diff --git a/packages/cli-template-monorepo-subgraph/apps/contracts/contracts/Feedback.sol b/packages/cli-template-monorepo-subgraph/apps/contracts/contracts/Feedback.sol
index 0a418c4f..09dee3ec 100644
--- a/packages/cli-template-monorepo-subgraph/apps/contracts/contracts/Feedback.sol
+++ b/packages/cli-template-monorepo-subgraph/apps/contracts/contracts/Feedback.sol
@@ -8,11 +8,10 @@ contract Feedback {
uint256 public groupId;
- constructor(address semaphoreAddress, uint256 _groupId) {
+ constructor(address semaphoreAddress) {
semaphore = ISemaphore(semaphoreAddress);
- groupId = _groupId;
- semaphore.createGroup(groupId, address(this));
+ groupId = semaphore.createGroup();
}
function joinGroup(uint256 identityCommitment) external {
diff --git a/packages/cli-template-monorepo-subgraph/apps/contracts/hardhat.config.ts b/packages/cli-template-monorepo-subgraph/apps/contracts/hardhat.config.ts
index ef1c30c6..7010a533 100644
--- a/packages/cli-template-monorepo-subgraph/apps/contracts/hardhat.config.ts
+++ b/packages/cli-template-monorepo-subgraph/apps/contracts/hardhat.config.ts
@@ -10,7 +10,7 @@ dotenvConfig({ path: resolve(__dirname, "../../.env") })
const config: HardhatUserConfig = {
solidity: "0.8.23",
- defaultNetwork: process.env.DEFAULT_NETWORK || "localhost",
+ defaultNetwork: process.env.DEFAULT_NETWORK || "hardhat",
networks: {
hardhat: {
chainId: 1337
diff --git a/packages/cli-template-monorepo-subgraph/apps/contracts/tasks/deploy.ts b/packages/cli-template-monorepo-subgraph/apps/contracts/tasks/deploy.ts
index 0dd175e4..65a156e0 100644
--- a/packages/cli-template-monorepo-subgraph/apps/contracts/tasks/deploy.ts
+++ b/packages/cli-template-monorepo-subgraph/apps/contracts/tasks/deploy.ts
@@ -2,9 +2,8 @@ import { task, types } from "hardhat/config"
task("deploy", "Deploy a Feedback contract")
.addOptionalParam("semaphore", "Semaphore contract address", undefined, types.string)
- .addOptionalParam("group", "Group id", "42", types.string)
.addOptionalParam("logs", "Print the logs", true, types.boolean)
- .setAction(async ({ logs, semaphore: semaphoreAddress, group: groupId }, { ethers, run }) => {
+ .setAction(async ({ logs, semaphore: semaphoreAddress }, { ethers, run }) => {
if (!semaphoreAddress) {
const { semaphore } = await run("deploy:semaphore", {
logs
@@ -13,13 +12,9 @@ task("deploy", "Deploy a Feedback contract")
semaphoreAddress = await semaphore.getAddress()
}
- if (!groupId) {
- groupId = process.env.GROUP_ID
- }
-
const FeedbackFactory = await ethers.getContractFactory("Feedback")
- const feedbackContract = await FeedbackFactory.deploy(semaphoreAddress, groupId)
+ const feedbackContract = await FeedbackFactory.deploy(semaphoreAddress)
if (logs) {
console.info(`Feedback contract has been deployed to: ${await feedbackContract.getAddress()}`)
diff --git a/packages/cli-template-monorepo-subgraph/apps/contracts/test/Feedback.ts b/packages/cli-template-monorepo-subgraph/apps/contracts/test/Feedback.ts
index 7733e3b8..6d18aabc 100644
--- a/packages/cli-template-monorepo-subgraph/apps/contracts/test/Feedback.ts
+++ b/packages/cli-template-monorepo-subgraph/apps/contracts/test/Feedback.ts
@@ -9,8 +9,6 @@ import { Feedback, ISemaphore } from "../typechain-types"
describe("Feedback", () => {
async function deployFeedbackFixture() {
- const groupId = "42"
-
const { semaphore } = await run("deploy:semaphore", {
logs: false
})
@@ -19,10 +17,11 @@ describe("Feedback", () => {
const feedbackContract: Feedback = await run("deploy", {
logs: false,
- group: groupId,
semaphore: await semaphoreContract.getAddress()
})
+ const groupId = await feedbackContract.groupId()
+
return { semaphoreContract, feedbackContract, groupId }
}
diff --git a/packages/cli-template-monorepo-subgraph/apps/web-app/.env.development b/packages/cli-template-monorepo-subgraph/apps/web-app/.env.development
index afa31569..1d41062f 100644
--- a/packages/cli-template-monorepo-subgraph/apps/web-app/.env.development
+++ b/packages/cli-template-monorepo-subgraph/apps/web-app/.env.development
@@ -1,4 +1,4 @@
NEXT_PUBLIC_DEFAULT_NETWORK=localhost
NEXT_PUBLIC_FEEDBACK_CONTRACT_ADDRESS=0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9
NEXT_PUBLIC_SEMAPHORE_CONTRACT_ADDRESS=0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0
-NEXT_PUBLIC_GROUP_ID=42
+NEXT_PUBLIC_GROUP_ID=0
diff --git a/packages/cli-template-monorepo-subgraph/apps/web-app/package.json b/packages/cli-template-monorepo-subgraph/apps/web-app/package.json
index 65fd9dbc..1d4ba58f 100644
--- a/packages/cli-template-monorepo-subgraph/apps/web-app/package.json
+++ b/packages/cli-template-monorepo-subgraph/apps/web-app/package.json
@@ -11,6 +11,7 @@
"dependencies": {
"@semaphore-protocol/core": "4.0.0-beta.4",
"@semaphore-protocol/data": "4.0.0-beta.4",
+ "@semaphore-protocol/utils": "4.0.0-beta.4",
"ethers": "^6.11.1",
"next": "14.1.0",
"next-pwa": "^5.6.0",
diff --git a/packages/cli-template-monorepo-subgraph/apps/web-app/src/app/groups/page.tsx b/packages/cli-template-monorepo-subgraph/apps/web-app/src/app/groups/page.tsx
index 7163f315..a4a0f229 100644
--- a/packages/cli-template-monorepo-subgraph/apps/web-app/src/app/groups/page.tsx
+++ b/packages/cli-template-monorepo-subgraph/apps/web-app/src/app/groups/page.tsx
@@ -1,12 +1,12 @@
"use client"
+import Stepper from "@/components/Stepper"
+import LogsContext from "@/context/LogsContext"
+import SemaphoreContext from "@/context/SemaphoreContext"
import { Identity } from "@semaphore-protocol/core"
import { useRouter } from "next/navigation"
import { useCallback, useContext, useEffect, useState } from "react"
import Feedback from "../../../contract-artifacts/Feedback.json"
-import Stepper from "@/components/Stepper"
-import LogsContext from "@/context/LogsContext"
-import SemaphoreContext from "@/context/SemaphoreContext"
export default function GroupsPage() {
const router = useRouter()
@@ -74,7 +74,7 @@ export default function GroupsPage() {
setLoading(false)
}, [_identity])
- const userHasJoined = useCallback((identity: Identity) => _users.includes(identity.commitment), [_users])
+ const userHasJoined = useCallback((identity: Identity) => _users.includes(identity.commitment.toString()), [_users])
return (
<>
diff --git a/packages/cli-template-monorepo-subgraph/apps/web-app/src/components/PageContainer.tsx b/packages/cli-template-monorepo-subgraph/apps/web-app/src/components/PageContainer.tsx
index 854dd681..079ec70e 100644
--- a/packages/cli-template-monorepo-subgraph/apps/web-app/src/components/PageContainer.tsx
+++ b/packages/cli-template-monorepo-subgraph/apps/web-app/src/components/PageContainer.tsx
@@ -52,7 +52,7 @@ export default function PageContainer({
{shortenString(process.env.NEXT_PUBLIC_FEEDBACK_CONTRACT_ADDRESS as string, [6, 4])}
diff --git a/yarn.lock.REMOVED.git-id b/yarn.lock.REMOVED.git-id
index 4f732fd9..8d1fad8d 100644
--- a/yarn.lock.REMOVED.git-id
+++ b/yarn.lock.REMOVED.git-id
@@ -1 +1 @@
-1247bf70e3976f03369bfa231c9c09573776282c
\ No newline at end of file
+40c5116424f96a0551e5a2c7a9e38f4ed2092871
\ No newline at end of file