Skip to content

Commit b37e2c3

Browse files
committed
refactor: use PollFactory from sdk
1 parent 35b89a1 commit b37e2c3

File tree

1 file changed

+20
-11
lines changed

1 file changed

+20
-11
lines changed

plugins/maciVoting/contexts/CoordinatorContext.tsx

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,14 @@
11
import { type KeyLike } from "crypto";
2+
import { Poll__factory as PollFactory } from "@maci-protocol/contracts";
23
import { EMode } from "@maci-protocol/core";
34
import { getPoll } from "@maci-protocol/sdk/browser";
4-
import { PUBLIC_CHAIN, PUBLIC_COORDINATOR_SERVICE_URL, PUBLIC_MACI_ADDRESS, PUBLIC_WEB3_ENDPOINT } from "@/constants";
5+
import {
6+
PUBLIC_CHAIN,
7+
PUBLIC_COORDINATOR_SERVICE_URL,
8+
PUBLIC_MACI_ADDRESS,
9+
PUBLIC_MACI_DEPLOYMENT_BLOCK,
10+
PUBLIC_WEB3_ENDPOINT,
11+
} from "@/constants";
512
import { createContext, type ReactNode, useCallback, useMemo, useState } from "react";
613
import { createPublicClient, hashMessage, http, parseAbi, toBytes } from "viem";
714
import { useSignMessage } from "wagmi";
@@ -16,6 +23,7 @@ import {
1623
import { encryptWithCoordinatorRSA } from "./auth";
1724
import { GenerateResponseSchema, SubmitResponseSchema } from "./schemas";
1825
import { useEthersSigner } from "../hooks/useEthersSigner";
26+
import { getFutureBlockNumberAtTimestamp } from "../utils/blockAtTimestamp";
1927

2028
const baseUrl = PUBLIC_COORDINATOR_SERVICE_URL;
2129
const maciContractAddress = PUBLIC_MACI_ADDRESS;
@@ -185,13 +193,8 @@ export const CoordinatorProvider = ({ children }: { children: ReactNode }) => {
185193
pollId,
186194
signer,
187195
});
188-
const pollAbi = parseAbi(["function stateMerged() view returns (bool)"]);
189-
const statemMerged = await publicClient.readContract({
190-
address: pollAddress as `0x${string}`,
191-
abi: pollAbi,
192-
functionName: "stateMerged",
193-
});
194-
return statemMerged;
196+
const poll = PollFactory.connect(pollAddress, signer);
197+
return await poll.stateMerged();
195198
};
196199

197200
const finalizeProposal = useCallback(async (pollId: number) => {
@@ -205,10 +208,16 @@ export const CoordinatorProvider = ({ children }: { children: ReactNode }) => {
205208
}
206209
setFinalizeStatus("merged");
207210

208-
// TODO: get these values
211+
const { address: pollAddress } = await getPoll({
212+
maciAddress: PUBLIC_MACI_ADDRESS,
213+
pollId,
214+
signer,
215+
});
216+
const poll = PollFactory.connect(pollAddress, signer);
217+
const endDate = await poll.endDate();
209218
const encryptedCoordinatorPrivateKey = "";
210-
const startBlock = 0;
211-
const endBlock = 0;
219+
const startBlock = PUBLIC_MACI_DEPLOYMENT_BLOCK;
220+
const endBlock = Number(await getFutureBlockNumberAtTimestamp(endDate));
212221

213222
setFinalizeStatus("proving");
214223
const proveResult = await generateProofs({

0 commit comments

Comments
 (0)