Skip to content

Commit d9b299d

Browse files
alcercujaybuidl
authored andcommitted
feat(wip/web): migrate queries to wagmi
1 parent 2162e56 commit d9b299d

13 files changed

+108
-125
lines changed

web/src/context/Web3Provider.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ import {
66
} from "@web3modal/ethereum";
77
import { Web3Modal } from "@web3modal/react";
88
import { configureChains, createClient, WagmiConfig } from "wagmi";
9-
import { arbitrumGoerli } from "wagmi/chains";
9+
import { arbitrumGoerli, gnosisChiado } from "wagmi/chains";
1010

11-
const chains = [arbitrumGoerli];
11+
const chains = [arbitrumGoerli, gnosisChiado];
1212
const projectId = "6efaa26765fa742153baf9281e218217";
1313

1414
const { provider } = configureChains(chains, [w3mProvider({ projectId })]);
Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
11
import useSWRImmutable from "swr/immutable";
2-
import { useConnectedContract } from "hooks/useConnectedContract";
2+
import { BigNumber } from "ethers";
3+
import { useProvider } from "wagmi";
4+
import { useKlerosCore } from "hooks/contracts/generated";
35

46
export const useAppealCost = (disputeID?: string) => {
5-
const KlerosCore = useConnectedContract("KlerosCore");
7+
const provider = useProvider();
8+
const klerosCore = useKlerosCore({ signerOrProvider: provider });
69
return useSWRImmutable(
7-
() => (KlerosCore ? `AppealCost${disputeID}` : false),
10+
() => (klerosCore && disputeID ? `AppealCost${disputeID}` : false),
811
async () => {
9-
if (!KlerosCore) return;
10-
return KlerosCore.appealCost(disputeID);
12+
if (!klerosCore || typeof disputeID === "undefined") return;
13+
return await klerosCore.appealCost(BigNumber.from(disputeID));
1114
}
1215
);
1316
};

web/src/hooks/queries/useDisputeKitClassicMultipliers.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
11
import useSWRImmutable from "swr/immutable";
22
import { BigNumber } from "ethers";
3-
import { useConnectedContract } from "hooks/useConnectedContract";
3+
import { useProvider } from "wagmi";
4+
import { useDisputeKitClassic } from "hooks/contracts/generated";
45

