Skip to content

Commit 4ddf75b

Browse files
committed
feat(cli): update get-group command to use sepolia
1 parent 63666f6 commit 4ddf75b

File tree

1 file changed

+65
-54
lines changed

1 file changed

+65
-54
lines changed

packages/cli/src/index.ts

Lines changed: 65 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -163,34 +163,44 @@ program
163163
network = selectedNetwork
164164
}
165165

166+
if (!supportedNetworks.includes(network)) {
167+
console.info(`\n ${logSymbols.error}`, `error: the network '${network}' is not supported\n`)
168+
return
169+
}
170+
166171
if (!groupId) {
167-
const subgraphGroups = new SemaphoreSubgraph(network)
172+
let groupIds
173+
168174
const spinnerGroups = new Spinner("Fetching groups")
169175
spinnerGroups.start()
170-
try {
171-
const groups = await subgraphGroups.getGroups()
172176

177+
try {
178+
const semaphoreSubgraphGroups = new SemaphoreSubgraph(network)
179+
groupIds = await semaphoreSubgraphGroups.getGroupIds()
173180
spinnerGroups.stop()
174-
175-
if (groups.length === 0) {
176-
console.info(`\n ${logSymbols.info}`, "info: there are no groups in this network\n")
181+
} catch (error) {
182+
try {
183+
const semaphoreEthersGroups = new SemaphoreEthers(network)
184+
groupIds = await semaphoreEthersGroups.getGroupIds()
185+
spinnerGroups.stop()
186+
} catch {
187+
spinnerGroups.stop()
188+
console.info(`\n ${logSymbols.error}`, "error: unexpected error with the SemaphoreEthers package")
177189
return
178190
}
179-
180-
const groupIds = groups.map(({ id }: any) => id)
181-
182-
const { selectedGroupId } = await inquirer.prompt({
183-
name: "selectedGroupId",
184-
type: "list",
185-
message: "Select one of the following existing group ids:",
186-
choices: groupIds
187-
})
188-
groupId = selectedGroupId
189-
} catch (error) {
190-
spinnerGroups.stop()
191-
console.info(`\n ${logSymbols.error}`, "error: unexpected error with the Semaphore subgraph")
191+
}
192+
if (groupIds.length === 0) {
193+
console.info(`\n ${logSymbols.info}`, "info: there are no groups in this network\n")
192194
return
193195
}
196+
197+
const { selectedGroupId } = await inquirer.prompt({
198+
name: "selectedGroupId",
199+
type: "list",
200+
message: "Select one of the following existing group ids:",
201+
choices: groupIds
202+
})
203+
groupId = selectedGroupId
194204
}
195205

196206
if (!members && !signals) {
@@ -213,53 +223,54 @@ program
213223
signals = showSignals
214224
}
215225

216-
if (!supportedNetworks.includes(network)) {
217-
console.info(`\n ${logSymbols.error}`, `error: the network '${network}' is not supported\n`)
218-
return
219-
}
226+
let group
220227

221-
const subgraph = new SemaphoreSubgraph(network)
222228
const spinner = new Spinner(`Fetching group ${groupId}`)
223-
224229
spinner.start()
225230

226231
try {
227-
const group = await subgraph.getGroup(groupId, { members, verifiedProofs: signals })
228-
232+
const semaphoreSubgraph = new SemaphoreSubgraph(network)
233+
group = await semaphoreSubgraph.getGroup(groupId, { members, verifiedProofs: signals })
229234
spinner.stop()
230-
231-
if (!group) {
235+
} catch (error) {
236+
try {
237+
const semaphoreEthers = new SemaphoreEthers(network)
238+
group = await semaphoreEthers.getGroup(groupId)
239+
if (group && members) {
240+
group.members = await semaphoreEthers.getGroupMembers(groupId)
241+
}
242+
if (group && signals) {
243+
group.verifiedProofs = await semaphoreEthers.getGroupVerifiedProofs(groupId)
244+
}
245+
spinner.stop()
246+
} catch {
247+
spinner.stop()
232248
console.info(`\n ${logSymbols.error}`, "error: the group does not exist\n")
233-
234249
return
235250
}
251+
}
236252

237-
let content = ` ${chalk.bold("Id")}: ${group.id}\n`
238-
content += ` ${chalk.bold("Admin")}: ${group.admin}\n`
239-
content += ` ${chalk.bold("Merkle tree")}:\n`
240-
content += ` Root: ${group.merkleTree.root}\n`
241-
content += ` Depth: ${group.merkleTree.depth}\n`
242-
content += ` Zero value: ${group.merkleTree.zeroValue}\n`
243-
content += ` Number of leaves: ${group.merkleTree.numberOfLeaves}`
244-
245-
if (members) {
246-
content += `\n\n ${chalk.bold("Members")}: \n${group.members
247-
.map((member: string, i: number) => ` ${i}. ${member}`)
248-
.join("\n")}`
249-
}
250-
251-
if (signals) {
252-
content += `\n\n ${chalk.bold("Signals")}: \n${group.verifiedProofs
253-
.map(({ signal }: any) => ` - ${signal}`)
254-
.join("\n")}`
255-
}
256-
257-
console.info(`\n${content}\n`)
258-
} catch (error) {
259-
spinner.stop()
253+
let content = ` ${chalk.bold("Id")}: ${group.id}\n`
254+
content += ` ${chalk.bold("Admin")}: ${group.admin}\n`
255+
content += ` ${chalk.bold("Merkle tree")}:\n`
256+
content += ` Root: ${group.merkleTree.root}\n`
257+
content += ` Depth: ${group.merkleTree.depth}\n`
258+
content += ` Zero value: ${group.merkleTree.zeroValue}\n`
259+
content += ` Number of leaves: ${group.merkleTree.numberOfLeaves}`
260+
261+
if (members) {
262+
content += `\n\n ${chalk.bold("Members")}: \n${group.members
263+
.map((member: string, i: number) => ` ${i}. ${member}`)
264+
.join("\n")}`
265+
}
260266

261-
console.info(`\n ${logSymbols.error}`, "error: unexpected error with the Semaphore subgraph")
267+
if (signals) {
268+
content += `\n\n ${chalk.bold("Signals")}: \n${group.verifiedProofs
269+
.map(({ signal }: any) => ` - ${signal}`)
270+
.join("\n")}`
262271
}
272+
273+
console.info(`\n${content}\n`)
263274
})
264275

265276
program.parse(process.argv)

0 commit comments

Comments
 (0)