Skip to content

Commit

Permalink
fix: adjust cli and data packages
Browse files Browse the repository at this point in the history
  • Loading branch information
cedoor committed Jan 23, 2024
1 parent f508925 commit 7b447f9
Show file tree
Hide file tree
Showing 10 changed files with 230 additions and 88 deletions.
2 changes: 1 addition & 1 deletion packages/cli/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
"node": ">=14.16"
},
"scripts": {
"start": "ts-node --esm src/index.ts",
"start": "node --loader ts-node/esm --no-warnings src/index.ts",
"build:watch": "rollup -c rollup.config.ts -w --configPlugin typescript",
"build": "rimraf dist && rollup -c rollup.config.ts --configPlugin typescript",
"prepublishOnly": "yarn build"
Expand Down
6 changes: 3 additions & 3 deletions packages/cli/src/index.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import { GroupResponse, SemaphoreEthers, SemaphoreSubgraph, getSupportedNetworks } from "@semaphore-protocol/data"
import chalk from "chalk"
import { program } from "commander"
import decompress from "decompress"
import figlet from "figlet"
import { existsSync, readFileSync, unlinkSync, copyFileSync } from "fs"
import { copyFileSync, existsSync, readFileSync, unlinkSync } from "fs"
import logSymbols from "log-symbols"
import pacote from "pacote"
import decompress from "decompress"
import { dirname } from "path"
import { fileURLToPath } from "url"
import checkLatestVersion from "./checkLatestVersion.js"
Expand Down Expand Up @@ -209,7 +209,7 @@ program
content += ` ${chalk.bold("Merkle tree")}:\n`
content += ` Root: ${group.merkleTree.root}\n`
content += ` Depth: ${group.merkleTree.depth}\n`
content += ` Number of leaves: ${group.merkleTree.numberOfLeaves}`
content += ` Size: ${group.merkleTree.size}`

console.info(`\n${content}\n`)
})
Expand Down
36 changes: 18 additions & 18 deletions packages/data/src/ethers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,8 @@ export default class SemaphoreEthers {
options.startBlock ??= 33995010
break
case "sepolia":
options.address ??= "0x3889927F0B5Eb1a02C6E2C20b39a1Bd4EAd76131"
options.startBlock ??= 3231111
options.address ??= "0x021dC8BF0eADd9C128490A976756C1b052edF99d"
options.startBlock ??= 5108003
break
case "optimism-sepolia":
options.address ??= "0x3889927F0B5Eb1a02C6E2C20b39a1Bd4EAd76131"
Expand Down Expand Up @@ -154,13 +154,13 @@ export default class SemaphoreEthers {

const merkleTreeRoot = await this._contract.getMerkleTreeRoot(groupId)
const merkleTreeDepth = await this._contract.getMerkleTreeDepth(groupId)
const numberOfLeaves = await this._contract.getNumberOfMerkleTreeLeaves(groupId)
const merkleTreeSize = await this._contract.getMerkleTreeSize(groupId)

const group: GroupResponse = {
id: groupId,
merkleTree: {
depth: merkleTreeDepth.toNumber(),
numberOfLeaves: numberOfLeaves.toNumber(),
depth: Number(merkleTreeDepth),
size: Number(merkleTreeSize),
root: merkleTreeRoot.toString()
}
}
Expand All @@ -187,7 +187,7 @@ export default class SemaphoreEthers {
throw new Error(`Group '${groupId}' not found`)
}

return groupAdminUpdatedEvents[groupAdminUpdatedEvents.length - 1].newAdmin.toString()
return groupAdminUpdatedEvents[groupAdminUpdatedEvents.length - 1][2]
}

/**
Expand Down Expand Up @@ -218,11 +218,11 @@ export default class SemaphoreEthers {
)
const memberUpdatedEventsMap = new Map<string, [number, string]>()

for (const { blockNumber, index, newIdentityCommitment } of memberUpdatedEvents) {
for (const [, index, , newIdentityCommitment, , blockNumber] of memberUpdatedEvents) {
memberUpdatedEventsMap.set(index.toString(), [blockNumber, newIdentityCommitment.toString()])
}

for (const { blockNumber, index } of memberRemovedEvents) {
for (const [, index, , , blockNumber] of memberRemovedEvents) {
const groupUpdate = memberUpdatedEventsMap.get(index.toString())

if (!groupUpdate || (groupUpdate && groupUpdate[0] < blockNumber)) {
Expand All @@ -234,7 +234,7 @@ export default class SemaphoreEthers {

const membersAddedEventsMap = new Map<string, [string]>()

for (const { startIndex, identityCommitments } of membersAddedEvents) {
for (const [, startIndex, identityCommitments] of membersAddedEvents) {
membersAddedEventsMap.set(
startIndex.toString(),
identityCommitments.map((i: any) => i.toString())
Expand All @@ -245,19 +245,19 @@ export default class SemaphoreEthers {

const members: string[] = []

const numberOfLeaves = await this._contract.getNumberOfMerkleTreeLeaves(groupId)
const merkleTreeSize = await this._contract.getMerkleTreeSize(groupId)

let i = 0

while (i < numberOfLeaves.toNumber()) {
while (i < Number(merkleTreeSize)) {
const identityCommitments = membersAddedEventsMap.get(i.toString())

if (identityCommitments) {
members.push(...identityCommitments)

i += identityCommitments.length
} else {
members.push(memberAddedEvents[i].identityCommitment)
members.push(memberAddedEvents[i][2])

i += 1
}
Expand Down Expand Up @@ -296,12 +296,12 @@ export default class SemaphoreEthers {
)

return proofValidatedEvents.map((event) => ({
message: event.message.toString(),
merkleTreeDepth: event.merkleTreeDepth.toString(),
merkleTreeRoot: event.merkleTreeRoot.toString(),
scope: event.scope.toString(),
nullifier: event.nullifier.toString(),
proof: event.proof.map((p: any) => p.toString())
merkleTreeDepth: Number(event[1]),
merkleTreeRoot: event[2].toString(),
nullifier: event[3].toString(),
message: event[4].toString(),
scope: event[5].toString(),
proof: event[6].map((p: any) => p.toString())
}))
}

Expand Down
4 changes: 2 additions & 2 deletions packages/data/src/getEvents.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@ export default async function getEvents(
eventName: string,
filterArgs: any[] = [],
startBlock: number = 0
): Promise<any[]> {
): Promise<any[][]> {
const filter = contract.filters[eventName](...filterArgs)
const events = (await contract.queryFilter(filter, startBlock)) as EventLog[]

return events.map(({ args, blockNumber }) => ({ ...args, blockNumber }))
return events.map(({ args, blockNumber }) => [...args, blockNumber])
}
2 changes: 1 addition & 1 deletion packages/data/src/getURL.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ export default function getURL(supportedNetwork: SupportedNetwork | string): str
case "optimism-sepolia":
case "arbitrum-sepolia":
case "arbitrum":
return `https://api.studio.thegraph.com/query/14377/semaphore-${supportedNetwork}/v4.0.0-alpha.1`
return `https://api.studio.thegraph.com/query/14377/semaphore-${supportedNetwork}/v4.0.0-alpha.2`
default:
throw new TypeError(`Network '${supportedNetwork}' is not supported`)
}
Expand Down
Loading

0 comments on commit 7b447f9

Please sign in to comment.