56
export const useDisputeKitClassicMultipliers = () => {
6-
const disputeKitClassic = useConnectedContract("DisputeKitClassic");
7+
const provider = useProvider();
8+
const disputeKitClassic = useDisputeKitClassic({
9+
signerOrProvider: provider,
10+
});
711
return useSWRImmutable(
812
() => (disputeKitClassic ? `Multipliers` : false),
913
async () => {

web/src/hooks/queries/useEvidenceGroup.ts

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
import useSWRImmutable from "swr/immutable";
22
// import { utils } from "ethers";
3-
// import { IMetaEvidence } from "@kleros/kleros-v2-contracts/typechain-types/src/evidence/IMetaEvidence";
4-
import { useConnectedContract } from "hooks/useConnectedContract";
3+
import { BigNumber } from "ethers";
4+
import { useProvider } from "wagmi";
5+
import { useIMetaEvidence } from "hooks/contracts/generated";
56

67
export const useEvidenceGroup = (
78
disputeID?: string,
@@ -10,23 +11,21 @@ export const useEvidenceGroup = (
1011
// const formattedAddress = arbitrableAddress
1112
// ? utils.getAddress(arbitrableAddress)
1213
// : undefined;
13-
const arbitrable = useConnectedContract(
14-
"IMetaEvidence",
15-
"0xc0fcc96BFd78e36550FCaB434A9EE1210B57225b",
16-
10200
17-
);
18-
// const arbitrable = useConnectedContract(
19-
// "IMetaEvidence",
20-
// formattedAddress
21-
// ) as IMetaEvidence;
14+
const provider = useProvider({ chainId: 10_200 });
15+
const arbitrable = useIMetaEvidence({
16+
address: "0xc0fcc96BFd78e36550FCaB434A9EE1210B57225b",
17+
signerOrProvider: provider,
18+
});
2219
return useSWRImmutable(
2320
() =>
2421
arbitrable ? `EvidenceGroup${disputeID}${arbitrableAddress}` : false,
2522
async () => {
2623
if (arbitrable) {
2724
const disputeFilter = arbitrable.filters.Dispute(
2825
null,
29-
parseInt(disputeID!) + 1
26+
BigNumber.from(parseInt(disputeID!) + 1),
27+
null,
28+
null
3029
);
3130
const disputeEvents = await arbitrable.queryFilter(disputeFilter);
3231
return disputeEvents[0].args?._evidenceGroupID.toString();

web/src/hooks/queries/useGetMetaEvidence.ts

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import useSWRImmutable from "swr/immutable";
22
// import { utils } from "ethers";
3-
import { useConnectedContract } from "hooks/useConnectedContract";
3+
import { BigNumber } from "ethers";
4+
import { useProvider } from "wagmi";
5+
import { useIMetaEvidence } from "hooks/contracts/generated";
46

57
export const useGetMetaEvidence = (
68
disputeID?: string,
@@ -9,22 +11,25 @@ export const useGetMetaEvidence = (
911
// const formattedAddress = arbitrableAddress
1012
// ? utils.getAddress(arbitrableAddress)
1113
// : undefined;
12-
const arbitrable = useConnectedContract(
13-
"IMetaEvidence",
14-
"0xc0fcc96BFd78e36550FCaB434A9EE1210B57225b",
15-
10200
16-
);
14+
const provider = useProvider({ chainId: 10_200 });
15+
const arbitrable = useIMetaEvidence({
16+
address: "0xc0fcc96BFd78e36550FCaB434A9EE1210B57225b",
17+
signerOrProvider: provider,
18+
});
1719
return useSWRImmutable(
1820
() => (arbitrable ? `MetaEvidence${disputeID}${arbitrableAddress}` : false),
1921
async () => {
20-
if (arbitrable) {
22+
if (arbitrable && typeof disputeID !== "undefined") {
2123
const disputeFilter = arbitrable.filters.Dispute(
2224
null,
23-
parseInt(disputeID) + 1
25+
BigNumber.from(parseInt(disputeID) + 1),
26+
null,
27+
null
2428
);
2529
const disputeEvents = await arbitrable.queryFilter(disputeFilter);
2630
const metaEvidenceFilter = arbitrable.filters.MetaEvidence(
27-
disputeEvents[0].args?._metaEvidenceID
31+
disputeEvents[0].args?._metaEvidenceID,
32+
null
2833
);
2934
const metaEvidenceEvents = await arbitrable.queryFilter(
3035
metaEvidenceFilter

web/src/hooks/queries/useJurorBalance.ts

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,20 @@
11
import useSWR from "swr";
2-
import { KlerosCore } from "@kleros/kleros-v2-contracts/typechain-types/src/arbitration/KlerosCore";
3-
import { useConnectedContract } from "../useConnectedContract";
2+
import { BigNumber } from "ethers";
3+
import { useProvider } from "wagmi";
4+
import { useKlerosCore } from "hooks/contracts/generated";
45

56
export const useJurorBalance = (
6-
user?: string | null,
7+
user?: `0x${string}` | null,
78
courtId?: string | undefined
89
) => {
9-
const klerosCore = useConnectedContract("KlerosCore") as KlerosCore;
10+
const provider = useProvider();
11+
const klerosCore = useKlerosCore({ signerOrProvider: provider });
1012
return useSWR(
1113
() =>
1214
klerosCore && user && courtId ? `JurorBalance{address}{courtId}` : false,
1315
async () => {
1416
if (klerosCore && user && courtId) {
15-
return await klerosCore.getJurorBalance(user, courtId);
17+
return await klerosCore.getJurorBalance(user, BigNumber.from(courtId));
1618
} else {
1719
return undefined;
1820
}

web/src/hooks/queries/usePNKAllowance.ts

Lines changed: 30 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,38 @@
1+
// import { useState } from "react";
2+
// import {
3+
// useKlerosCore,
4+
// usePnkAllowance,
5+
// usePnkApprovalEvent,
6+
// } from "hooks/contracts/generated";
7+
// import { notUndefined } from "utils/index";
8+
9+
// export const usePNKAllowance = (user?: string | null) => {
10+
// const [isFetched, setIsFetched] = useState<boolean>(false);
11+
// const klerosCore = useKlerosCore();
12+
// const { data: allowance, refetch } = usePnkAllowance({
13+
// enabled: !isFetched && notUndefined([user, klerosCore]),
14+
// args: [user, klerosCore?.address],
15+
// onSuccess: () => setIsFetched(true),
16+
// });
17+
// usePnkApprovalEvent({
18+
// listener: () => refetch(),
19+
// });
20+
// return allowance;
21+
// };
22+
123
import useSWR from "swr";
2-
import { PNK } from "@kleros/kleros-v2-contracts/typechain-types/src/token/PNK";
3-
import { useConnectedContract } from "hooks/useConnectedContract";
4-
import { CONTRACTS } from "utils/getContract";
24+
import { useProvider } from "wagmi";
25+
import { usePnk, useKlerosCore } from "hooks/contracts/generated";
526

6-
export const usePNKAllowance = (user?: string | null) => {
7-
const pnkContract = useConnectedContract("PNK") as PNK;
27+
export const usePNKAllowance = (user?: `0x${string}` | null) => {
28+
const provider = useProvider();
29+
const pnkContract = usePnk({ signerOrProvider: provider });
30+
const klerosCore = useKlerosCore();
831
return useSWR(
932
() => (pnkContract && user ? `PNKAllowance{user}` : false),
1033
async () => {
11-
if (pnkContract && user) {
12-
return await pnkContract.allowance(
13-
user,
14-
CONTRACTS["KlerosCore"].address
15-
);
34+
if (pnkContract && user && klerosCore) {
35+
return await pnkContract.allowance(user, klerosCore.address);
1636
} else {
1737
return undefined;
1838
}

web/src/hooks/queries/usePNKBalance.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
import useSWR from "swr";
2-
import { PNK } from "@kleros/kleros-v2-contracts/typechain-types/src/token/PNK";
3-
import { useConnectedContract } from "hooks/useConnectedContract";
2+
import { useProvider } from "wagmi";
3+
import { usePnk } from "hooks/contracts/generated";
44

5-
export const usePNKBalance = (user?: string | null) => {
6-
const pnkContract = useConnectedContract("PNK") as PNK;
5+
export const usePNKBalance = (user?: `0x${string}` | null) => {
6+
const provider = useProvider();
7+
const pnkContract = usePnk({ signerOrProvider: provider });
78
return useSWR(
89
() => (pnkContract && user ? `PNKBalance${user}` : false),
910
async () => {

web/src/hooks/queries/usePolicyRegistryEvent.ts

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,22 @@
11
import useSWRImmutable from "swr/immutable";
2-
import { PolicyRegistry } from "@kleros/kleros-v2-contracts/typechain-types/src/arbitration/PolicyRegistry";
3-
import { useConnectedContract } from "hooks/useConnectedContract";
2+
import { BigNumber } from "ethers";
3+
import { useProvider } from "wagmi";
4+
import { usePolicyRegistry } from "hooks/contracts/generated";
45

56
export const usePolicyRegistryEvent = (courtID?: string | number) => {
6-
const policyRegistry = useConnectedContract(
7-
"PolicyRegistry"
8-
) as PolicyRegistry;
7+
const provider = useProvider();
8+
const policyRegistry = usePolicyRegistry({
9+
signerOrProvider: provider,
10+
});
911
return useSWRImmutable(
1012
() => (policyRegistry && courtID ? `PolicyRegistry${courtID}` : false),
1113
async () => {
1214
if (policyRegistry) {
13-
const policyFilter = policyRegistry.filters.PolicyUpdate(courtID);
15+
const policyFilter = policyRegistry.filters.PolicyUpdate(
16+
BigNumber.from(courtID),
17+
null,
18+
null
19+
);
1420
return policyRegistry
1521
.queryFilter(policyFilter)
1622
.then((events) => events[0]);

web/src/hooks/useConnectedContract.ts

Lines changed: 0 additions & 31 deletions
This file was deleted.

0 commit comments

Comments
 (0)