@@ -54,18 +65,11 @@ const Fund: React.FC = () => {
!balance ||
parsedAmount.gt(balance.value)
}
- text={typeof balance === "undefined" ? "Connect to Fund" : "Fund"}
+ text={isDisconnected ? "Connect to Fund" : "Fund"}
onClick={() => {
- if (
- typeof selectedOption !== "undefined" &&
- typeof id !== "undefined"
- ) {
+ if (fundAppeal) {
setIsSending(true);
- wrapWithToast(
- disputeKitClassic.fundAppeal(id, selectedOption, {
- value: parsedAmount,
- })
- )
+ wrapWithToast(fundAppeal!())
.then(() => {
setAmount("");
close();
diff --git a/web/src/pages/Cases/CaseDetails/Evidence/SubmitEvidenceModal.tsx b/web/src/pages/Cases/CaseDetails/Evidence/SubmitEvidenceModal.tsx
index 64b22a583..17ce3bb98 100644
--- a/web/src/pages/Cases/CaseDetails/Evidence/SubmitEvidenceModal.tsx
+++ b/web/src/pages/Cases/CaseDetails/Evidence/SubmitEvidenceModal.tsx
@@ -1,10 +1,12 @@
import React, { useState } from "react";
import styled from "styled-components";
+import { BigNumber } from "ethers";
+import { useSigner } from "wagmi";
+import { toast } from "react-toastify";
import Modal from "react-modal";
import { Textarea, Button } from "@kleros/ui-components-library";
-import { DisputeKitClassic } from "@kleros/kleros-v2-contracts/typechain-types/src/arbitration/dispute-kits/DisputeKitClassic";
-import { wrapWithToast } from "utils/wrapWithToast";
-import { useConnectedContract } from "hooks/useConnectedContract";
+import { useDisputeKitClassic } from "hooks/contracts/generated";
+import { wrapWithToast, OPTIONS as toastOptions } from "utils/wrapWithToast";
import { uploadFormDataToIPFS } from "utils/uploadFormDataToIPFS";
const SubmitEvidenceModal: React.FC<{
@@ -12,9 +14,10 @@ const SubmitEvidenceModal: React.FC<{
evidenceGroup: string;
close: () => void;
}> = ({ isOpen, evidenceGroup, close }) => {
- const disputeKit = useConnectedContract(
- "DisputeKitClassic"
- ) as DisputeKitClassic;
+ const { data: signer } = useSigner();
+ const disputeKit = useDisputeKitClassic({
+ signerOrProvider: signer,
+ });
const [isSending, setIsSending] = useState(false);
const [message, setMessage] = useState("");
return (
@@ -37,23 +40,29 @@ const SubmitEvidenceModal: React.FC<{
isLoading={isSending}
disabled={isSending}
onClick={() => {
- setIsSending(true);
- const formData = constructEvidence(message);
- uploadFormDataToIPFS(formData)
- .then(async (res) => {
- const response = await res.json();
- if (res.status === 200) {
- const cid = "/ipfs/" + response["cid"];
- await wrapWithToast(
- disputeKit.submitEvidence(evidenceGroup, cid)
- ).then(() => {
- setMessage("");
- close();
- });
- }
- })
- .catch()
- .finally(() => setIsSending(false));
+ if (disputeKit) {
+ setIsSending(true);
+ const formData = constructEvidence(message);
+ toast.info("Uploading to IPFS", toastOptions);
+ uploadFormDataToIPFS(formData)
+ .then(async (res) => {
+ const response = await res.json();
+ if (res.status === 200) {
+ const cid = "/ipfs/" + response["cid"];
+ await wrapWithToast(
+ disputeKit.submitEvidence(
+ BigNumber.from(evidenceGroup),
+ cid
+ )
+ ).then(() => {
+ setMessage("");
+ close();
+ });
+ }
+ })
+ .catch()
+ .finally(() => setIsSending(false));
+ }
}}
/>
diff --git a/web/src/pages/Cases/CaseDetails/Voting/Binary.tsx b/web/src/pages/Cases/CaseDetails/Voting/Binary.tsx
index aa05c90a8..4bdd2c50b 100644
--- a/web/src/pages/Cases/CaseDetails/Voting/Binary.tsx
+++ b/web/src/pages/Cases/CaseDetails/Voting/Binary.tsx
@@ -1,24 +1,31 @@
-import React, { useState } from "react";
+import React, { useMemo, useState } from "react";
import styled from "styled-components";
import { useParams } from "react-router-dom";
-import { DisputeKitClassic } from "@kleros/kleros-v2-contracts/typechain-types/src/arbitration/dispute-kits/DisputeKitClassic";
import { Button, Textarea } from "@kleros/ui-components-library";
-import { useConnectedContract } from "hooks/useConnectedContract";
+import { useDisputeKitClassic } from "hooks/contracts/generated";
import { useGetMetaEvidence } from "queries/useGetMetaEvidence";
import { wrapWithToast } from "utils/wrapWithToast";
+import { useSigner } from "wagmi";
+import { BigNumber } from "ethers";
const Binary: React.FC<{ arbitrable?: string; voteIDs: string[] }> = ({
arbitrable,
voteIDs,
}) => {
const { id } = useParams();
+ const parsedDisputeID = BigNumber.from(id);
+ const parsedVoteIDs = useMemo(
+ () => voteIDs.map((voteID) => BigNumber.from(voteID)),
+ [voteIDs]
+ );
const { data: metaEvidence } = useGetMetaEvidence(id, arbitrable);
const [chosenOption, setChosenOption] = useState(-1);
const [isSending, setIsSending] = useState(false);
const [justification, setJustification] = useState("");
- const disputeKit = useConnectedContract(
- "DisputeKitClassic"
- ) as DisputeKitClassic;
+ const { data: signer } = useSigner();
+ const disputeKit = useDisputeKitClassic({
+ signerOrProvider: signer,
+ });
return id ? (
@@ -42,14 +49,22 @@ const Binary: React.FC<{ arbitrable?: string; voteIDs: string[] }> = ({
disabled={isSending}
isLoading={chosenOption === i + 1}
onClick={() => {
- setIsSending(true);
- setChosenOption(i + 1);
- wrapWithToast(
- disputeKit.castVote(id, voteIDs, i + 1, 0, justification)
- ).finally(() => {
- setChosenOption(-1);
- setIsSending(false);
- });
+ if (disputeKit) {
+ setIsSending(true);
+ setChosenOption(i + 1);
+ wrapWithToast(
+ disputeKit!.castVote(
+ parsedDisputeID,
+ parsedVoteIDs,
+ BigNumber.from(i + 1),
+ BigNumber.from(0),
+ justification
+ )
+ ).finally(() => {
+ setChosenOption(-1);
+ setIsSending(false);
+ });
+ }
}}
/>
)
@@ -63,14 +78,22 @@ const Binary: React.FC<{ arbitrable?: string; voteIDs: string[] }> = ({
disabled={isSending}
isLoading={chosenOption === 0}
onClick={() => {
- setIsSending(true);
- setChosenOption(0);
- wrapWithToast(
- disputeKit.castVote(id, voteIDs, 0, 0, justification)
- ).finally(() => {
- setChosenOption(-1);
- setIsSending(false);
- });
+ if (disputeKit) {
+ setIsSending(true);
+ setChosenOption(0);
+ wrapWithToast(
+ disputeKit.castVote(
+ parsedDisputeID,
+ parsedVoteIDs,
+ BigNumber.from(0),
+ BigNumber.from(0),
+ justification
+ )
+ ).finally(() => {
+ setChosenOption(-1);
+ setIsSending(false);
+ });
+ }
}}
/>
diff --git a/web/src/pages/Courts/CourtDetails/StakePanel/InputDisplay.tsx b/web/src/pages/Courts/CourtDetails/StakePanel/InputDisplay.tsx
index f9c10283e..2476d7ed4 100644
--- a/web/src/pages/Courts/CourtDetails/StakePanel/InputDisplay.tsx
+++ b/web/src/pages/Courts/CourtDetails/StakePanel/InputDisplay.tsx
@@ -2,6 +2,7 @@ import React, { useState } from "react";
import styled from "styled-components";
import { useParams } from "react-router-dom";
import { utils } from "ethers";
+import { useDebounce } from "react-use";
import { useAccount } from "wagmi";
import { Button, Field } from "@kleros/ui-components-library";
@@ -22,7 +23,9 @@ const InputDisplay: React.FC = ({
setIsSending,
}) => {
const [amount, setAmount] = useState("");
- const parsedAmount = useParsedAmount(amount);
+ const [debouncedAmount, setDebouncedAmount] = useState("");
+ useDebounce(() => setDebouncedAmount(amount), 500, [amount]);
+ const parsedAmount = useParsedAmount(debouncedAmount);
const { id } = useParams();
const { address } = useAccount();
@@ -55,7 +58,7 @@ const InputDisplay: React.FC = ({
placeholder={isStaking ? "Amount to stake" : "Amount to withdraw"}
message={
isStaking
- ? "You need two transactions, one to increase allowance, the other to stake."
+ ? "You may need two transactions, one to increase allowance, the other to stake."
: undefined
}
variant="info"
@@ -77,8 +80,6 @@ const InputDisplay: React.FC = ({
>
);
};
-// onClick={activate}
-// disabled={connecting}
export default InputDisplay;
diff --git a/web/src/pages/Courts/CourtDetails/StakePanel/StakeWithdrawButton.tsx b/web/src/pages/Courts/CourtDetails/StakePanel/StakeWithdrawButton.tsx
index 4e7ba74b2..a198f89b2 100644
--- a/web/src/pages/Courts/CourtDetails/StakePanel/StakeWithdrawButton.tsx
+++ b/web/src/pages/Courts/CourtDetails/StakePanel/StakeWithdrawButton.tsx
@@ -1,19 +1,17 @@
import React, { useMemo } from "react";
import { useParams } from "react-router-dom";
import { BigNumber } from "ethers";
-import { Button } from "@kleros/ui-components-library";
import { useAccount } from "wagmi";
-
+import { Button } from "@kleros/ui-components-library";
+import { usePNKAllowance } from "hooks/queries/usePNKAllowance";
import {
useKlerosCore,
useKlerosCoreSetStake,
usePrepareKlerosCoreSetStake,
- usePnkAllowance,
+ usePnkBalanceOf,
usePnkIncreaseAllowance,
usePreparePnkIncreaseAllowance,
} from "hooks/contracts/generated";
-
-import { usePNKBalance } from "queries/usePNKBalance";
import { useJurorBalance } from "queries/useJurorBalance";
import { wrapWithToast } from "utils/wrapWithToast";
import { notUndefined } from "utils/index";
@@ -41,20 +39,19 @@ const StakeWithdrawButton: React.FC = ({
}) => {
const { id } = useParams();
const { address } = useAccount();
- const { data: balance } = usePNKBalance(address);
- const { data: jurorBalance } = useJurorBalance(address, id);
- const { data: allowance } = usePnkAllowance({
+ const { data: balance } = usePnkBalanceOf({
enabled: notUndefined(address),
args: [address!],
watch: true,
- cacheOnBlock: true,
});
+ const { data: jurorBalance } = useJurorBalance(address, id);
+ const { data: allowance } = usePNKAllowance(address);
const isStaking = action === ActionType.stake;
const isAllowance = isStaking && allowance && allowance.lt(parsedAmount);
const targetStake = useMemo(() => {
- if (action === ActionType.stake || action === ActionType.allowance) {
+ if (action === ActionType.stake) {
return jurorBalance?.staked.add(parsedAmount);
} else {
return jurorBalance?.staked.sub(parsedAmount);
@@ -64,7 +61,10 @@ const StakeWithdrawButton: React.FC = ({
const klerosCore = useKlerosCore();
const { config: increaseAllowanceConfig } = usePreparePnkIncreaseAllowance({
enabled: notUndefined([klerosCore, targetStake, allowance]),
- args: [klerosCore!.address, targetStake!.sub(allowance!)],
+ args: [
+ klerosCore?.address,
+ targetStake?.sub(allowance ?? BigNumber.from(0))!,
+ ],
});
const { writeAsync: increaseAllowance } = usePnkIncreaseAllowance(
increaseAllowanceConfig
@@ -79,8 +79,8 @@ const StakeWithdrawButton: React.FC = ({
};
const { config: setStakeConfig } = usePrepareKlerosCoreSetStake({
- enabled: notUndefined(targetStake),
- args: [targetStake!, targetStake!],
+ enabled: notUndefined([targetStake, id]),
+ args: [id, targetStake],
});
const { writeAsync: setStake } = useKlerosCoreSetStake(setStakeConfig);
const handleStake = () => {
diff --git a/web/src/utils/wrapWithToast.ts b/web/src/utils/wrapWithToast.ts
index 7117bae75..d26e228b4 100644
--- a/web/src/utils/wrapWithToast.ts
+++ b/web/src/utils/wrapWithToast.ts
@@ -14,8 +14,8 @@ export const OPTIONS = {
export async function wrapWithToast(tx: Promise) {
toast.info("Transaction initiated", OPTIONS);
await tx
- .then((tx) => {
- tx.wait(2);
+ .then(async (tx) => {
+ await tx.wait(2);
toast.success("Transaction mined!", OPTIONS);
})
.catch((error) => {
diff --git a/web/wagmi.config.ts b/web/wagmi.config.ts
index 49f0ffa1c..846bd1f9b 100644
--- a/web/wagmi.config.ts
+++ b/web/wagmi.config.ts
@@ -3,6 +3,7 @@ import { react } from "@wagmi/cli/plugins";
import { arbitrumGoerli } from "wagmi/chains";
import KlerosCore from "@kleros/kleros-v2-contracts/deployments/arbitrumGoerli/KlerosCore.json" assert { type: "json" };
import PNK from "@kleros/kleros-v2-contracts/deployments/arbitrumGoerli/PNK.json" assert { type: "json" };
+import DisputeKitClassic from "@kleros/kleros-v2-contracts/deployments/arbitrumGoerli/DisputeKitClassic.json" assert { type: "json" };
export default defineConfig({
out: "src/hooks/contracts/generated.ts",
@@ -14,6 +15,13 @@ export default defineConfig({
},
abi: KlerosCore.abi,
},
+ {
+ name: "DisputeKitClassic",
+ address: {
+ [arbitrumGoerli.id]: DisputeKitClassic.address,
+ },
+ abi: DisputeKitClassic.abi,
+ },
{
name: "PNK",
address: {
From d9b299de463e1d65e019d509b2639d6503e6d987 Mon Sep 17 00:00:00 2001
From: alcercu <333aleix333@gmail.com>
Date: Fri, 31 Mar 2023 16:49:22 +0200
Subject: [PATCH 03/41] feat(wip/web): migrate queries to wagmi
---
web/src/context/Web3Provider.tsx | 4 +-
web/src/hooks/queries/useAppealCost.ts | 13 +++---
.../useDisputeKitClassicMultipliers.ts | 8 +++-
web/src/hooks/queries/useEvidenceGroup.ts | 23 +++++------
web/src/hooks/queries/useGetMetaEvidence.ts | 23 ++++++-----
web/src/hooks/queries/useJurorBalance.ts | 12 +++---
web/src/hooks/queries/usePNKAllowance.ts | 40 ++++++++++++++-----
web/src/hooks/queries/usePNKBalance.ts | 9 +++--
.../hooks/queries/usePolicyRegistryEvent.ts | 18 ++++++---
web/src/hooks/useConnectedContract.ts | 31 --------------
web/src/hooks/useEventQuery.ts | 12 ------
web/src/utils/getContract.ts | 27 -------------
web/wagmi.config.ts | 13 ++++++
13 files changed, 108 insertions(+), 125 deletions(-)
delete mode 100644 web/src/hooks/useConnectedContract.ts
delete mode 100644 web/src/hooks/useEventQuery.ts
delete mode 100644 web/src/utils/getContract.ts
diff --git a/web/src/context/Web3Provider.tsx b/web/src/context/Web3Provider.tsx
index 0f6215ffb..3fe81347d 100644
--- a/web/src/context/Web3Provider.tsx
+++ b/web/src/context/Web3Provider.tsx
@@ -6,9 +6,9 @@ import {
} from "@web3modal/ethereum";
import { Web3Modal } from "@web3modal/react";
import { configureChains, createClient, WagmiConfig } from "wagmi";
-import { arbitrumGoerli } from "wagmi/chains";
+import { arbitrumGoerli, gnosisChiado } from "wagmi/chains";
-const chains = [arbitrumGoerli];
+const chains = [arbitrumGoerli, gnosisChiado];
const projectId = "6efaa26765fa742153baf9281e218217";
const { provider } = configureChains(chains, [w3mProvider({ projectId })]);
diff --git a/web/src/hooks/queries/useAppealCost.ts b/web/src/hooks/queries/useAppealCost.ts
index 8181bddf4..a078c4197 100644
--- a/web/src/hooks/queries/useAppealCost.ts
+++ b/web/src/hooks/queries/useAppealCost.ts
@@ -1,13 +1,16 @@
import useSWRImmutable from "swr/immutable";
-import { useConnectedContract } from "hooks/useConnectedContract";
+import { BigNumber } from "ethers";
+import { useProvider } from "wagmi";
+import { useKlerosCore } from "hooks/contracts/generated";
export const useAppealCost = (disputeID?: string) => {
- const KlerosCore = useConnectedContract("KlerosCore");
+ const provider = useProvider();
+ const klerosCore = useKlerosCore({ signerOrProvider: provider });
return useSWRImmutable(
- () => (KlerosCore ? `AppealCost${disputeID}` : false),
+ () => (klerosCore && disputeID ? `AppealCost${disputeID}` : false),
async () => {
- if (!KlerosCore) return;
- return KlerosCore.appealCost(disputeID);
+ if (!klerosCore || typeof disputeID === "undefined") return;
+ return await klerosCore.appealCost(BigNumber.from(disputeID));
}
);
};
diff --git a/web/src/hooks/queries/useDisputeKitClassicMultipliers.ts b/web/src/hooks/queries/useDisputeKitClassicMultipliers.ts
index c586a0ccf..9353d6745 100644
--- a/web/src/hooks/queries/useDisputeKitClassicMultipliers.ts
+++ b/web/src/hooks/queries/useDisputeKitClassicMultipliers.ts
@@ -1,9 +1,13 @@
import useSWRImmutable from "swr/immutable";
import { BigNumber } from "ethers";
-import { useConnectedContract } from "hooks/useConnectedContract";
+import { useProvider } from "wagmi";
+import { useDisputeKitClassic } from "hooks/contracts/generated";
export const useDisputeKitClassicMultipliers = () => {
- const disputeKitClassic = useConnectedContract("DisputeKitClassic");
+ const provider = useProvider();
+ const disputeKitClassic = useDisputeKitClassic({
+ signerOrProvider: provider,
+ });
return useSWRImmutable(
() => (disputeKitClassic ? `Multipliers` : false),
async () => {
diff --git a/web/src/hooks/queries/useEvidenceGroup.ts b/web/src/hooks/queries/useEvidenceGroup.ts
index 2f15e43b8..39f73a182 100644
--- a/web/src/hooks/queries/useEvidenceGroup.ts
+++ b/web/src/hooks/queries/useEvidenceGroup.ts
@@ -1,7 +1,8 @@
import useSWRImmutable from "swr/immutable";
// import { utils } from "ethers";
-// import { IMetaEvidence } from "@kleros/kleros-v2-contracts/typechain-types/src/evidence/IMetaEvidence";
-import { useConnectedContract } from "hooks/useConnectedContract";
+import { BigNumber } from "ethers";
+import { useProvider } from "wagmi";
+import { useIMetaEvidence } from "hooks/contracts/generated";
export const useEvidenceGroup = (
disputeID?: string,
@@ -10,15 +11,11 @@ export const useEvidenceGroup = (
// const formattedAddress = arbitrableAddress
// ? utils.getAddress(arbitrableAddress)
// : undefined;
- const arbitrable = useConnectedContract(
- "IMetaEvidence",
- "0xc0fcc96BFd78e36550FCaB434A9EE1210B57225b",
- 10200
- );
- // const arbitrable = useConnectedContract(
- // "IMetaEvidence",
- // formattedAddress
- // ) as IMetaEvidence;
+ const provider = useProvider({ chainId: 10_200 });
+ const arbitrable = useIMetaEvidence({
+ address: "0xc0fcc96BFd78e36550FCaB434A9EE1210B57225b",
+ signerOrProvider: provider,
+ });
return useSWRImmutable(
() =>
arbitrable ? `EvidenceGroup${disputeID}${arbitrableAddress}` : false,
@@ -26,7 +23,9 @@ export const useEvidenceGroup = (
if (arbitrable) {
const disputeFilter = arbitrable.filters.Dispute(
null,
- parseInt(disputeID!) + 1
+ BigNumber.from(parseInt(disputeID!) + 1),
+ null,
+ null
);
const disputeEvents = await arbitrable.queryFilter(disputeFilter);
return disputeEvents[0].args?._evidenceGroupID.toString();
diff --git a/web/src/hooks/queries/useGetMetaEvidence.ts b/web/src/hooks/queries/useGetMetaEvidence.ts
index 2ff2910da..3131e5104 100644
--- a/web/src/hooks/queries/useGetMetaEvidence.ts
+++ b/web/src/hooks/queries/useGetMetaEvidence.ts
@@ -1,6 +1,8 @@
import useSWRImmutable from "swr/immutable";
// import { utils } from "ethers";
-import { useConnectedContract } from "hooks/useConnectedContract";
+import { BigNumber } from "ethers";
+import { useProvider } from "wagmi";
+import { useIMetaEvidence } from "hooks/contracts/generated";
export const useGetMetaEvidence = (
disputeID?: string,
@@ -9,22 +11,25 @@ export const useGetMetaEvidence = (
// const formattedAddress = arbitrableAddress
// ? utils.getAddress(arbitrableAddress)
// : undefined;
- const arbitrable = useConnectedContract(
- "IMetaEvidence",
- "0xc0fcc96BFd78e36550FCaB434A9EE1210B57225b",
- 10200
- );
+ const provider = useProvider({ chainId: 10_200 });
+ const arbitrable = useIMetaEvidence({
+ address: "0xc0fcc96BFd78e36550FCaB434A9EE1210B57225b",
+ signerOrProvider: provider,
+ });
return useSWRImmutable(
() => (arbitrable ? `MetaEvidence${disputeID}${arbitrableAddress}` : false),
async () => {
- if (arbitrable) {
+ if (arbitrable && typeof disputeID !== "undefined") {
const disputeFilter = arbitrable.filters.Dispute(
null,
- parseInt(disputeID) + 1
+ BigNumber.from(parseInt(disputeID) + 1),
+ null,
+ null
);
const disputeEvents = await arbitrable.queryFilter(disputeFilter);
const metaEvidenceFilter = arbitrable.filters.MetaEvidence(
- disputeEvents[0].args?._metaEvidenceID
+ disputeEvents[0].args?._metaEvidenceID,
+ null
);
const metaEvidenceEvents = await arbitrable.queryFilter(
metaEvidenceFilter
diff --git a/web/src/hooks/queries/useJurorBalance.ts b/web/src/hooks/queries/useJurorBalance.ts
index a2e2a30a9..e3ce1a7cd 100644
--- a/web/src/hooks/queries/useJurorBalance.ts
+++ b/web/src/hooks/queries/useJurorBalance.ts
@@ -1,18 +1,20 @@
import useSWR from "swr";
-import { KlerosCore } from "@kleros/kleros-v2-contracts/typechain-types/src/arbitration/KlerosCore";
-import { useConnectedContract } from "../useConnectedContract";
+import { BigNumber } from "ethers";
+import { useProvider } from "wagmi";
+import { useKlerosCore } from "hooks/contracts/generated";
export const useJurorBalance = (
- user?: string | null,
+ user?: `0x${string}` | null,
courtId?: string | undefined
) => {
- const klerosCore = useConnectedContract("KlerosCore") as KlerosCore;
+ const provider = useProvider();
+ const klerosCore = useKlerosCore({ signerOrProvider: provider });
return useSWR(
() =>
klerosCore && user && courtId ? `JurorBalance{address}{courtId}` : false,
async () => {
if (klerosCore && user && courtId) {
- return await klerosCore.getJurorBalance(user, courtId);
+ return await klerosCore.getJurorBalance(user, BigNumber.from(courtId));
} else {
return undefined;
}
diff --git a/web/src/hooks/queries/usePNKAllowance.ts b/web/src/hooks/queries/usePNKAllowance.ts
index 8e082bbba..c6105e080 100644
--- a/web/src/hooks/queries/usePNKAllowance.ts
+++ b/web/src/hooks/queries/usePNKAllowance.ts
@@ -1,18 +1,38 @@
+// import { useState } from "react";
+// import {
+// useKlerosCore,
+// usePnkAllowance,
+// usePnkApprovalEvent,
+// } from "hooks/contracts/generated";
+// import { notUndefined } from "utils/index";
+
+// export const usePNKAllowance = (user?: string | null) => {
+// const [isFetched, setIsFetched] = useState(false);
+// const klerosCore = useKlerosCore();
+// const { data: allowance, refetch } = usePnkAllowance({
+// enabled: !isFetched && notUndefined([user, klerosCore]),
+// args: [user, klerosCore?.address],
+// onSuccess: () => setIsFetched(true),
+// });
+// usePnkApprovalEvent({
+// listener: () => refetch(),
+// });
+// return allowance;
+// };
+
import useSWR from "swr";
-import { PNK } from "@kleros/kleros-v2-contracts/typechain-types/src/token/PNK";
-import { useConnectedContract } from "hooks/useConnectedContract";
-import { CONTRACTS } from "utils/getContract";
+import { useProvider } from "wagmi";
+import { usePnk, useKlerosCore } from "hooks/contracts/generated";
-export const usePNKAllowance = (user?: string | null) => {
- const pnkContract = useConnectedContract("PNK") as PNK;
+export const usePNKAllowance = (user?: `0x${string}` | null) => {
+ const provider = useProvider();
+ const pnkContract = usePnk({ signerOrProvider: provider });
+ const klerosCore = useKlerosCore();
return useSWR(
() => (pnkContract && user ? `PNKAllowance{user}` : false),
async () => {
- if (pnkContract && user) {
- return await pnkContract.allowance(
- user,
- CONTRACTS["KlerosCore"].address
- );
+ if (pnkContract && user && klerosCore) {
+ return await pnkContract.allowance(user, klerosCore.address);
} else {
return undefined;
}
diff --git a/web/src/hooks/queries/usePNKBalance.ts b/web/src/hooks/queries/usePNKBalance.ts
index 9e6901775..50b367b13 100644
--- a/web/src/hooks/queries/usePNKBalance.ts
+++ b/web/src/hooks/queries/usePNKBalance.ts
@@ -1,9 +1,10 @@
import useSWR from "swr";
-import { PNK } from "@kleros/kleros-v2-contracts/typechain-types/src/token/PNK";
-import { useConnectedContract } from "hooks/useConnectedContract";
+import { useProvider } from "wagmi";
+import { usePnk } from "hooks/contracts/generated";
-export const usePNKBalance = (user?: string | null) => {
- const pnkContract = useConnectedContract("PNK") as PNK;
+export const usePNKBalance = (user?: `0x${string}` | null) => {
+ const provider = useProvider();
+ const pnkContract = usePnk({ signerOrProvider: provider });
return useSWR(
() => (pnkContract && user ? `PNKBalance${user}` : false),
async () => {
diff --git a/web/src/hooks/queries/usePolicyRegistryEvent.ts b/web/src/hooks/queries/usePolicyRegistryEvent.ts
index 77c9c3c71..30f69cc11 100644
--- a/web/src/hooks/queries/usePolicyRegistryEvent.ts
+++ b/web/src/hooks/queries/usePolicyRegistryEvent.ts
@@ -1,16 +1,22 @@
import useSWRImmutable from "swr/immutable";
-import { PolicyRegistry } from "@kleros/kleros-v2-contracts/typechain-types/src/arbitration/PolicyRegistry";
-import { useConnectedContract } from "hooks/useConnectedContract";
+import { BigNumber } from "ethers";
+import { useProvider } from "wagmi";
+import { usePolicyRegistry } from "hooks/contracts/generated";
export const usePolicyRegistryEvent = (courtID?: string | number) => {
- const policyRegistry = useConnectedContract(
- "PolicyRegistry"
- ) as PolicyRegistry;
+ const provider = useProvider();
+ const policyRegistry = usePolicyRegistry({
+ signerOrProvider: provider,
+ });
return useSWRImmutable(
() => (policyRegistry && courtID ? `PolicyRegistry${courtID}` : false),
async () => {
if (policyRegistry) {
- const policyFilter = policyRegistry.filters.PolicyUpdate(courtID);
+ const policyFilter = policyRegistry.filters.PolicyUpdate(
+ BigNumber.from(courtID),
+ null,
+ null
+ );
return policyRegistry
.queryFilter(policyFilter)
.then((events) => events[0]);
diff --git a/web/src/hooks/useConnectedContract.ts b/web/src/hooks/useConnectedContract.ts
deleted file mode 100644
index 281b0670c..000000000
--- a/web/src/hooks/useConnectedContract.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-import { JsonRpcProvider } from "@ethersproject/providers";
-import { useSigner } from "wagmi";
-import { getContract, ContractName } from "utils/getContract";
-import { QUERY_CHAINS } from "consts/chains";
-
-export type { ContractName };
-
-export const useConnectedContract = (
- contractName: ContractName,
- contractAddress?: string,
- chain?: number
-) => {
- const contract = getContract(contractName, contractAddress);
- const { data: signer } = useSigner();
- if (signer && !chain) {
- const connectedContract = contract?.connect(signer);
- return connectedContract;
- } else {
- try {
- const rpcUrl = chain
- ? QUERY_CHAINS[chain].rpcUrls[0]
- : "https://arb-goerli.g.alchemy.com/v2/HAAmSjN1RzxG1LNsGh9Je72bYVPsyFfQ";
- const provider = new JsonRpcProvider(rpcUrl);
- const connectedContract = contract?.connect(provider);
- return connectedContract;
- } catch (error) {
- console.error("No Web3 provider detected.");
- return undefined;
- }
- }
-};
diff --git a/web/src/hooks/useEventQuery.ts b/web/src/hooks/useEventQuery.ts
deleted file mode 100644
index c6e7ae7cd..000000000
--- a/web/src/hooks/useEventQuery.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import useSWR from "swr";
-import { useConnectedContract } from "hooks/useConnectedContract";
-
-export const useEventQuery = (contractName, eventName, ...filterArgs) => {
- const contract = useConnectedContract(contractName);
- return useSWR(`${contractName + eventName + filterArgs.toString()}`, () => {
- if (contract) {
- const filter = contract.filters[eventName](...filterArgs);
- return contract.queryFilter(filter);
- } else throw Error;
- });
-};
diff --git a/web/src/utils/getContract.ts b/web/src/utils/getContract.ts
deleted file mode 100644
index ea1f50a47..000000000
--- a/web/src/utils/getContract.ts
+++ /dev/null
@@ -1,27 +0,0 @@
-import { utils } from "ethers";
-import { Contract } from "@ethersproject/contracts";
-import KlerosCore from "@kleros/kleros-v2-contracts/deployments/arbitrumGoerli/KlerosCore.json";
-import PNK from "@kleros/kleros-v2-contracts/deployments/arbitrumGoerli/PNK.json";
-import PolicyRegistry from "@kleros/kleros-v2-contracts/deployments/arbitrumGoerli/PolicyRegistry.json";
-import DisputeKitClassic from "@kleros/kleros-v2-contracts/deployments/arbitrumGoerli/DisputeKitClassic.json";
-import IArbitrable from "@kleros/kleros-v2-contracts/artifacts/src/arbitration/IArbitrable.sol/IArbitrable.json";
-import IMetaEvidence from "@kleros/kleros-v2-contracts/artifacts/src/evidence/IMetaEvidence.sol/IMetaEvidence.json";
-
-export const CONTRACTS = {
- KlerosCore: KlerosCore,
- PNK: PNK,
- PolicyRegistry: PolicyRegistry,
- DisputeKitClassic: DisputeKitClassic,
- IArbitrable: IArbitrable,
- IMetaEvidence: IMetaEvidence,
-};
-
-export type ContractName = keyof typeof CONTRACTS;
-
-export const getContract = (contractName: ContractName, address?: string) => {
- const contract = CONTRACTS[contractName];
- const contractInterface = new utils.Interface(contract["abi"]);
- const _address =
- typeof address !== "undefined" ? address : contract["address"];
- return _address ? new Contract(_address, contractInterface) : undefined;
-};
diff --git a/web/wagmi.config.ts b/web/wagmi.config.ts
index 846bd1f9b..155601896 100644
--- a/web/wagmi.config.ts
+++ b/web/wagmi.config.ts
@@ -4,6 +4,8 @@ import { arbitrumGoerli } from "wagmi/chains";
import KlerosCore from "@kleros/kleros-v2-contracts/deployments/arbitrumGoerli/KlerosCore.json" assert { type: "json" };
import PNK from "@kleros/kleros-v2-contracts/deployments/arbitrumGoerli/PNK.json" assert { type: "json" };
import DisputeKitClassic from "@kleros/kleros-v2-contracts/deployments/arbitrumGoerli/DisputeKitClassic.json" assert { type: "json" };
+import PolicyRegistry from "@kleros/kleros-v2-contracts/deployments/arbitrumGoerli/PolicyRegistry.json" assert { type: "json" };
+import IMetaevidence from "@kleros/kleros-v2-contracts/artifacts/src/evidence/IMetaEvidence.sol/IMetaEvidence.json" assert { type: "json" };
export default defineConfig({
out: "src/hooks/contracts/generated.ts",
@@ -29,6 +31,17 @@ export default defineConfig({
},
abi: PNK.abi,
},
+ {
+ name: "PolicyRegistry",
+ address: {
+ [arbitrumGoerli.id]: PolicyRegistry.address,
+ },
+ abi: PolicyRegistry.abi,
+ },
+ {
+ name: "IMetaEvidence",
+ abi: IMetaevidence.abi,
+ },
],
plugins: [react()],
});
From 7d544185c1deeabf7f14dce66da489847d53c468 Mon Sep 17 00:00:00 2001
From: alcercu <333aleix333@gmail.com>
Date: Fri, 2 Jun 2023 16:02:19 +0200
Subject: [PATCH 04/41] fix(web): add wagmi cli
---
package.json | 1 +
web/package.json | 4 +-
yarn.lock | 1255 +++++++++++++++++++++++++++++++++++++---------
3 files changed, 1021 insertions(+), 239 deletions(-)
diff --git a/package.json b/package.json
index bc8b5dd41..66554306b 100644
--- a/package.json
+++ b/package.json
@@ -33,6 +33,7 @@
"devDependencies": {
"@commitlint/cli": "^17.6.0",
"@commitlint/config-conventional": "^17.6.0",
+ "buffer": "^5.5.0",
"conventional-changelog-cli": "^2.2.2",
"eslint": "^8.38.0",
"eslint-config-prettier": "^8.8.0",
diff --git a/web/package.json b/web/package.json
index 4d67b3078..6ffb66c7d 100644
--- a/web/package.json
+++ b/web/package.json
@@ -43,6 +43,7 @@
"@typescript-eslint/eslint-plugin": "^5.58.0",
"@typescript-eslint/parser": "^5.58.0",
"@typescript-eslint/utils": "^5.58.0",
+ "@wagmi/cli": "0.1.15",
"eslint": "^8.38.0",
"eslint-config-prettier": "^8.8.0",
"eslint-import-resolver-parcel": "^1.10.6",
@@ -93,7 +94,8 @@
"react-use": "^17.4.0",
"styled-components": "^5.3.9",
"swr": "^1.3.0",
- "wagmi": "^0.12.6"
+ "viem": "^0.3.48",
+ "wagmi": "0.12.6"
},
"volta": {
"node": "16.18.1",
diff --git a/yarn.lock b/yarn.lock
index ef32e4809..f3a3aa2b3 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -5,6 +5,13 @@ __metadata:
version: 6
cacheKey: 8
+"@adraffy/ens-normalize@npm:1.9.0":
+ version: 1.9.0
+ resolution: "@adraffy/ens-normalize@npm:1.9.0"
+ checksum: a8d47f85db7a0bba01227fae8781a3245a4517875503d6848a47ca29e7f7da271742a2f93b55afc1b9201e74eda1fd1f1e6e79e70f967359fd7f6ec3d45bf243
+ languageName: node
+ linkType: hard
+
"@ampproject/remapping@npm:^2.1.0":
version: 2.2.0
resolution: "@ampproject/remapping@npm:2.2.0"
@@ -281,15 +288,6 @@ __metadata:
languageName: node
linkType: hard
-"@babel/helper-module-imports@npm:^7.21.4":
- version: 7.21.4
- resolution: "@babel/helper-module-imports@npm:7.21.4"
- dependencies:
- "@babel/types": ^7.21.4
- checksum: bd330a2edaafeb281fbcd9357652f8d2666502567c0aad71db926e8499c773c9ea9c10dfaae30122452940326d90c8caff5c649ed8e1bf15b23f858758d3abc6
- languageName: node
- linkType: hard
-
"@babel/helper-module-transforms@npm:^7.18.6, @babel/helper-module-transforms@npm:^7.20.11":
version: 7.20.11
resolution: "@babel/helper-module-transforms@npm:7.20.11"
@@ -1323,22 +1321,6 @@ __metadata:
languageName: node
linkType: hard
-"@babel/plugin-transform-runtime@npm:^7.5.5":
- version: 7.21.4
- resolution: "@babel/plugin-transform-runtime@npm:7.21.4"
- dependencies:
- "@babel/helper-module-imports": ^7.21.4
- "@babel/helper-plugin-utils": ^7.20.2
- babel-plugin-polyfill-corejs2: ^0.3.3
- babel-plugin-polyfill-corejs3: ^0.6.0
- babel-plugin-polyfill-regenerator: ^0.4.1
- semver: ^6.3.0
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 7e2e6b0d6f9762fde58738829e4d3b5e13dc88ccc1463e4eee83c8d8f50238eeb8e3699923f5ad4d7edf597515f74d67fbb14eb330225075fc7733b547e22145
- languageName: node
- linkType: hard
-
"@babel/plugin-transform-shorthand-properties@npm:^7.0.0, @babel/plugin-transform-shorthand-properties@npm:^7.18.6":
version: 7.18.6
resolution: "@babel/plugin-transform-shorthand-properties@npm:7.18.6"
@@ -1585,7 +1567,7 @@ __metadata:
languageName: node
linkType: hard
-"@babel/runtime@npm:^7.17.2, @babel/runtime@npm:^7.5.5":
+"@babel/runtime@npm:^7.17.2":
version: 7.21.0
resolution: "@babel/runtime@npm:7.21.0"
dependencies:
@@ -1652,17 +1634,6 @@ __metadata:
languageName: node
linkType: hard
-"@babel/types@npm:^7.21.4":
- version: 7.21.4
- resolution: "@babel/types@npm:7.21.4"
- dependencies:
- "@babel/helper-string-parser": ^7.19.4
- "@babel/helper-validator-identifier": ^7.19.1
- to-fast-properties: ^2.0.0
- checksum: 587bc55a91ce003b0f8aa10d70070f8006560d7dc0360dc0406d306a2cb2a10154e2f9080b9c37abec76907a90b330a536406cb75e6bdc905484f37b75c73219
- languageName: node
- linkType: hard
-
"@bcoe/v8-coverage@npm:^0.2.3":
version: 0.2.3
resolution: "@bcoe/v8-coverage@npm:0.2.3"
@@ -1717,8 +1688,8 @@ __metadata:
linkType: hard
"@coinbase/wallet-sdk@npm:^3.5.4":
- version: 3.7.0
- resolution: "@coinbase/wallet-sdk@npm:3.7.0"
+ version: 3.7.1
+ resolution: "@coinbase/wallet-sdk@npm:3.7.1"
dependencies:
"@metamask/safe-event-emitter": 2.0.0
"@solana/web3.js": ^1.70.1
@@ -1726,7 +1697,7 @@ __metadata:
bn.js: ^5.1.1
buffer: ^6.0.3
clsx: ^1.1.0
- eth-block-tracker: 4.4.3
+ eth-block-tracker: 6.1.0
eth-json-rpc-filters: 5.1.0
eth-rpc-errors: 4.0.2
json-rpc-engine: 6.1.0
@@ -1737,7 +1708,7 @@ __metadata:
sha.js: ^2.4.11
stream-browserify: ^3.0.0
util: ^0.12.4
- checksum: ee740571888d892fa1baa9151d78c2516bd44bdc61bb1f42b55aa5bf06158d9677c883c196d5410b0b5c46945d31f6a061d2f1ce20912e6b67c3938527caa0ca
+ checksum: e88c656d08c06d42dcd03006c62162705a7c7dc27171ee721910f76c15c995f0482a314057a582af6e9548e6f49e4a1aff22f33685a33535c9b2550a615efbaf
languageName: node
linkType: hard
@@ -2205,6 +2176,20 @@ __metadata:
languageName: node
linkType: hard
+"@esbuild/android-arm@npm:0.15.13":
+ version: 0.15.13
+ resolution: "@esbuild/android-arm@npm:0.15.13"
+ conditions: os=android & cpu=arm
+ languageName: node
+ linkType: hard
+
+"@esbuild/linux-loong64@npm:0.15.13":
+ version: 0.15.13
+ resolution: "@esbuild/linux-loong64@npm:0.15.13"
+ conditions: os=linux & cpu=loong64
+ languageName: node
+ linkType: hard
+
"@eslint-community/eslint-utils@npm:^4.2.0":
version: 4.4.0
resolution: "@eslint-community/eslint-utils@npm:4.4.0"
@@ -3875,6 +3860,7 @@ __metadata:
"@typescript-eslint/eslint-plugin": ^5.58.0
"@typescript-eslint/parser": ^5.58.0
"@typescript-eslint/utils": ^5.58.0
+ "@wagmi/cli": 0.1.15
"@web3-react/core": ^6.1.9
"@web3-react/injected-connector": ^6.0.7
"@web3-react/types": ^6.0.7
@@ -3915,7 +3901,8 @@ __metadata:
styled-components: ^5.3.9
swr: ^1.3.0
typescript: ^4.9.5
- wagmi: ^0.12.6
+ viem: ^0.3.48
+ wagmi: 0.12.6
languageName: unknown
linkType: soft
@@ -4058,6 +4045,18 @@ __metadata:
languageName: node
linkType: hard
+"@metamask/utils@npm:^3.0.1":
+ version: 3.6.0
+ resolution: "@metamask/utils@npm:3.6.0"
+ dependencies:
+ "@types/debug": ^4.1.7
+ debug: ^4.3.4
+ semver: ^7.3.8
+ superstruct: ^1.0.3
+ checksum: 1ebc6677bb017e4d09d4af143621fe27194d8ed815234cfd76469c3c734dc1db2ea7b577c01a2096c21c04d8c9c4d721d3035b5353fe2ded3b4737f326755e43
+ languageName: node
+ linkType: hard
+
"@mischnic/json-sourcemap@npm:^0.1.0":
version: 0.1.0
resolution: "@mischnic/json-sourcemap@npm:0.1.0"
@@ -4095,6 +4094,20 @@ __metadata:
languageName: node
linkType: hard
+"@motionone/dom@npm:^10.16.2":
+ version: 10.16.2
+ resolution: "@motionone/dom@npm:10.16.2"
+ dependencies:
+ "@motionone/animation": ^10.15.1
+ "@motionone/generators": ^10.15.1
+ "@motionone/types": ^10.15.1
+ "@motionone/utils": ^10.15.1
+ hey-listen: ^1.0.8
+ tslib: ^2.3.1
+ checksum: c75a7de62cd8af575634644bbc2c5abe606ff9000550e7b8d5a62ea691a0784bf18f57035bd1fad4b0148dbdc6db033f2565b6c8f80b87b40fbb232db8fe93aa
+ languageName: node
+ linkType: hard
+
"@motionone/easing@npm:^10.15.1":
version: 10.15.1
resolution: "@motionone/easing@npm:10.15.1"
@@ -4126,6 +4139,16 @@ __metadata:
languageName: node
linkType: hard
+"@motionone/svelte@npm:^10.16.2":
+ version: 10.16.2
+ resolution: "@motionone/svelte@npm:10.16.2"
+ dependencies:
+ "@motionone/dom": ^10.16.2
+ tslib: ^2.3.1
+ checksum: 066570d991444f9b8e70189b488d563260cf7aadc2e4718e60b66e2871ad0d798e4a39282035c7f0d35a6b2118c36ee222446a8ae0919265860f0d808fcd2837
+ languageName: node
+ linkType: hard
+
"@motionone/types@npm:^10.15.1":
version: 10.15.1
resolution: "@motionone/types@npm:10.15.1"
@@ -4154,6 +4177,16 @@ __metadata:
languageName: node
linkType: hard
+"@motionone/vue@npm:^10.16.2":
+ version: 10.16.2
+ resolution: "@motionone/vue@npm:10.16.2"
+ dependencies:
+ "@motionone/dom": ^10.16.2
+ tslib: ^2.3.1
+ checksum: 37732f679bdf84debb36493e12fe2604ca3d1812ce8271e39dbe28bb4e59d71841d6821a5f5dd07ded918e260f8567842b835ea597572a38007e8a11106d1f0f
+ languageName: node
+ linkType: hard
+
"@msgpackr-extract/msgpackr-extract-darwin-arm64@npm:2.2.0":
version: 2.2.0
resolution: "@msgpackr-extract/msgpackr-extract-darwin-arm64@npm:2.2.0"
@@ -4214,6 +4247,15 @@ __metadata:
languageName: node
linkType: hard
+"@noble/curves@npm:1.0.0, @noble/curves@npm:~1.0.0":
+ version: 1.0.0
+ resolution: "@noble/curves@npm:1.0.0"
+ dependencies:
+ "@noble/hashes": 1.3.0
+ checksum: 6bcef44d626c640dc8961819d68dd67dffb907e3b973b7c27efe0ecdd9a5c6ce62c7b9e3dfc930c66605dced7f1ec0514d191c09a2ce98d6d52b66e3315ffa79
+ languageName: node
+ linkType: hard
+
"@noble/ed25519@npm:^1.7.0":
version: 1.7.3
resolution: "@noble/ed25519@npm:1.7.3"
@@ -4228,7 +4270,7 @@ __metadata:
languageName: node
linkType: hard
-"@noble/hashes@npm:^1.1.2":
+"@noble/hashes@npm:1.3.0, @noble/hashes@npm:^1.1.2, @noble/hashes@npm:~1.3.0":
version: 1.3.0
resolution: "@noble/hashes@npm:1.3.0"
checksum: d7ddb6d7c60f1ce1f87facbbef5b724cdea536fc9e7f59ae96e0fc9de96c8f1a2ae2bdedbce10f7dcc621338dfef8533daa73c873f2b5c87fa1a4e05a95c2e2e
@@ -4249,7 +4291,7 @@ __metadata:
languageName: node
linkType: hard
-"@noble/secp256k1@npm:^1.6.3":
+"@noble/secp256k1@npm:^1.6.3, @noble/secp256k1@npm:^1.7.1":
version: 1.7.1
resolution: "@noble/secp256k1@npm:1.7.1"
checksum: d2301f1f7690368d8409a3152450458f27e54df47e3f917292de3de82c298770890c2de7c967d237eff9c95b70af485389a9695f73eb05a43e2bd562d18b18cb
@@ -5968,6 +6010,17 @@ __metadata:
languageName: node
linkType: hard
+"@scure/bip32@npm:1.3.0":
+ version: 1.3.0
+ resolution: "@scure/bip32@npm:1.3.0"
+ dependencies:
+ "@noble/curves": ~1.0.0
+ "@noble/hashes": ~1.3.0
+ "@scure/base": ~1.1.0
+ checksum: 6eae997f9bdf41fe848134898960ac48e645fa10e63d579be965ca331afd0b7c1b8ebac170770d237ab4099dafc35e5a82995384510025ccf2abe669f85e8918
+ languageName: node
+ linkType: hard
+
"@scure/bip39@npm:1.1.0":
version: 1.1.0
resolution: "@scure/bip39@npm:1.1.0"
@@ -5978,6 +6031,16 @@ __metadata:
languageName: node
linkType: hard
+"@scure/bip39@npm:1.2.0":
+ version: 1.2.0
+ resolution: "@scure/bip39@npm:1.2.0"
+ dependencies:
+ "@noble/hashes": ~1.3.0
+ "@scure/base": ~1.1.0
+ checksum: 980d761f53e63de04a9e4db840eb13bfb1bd1b664ecb04a71824c12c190f4972fd84146f3ed89b2a8e4c6bd2c17c15f8b592b7ac029e903323b0f9e2dae6916b
+ languageName: node
+ linkType: hard
+
"@sentry-internal/tracing@npm:7.47.0":
version: 7.47.0
resolution: "@sentry-internal/tracing@npm:7.47.0"
@@ -6712,47 +6775,47 @@ __metadata:
languageName: node
linkType: hard
-"@tanstack/query-core@npm:4.29.1":
- version: 4.29.1
- resolution: "@tanstack/query-core@npm:4.29.1"
- checksum: e7a5a73e5e743411e39348bee3ded4b6c5dd3a70009e72e067e257d5f3d612bfe8df0998cddff6ad7a078e0bcf7a3c92ded669758ca697055472ce910e23a368
+"@tanstack/query-core@npm:4.29.11":
+ version: 4.29.11
+ resolution: "@tanstack/query-core@npm:4.29.11"
+ checksum: 2a17223f34e99e17d564a15206668eb79324da72e630a47cf41690f92fb091a8669bdc89e9ab1b0d8f0e3e8f579529cfb0aa6f10b4fc58ea81cc7e5caede9229
languageName: node
linkType: hard
-"@tanstack/query-persist-client-core@npm:4.29.1":
- version: 4.29.1
- resolution: "@tanstack/query-persist-client-core@npm:4.29.1"
+"@tanstack/query-persist-client-core@npm:4.29.11":
+ version: 4.29.11
+ resolution: "@tanstack/query-persist-client-core@npm:4.29.11"
dependencies:
- "@tanstack/query-core": 4.29.1
- checksum: 708a7e39d35069e1fd1a886c6f37fad3809a11590142ce1d58d6fdba243a3646b557f38afc3c2154286d2dbd0242eabea5e5e022f67afe7ceb2d8ae27043bfef
+ "@tanstack/query-core": 4.29.11
+ checksum: b1ea4d56aa211c173f6cee172d09aed573fa16bb15594c120efb6acacc1985c22dddbfbabff87406aa5de2fb5805e872276681e06821f0b1545ea33cf43c4e52
languageName: node
linkType: hard
-"@tanstack/query-sync-storage-persister@npm:^4.27.1":
- version: 4.29.1
- resolution: "@tanstack/query-sync-storage-persister@npm:4.29.1"
+"@tanstack/query-sync-storage-persister@npm:^4.14.5":
+ version: 4.29.11
+ resolution: "@tanstack/query-sync-storage-persister@npm:4.29.11"
dependencies:
- "@tanstack/query-persist-client-core": 4.29.1
- checksum: 2415e55a6fb956b48f3c033c50d126545767e137c10c56366f693f9979696f2c5ac95a5900e28193e76d9c8149b855b2b0d431cbe238565e3805215216dd7479
+ "@tanstack/query-persist-client-core": 4.29.11
+ checksum: 532a001ce19c134bfc11c13b4427b9c86bcfc12609c611a8f8e3d852c031849d96d704f9d541f9c6b9bf4cff808d346801caedf53cc551caa699ab1ef3681850
languageName: node
linkType: hard
-"@tanstack/react-query-persist-client@npm:^4.28.0":
- version: 4.29.1
- resolution: "@tanstack/react-query-persist-client@npm:4.29.1"
+"@tanstack/react-query-persist-client@npm:^4.14.5":
+ version: 4.29.12
+ resolution: "@tanstack/react-query-persist-client@npm:4.29.12"
dependencies:
- "@tanstack/query-persist-client-core": 4.29.1
+ "@tanstack/query-persist-client-core": 4.29.11
peerDependencies:
- "@tanstack/react-query": 4.29.1
- checksum: a024f5314e23abb8f310f61988f004a5d5ceaed8cc1f5ffbae0a3e438492cd97796b78ff97b50f485576ad4dfc259e94c0fa21e6a37069538662dd5ed119d439
+ "@tanstack/react-query": 4.29.12
+ checksum: 3d7cf57ce29d6e599dd7a942da0298e8ef9b7c3a363361c6bedc26566556f26c9aa9e644f26b8fec7f3a66bab143f61ffc11170d192a4c2d4c1bedd2fbc5279f
languageName: node
linkType: hard
-"@tanstack/react-query@npm:^4.28.0":
- version: 4.29.1
- resolution: "@tanstack/react-query@npm:4.29.1"
+"@tanstack/react-query@npm:^4.14.5":
+ version: 4.29.12
+ resolution: "@tanstack/react-query@npm:4.29.12"
dependencies:
- "@tanstack/query-core": 4.29.1
+ "@tanstack/query-core": 4.29.11
use-sync-external-store: ^1.2.0
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
@@ -6763,7 +6826,7 @@ __metadata:
optional: true
react-native:
optional: true
- checksum: 39417ffd3a6298b376f1d739dc2fe4c042c416902c216f61dff9b26dc80d68872770c90ac276db581c1094368f0b9038a34fab8b7df89b018f3960c938d73a57
+ checksum: aea231af648688c5eafdbbda0667034221cca8b77e00690ab54950b7cc0296d14646931aee44fc5f18d5ce4d683b5d234b053eed5c0a5c340bbbacdab873a70b
languageName: node
linkType: hard
@@ -7001,6 +7064,15 @@ __metadata:
languageName: node
linkType: hard
+"@types/debug@npm:^4.1.7":
+ version: 4.1.8
+ resolution: "@types/debug@npm:4.1.8"
+ dependencies:
+ "@types/ms": "*"
+ checksum: a9a9bb40a199e9724aa944e139a7659173a9b274798ea7efbc277cb084bc37d32fc4c00877c3496fac4fed70a23243d284adb75c00b5fdabb38a22154d18e5df
+ languageName: node
+ linkType: hard
+
"@types/eslint-scope@npm:^3.7.3":
version: 3.7.4
resolution: "@types/eslint-scope@npm:3.7.4"
@@ -7929,6 +8001,18 @@ __metadata:
languageName: node
linkType: hard
+"@wagmi/chains@npm:0.2.14":
+ version: 0.2.14
+ resolution: "@wagmi/chains@npm:0.2.14"
+ peerDependencies:
+ typescript: ">=4.9.4"
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ checksum: c2fbb6b886bec5715354dcca536579f9e416b8330ab2bae615148f9780d4da0b8e4ff12e1faee2e9a5f06c5c7803318c21e6f09667124e766071e871f1b86bd2
+ languageName: node
+ linkType: hard
+
"@wagmi/chains@npm:0.2.17":
version: 0.2.17
resolution: "@wagmi/chains@npm:0.2.17"
@@ -7941,17 +8025,85 @@ __metadata:
languageName: node
linkType: hard
-"@wagmi/connectors@npm:0.3.12":
- version: 0.3.12
- resolution: "@wagmi/connectors@npm:0.3.12"
+"@wagmi/chains@npm:1.0.0":
+ version: 1.0.0
+ resolution: "@wagmi/chains@npm:1.0.0"
+ peerDependencies:
+ typescript: ">=5.0.4"
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ checksum: b2e6b84946a276804948819b378ecf55b0cd3be762721f9b2cc5e82359d2053ab3b7b7edb6e32453c8fd001b4107a61a792c481f83f9edf04483666dfe910747
+ languageName: node
+ linkType: hard
+
+"@wagmi/chains@npm:~0.2.11":
+ version: 0.2.25
+ resolution: "@wagmi/chains@npm:0.2.25"
+ peerDependencies:
+ typescript: ">=4.9.4"
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ checksum: 342870d13b974359de016a7a7e5231cd4cc0dac29020eb3fc4e5947b0460f4d0f3387ff0e7bac7dd0abfea539580d7ea39297705cad83dede3ace040fdc3e230
+ languageName: node
+ linkType: hard
+
+"@wagmi/cli@npm:0.1.15":
+ version: 0.1.15
+ resolution: "@wagmi/cli@npm:0.1.15"
+ dependencies:
+ "@wagmi/chains": 0.2.17
+ abitype: ^0.3.0
+ abort-controller: ^3.0.0
+ bundle-require: ^3.1.2
+ cac: ^6.7.12
+ change-case: ^4.1.2
+ chokidar: ^3.5.3
+ dedent: ^0.7.0
+ detect-package-manager: ^2.0.1
+ dotenv: ^16.0.3
+ dotenv-expand: ^10.0.0
+ esbuild: 0.15.13
+ execa: ^6.1.0
+ find-up: ^6.3.0
+ fs-extra: ^10.1.0
+ globby: ^13.1.3
+ node-fetch: ^3.3.0
+ ora: ^6.1.2
+ pathe: ^1.0.0
+ picocolors: ^1.0.0
+ prettier: ^2.8.1
+ viem: ^0.1.14
+ zod: ^3.20.2
+ peerDependencies:
+ "@wagmi/core": ">=0.9"
+ typescript: ">=4.9.4"
+ wagmi: ">=0.11"
+ peerDependenciesMeta:
+ "@wagmi/core":
+ optional: true
+ typescript:
+ optional: true
+ wagmi:
+ optional: true
+ bin:
+ wagmi: dist/cli.js
+ checksum: 319b671c3a9e19ba3e28bdf1a64859bcf8dc7ddd77a499db3dbd47d410deb1fae80a95dbc79f574d4a33783f6f9bb05744a1fe15fea7c536f5624e5f40591ea2
+ languageName: node
+ linkType: hard
+
+"@wagmi/connectors@npm:0.3.8":
+ version: 0.3.8
+ resolution: "@wagmi/connectors@npm:0.3.8"
dependencies:
"@coinbase/wallet-sdk": ^3.5.4
"@ledgerhq/connect-kit-loader": ^1.0.1
"@safe-global/safe-apps-provider": ^0.15.2
"@safe-global/safe-apps-sdk": ^7.9.0
- "@walletconnect/ethereum-provider": 2.6.2
+ "@walletconnect/ethereum-provider": ^2.5.1
"@walletconnect/legacy-provider": ^2.0.0
- "@web3modal/standalone": ^2.2.2
+ "@web3modal/standalone": ^2.2.1
abitype: ^0.3.0
eventemitter3: ^4.0.7
peerDependencies:
@@ -7963,16 +8115,16 @@ __metadata:
optional: true
typescript:
optional: true
- checksum: d55817c7d8ab49c2758b4cb4470951acdf12f5fbdf818c83c8db84a3aef99fd1c1ddf85e9e405028e4aa180c9650cb1a9a37ae8c8c1ee65ce90f3531eed47b40
+ checksum: dcb5bbbbed55b66ac736c679905b9bce6bfff3300efe1bdc1571c39e8d154f7c1393d75df3cd0f426a6d35363ec1ccbe71932fe05dada2e222c1d3a744524f77
languageName: node
linkType: hard
-"@wagmi/core@npm:0.10.9":
- version: 0.10.9
- resolution: "@wagmi/core@npm:0.10.9"
+"@wagmi/core@npm:0.10.6":
+ version: 0.10.6
+ resolution: "@wagmi/core@npm:0.10.6"
dependencies:
- "@wagmi/chains": 0.2.17
- "@wagmi/connectors": 0.3.12
+ "@wagmi/chains": 0.2.14
+ "@wagmi/connectors": 0.3.8
abitype: ^0.3.0
eventemitter3: ^4.0.7
zustand: ^4.3.1
@@ -7982,17 +8134,18 @@ __metadata:
peerDependenciesMeta:
typescript:
optional: true
- checksum: 8ead6dae7e11156036ede1b4b873c0713ac8db5188575703f9535e0d645ffbdaa836ce9a20b42df6dc5ce85c481ff7cf7866511d29d66fa15749898aa99c2583
+ checksum: 9b52a213b29c75916539232ae41b09e438ba41f1f948a4d69b25193bc16d0114a5005f38b8a0d777e0ecc8a6e6e69689c3ae46a22b42f377fedf581076aa6a9f
languageName: node
linkType: hard
-"@walletconnect/core@npm:2.6.2":
- version: 2.6.2
- resolution: "@walletconnect/core@npm:2.6.2"
+"@walletconnect/core@npm:2.7.7":
+ version: 2.7.7
+ resolution: "@walletconnect/core@npm:2.7.7"
dependencies:
- "@walletconnect/heartbeat": 1.2.0
- "@walletconnect/jsonrpc-provider": ^1.0.12
- "@walletconnect/jsonrpc-utils": ^1.0.7
+ "@walletconnect/heartbeat": 1.2.1
+ "@walletconnect/jsonrpc-provider": 1.0.13
+ "@walletconnect/jsonrpc-types": 1.0.3
+ "@walletconnect/jsonrpc-utils": 1.0.8
"@walletconnect/jsonrpc-ws-connection": ^1.0.11
"@walletconnect/keyvaluestorage": ^1.0.2
"@walletconnect/logger": ^2.0.1
@@ -8000,13 +8153,12 @@ __metadata:
"@walletconnect/relay-auth": ^1.0.4
"@walletconnect/safe-json": ^1.0.2
"@walletconnect/time": ^1.0.2
- "@walletconnect/types": 2.6.2
- "@walletconnect/utils": 2.6.2
+ "@walletconnect/types": 2.7.7
+ "@walletconnect/utils": 2.7.7
events: ^3.3.0
lodash.isequal: 4.5.0
- pino: 7.11.0
uint8arrays: ^3.1.0
- checksum: bb57ec38f31501d94db9d2e6b2609332bada22e5d595e3863639b737b18f618b6cedff56bd85763416d94732b2ff1c99c65b2b2311197cdd551aae1601e4f647
+ checksum: 351f93eb8eb171371b3180f63f3fcf2fe75e9db17f3287049da290f0cab6eff5270d221ee8682ba446d918c1362efa9cab26e51dc510981660ea0e4cf4517eaa
languageName: node
linkType: hard
@@ -8044,25 +8196,25 @@ __metadata:
languageName: node
linkType: hard
-"@walletconnect/ethereum-provider@npm:2.6.2":
- version: 2.6.2
- resolution: "@walletconnect/ethereum-provider@npm:2.6.2"
+"@walletconnect/ethereum-provider@npm:^2.5.1":
+ version: 2.7.7
+ resolution: "@walletconnect/ethereum-provider@npm:2.7.7"
dependencies:
- "@walletconnect/jsonrpc-http-connection": ^1.0.4
- "@walletconnect/jsonrpc-provider": ^1.0.11
- "@walletconnect/jsonrpc-types": ^1.0.2
- "@walletconnect/jsonrpc-utils": ^1.0.7
- "@walletconnect/sign-client": 2.6.2
- "@walletconnect/types": 2.6.2
- "@walletconnect/universal-provider": 2.6.2
- "@walletconnect/utils": 2.6.2
+ "@walletconnect/jsonrpc-http-connection": ^1.0.7
+ "@walletconnect/jsonrpc-provider": ^1.0.13
+ "@walletconnect/jsonrpc-types": ^1.0.3
+ "@walletconnect/jsonrpc-utils": ^1.0.8
+ "@walletconnect/sign-client": 2.7.7
+ "@walletconnect/types": 2.7.7
+ "@walletconnect/universal-provider": 2.7.7
+ "@walletconnect/utils": 2.7.7
events: ^3.3.0
peerDependencies:
"@web3modal/standalone": ">=2"
peerDependenciesMeta:
"@web3modal/standalone":
optional: true
- checksum: 2165b3ba82f723ddf20abb4d89e62d141747b5304ec9b2f58dae4867f36631c412d9aa6ec5a509397d765ae7ea798c81fc828b29da74f94e39f2bc0f7a38c30d
+ checksum: bd55fdd28ad7dc292a38553e310fb2f27b66f9983ae2eb53875589127ee436de1b88e54b68bd8fd0aad6c4428f0dd43fb2fce1dd3fb20398277783280d85dc0b
languageName: node
linkType: hard
@@ -8076,21 +8228,7 @@ __metadata:
languageName: node
linkType: hard
-"@walletconnect/heartbeat@npm:1.2.0":
- version: 1.2.0
- resolution: "@walletconnect/heartbeat@npm:1.2.0"
- dependencies:
- "@walletconnect/events": ^1.0.1
- "@walletconnect/time": ^1.0.2
- chai: ^4.3.7
- mocha: ^10.2.0
- ts-node: ^10.9.1
- tslib: 1.14.1
- checksum: 27a0efa0a9e3e073ae824dff4480b13ee878e09f949c0c18cb1cc344163ea501b3ef2602901e50062d5e7dba348632405de7f07a83313d2acce203a11a8b1a40
- languageName: node
- linkType: hard
-
-"@walletconnect/heartbeat@npm:^1.2.0":
+"@walletconnect/heartbeat@npm:1.2.1":
version: 1.2.1
resolution: "@walletconnect/heartbeat@npm:1.2.1"
dependencies:
@@ -8113,7 +8251,30 @@ __metadata:
languageName: node
linkType: hard
-"@walletconnect/jsonrpc-provider@npm:^1.0.11, @walletconnect/jsonrpc-provider@npm:^1.0.12, @walletconnect/jsonrpc-provider@npm:^1.0.6":
+"@walletconnect/jsonrpc-http-connection@npm:^1.0.7":
+ version: 1.0.7
+ resolution: "@walletconnect/jsonrpc-http-connection@npm:1.0.7"
+ dependencies:
+ "@walletconnect/jsonrpc-utils": ^1.0.6
+ "@walletconnect/safe-json": ^1.0.1
+ cross-fetch: ^3.1.4
+ tslib: 1.14.1
+ checksum: c4efcd46d4b344727ca6879badca2c2f855499ac76c8dace5d118f4423167adce34e41a99f3dcab0febb945ce51c6ef0ac8556567d5e38d8dad864b131eb5b00
+ languageName: node
+ linkType: hard
+
+"@walletconnect/jsonrpc-provider@npm:1.0.13, @walletconnect/jsonrpc-provider@npm:^1.0.13":
+ version: 1.0.13
+ resolution: "@walletconnect/jsonrpc-provider@npm:1.0.13"
+ dependencies:
+ "@walletconnect/jsonrpc-utils": ^1.0.8
+ "@walletconnect/safe-json": ^1.0.2
+ tslib: 1.14.1
+ checksum: 497dfdd9f988432f171bc98336f3583c679059f0a166f95d6e51c8e1937c17abd9a5fd3aadfcebf6964bae14edd1e05fb0453e370d6e3bbc7ff4919fcad7c478
+ languageName: node
+ linkType: hard
+
+"@walletconnect/jsonrpc-provider@npm:^1.0.6":
version: 1.0.12
resolution: "@walletconnect/jsonrpc-provider@npm:1.0.12"
dependencies:
@@ -8124,6 +8285,16 @@ __metadata:
languageName: node
linkType: hard
+"@walletconnect/jsonrpc-types@npm:1.0.3, @walletconnect/jsonrpc-types@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "@walletconnect/jsonrpc-types@npm:1.0.3"
+ dependencies:
+ keyvaluestorage-interface: ^1.0.0
+ tslib: 1.14.1
+ checksum: 26e6f1d8f4207328d3df465c36d0d67844772863dc8e9e78e6cfec417cfc359300eab049d99ea558982b3f0948f4ca26b75253bdf635ffd82ffe30a5276b790c
+ languageName: node
+ linkType: hard
+
"@walletconnect/jsonrpc-types@npm:^1.0.2":
version: 1.0.2
resolution: "@walletconnect/jsonrpc-types@npm:1.0.2"
@@ -8134,6 +8305,17 @@ __metadata:
languageName: node
linkType: hard
+"@walletconnect/jsonrpc-utils@npm:1.0.8, @walletconnect/jsonrpc-utils@npm:^1.0.8":
+ version: 1.0.8
+ resolution: "@walletconnect/jsonrpc-utils@npm:1.0.8"
+ dependencies:
+ "@walletconnect/environment": ^1.0.1
+ "@walletconnect/jsonrpc-types": ^1.0.3
+ tslib: 1.14.1
+ checksum: f43a85dfce8150c3e3d1f009e8d8241ab8e10b026ea435f0918edf4db6b3a17586ba9d9c54a93cc61e4d3c685611e5bd5954fc377a581af503acd38e6d84c2ef
+ languageName: node
+ linkType: hard
+
"@walletconnect/jsonrpc-utils@npm:^1.0.4, @walletconnect/jsonrpc-utils@npm:^1.0.6, @walletconnect/jsonrpc-utils@npm:^1.0.7":
version: 1.0.7
resolution: "@walletconnect/jsonrpc-utils@npm:1.0.7"
@@ -8301,21 +8483,20 @@ __metadata:
languageName: node
linkType: hard
-"@walletconnect/sign-client@npm:2.6.2":
- version: 2.6.2
- resolution: "@walletconnect/sign-client@npm:2.6.2"
+"@walletconnect/sign-client@npm:2.7.7":
+ version: 2.7.7
+ resolution: "@walletconnect/sign-client@npm:2.7.7"
dependencies:
- "@walletconnect/core": 2.6.2
+ "@walletconnect/core": 2.7.7
"@walletconnect/events": ^1.0.1
- "@walletconnect/heartbeat": ^1.2.0
- "@walletconnect/jsonrpc-utils": ^1.0.7
+ "@walletconnect/heartbeat": 1.2.1
+ "@walletconnect/jsonrpc-utils": 1.0.8
"@walletconnect/logger": ^2.0.1
"@walletconnect/time": ^1.0.2
- "@walletconnect/types": 2.6.2
- "@walletconnect/utils": 2.6.2
+ "@walletconnect/types": 2.7.7
+ "@walletconnect/utils": 2.7.7
events: ^3.3.0
- pino: 7.11.0
- checksum: 09dd8a89dff3fc72e293f506e74d3533c7090acf4b646331d8b12adc2ca4a0df1aa5d024fdb3ffe608ed5ca04e8f5d85d91a9812a416d586294d0445fd648a19
+ checksum: 3fd5883228c66b15252d96535ed534654cb41d99dcadcdb624dc6af1c3f3bfcabe0bcef03a225cea9991481ea2cd54cbfd15184dae0569e6d04fa15a3e8ac191
languageName: node
linkType: hard
@@ -8328,59 +8509,57 @@ __metadata:
languageName: node
linkType: hard
-"@walletconnect/types@npm:2.6.2":
- version: 2.6.2
- resolution: "@walletconnect/types@npm:2.6.2"
+"@walletconnect/types@npm:2.7.7":
+ version: 2.7.7
+ resolution: "@walletconnect/types@npm:2.7.7"
dependencies:
"@walletconnect/events": ^1.0.1
- "@walletconnect/heartbeat": 1.2.0
- "@walletconnect/jsonrpc-types": ^1.0.2
+ "@walletconnect/heartbeat": 1.2.1
+ "@walletconnect/jsonrpc-types": 1.0.3
"@walletconnect/keyvaluestorage": ^1.0.2
"@walletconnect/logger": ^2.0.1
events: ^3.3.0
- checksum: 62be83f74553f0636423325d214ede62dea5196dd7db1a21126ae86337c92deb07154b7377a82f9689a736869701efb60c466d6d54fc868450f8a3e428689db0
+ checksum: 0d182a3781e4bc0806e93a15911ecd7f9eb123d3fff8f481d85eafef3d20f1d608ed79305c7365d556fd463061b0688afb818c5558fd188c2556ec785115408e
languageName: node
linkType: hard
-"@walletconnect/universal-provider@npm:2.6.2":
- version: 2.6.2
- resolution: "@walletconnect/universal-provider@npm:2.6.2"
+"@walletconnect/universal-provider@npm:2.7.7":
+ version: 2.7.7
+ resolution: "@walletconnect/universal-provider@npm:2.7.7"
dependencies:
- "@walletconnect/jsonrpc-http-connection": ^1.0.4
- "@walletconnect/jsonrpc-provider": ^1.0.11
+ "@walletconnect/jsonrpc-http-connection": ^1.0.7
+ "@walletconnect/jsonrpc-provider": 1.0.13
"@walletconnect/jsonrpc-types": ^1.0.2
"@walletconnect/jsonrpc-utils": ^1.0.7
"@walletconnect/logger": ^2.0.1
- "@walletconnect/sign-client": 2.6.2
- "@walletconnect/types": 2.6.2
- "@walletconnect/utils": 2.6.2
+ "@walletconnect/sign-client": 2.7.7
+ "@walletconnect/types": 2.7.7
+ "@walletconnect/utils": 2.7.7
eip1193-provider: 1.0.1
events: ^3.3.0
- pino: 7.11.0
- checksum: a5444600c90aea758b6b0ddd15183d8eb6f0b64ee9c8aac54def18de42b0c9fff88132527fbb8963bd1d21d6e85cc83e9b9bf572696bafc310bf376500542398
+ checksum: d675dfe7fc02f4656ad130048fed48d45fefaed1699e17f12cee8bfaa99eba5c003232a1f3fd0f0e414e048de0b768b042d456a3019edc9d0010c56a073b456a
languageName: node
linkType: hard
-"@walletconnect/utils@npm:2.6.2":
- version: 2.6.2
- resolution: "@walletconnect/utils@npm:2.6.2"
+"@walletconnect/utils@npm:2.7.7":
+ version: 2.7.7
+ resolution: "@walletconnect/utils@npm:2.7.7"
dependencies:
"@stablelib/chacha20poly1305": 1.0.1
"@stablelib/hkdf": 1.0.1
"@stablelib/random": ^1.0.2
"@stablelib/sha256": 1.0.1
"@stablelib/x25519": ^1.0.3
- "@walletconnect/jsonrpc-utils": ^1.0.7
"@walletconnect/relay-api": ^1.0.9
"@walletconnect/safe-json": ^1.0.2
"@walletconnect/time": ^1.0.2
- "@walletconnect/types": 2.6.2
+ "@walletconnect/types": 2.7.7
"@walletconnect/window-getters": ^1.0.1
"@walletconnect/window-metadata": ^1.0.1
detect-browser: 5.3.0
- query-string: 7.1.1
+ query-string: 7.1.3
uint8arrays: ^3.1.0
- checksum: d454e4da2258b27b7bf4220a031a057d08961ae37e89631a26a90d7733fcf1ab2b9814b47f2c28db6fffcd38e7cbf3007c1e653e07f464c7b244f50e5355a266
+ checksum: 72d6a3cc19eaa80abf67ecb303bf02f61be4df6743e712ab0d4ae8daf608813bac58ec19b7a6f475d33a594225fccb0a16a1c01fbfcce55ee18b085c7cc542a2
languageName: node
linkType: hard
@@ -8455,6 +8634,16 @@ __metadata:
languageName: node
linkType: hard
+"@web3modal/core@npm:2.4.2":
+ version: 2.4.2
+ resolution: "@web3modal/core@npm:2.4.2"
+ dependencies:
+ buffer: 6.0.3
+ valtio: 1.10.5
+ checksum: 2d5fca517aa6bb439163b22d79d09959ee6023899822ecafed1864ac7f97cbb0306bfbcedc6a1487fab14b29798d1b245bff5164ebd410a2316255cea2afe478
+ languageName: node
+ linkType: hard
+
"@web3modal/ethereum@npm:^2.2.2":
version: 2.3.0
resolution: "@web3modal/ethereum@npm:2.3.0"
@@ -8479,7 +8668,7 @@ __metadata:
languageName: node
linkType: hard
-"@web3modal/standalone@npm:2.3.0, @web3modal/standalone@npm:^2.2.2":
+"@web3modal/standalone@npm:2.3.0":
version: 2.3.0
resolution: "@web3modal/standalone@npm:2.3.0"
dependencies:
@@ -8489,6 +8678,16 @@ __metadata:
languageName: node
linkType: hard
+"@web3modal/standalone@npm:^2.2.1":
+ version: 2.4.2
+ resolution: "@web3modal/standalone@npm:2.4.2"
+ dependencies:
+ "@web3modal/core": 2.4.2
+ "@web3modal/ui": 2.4.2
+ checksum: b3a7cdfc55e1a4627ce294079bcf9af54b9e9fd23f9962f7ea4eae3f8b4facfa6ecb9c11abeb56ef564746f64518ca4c30224f793a2d2582413c1b424cb0c135
+ languageName: node
+ linkType: hard
+
"@web3modal/ui@npm:2.3.0":
version: 2.3.0
resolution: "@web3modal/ui@npm:2.3.0"
@@ -8501,6 +8700,18 @@ __metadata:
languageName: node
linkType: hard
+"@web3modal/ui@npm:2.4.2":
+ version: 2.4.2
+ resolution: "@web3modal/ui@npm:2.4.2"
+ dependencies:
+ "@web3modal/core": 2.4.2
+ lit: 2.7.4
+ motion: 10.16.2
+ qrcode: 1.5.3
+ checksum: 701a7df6266d4c5ca45718506a1524d59bf59ba189a77b116dce04fe958b7af4a72e0c5f10074a171a46ce540602285ceec97a45e58190616f491ff33f2b3c4c
+ languageName: node
+ linkType: hard
+
"@webassemblyjs/ast@npm:1.11.1":
version: 1.11.1
resolution: "@webassemblyjs/ast@npm:1.11.1"
@@ -8796,6 +9007,19 @@ __metadata:
languageName: node
linkType: hard
+"abitype@npm:0.8.7":
+ version: 0.8.7
+ resolution: "abitype@npm:0.8.7"
+ peerDependencies:
+ typescript: ">=5.0.4"
+ zod: ^3 >=3.19.1
+ peerDependenciesMeta:
+ zod:
+ optional: true
+ checksum: 4351466808969bcc73e5c535c3d96bb687ee2be0bccd48eba024c47e6cc248f0c8bd368f9e42dab35d39923e63b1349ade470f72812de27127968caf1a1426c9
+ languageName: node
+ linkType: hard
+
"abitype@npm:^0.3.0":
version: 0.3.0
resolution: "abitype@npm:0.3.0"
@@ -8809,7 +9033,7 @@ __metadata:
languageName: node
linkType: hard
-"abitype@npm:^0.7.1":
+"abitype@npm:~0.7.1":
version: 0.7.1
resolution: "abitype@npm:0.7.1"
peerDependencies:
@@ -10105,6 +10329,17 @@ __metadata:
languageName: node
linkType: hard
+"bl@npm:^5.0.0":
+ version: 5.1.0
+ resolution: "bl@npm:5.1.0"
+ dependencies:
+ buffer: ^6.0.3
+ inherits: ^2.0.4
+ readable-stream: ^3.4.0
+ checksum: a7a438ee0bc540e80b8eb68cc1ad759a9c87df06874a99411d701d01cc0b36f30cd20050512ac3e77090138890960e07bfee724f3ee6619bb39a569f5cc3b1bc
+ languageName: node
+ linkType: hard
+
"blakejs@npm:^1.1.0":
version: 1.2.1
resolution: "blakejs@npm:1.2.1"
@@ -10420,6 +10655,17 @@ __metadata:
languageName: node
linkType: hard
+"bundle-require@npm:^3.1.2":
+ version: 3.1.2
+ resolution: "bundle-require@npm:3.1.2"
+ dependencies:
+ load-tsconfig: ^0.2.0
+ peerDependencies:
+ esbuild: ">=0.13"
+ checksum: 71f8cb81bcde97825317b0e516b7e479ec70bd2370f55a8f02795c0df6d541e6562c4b9ec0427cc7b5b835103a8dcf306da04e3846fa468146358471490fcf81
+ languageName: node
+ linkType: hard
+
"busboy@npm:^1.6.0":
version: 1.6.0
resolution: "busboy@npm:1.6.0"
@@ -10443,6 +10689,13 @@ __metadata:
languageName: node
linkType: hard
+"cac@npm:^6.7.12":
+ version: 6.7.14
+ resolution: "cac@npm:6.7.14"
+ checksum: 45a2496a9443abbe7f52a49b22fbe51b1905eff46e03fd5e6c98e3f85077be3f8949685a1849b1a9cd2bc3e5567dfebcf64f01ce01847baf918f1b37c839791a
+ languageName: node
+ linkType: hard
+
"cacache@npm:^16.1.0":
version: 16.1.3
resolution: "cacache@npm:16.1.3"
@@ -10689,7 +10942,7 @@ __metadata:
languageName: node
linkType: hard
-"chalk@npm:5.2.0":
+"chalk@npm:5.2.0, chalk@npm:^5.0.0":
version: 5.2.0
resolution: "chalk@npm:5.2.0"
checksum: 03d8060277de6cf2fd567dc25fcf770593eb5bb85f460ce443e49255a30ff1242edd0c90a06a03803b0466ff0687a939b41db1757bec987113e83de89a003caa
@@ -10988,6 +11241,15 @@ __metadata:
languageName: node
linkType: hard
+"cli-cursor@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "cli-cursor@npm:4.0.0"
+ dependencies:
+ restore-cursor: ^4.0.0
+ checksum: ab3f3ea2076e2176a1da29f9d64f72ec3efad51c0960898b56c8a17671365c26e67b735920530eaf7328d61f8bd41c27f46b9cf6e4e10fe2fa44b5e8c0e392cc
+ languageName: node
+ linkType: hard
+
"cli-progress@npm:^3.12.0":
version: 3.12.0
resolution: "cli-progress@npm:3.12.0"
@@ -11013,6 +11275,13 @@ __metadata:
languageName: node
linkType: hard
+"cli-spinners@npm:^2.6.1":
+ version: 2.9.0
+ resolution: "cli-spinners@npm:2.9.0"
+ checksum: a9c56e1f44457d4a9f4f535364e729cb8726198efa9e98990cfd9eda9e220dfa4ba12f92808d1be5e29029cdfead781db82dc8549b97b31c907d55f96aa9b0e2
+ languageName: node
+ linkType: hard
+
"cli-table3@npm:0.6.0":
version: 0.6.0
resolution: "cli-table3@npm:0.6.0"
@@ -12391,7 +12660,7 @@ __metadata:
languageName: node
linkType: hard
-"decode-uri-component@npm:^0.2.0":
+"decode-uri-component@npm:^0.2.0, decode-uri-component@npm:^0.2.2":
version: 0.2.2
resolution: "decode-uri-component@npm:0.2.2"
checksum: 95476a7d28f267292ce745eac3524a9079058bbb35767b76e3ee87d42e34cd0275d2eb19d9d08c3e167f97556e8a2872747f5e65cbebcac8b0c98d83e285f139
@@ -12618,6 +12887,15 @@ __metadata:
languageName: node
linkType: hard
+"detect-package-manager@npm:^2.0.1":
+ version: 2.0.1
+ resolution: "detect-package-manager@npm:2.0.1"
+ dependencies:
+ execa: ^5.1.1
+ checksum: e72b910182d5ad479198d4235be206ac64a479257b32201bb06f3c842cc34c65ea851d46f72cc1d4bf535bcc6c4b44b5b86bb29fe1192b8c9c07b46883672f28
+ languageName: node
+ linkType: hard
+
"detect-port-alt@npm:^1.1.6":
version: 1.1.6
resolution: "detect-port-alt@npm:1.1.6"
@@ -12917,6 +13195,13 @@ __metadata:
languageName: node
linkType: hard
+"dotenv-expand@npm:^10.0.0":
+ version: 10.0.0
+ resolution: "dotenv-expand@npm:10.0.0"
+ checksum: 2a38b470efe0abcb1ac8490421a55e1d764dc9440fd220942bce40965074f3fb00b585f4346020cb0f0f219966ee6b4ee5023458b3e2953fe5b3214de1b314ee
+ languageName: node
+ linkType: hard
+
"dotenv-expand@npm:^5.1.0":
version: 5.1.0
resolution: "dotenv-expand@npm:5.1.0"
@@ -13312,57 +13597,274 @@ __metadata:
languageName: node
linkType: hard
-"es-module-lexer@npm:^0.9.0":
- version: 0.9.3
- resolution: "es-module-lexer@npm:0.9.3"
- checksum: 84bbab23c396281db2c906c766af58b1ae2a1a2599844a504df10b9e8dc77ec800b3211fdaa133ff700f5703d791198807bba25d9667392d27a5e9feda344da8
+"es-module-lexer@npm:^0.9.0":
+ version: 0.9.3
+ resolution: "es-module-lexer@npm:0.9.3"
+ checksum: 84bbab23c396281db2c906c766af58b1ae2a1a2599844a504df10b9e8dc77ec800b3211fdaa133ff700f5703d791198807bba25d9667392d27a5e9feda344da8
+ languageName: node
+ linkType: hard
+
+"es-set-tostringtag@npm:^2.0.1":
+ version: 2.0.1
+ resolution: "es-set-tostringtag@npm:2.0.1"
+ dependencies:
+ get-intrinsic: ^1.1.3
+ has: ^1.0.3
+ has-tostringtag: ^1.0.0
+ checksum: ec416a12948cefb4b2a5932e62093a7cf36ddc3efd58d6c58ca7ae7064475ace556434b869b0bbeb0c365f1032a8ccd577211101234b69837ad83ad204fff884
+ languageName: node
+ linkType: hard
+
+"es-shim-unscopables@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "es-shim-unscopables@npm:1.0.0"
+ dependencies:
+ has: ^1.0.3
+ checksum: 83e95cadbb6ee44d3644dfad60dcad7929edbc42c85e66c3e99aefd68a3a5c5665f2686885cddb47dfeabfd77bd5ea5a7060f2092a955a729bbd8834f0d86fa1
+ languageName: node
+ linkType: hard
+
+"es-to-primitive@npm:^1.2.1":
+ version: 1.2.1
+ resolution: "es-to-primitive@npm:1.2.1"
+ dependencies:
+ is-callable: ^1.1.4
+ is-date-object: ^1.0.1
+ is-symbol: ^1.0.2
+ checksum: 4ead6671a2c1402619bdd77f3503991232ca15e17e46222b0a41a5d81aebc8740a77822f5b3c965008e631153e9ef0580540007744521e72de8e33599fca2eed
+ languageName: node
+ linkType: hard
+
+"es6-promise@npm:^4.0.3":
+ version: 4.2.8
+ resolution: "es6-promise@npm:4.2.8"
+ checksum: 95614a88873611cb9165a85d36afa7268af5c03a378b35ca7bda9508e1d4f1f6f19a788d4bc755b3fd37c8ebba40782018e02034564ff24c9d6fa37e959ad57d
+ languageName: node
+ linkType: hard
+
+"es6-promisify@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "es6-promisify@npm:5.0.0"
+ dependencies:
+ es6-promise: ^4.0.3
+ checksum: fbed9d791598831413be84a5374eca8c24800ec71a16c1c528c43a98e2dadfb99331483d83ae6094ddb9b87e6f799a15d1553cebf756047e0865c753bc346b92
+ languageName: node
+ linkType: hard
+
+"esbuild-android-64@npm:0.15.13":
+ version: 0.15.13
+ resolution: "esbuild-android-64@npm:0.15.13"
+ conditions: os=android & cpu=x64
+ languageName: node
+ linkType: hard
+
+"esbuild-android-arm64@npm:0.15.13":
+ version: 0.15.13
+ resolution: "esbuild-android-arm64@npm:0.15.13"
+ conditions: os=android & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"esbuild-darwin-64@npm:0.15.13":
+ version: 0.15.13
+ resolution: "esbuild-darwin-64@npm:0.15.13"
+ conditions: os=darwin & cpu=x64
+ languageName: node
+ linkType: hard
+
+"esbuild-darwin-arm64@npm:0.15.13":
+ version: 0.15.13
+ resolution: "esbuild-darwin-arm64@npm:0.15.13"
+ conditions: os=darwin & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"esbuild-freebsd-64@npm:0.15.13":
+ version: 0.15.13
+ resolution: "esbuild-freebsd-64@npm:0.15.13"
+ conditions: os=freebsd & cpu=x64
+ languageName: node
+ linkType: hard
+
+"esbuild-freebsd-arm64@npm:0.15.13":
+ version: 0.15.13
+ resolution: "esbuild-freebsd-arm64@npm:0.15.13"
+ conditions: os=freebsd & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"esbuild-linux-32@npm:0.15.13":
+ version: 0.15.13
+ resolution: "esbuild-linux-32@npm:0.15.13"
+ conditions: os=linux & cpu=ia32
+ languageName: node
+ linkType: hard
+
+"esbuild-linux-64@npm:0.15.13":
+ version: 0.15.13
+ resolution: "esbuild-linux-64@npm:0.15.13"
+ conditions: os=linux & cpu=x64
+ languageName: node
+ linkType: hard
+
+"esbuild-linux-arm64@npm:0.15.13":
+ version: 0.15.13
+ resolution: "esbuild-linux-arm64@npm:0.15.13"
+ conditions: os=linux & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"esbuild-linux-arm@npm:0.15.13":
+ version: 0.15.13
+ resolution: "esbuild-linux-arm@npm:0.15.13"
+ conditions: os=linux & cpu=arm
+ languageName: node
+ linkType: hard
+
+"esbuild-linux-mips64le@npm:0.15.13":
+ version: 0.15.13
+ resolution: "esbuild-linux-mips64le@npm:0.15.13"
+ conditions: os=linux & cpu=mips64el
+ languageName: node
+ linkType: hard
+
+"esbuild-linux-ppc64le@npm:0.15.13":
+ version: 0.15.13
+ resolution: "esbuild-linux-ppc64le@npm:0.15.13"
+ conditions: os=linux & cpu=ppc64
+ languageName: node
+ linkType: hard
+
+"esbuild-linux-riscv64@npm:0.15.13":
+ version: 0.15.13
+ resolution: "esbuild-linux-riscv64@npm:0.15.13"
+ conditions: os=linux & cpu=riscv64
languageName: node
linkType: hard
-"es-set-tostringtag@npm:^2.0.1":
- version: 2.0.1
- resolution: "es-set-tostringtag@npm:2.0.1"
- dependencies:
- get-intrinsic: ^1.1.3
- has: ^1.0.3
- has-tostringtag: ^1.0.0
- checksum: ec416a12948cefb4b2a5932e62093a7cf36ddc3efd58d6c58ca7ae7064475ace556434b869b0bbeb0c365f1032a8ccd577211101234b69837ad83ad204fff884
+"esbuild-linux-s390x@npm:0.15.13":
+ version: 0.15.13
+ resolution: "esbuild-linux-s390x@npm:0.15.13"
+ conditions: os=linux & cpu=s390x
languageName: node
linkType: hard
-"es-shim-unscopables@npm:^1.0.0":
- version: 1.0.0
- resolution: "es-shim-unscopables@npm:1.0.0"
- dependencies:
- has: ^1.0.3
- checksum: 83e95cadbb6ee44d3644dfad60dcad7929edbc42c85e66c3e99aefd68a3a5c5665f2686885cddb47dfeabfd77bd5ea5a7060f2092a955a729bbd8834f0d86fa1
+"esbuild-netbsd-64@npm:0.15.13":
+ version: 0.15.13
+ resolution: "esbuild-netbsd-64@npm:0.15.13"
+ conditions: os=netbsd & cpu=x64
languageName: node
linkType: hard
-"es-to-primitive@npm:^1.2.1":
- version: 1.2.1
- resolution: "es-to-primitive@npm:1.2.1"
- dependencies:
- is-callable: ^1.1.4
- is-date-object: ^1.0.1
- is-symbol: ^1.0.2
- checksum: 4ead6671a2c1402619bdd77f3503991232ca15e17e46222b0a41a5d81aebc8740a77822f5b3c965008e631153e9ef0580540007744521e72de8e33599fca2eed
+"esbuild-openbsd-64@npm:0.15.13":
+ version: 0.15.13
+ resolution: "esbuild-openbsd-64@npm:0.15.13"
+ conditions: os=openbsd & cpu=x64
languageName: node
linkType: hard
-"es6-promise@npm:^4.0.3":
- version: 4.2.8
- resolution: "es6-promise@npm:4.2.8"
- checksum: 95614a88873611cb9165a85d36afa7268af5c03a378b35ca7bda9508e1d4f1f6f19a788d4bc755b3fd37c8ebba40782018e02034564ff24c9d6fa37e959ad57d
+"esbuild-sunos-64@npm:0.15.13":
+ version: 0.15.13
+ resolution: "esbuild-sunos-64@npm:0.15.13"
+ conditions: os=sunos & cpu=x64
languageName: node
linkType: hard
-"es6-promisify@npm:^5.0.0":
- version: 5.0.0
- resolution: "es6-promisify@npm:5.0.0"
- dependencies:
- es6-promise: ^4.0.3
- checksum: fbed9d791598831413be84a5374eca8c24800ec71a16c1c528c43a98e2dadfb99331483d83ae6094ddb9b87e6f799a15d1553cebf756047e0865c753bc346b92
+"esbuild-windows-32@npm:0.15.13":
+ version: 0.15.13
+ resolution: "esbuild-windows-32@npm:0.15.13"
+ conditions: os=win32 & cpu=ia32
+ languageName: node
+ linkType: hard
+
+"esbuild-windows-64@npm:0.15.13":
+ version: 0.15.13
+ resolution: "esbuild-windows-64@npm:0.15.13"
+ conditions: os=win32 & cpu=x64
+ languageName: node
+ linkType: hard
+
+"esbuild-windows-arm64@npm:0.15.13":
+ version: 0.15.13
+ resolution: "esbuild-windows-arm64@npm:0.15.13"
+ conditions: os=win32 & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"esbuild@npm:0.15.13":
+ version: 0.15.13
+ resolution: "esbuild@npm:0.15.13"
+ dependencies:
+ "@esbuild/android-arm": 0.15.13
+ "@esbuild/linux-loong64": 0.15.13
+ esbuild-android-64: 0.15.13
+ esbuild-android-arm64: 0.15.13
+ esbuild-darwin-64: 0.15.13
+ esbuild-darwin-arm64: 0.15.13
+ esbuild-freebsd-64: 0.15.13
+ esbuild-freebsd-arm64: 0.15.13
+ esbuild-linux-32: 0.15.13
+ esbuild-linux-64: 0.15.13
+ esbuild-linux-arm: 0.15.13
+ esbuild-linux-arm64: 0.15.13
+ esbuild-linux-mips64le: 0.15.13
+ esbuild-linux-ppc64le: 0.15.13
+ esbuild-linux-riscv64: 0.15.13
+ esbuild-linux-s390x: 0.15.13
+ esbuild-netbsd-64: 0.15.13
+ esbuild-openbsd-64: 0.15.13
+ esbuild-sunos-64: 0.15.13
+ esbuild-windows-32: 0.15.13
+ esbuild-windows-64: 0.15.13
+ esbuild-windows-arm64: 0.15.13
+ dependenciesMeta:
+ "@esbuild/android-arm":
+ optional: true
+ "@esbuild/linux-loong64":
+ optional: true
+ esbuild-android-64:
+ optional: true
+ esbuild-android-arm64:
+ optional: true
+ esbuild-darwin-64:
+ optional: true
+ esbuild-darwin-arm64:
+ optional: true
+ esbuild-freebsd-64:
+ optional: true
+ esbuild-freebsd-arm64:
+ optional: true
+ esbuild-linux-32:
+ optional: true
+ esbuild-linux-64:
+ optional: true
+ esbuild-linux-arm:
+ optional: true
+ esbuild-linux-arm64:
+ optional: true
+ esbuild-linux-mips64le:
+ optional: true
+ esbuild-linux-ppc64le:
+ optional: true
+ esbuild-linux-riscv64:
+ optional: true
+ esbuild-linux-s390x:
+ optional: true
+ esbuild-netbsd-64:
+ optional: true
+ esbuild-openbsd-64:
+ optional: true
+ esbuild-sunos-64:
+ optional: true
+ esbuild-windows-32:
+ optional: true
+ esbuild-windows-64:
+ optional: true
+ esbuild-windows-arm64:
+ optional: true
+ bin:
+ esbuild: bin/esbuild
+ checksum: ef5f339fae7e2abc4ec5484d4b301efdf40f580e043cbf8a66e19d6c91df82368a810abec61fd5e5db226f0c354f49c36616c9ea04c5412a142a050c10239bf7
languageName: node
linkType: hard
@@ -14000,17 +14502,15 @@ __metadata:
languageName: node
linkType: hard
-"eth-block-tracker@npm:4.4.3":
- version: 4.4.3
- resolution: "eth-block-tracker@npm:4.4.3"
+"eth-block-tracker@npm:6.1.0":
+ version: 6.1.0
+ resolution: "eth-block-tracker@npm:6.1.0"
dependencies:
- "@babel/plugin-transform-runtime": ^7.5.5
- "@babel/runtime": ^7.5.5
- eth-query: ^2.1.0
+ "@metamask/safe-event-emitter": ^2.0.0
+ "@metamask/utils": ^3.0.1
json-rpc-random-id: ^1.0.1
pify: ^3.0.0
- safe-event-emitter: ^1.0.1
- checksum: 3ae7e459b19b65303ec7bd0df7ad2a69476adb01cf2f44699b3482fd14e9e058e9eb85a9612307ba33f565e29ca6d19466765122a1106d1def820f6bfe272d52
+ checksum: 33ee6375a26822649d1e9ac24a3c39d70338eb505715f72b9102fb82e40d7a48902b4a7dd4a33bb4f121b79707c5ab045777507a2881cfcdb385c8ccbb3ac2a0
languageName: node
linkType: hard
@@ -14055,7 +14555,7 @@ __metadata:
languageName: node
linkType: hard
-"eth-query@npm:^2.1.0, eth-query@npm:^2.1.2":
+"eth-query@npm:^2.1.2":
version: 2.1.2
resolution: "eth-query@npm:2.1.2"
dependencies:
@@ -14254,7 +14754,7 @@ __metadata:
languageName: node
linkType: hard
-"events@npm:^3.0.0, events@npm:^3.2.0, events@npm:^3.3.0":
+"events@npm:^3.2.0, events@npm:^3.3.0":
version: 3.3.0
resolution: "events@npm:3.3.0"
checksum: f6f487ad2198aa41d878fa31452f1a3c00958f46e9019286ff4787c84aac329332ab45c9cdc8c445928fc6d7ded294b9e005a7fce9426488518017831b272780
@@ -14272,7 +14772,7 @@ __metadata:
languageName: node
linkType: hard
-"execa@npm:5.1.1, execa@npm:^5.0.0":
+"execa@npm:5.1.1, execa@npm:^5.0.0, execa@npm:^5.1.1":
version: 5.1.1
resolution: "execa@npm:5.1.1"
dependencies:
@@ -14289,6 +14789,23 @@ __metadata:
languageName: node
linkType: hard
+"execa@npm:^6.1.0":
+ version: 6.1.0
+ resolution: "execa@npm:6.1.0"
+ dependencies:
+ cross-spawn: ^7.0.3
+ get-stream: ^6.0.1
+ human-signals: ^3.0.1
+ is-stream: ^3.0.0
+ merge-stream: ^2.0.0
+ npm-run-path: ^5.1.0
+ onetime: ^6.0.0
+ signal-exit: ^3.0.7
+ strip-final-newline: ^3.0.0
+ checksum: 1a4af799839134f5c72eb63d525b87304c1114a63aa71676c91d57ccef2e26f2f53e14c11384ab11c4ec479be1efa83d11c8190e00040355c2c5c3364327fa8e
+ languageName: node
+ linkType: hard
+
"execa@npm:^7.0.0":
version: 7.1.1
resolution: "execa@npm:7.1.1"
@@ -14452,7 +14969,7 @@ __metadata:
languageName: node
linkType: hard
-"fast-glob@npm:^3.0.3, fast-glob@npm:^3.2.12, fast-glob@npm:^3.2.9":
+"fast-glob@npm:^3.0.3, fast-glob@npm:^3.2.11, fast-glob@npm:^3.2.12, fast-glob@npm:^3.2.9":
version: 3.2.12
resolution: "fast-glob@npm:3.2.12"
dependencies:
@@ -14756,6 +15273,16 @@ __metadata:
languageName: node
linkType: hard
+"find-up@npm:^6.3.0":
+ version: 6.3.0
+ resolution: "find-up@npm:6.3.0"
+ dependencies:
+ locate-path: ^7.1.0
+ path-exists: ^5.0.0
+ checksum: 9a21b7f9244a420e54c6df95b4f6fc3941efd3c3e5476f8274eb452f6a85706e7a6a90de71353ee4f091fcb4593271a6f92810a324ec542650398f928783c280
+ languageName: node
+ linkType: hard
+
"flat-cache@npm:^3.0.4":
version: 3.0.4
resolution: "flat-cache@npm:3.0.4"
@@ -14987,7 +15514,7 @@ __metadata:
languageName: node
linkType: hard
-"fs-extra@npm:^10.0.0":
+"fs-extra@npm:^10.0.0, fs-extra@npm:^10.1.0":
version: 10.1.0
resolution: "fs-extra@npm:10.1.0"
dependencies:
@@ -15535,6 +16062,19 @@ __metadata:
languageName: node
linkType: hard
+"globby@npm:^13.1.3":
+ version: 13.1.4
+ resolution: "globby@npm:13.1.4"
+ dependencies:
+ dir-glob: ^3.0.1
+ fast-glob: ^3.2.11
+ ignore: ^5.2.0
+ merge2: ^1.4.1
+ slash: ^4.0.0
+ checksum: e8bc13879972082d590cd1b0e27080d90d2e12fff7eeb2cee9329c29115ace14cc5b9f899e3d6beb136ba826307a727016658919a6f383e1511d698acee81741
+ languageName: node
+ linkType: hard
+
"gluegun@npm:5.1.2, gluegun@npm:^5.1.2":
version: 5.1.2
resolution: "gluegun@npm:5.1.2"
@@ -16446,6 +16986,13 @@ __metadata:
languageName: node
linkType: hard
+"human-signals@npm:^3.0.1":
+ version: 3.0.1
+ resolution: "human-signals@npm:3.0.1"
+ checksum: f252a7769c8094a5c9dc6772816bdb417b188820b04c8b42d0fc468e03a0ba905b1dd07afabe9385cc83504af1ccc2b985cd1e4aeeeb8e0029896c5af2e6f354
+ languageName: node
+ linkType: hard
+
"human-signals@npm:^4.3.0":
version: 4.3.1
resolution: "human-signals@npm:4.3.1"
@@ -16528,6 +17075,15 @@ __metadata:
languageName: node
linkType: hard
+"idna-uts46-hx@npm:^4.1.2":
+ version: 4.1.2
+ resolution: "idna-uts46-hx@npm:4.1.2"
+ dependencies:
+ punycode: ^2.1.1
+ checksum: 97772ba4e517ccf19e4552d09f1b9cccca2e6b8a3f8dd66fc5caccd1dbc41e3ff1915d899b7e9ffd518f4f2958e638d5bc6d3728f859510d64e417a7664f928a
+ languageName: node
+ linkType: hard
+
"ieee754@npm:^1.1.13, ieee754@npm:^1.2.1":
version: 1.2.1
resolution: "ieee754@npm:1.2.1"
@@ -17109,6 +17665,13 @@ __metadata:
languageName: node
linkType: hard
+"is-interactive@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "is-interactive@npm:2.0.0"
+ checksum: e8d52ad490bed7ae665032c7675ec07732bbfe25808b0efbc4d5a76b1a1f01c165f332775c63e25e9a03d319ebb6b24f571a9e902669fc1e40b0a60b5be6e26c
+ languageName: node
+ linkType: hard
+
"is-ip@npm:^3.1.0":
version: 3.1.0
resolution: "is-ip@npm:3.1.0"
@@ -17397,6 +17960,13 @@ __metadata:
languageName: node
linkType: hard
+"is-unicode-supported@npm:^1.1.0":
+ version: 1.3.0
+ resolution: "is-unicode-supported@npm:1.3.0"
+ checksum: 20a1fc161afafaf49243551a5ac33b6c4cf0bbcce369fcd8f2951fbdd000c30698ce320de3ee6830497310a8f41880f8066d440aa3eb0a853e2aa4836dd89abc
+ languageName: node
+ linkType: hard
+
"is-upper-case@npm:^2.0.2":
version: 2.0.2
resolution: "is-upper-case@npm:2.0.2"
@@ -17493,7 +18063,7 @@ __metadata:
languageName: node
linkType: hard
-"isomorphic-ws@npm:5.0.0":
+"isomorphic-ws@npm:5.0.0, isomorphic-ws@npm:^5.0.0":
version: 5.0.0
resolution: "isomorphic-ws@npm:5.0.0"
peerDependencies:
@@ -18708,6 +19278,7 @@ __metadata:
dependencies:
"@commitlint/cli": ^17.6.0
"@commitlint/config-conventional": ^17.6.0
+ buffer: ^5.5.0
conventional-changelog-cli: ^2.2.2
eslint: ^8.38.0
eslint-config-prettier: ^8.8.0
@@ -19079,6 +19650,17 @@ __metadata:
languageName: node
linkType: hard
+"lit@npm:2.7.4":
+ version: 2.7.4
+ resolution: "lit@npm:2.7.4"
+ dependencies:
+ "@lit/reactive-element": ^1.6.0
+ lit-element: ^3.3.0
+ lit-html: ^2.7.0
+ checksum: 7494f4e814fca0ebf7a73923c85454531aac26ff83f0d4d5afe62ebbc6225363c9df41f88147d79d5d3ab518925ceb9b27a557bee610bbb414ae0339c513f5a3
+ languageName: node
+ linkType: hard
+
"lmdb@npm:2.5.2":
version: 2.5.2
resolution: "lmdb@npm:2.5.2"
@@ -19124,6 +19706,13 @@ __metadata:
languageName: node
linkType: hard
+"load-tsconfig@npm:^0.2.0":
+ version: 0.2.5
+ resolution: "load-tsconfig@npm:0.2.5"
+ checksum: 631740833c4a7157bb7b6eeae6e1afb6a6fac7416b7ba91bd0944d5c5198270af2d68bf8347af3cc2ba821adc4d83ef98f66278bd263bc284c863a09ec441503
+ languageName: node
+ linkType: hard
+
"loader-runner@npm:^4.2.0":
version: 4.3.0
resolution: "loader-runner@npm:4.3.0"
@@ -19198,6 +19787,15 @@ __metadata:
languageName: node
linkType: hard
+"locate-path@npm:^7.1.0":
+ version: 7.2.0
+ resolution: "locate-path@npm:7.2.0"
+ dependencies:
+ p-locate: ^6.0.0
+ checksum: c1b653bdf29beaecb3d307dfb7c44d98a2a98a02ebe353c9ad055d1ac45d6ed4e1142563d222df9b9efebc2bcb7d4c792b507fad9e7150a04c29530b7db570f8
+ languageName: node
+ linkType: hard
+
"lodash-es@npm:^4.17.21":
version: 4.17.21
resolution: "lodash-es@npm:4.17.21"
@@ -19429,6 +20027,16 @@ __metadata:
languageName: node
linkType: hard
+"log-symbols@npm:^5.1.0":
+ version: 5.1.0
+ resolution: "log-symbols@npm:5.1.0"
+ dependencies:
+ chalk: ^5.0.0
+ is-unicode-supported: ^1.1.0
+ checksum: 7291b6e7f1b3df6865bdaeb9b59605c832668ac2fa0965c63b1e7dd3700349aec09c1d7d40c368d5041ff58b7f89461a56e4009471921301af7b3609cbff9a29
+ languageName: node
+ linkType: hard
+
"log-update@npm:^2.3.0":
version: 2.3.0
resolution: "log-update@npm:2.3.0"
@@ -20451,7 +21059,7 @@ __metadata:
languageName: node
linkType: hard
-"mocha@npm:^10.0.0, mocha@npm:^10.2.0":
+"mocha@npm:^10.0.0":
version: 10.2.0
resolution: "mocha@npm:10.2.0"
dependencies:
@@ -20553,6 +21161,20 @@ __metadata:
languageName: node
linkType: hard
+"motion@npm:10.16.2":
+ version: 10.16.2
+ resolution: "motion@npm:10.16.2"
+ dependencies:
+ "@motionone/animation": ^10.15.1
+ "@motionone/dom": ^10.16.2
+ "@motionone/svelte": ^10.16.2
+ "@motionone/types": ^10.15.1
+ "@motionone/utils": ^10.15.1
+ "@motionone/vue": ^10.16.2
+ checksum: 0b91256808c2374d8b7f4ac5e7ed513f2ca8df2b7d1be4fbc00ec5baece5162ada648aedaa5bc1d60be9ad2e6c9bc1d3bb160333051c20ab79e241b8e02e3c92
+ languageName: node
+ linkType: hard
+
"mri@npm:^1.1.0":
version: 1.2.0
resolution: "mri@npm:1.2.0"
@@ -21388,6 +22010,23 @@ __metadata:
languageName: node
linkType: hard
+"ora@npm:^6.1.2":
+ version: 6.3.1
+ resolution: "ora@npm:6.3.1"
+ dependencies:
+ chalk: ^5.0.0
+ cli-cursor: ^4.0.0
+ cli-spinners: ^2.6.1
+ is-interactive: ^2.0.0
+ is-unicode-supported: ^1.1.0
+ log-symbols: ^5.1.0
+ stdin-discarder: ^0.1.0
+ strip-ansi: ^7.0.1
+ wcwidth: ^1.0.1
+ checksum: 474c0596a35c1be1e836bb836bea8a2d9e37458fc63b020e1435c8fe2030ab224454bfb263618e3ec09fcab2008dd525e9047f4c61548c4ace7b6490a766fc1c
+ languageName: node
+ linkType: hard
+
"ordered-binary@npm:^1.2.4":
version: 1.4.0
resolution: "ordered-binary@npm:1.4.0"
@@ -21476,6 +22115,15 @@ __metadata:
languageName: node
linkType: hard
+"p-limit@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "p-limit@npm:4.0.0"
+ dependencies:
+ yocto-queue: ^1.0.0
+ checksum: 01d9d70695187788f984226e16c903475ec6a947ee7b21948d6f597bed788e3112cc7ec2e171c1d37125057a5f45f3da21d8653e04a3a793589e12e9e80e756b
+ languageName: node
+ linkType: hard
+
"p-locate@npm:^2.0.0":
version: 2.0.0
resolution: "p-locate@npm:2.0.0"
@@ -21512,6 +22160,15 @@ __metadata:
languageName: node
linkType: hard
+"p-locate@npm:^6.0.0":
+ version: 6.0.0
+ resolution: "p-locate@npm:6.0.0"
+ dependencies:
+ p-limit: ^4.0.0
+ checksum: 2bfe5234efa5e7a4e74b30a5479a193fdd9236f8f6b4d2f3f69e3d286d9a7d7ab0c118a2a50142efcf4e41625def635bd9332d6cbf9cc65d85eb0718c579ab38
+ languageName: node
+ linkType: hard
+
"p-map@npm:^2.0.0":
version: 2.1.0
resolution: "p-map@npm:2.1.0"
@@ -21709,6 +22366,13 @@ __metadata:
languageName: node
linkType: hard
+"path-exists@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "path-exists@npm:5.0.0"
+ checksum: 8ca842868cab09423994596eb2c5ec2a971c17d1a3cb36dbf060592c730c725cd524b9067d7d2a1e031fef9ba7bd2ac6dc5ec9fb92aa693265f7be3987045254
+ languageName: node
+ linkType: hard
+
"path-is-absolute@npm:^1.0.0":
version: 1.0.1
resolution: "path-is-absolute@npm:1.0.1"
@@ -21793,6 +22457,13 @@ __metadata:
languageName: node
linkType: hard
+"pathe@npm:^1.0.0":
+ version: 1.1.1
+ resolution: "pathe@npm:1.1.1"
+ checksum: 34ab3da2e5aa832ebc6a330ffe3f73d7ba8aec6e899b53b8ec4f4018de08e40742802deb12cf5add9c73b7bf719b62c0778246bd376ca62b0fb23e0dde44b759
+ languageName: node
+ linkType: hard
+
"pathval@npm:^1.1.1":
version: 1.1.1
resolution: "pathval@npm:1.1.1"
@@ -22894,6 +23565,15 @@ __metadata:
languageName: node
linkType: hard
+"prettier@npm:^2.8.1":
+ version: 2.8.8
+ resolution: "prettier@npm:2.8.8"
+ bin:
+ prettier: bin-prettier.js
+ checksum: b49e409431bf129dd89238d64299ba80717b57ff5a6d1c1a8b1a28b590d998a34e083fa13573bc732bb8d2305becb4c9a4407f8486c81fa7d55100eb08263cf8
+ languageName: node
+ linkType: hard
+
"prettier@npm:^2.8.3, prettier@npm:^2.8.7":
version: 2.8.7
resolution: "prettier@npm:2.8.7"
@@ -23068,6 +23748,13 @@ __metadata:
languageName: node
linkType: hard
+"proxy-compare@npm:2.5.1":
+ version: 2.5.1
+ resolution: "proxy-compare@npm:2.5.1"
+ checksum: c7cc151ac255150bcb24becde6495b3e399416c31991af377ce082255b51f07eaeb5d861bf8bf482703e92f88b90a5892ad57d3153ea29450d03ef921683d9fa
+ languageName: node
+ linkType: hard
+
"pseudomap@npm:^1.0.2":
version: 1.0.2
resolution: "pseudomap@npm:1.0.2"
@@ -23153,6 +23840,20 @@ __metadata:
languageName: node
linkType: hard
+"qrcode@npm:1.5.3":
+ version: 1.5.3
+ resolution: "qrcode@npm:1.5.3"
+ dependencies:
+ dijkstrajs: ^1.0.1
+ encode-utf8: ^1.0.3
+ pngjs: ^5.0.0
+ yargs: ^15.3.1
+ bin:
+ qrcode: bin/qrcode
+ checksum: 9a8a20a0a9cb1d15de8e7b3ffa214e8b6d2a8b07655f25bd1b1d77f4681488f84d7bae569870c0652872d829d5f8ac4922c27a6bd14c13f0e197bf07b28dead7
+ languageName: node
+ linkType: hard
+
"qs@npm:6.11.0, qs@npm:^6.4.0, qs@npm:^6.7.0, qs@npm:^6.9.4":
version: 6.11.0
resolution: "qs@npm:6.11.0"
@@ -23178,15 +23879,15 @@ __metadata:
languageName: node
linkType: hard
-"query-string@npm:7.1.1":
- version: 7.1.1
- resolution: "query-string@npm:7.1.1"
+"query-string@npm:7.1.3":
+ version: 7.1.3
+ resolution: "query-string@npm:7.1.3"
dependencies:
- decode-uri-component: ^0.2.0
+ decode-uri-component: ^0.2.2
filter-obj: ^1.1.0
split-on-first: ^1.0.0
strict-uri-encode: ^2.0.0
- checksum: b227d1f588ae93f9f0ad078c6b811295fa151dc5a160a03bb2bac5fa0e6919cb1daa570aad1d288e77c8e89fde5362ba505b1014e6e793da9b1e885b59a690a6
+ checksum: 91af02dcd9cc9227a052841d5c2eecb80a0d6489d05625df506a097ef1c59037cfb5e907f39b84643cbfd535c955abec3e553d0130a7b510120c37d06e0f4346
languageName: node
linkType: hard
@@ -24356,6 +25057,16 @@ __metadata:
languageName: node
linkType: hard
+"restore-cursor@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "restore-cursor@npm:4.0.0"
+ dependencies:
+ onetime: ^5.1.0
+ signal-exit: ^3.0.2
+ checksum: 5b675c5a59763bf26e604289eab35711525f11388d77f409453904e1e69c0d37ae5889295706b2c81d23bd780165084d040f9b68fffc32cc921519031c4fa4af
+ languageName: node
+ linkType: hard
+
"retimer@npm:^3.0.0":
version: 3.0.0
resolution: "retimer@npm:3.0.0"
@@ -24563,15 +25274,6 @@ __metadata:
languageName: node
linkType: hard
-"safe-event-emitter@npm:^1.0.1":
- version: 1.0.1
- resolution: "safe-event-emitter@npm:1.0.1"
- dependencies:
- events: ^3.0.0
- checksum: 2a15094bd28b0966571693f219b5a846949ae24f7ba87c6024f0ed552bef63ebe72970a784b85b77b1f03f1c95e78fabe19306d44538dbc4a3a685bed31c18c4
- languageName: node
- linkType: hard
-
"safe-json-utils@npm:^1.1.1":
version: 1.1.1
resolution: "safe-json-utils@npm:1.1.1"
@@ -25652,6 +26354,15 @@ __metadata:
languageName: node
linkType: hard
+"stdin-discarder@npm:^0.1.0":
+ version: 0.1.0
+ resolution: "stdin-discarder@npm:0.1.0"
+ dependencies:
+ bl: ^5.0.0
+ checksum: 85131f70ae2830144133b7a6211d56f9ac2603573f4af3d0b66e828af5e13fcdea351f9192f86bb7fed2c64604c8097bf36d50cb77d54e898ce4604c3b7b6b8f
+ languageName: node
+ linkType: hard
+
"stealthy-require@npm:^1.1.1":
version: 1.1.1
resolution: "stealthy-require@npm:1.1.1"
@@ -26062,6 +26773,13 @@ __metadata:
languageName: node
linkType: hard
+"superstruct@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "superstruct@npm:1.0.3"
+ checksum: 761790bb111e6e21ddd608299c252f3be35df543263a7ebbc004e840d01fcf8046794c274bcb351bdf3eae4600f79d317d085cdbb19ca05803a4361840cc9bb1
+ languageName: node
+ linkType: hard
+
"supports-color@npm:6.0.0":
version: 6.0.0
resolution: "supports-color@npm:6.0.0"
@@ -27599,6 +28317,21 @@ __metadata:
languageName: node
linkType: hard
+"valtio@npm:1.10.5":
+ version: 1.10.5
+ resolution: "valtio@npm:1.10.5"
+ dependencies:
+ proxy-compare: 2.5.1
+ use-sync-external-store: 1.2.0
+ peerDependencies:
+ react: ">=16.8"
+ peerDependenciesMeta:
+ react:
+ optional: true
+ checksum: a01d7cca44b3ff60213aa40470c42083f7522d8e2c2f2d9f696b0aa3eec4c3dba7393831d5ff47db1ad025904860d2788ce4d9654963ff3555481deb25376851
+ languageName: node
+ linkType: hard
+
"value-or-promise@npm:1.0.12, value-or-promise@npm:^1.0.11":
version: 1.0.12
resolution: "value-or-promise@npm:1.0.12"
@@ -27653,6 +28386,38 @@ __metadata:
languageName: node
linkType: hard
+"viem@npm:^0.1.14":
+ version: 0.1.26
+ resolution: "viem@npm:0.1.26"
+ dependencies:
+ "@noble/hashes": ^1.1.2
+ "@noble/secp256k1": ^1.7.1
+ "@wagmi/chains": ~0.2.11
+ abitype: ~0.7.1
+ idna-uts46-hx: ^4.1.2
+ isomorphic-ws: ^5.0.0
+ ws: ^8.12.0
+ checksum: 4c3d6c832770f2a9139941d711d2ba70c510cbf6b0f4ce9cc85b6789a34d5b3f784ced3a66e7cdc6b413b74ea54f0fa7e4aa8608e34bf0d55a8744a0133d8bc2
+ languageName: node
+ linkType: hard
+
+"viem@npm:^0.3.48":
+ version: 0.3.48
+ resolution: "viem@npm:0.3.48"
+ dependencies:
+ "@adraffy/ens-normalize": 1.9.0
+ "@noble/curves": 1.0.0
+ "@noble/hashes": 1.3.0
+ "@scure/bip32": 1.3.0
+ "@scure/bip39": 1.2.0
+ "@wagmi/chains": 1.0.0
+ abitype: 0.8.7
+ isomorphic-ws: 5.0.0
+ ws: 8.12.0
+ checksum: e336eee95c5c90593395784cbbd2f2f2dbf14fc91ce7c12ac2c609a641abc503c22fa2d6e04a9cdaf784719344e7a2b87df58276beb226e80897a1a1b4b4cb44
+ languageName: node
+ linkType: hard
+
"vue-hot-reload-api@npm:^2.3.0":
version: 2.3.4
resolution: "vue-hot-reload-api@npm:2.3.4"
@@ -27743,15 +28508,15 @@ __metadata:
languageName: node
linkType: hard
-"wagmi@npm:^0.12.6":
- version: 0.12.10
- resolution: "wagmi@npm:0.12.10"
+"wagmi@npm:0.12.6":
+ version: 0.12.6
+ resolution: "wagmi@npm:0.12.6"
dependencies:
- "@tanstack/query-sync-storage-persister": ^4.27.1
- "@tanstack/react-query": ^4.28.0
- "@tanstack/react-query-persist-client": ^4.28.0
- "@wagmi/core": 0.10.9
- abitype: ^0.7.1
+ "@tanstack/query-sync-storage-persister": ^4.14.5
+ "@tanstack/react-query": ^4.14.5
+ "@tanstack/react-query-persist-client": ^4.14.5
+ "@wagmi/core": 0.10.6
+ abitype: ^0.3.0
use-sync-external-store: ^1.2.0
peerDependencies:
ethers: ">=5.5.1 <6"
@@ -27760,7 +28525,7 @@ __metadata:
peerDependenciesMeta:
typescript:
optional: true
- checksum: 8e0ab08a4822f7b548f8f39d8bb3412d9f99c59a6a59f679123eec4d0a60e83105af79abbd70464c4fd1d438174fe112927c8f76fea62321bd3e1e9ca52d81fe
+ checksum: 4e12fbdc2b56e80de2a98bb0ab296e8ad3a857c58565b9d580c993b774051766402fd34a26b751bc823308d485ac8c178eaff052b1befafce3d27157198d1339
languageName: node
linkType: hard
@@ -28558,9 +29323,9 @@ __metadata:
languageName: node
linkType: hard
-"ws@npm:^8.4.2":
- version: 8.12.1
- resolution: "ws@npm:8.12.1"
+"ws@npm:^8.12.0, ws@npm:^8.5.0":
+ version: 8.13.0
+ resolution: "ws@npm:8.13.0"
peerDependencies:
bufferutil: ^4.0.1
utf-8-validate: ">=5.0.2"
@@ -28569,13 +29334,13 @@ __metadata:
optional: true
utf-8-validate:
optional: true
- checksum: 97301c1c4d838fc81bd413f370f75c12aabe44527b31323b761eab3043a9ecb7e32ffd668548382c9a6a5ad3a1c3a9249608e8338e6b939f2f9540f1e21970b5
+ checksum: 53e991bbf928faf5dc6efac9b8eb9ab6497c69feeb94f963d648b7a3530a720b19ec2e0ec037344257e05a4f35bd9ad04d9de6f289615ffb133282031b18c61c
languageName: node
linkType: hard
-"ws@npm:^8.5.0":
- version: 8.13.0
- resolution: "ws@npm:8.13.0"
+"ws@npm:^8.4.2":
+ version: 8.12.1
+ resolution: "ws@npm:8.12.1"
peerDependencies:
bufferutil: ^4.0.1
utf-8-validate: ">=5.0.2"
@@ -28584,7 +29349,7 @@ __metadata:
optional: true
utf-8-validate:
optional: true
- checksum: 53e991bbf928faf5dc6efac9b8eb9ab6497c69feeb94f963d648b7a3530a720b19ec2e0ec037344257e05a4f35bd9ad04d9de6f289615ffb133282031b18c61c
+ checksum: 97301c1c4d838fc81bd413f370f75c12aabe44527b31323b761eab3043a9ecb7e32ffd668548382c9a6a5ad3a1c3a9249608e8338e6b939f2f9540f1e21970b5
languageName: node
linkType: hard
@@ -28824,6 +29589,13 @@ __metadata:
languageName: node
linkType: hard
+"yocto-queue@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "yocto-queue@npm:1.0.0"
+ checksum: 2cac84540f65c64ccc1683c267edce396b26b1e931aa429660aefac8fbe0188167b7aee815a3c22fa59a28a58d898d1a2b1825048f834d8d629f4c2a5d443801
+ languageName: node
+ linkType: hard
+
"zksync-web3@npm:^0.14.3":
version: 0.14.3
resolution: "zksync-web3@npm:0.14.3"
@@ -28833,6 +29605,13 @@ __metadata:
languageName: node
linkType: hard
+"zod@npm:^3.20.2":
+ version: 3.21.4
+ resolution: "zod@npm:3.21.4"
+ checksum: f185ba87342ff16f7a06686767c2b2a7af41110c7edf7c1974095d8db7a73792696bcb4a00853de0d2edeb34a5b2ea6a55871bc864227dace682a0a28de33e1f
+ languageName: node
+ linkType: hard
+
"zustand@npm:^4.3.1":
version: 4.3.7
resolution: "zustand@npm:4.3.7"
From af72998a5162021bd3b95fa14f15aedfe7ca6ef9 Mon Sep 17 00:00:00 2001
From: alcercu <333aleix333@gmail.com>
Date: Mon, 5 Jun 2023 12:22:19 +0200
Subject: [PATCH 05/41] feat(web/WIP): migrate hooks to wagmi/viem
---
web/package.json | 4 +-
web/src/context/Web3Provider.tsx | 15 +-
web/src/hooks/queries/useAppealCost.ts | 4 +-
.../useDisputeKitClassicMultipliers.ts | 6 +-
web/src/hooks/queries/useEvidenceGroup.ts | 3 -
web/src/hooks/queries/useGetMetaEvidence.ts | 37 ++-
web/src/hooks/queries/useJurorBalance.ts | 4 +-
web/src/hooks/queries/usePNKAllowance.ts | 4 +-
web/src/hooks/queries/usePNKBalance.ts | 4 +-
.../hooks/queries/usePolicyRegistryEvent.ts | 6 +-
web/wagmi.config.ts | 12 +-
yarn.lock | 227 ++++++------------
12 files changed, 118 insertions(+), 208 deletions(-)
diff --git a/web/package.json b/web/package.json
index 6ffb66c7d..ef99d69bd 100644
--- a/web/package.json
+++ b/web/package.json
@@ -43,7 +43,7 @@
"@typescript-eslint/eslint-plugin": "^5.58.0",
"@typescript-eslint/parser": "^5.58.0",
"@typescript-eslint/utils": "^5.58.0",
- "@wagmi/cli": "0.1.15",
+ "@wagmi/cli": "^1.1.0",
"eslint": "^8.38.0",
"eslint-config-prettier": "^8.8.0",
"eslint-import-resolver-parcel": "^1.10.6",
@@ -95,7 +95,7 @@
"styled-components": "^5.3.9",
"swr": "^1.3.0",
"viem": "^0.3.48",
- "wagmi": "0.12.6"
+ "wagmi": "^1.1.0"
},
"volta": {
"node": "16.18.1",
diff --git a/web/src/context/Web3Provider.tsx b/web/src/context/Web3Provider.tsx
index 3fe81347d..f262c7870 100644
--- a/web/src/context/Web3Provider.tsx
+++ b/web/src/context/Web3Provider.tsx
@@ -5,26 +5,27 @@ import {
w3mProvider,
} from "@web3modal/ethereum";
import { Web3Modal } from "@web3modal/react";
-import { configureChains, createClient, WagmiConfig } from "wagmi";
+import { configureChains, createConfig, WagmiConfig } from "wagmi";
import { arbitrumGoerli, gnosisChiado } from "wagmi/chains";
const chains = [arbitrumGoerli, gnosisChiado];
const projectId = "6efaa26765fa742153baf9281e218217";
-const { provider } = configureChains(chains, [w3mProvider({ projectId })]);
-const wagmiClient = createClient({
- autoConnect: true,
+const { publicClient } = configureChains(chains, [w3mProvider({ projectId })]);
+
+const wagmiConfig = createConfig({
+ autoConnect: false,
connectors: w3mConnectors({ projectId, version: 1, chains }),
- provider,
+ publicClient,
});
-const ethereumClient = new EthereumClient(wagmiClient, chains);
+const ethereumClient = new EthereumClient(wagmiConfig, chains);
const Web3Provider: React.FC<{ children: React.ReactNode }> = ({
children,
}) => (
<>
- {children}
+ {children}
>
);
diff --git a/web/src/hooks/queries/useAppealCost.ts b/web/src/hooks/queries/useAppealCost.ts
index a078c4197..c0e15dc53 100644
--- a/web/src/hooks/queries/useAppealCost.ts
+++ b/web/src/hooks/queries/useAppealCost.ts
@@ -1,11 +1,9 @@
import useSWRImmutable from "swr/immutable";
import { BigNumber } from "ethers";
-import { useProvider } from "wagmi";
import { useKlerosCore } from "hooks/contracts/generated";
export const useAppealCost = (disputeID?: string) => {
- const provider = useProvider();
- const klerosCore = useKlerosCore({ signerOrProvider: provider });
+ const klerosCore = useKlerosCore();
return useSWRImmutable(
() => (klerosCore && disputeID ? `AppealCost${disputeID}` : false),
async () => {
diff --git a/web/src/hooks/queries/useDisputeKitClassicMultipliers.ts b/web/src/hooks/queries/useDisputeKitClassicMultipliers.ts
index 9353d6745..0fb899f90 100644
--- a/web/src/hooks/queries/useDisputeKitClassicMultipliers.ts
+++ b/web/src/hooks/queries/useDisputeKitClassicMultipliers.ts
@@ -1,13 +1,9 @@
import useSWRImmutable from "swr/immutable";
import { BigNumber } from "ethers";
-import { useProvider } from "wagmi";
import { useDisputeKitClassic } from "hooks/contracts/generated";
export const useDisputeKitClassicMultipliers = () => {
- const provider = useProvider();
- const disputeKitClassic = useDisputeKitClassic({
- signerOrProvider: provider,
- });
+ const disputeKitClassic = useDisputeKitClassic();
return useSWRImmutable(
() => (disputeKitClassic ? `Multipliers` : false),
async () => {
diff --git a/web/src/hooks/queries/useEvidenceGroup.ts b/web/src/hooks/queries/useEvidenceGroup.ts
index 39f73a182..f7773f696 100644
--- a/web/src/hooks/queries/useEvidenceGroup.ts
+++ b/web/src/hooks/queries/useEvidenceGroup.ts
@@ -1,7 +1,6 @@
import useSWRImmutable from "swr/immutable";
// import { utils } from "ethers";
import { BigNumber } from "ethers";
-import { useProvider } from "wagmi";
import { useIMetaEvidence } from "hooks/contracts/generated";
export const useEvidenceGroup = (
@@ -11,10 +10,8 @@ export const useEvidenceGroup = (
// const formattedAddress = arbitrableAddress
// ? utils.getAddress(arbitrableAddress)
// : undefined;
- const provider = useProvider({ chainId: 10_200 });
const arbitrable = useIMetaEvidence({
address: "0xc0fcc96BFd78e36550FCaB434A9EE1210B57225b",
- signerOrProvider: provider,
});
return useSWRImmutable(
() =>
diff --git a/web/src/hooks/queries/useGetMetaEvidence.ts b/web/src/hooks/queries/useGetMetaEvidence.ts
index 3131e5104..ef4fb1b1d 100644
--- a/web/src/hooks/queries/useGetMetaEvidence.ts
+++ b/web/src/hooks/queries/useGetMetaEvidence.ts
@@ -1,8 +1,7 @@
import useSWRImmutable from "swr/immutable";
// import { utils } from "ethers";
-import { BigNumber } from "ethers";
-import { useProvider } from "wagmi";
-import { useIMetaEvidence } from "hooks/contracts/generated";
+import { usePublicClient } from "wagmi";
+import { getIMetaEvidence } from "hooks/contracts/generated";
export const useGetMetaEvidence = (
disputeID?: string,
@@ -11,29 +10,27 @@ export const useGetMetaEvidence = (
// const formattedAddress = arbitrableAddress
// ? utils.getAddress(arbitrableAddress)
// : undefined;
- const provider = useProvider({ chainId: 10_200 });
- const arbitrable = useIMetaEvidence({
+ const publicClient = usePublicClient();
+ const arbitrable = getIMetaEvidence({
address: "0xc0fcc96BFd78e36550FCaB434A9EE1210B57225b",
- signerOrProvider: provider,
});
return useSWRImmutable(
() => (arbitrable ? `MetaEvidence${disputeID}${arbitrableAddress}` : false),
async () => {
if (arbitrable && typeof disputeID !== "undefined") {
- const disputeFilter = arbitrable.filters.Dispute(
- null,
- BigNumber.from(parseInt(disputeID) + 1),
- null,
- null
- );
- const disputeEvents = await arbitrable.queryFilter(disputeFilter);
- const metaEvidenceFilter = arbitrable.filters.MetaEvidence(
- disputeEvents[0].args?._metaEvidenceID,
- null
- );
- const metaEvidenceEvents = await arbitrable.queryFilter(
- metaEvidenceFilter
- );
+ const disputeFilter = await arbitrable.createEventFilter.Dispute({
+ _disputeID: BigInt(parseInt(disputeID) + 1),
+ });
+ const disputeEvents = await publicClient.getFilterLogs({
+ filter: disputeFilter,
+ });
+ const metaEvidenceFilter =
+ await arbitrable.createEventFilter.MetaEvidence({
+ _metaEvidenceID: disputeEvents[0].args._metaEvidenceID,
+ });
+ const metaEvidenceEvents = await publicClient.getFilterLogs({
+ filter: metaEvidenceFilter,
+ });
return fetch(
`https://cloudflare-ipfs.com${metaEvidenceEvents[0].args?._evidence}`
).then((res) => res.json());
diff --git a/web/src/hooks/queries/useJurorBalance.ts b/web/src/hooks/queries/useJurorBalance.ts
index e3ce1a7cd..5e1b9d9dd 100644
--- a/web/src/hooks/queries/useJurorBalance.ts
+++ b/web/src/hooks/queries/useJurorBalance.ts
@@ -1,14 +1,12 @@
import useSWR from "swr";
import { BigNumber } from "ethers";
-import { useProvider } from "wagmi";
import { useKlerosCore } from "hooks/contracts/generated";
export const useJurorBalance = (
user?: `0x${string}` | null,
courtId?: string | undefined
) => {
- const provider = useProvider();
- const klerosCore = useKlerosCore({ signerOrProvider: provider });
+ const klerosCore = useKlerosCore();
return useSWR(
() =>
klerosCore && user && courtId ? `JurorBalance{address}{courtId}` : false,
diff --git a/web/src/hooks/queries/usePNKAllowance.ts b/web/src/hooks/queries/usePNKAllowance.ts
index c6105e080..b7cc3fee4 100644
--- a/web/src/hooks/queries/usePNKAllowance.ts
+++ b/web/src/hooks/queries/usePNKAllowance.ts
@@ -21,12 +21,10 @@
// };
import useSWR from "swr";
-import { useProvider } from "wagmi";
import { usePnk, useKlerosCore } from "hooks/contracts/generated";
export const usePNKAllowance = (user?: `0x${string}` | null) => {
- const provider = useProvider();
- const pnkContract = usePnk({ signerOrProvider: provider });
+ const pnkContract = usePnk();
const klerosCore = useKlerosCore();
return useSWR(
() => (pnkContract && user ? `PNKAllowance{user}` : false),
diff --git a/web/src/hooks/queries/usePNKBalance.ts b/web/src/hooks/queries/usePNKBalance.ts
index 50b367b13..420018a17 100644
--- a/web/src/hooks/queries/usePNKBalance.ts
+++ b/web/src/hooks/queries/usePNKBalance.ts
@@ -1,10 +1,8 @@
import useSWR from "swr";
-import { useProvider } from "wagmi";
import { usePnk } from "hooks/contracts/generated";
export const usePNKBalance = (user?: `0x${string}` | null) => {
- const provider = useProvider();
- const pnkContract = usePnk({ signerOrProvider: provider });
+ const pnkContract = usePnk();
return useSWR(
() => (pnkContract && user ? `PNKBalance${user}` : false),
async () => {
diff --git a/web/src/hooks/queries/usePolicyRegistryEvent.ts b/web/src/hooks/queries/usePolicyRegistryEvent.ts
index 30f69cc11..a955f102c 100644
--- a/web/src/hooks/queries/usePolicyRegistryEvent.ts
+++ b/web/src/hooks/queries/usePolicyRegistryEvent.ts
@@ -1,13 +1,9 @@
import useSWRImmutable from "swr/immutable";
import { BigNumber } from "ethers";
-import { useProvider } from "wagmi";
import { usePolicyRegistry } from "hooks/contracts/generated";
export const usePolicyRegistryEvent = (courtID?: string | number) => {
- const provider = useProvider();
- const policyRegistry = usePolicyRegistry({
- signerOrProvider: provider,
- });
+ const policyRegistry = usePolicyRegistry();
return useSWRImmutable(
() => (policyRegistry && courtID ? `PolicyRegistry${courtID}` : false),
async () => {
diff --git a/web/wagmi.config.ts b/web/wagmi.config.ts
index 155601896..2424a62e3 100644
--- a/web/wagmi.config.ts
+++ b/web/wagmi.config.ts
@@ -1,5 +1,5 @@
import { defineConfig } from "@wagmi/cli";
-import { react } from "@wagmi/cli/plugins";
+import { react, actions } from "@wagmi/cli/plugins";
import { arbitrumGoerli } from "wagmi/chains";
import KlerosCore from "@kleros/kleros-v2-contracts/deployments/arbitrumGoerli/KlerosCore.json" assert { type: "json" };
import PNK from "@kleros/kleros-v2-contracts/deployments/arbitrumGoerli/PNK.json" assert { type: "json" };
@@ -13,28 +13,28 @@ export default defineConfig({
{
name: "KlerosCore",
address: {
- [arbitrumGoerli.id]: KlerosCore.address,
+ [arbitrumGoerli.id]: KlerosCore.address as `0x{string}`,
},
abi: KlerosCore.abi,
},
{
name: "DisputeKitClassic",
address: {
- [arbitrumGoerli.id]: DisputeKitClassic.address,
+ [arbitrumGoerli.id]: DisputeKitClassic.address as `0x{string}`,
},
abi: DisputeKitClassic.abi,
},
{
name: "PNK",
address: {
- [arbitrumGoerli.id]: PNK.address,
+ [arbitrumGoerli.id]: PNK.address as `0x{string}`,
},
abi: PNK.abi,
},
{
name: "PolicyRegistry",
address: {
- [arbitrumGoerli.id]: PolicyRegistry.address,
+ [arbitrumGoerli.id]: PolicyRegistry.address as `0x{string}`,
},
abi: PolicyRegistry.abi,
},
@@ -43,5 +43,5 @@ export default defineConfig({
abi: IMetaevidence.abi,
},
],
- plugins: [react()],
+ plugins: [react(), actions()],
});
diff --git a/yarn.lock b/yarn.lock
index f3a3aa2b3..1eb2aae3f 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1687,7 +1687,7 @@ __metadata:
languageName: node
linkType: hard
-"@coinbase/wallet-sdk@npm:^3.5.4":
+"@coinbase/wallet-sdk@npm:^3.6.6":
version: 3.7.1
resolution: "@coinbase/wallet-sdk@npm:3.7.1"
dependencies:
@@ -3860,7 +3860,7 @@ __metadata:
"@typescript-eslint/eslint-plugin": ^5.58.0
"@typescript-eslint/parser": ^5.58.0
"@typescript-eslint/utils": ^5.58.0
- "@wagmi/cli": 0.1.15
+ "@wagmi/cli": ^1.1.0
"@web3-react/core": ^6.1.9
"@web3-react/injected-connector": ^6.0.7
"@web3-react/types": ^6.0.7
@@ -3902,7 +3902,7 @@ __metadata:
swr: ^1.3.0
typescript: ^4.9.5
viem: ^0.3.48
- wagmi: 0.12.6
+ wagmi: ^1.1.0
languageName: unknown
linkType: soft
@@ -4291,7 +4291,7 @@ __metadata:
languageName: node
linkType: hard
-"@noble/secp256k1@npm:^1.6.3, @noble/secp256k1@npm:^1.7.1":
+"@noble/secp256k1@npm:^1.6.3":
version: 1.7.1
resolution: "@noble/secp256k1@npm:1.7.1"
checksum: d2301f1f7690368d8409a3152450458f27e54df47e3f917292de3de82c298770890c2de7c967d237eff9c95b70af485389a9695f73eb05a43e2bd562d18b18cb
@@ -6791,7 +6791,7 @@ __metadata:
languageName: node
linkType: hard
-"@tanstack/query-sync-storage-persister@npm:^4.14.5":
+"@tanstack/query-sync-storage-persister@npm:^4.27.1":
version: 4.29.11
resolution: "@tanstack/query-sync-storage-persister@npm:4.29.11"
dependencies:
@@ -6800,7 +6800,7 @@ __metadata:
languageName: node
linkType: hard
-"@tanstack/react-query-persist-client@npm:^4.14.5":
+"@tanstack/react-query-persist-client@npm:^4.28.0":
version: 4.29.12
resolution: "@tanstack/react-query-persist-client@npm:4.29.12"
dependencies:
@@ -6811,7 +6811,7 @@ __metadata:
languageName: node
linkType: hard
-"@tanstack/react-query@npm:^4.14.5":
+"@tanstack/react-query@npm:^4.28.0":
version: 4.29.12
resolution: "@tanstack/react-query@npm:4.29.12"
dependencies:
@@ -8001,30 +8001,6 @@ __metadata:
languageName: node
linkType: hard
-"@wagmi/chains@npm:0.2.14":
- version: 0.2.14
- resolution: "@wagmi/chains@npm:0.2.14"
- peerDependencies:
- typescript: ">=4.9.4"
- peerDependenciesMeta:
- typescript:
- optional: true
- checksum: c2fbb6b886bec5715354dcca536579f9e416b8330ab2bae615148f9780d4da0b8e4ff12e1faee2e9a5f06c5c7803318c21e6f09667124e766071e871f1b86bd2
- languageName: node
- linkType: hard
-
-"@wagmi/chains@npm:0.2.17":
- version: 0.2.17
- resolution: "@wagmi/chains@npm:0.2.17"
- peerDependencies:
- typescript: ">=4.9.4"
- peerDependenciesMeta:
- typescript:
- optional: true
- checksum: 5290abb032596568c6abf7aafc979aaf5d78abdfdeb887f22a138d763ebd085d677e7ecf4cb7d8329a1976c76a0fe4f1b5be988ad57a1ce745ab97d19736009e
- languageName: node
- linkType: hard
-
"@wagmi/chains@npm:1.0.0":
version: 1.0.0
resolution: "@wagmi/chains@npm:1.0.0"
@@ -8037,24 +8013,12 @@ __metadata:
languageName: node
linkType: hard
-"@wagmi/chains@npm:~0.2.11":
- version: 0.2.25
- resolution: "@wagmi/chains@npm:0.2.25"
- peerDependencies:
- typescript: ">=4.9.4"
- peerDependenciesMeta:
- typescript:
- optional: true
- checksum: 342870d13b974359de016a7a7e5231cd4cc0dac29020eb3fc4e5947b0460f4d0f3387ff0e7bac7dd0abfea539580d7ea39297705cad83dede3ace040fdc3e230
- languageName: node
- linkType: hard
-
-"@wagmi/cli@npm:0.1.15":
- version: 0.1.15
- resolution: "@wagmi/cli@npm:0.1.15"
+"@wagmi/cli@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "@wagmi/cli@npm:1.1.0"
dependencies:
- "@wagmi/chains": 0.2.17
- abitype: ^0.3.0
+ "@wagmi/chains": 1.0.0
+ abitype: 0.8.7
abort-controller: ^3.0.0
bundle-require: ^3.1.2
cac: ^6.7.12
@@ -8074,12 +8038,12 @@ __metadata:
pathe: ^1.0.0
picocolors: ^1.0.0
prettier: ^2.8.1
- viem: ^0.1.14
- zod: ^3.20.2
+ viem: ~0.3.35
+ zod: ^3.21.4
peerDependencies:
- "@wagmi/core": ">=0.9"
- typescript: ">=4.9.4"
- wagmi: ">=0.11"
+ "@wagmi/core": ">=1.0.0"
+ typescript: ">=5.0.4"
+ wagmi: ">=1.0.0"
peerDependenciesMeta:
"@wagmi/core":
optional: true
@@ -8089,52 +8053,52 @@ __metadata:
optional: true
bin:
wagmi: dist/cli.js
- checksum: 319b671c3a9e19ba3e28bdf1a64859bcf8dc7ddd77a499db3dbd47d410deb1fae80a95dbc79f574d4a33783f6f9bb05744a1fe15fea7c536f5624e5f40591ea2
+ checksum: 775324c65abb75cbd6504467c211f50931fb742ce30f1ba11d40cd20103dad0d07da98bfba6f7c6e29c22dc5b94c48c4f2e35bfebb3c1f7688d563eb7963fe6c
languageName: node
linkType: hard
-"@wagmi/connectors@npm:0.3.8":
- version: 0.3.8
- resolution: "@wagmi/connectors@npm:0.3.8"
+"@wagmi/connectors@npm:2.1.0":
+ version: 2.1.0
+ resolution: "@wagmi/connectors@npm:2.1.0"
dependencies:
- "@coinbase/wallet-sdk": ^3.5.4
+ "@coinbase/wallet-sdk": ^3.6.6
"@ledgerhq/connect-kit-loader": ^1.0.1
"@safe-global/safe-apps-provider": ^0.15.2
"@safe-global/safe-apps-sdk": ^7.9.0
- "@walletconnect/ethereum-provider": ^2.5.1
+ "@walletconnect/ethereum-provider": 2.7.7
"@walletconnect/legacy-provider": ^2.0.0
- "@web3modal/standalone": ^2.2.1
- abitype: ^0.3.0
+ "@web3modal/standalone": ^2.4.2
+ abitype: 0.8.7
eventemitter3: ^4.0.7
peerDependencies:
- "@wagmi/core": ">=0.9.x"
- ethers: ">=5.5.1 <6"
- typescript: ">=4.9.4"
+ "@wagmi/chains": ">=1.0.0"
+ typescript: ">=5.0.4"
+ viem: ~0.3.35
peerDependenciesMeta:
- "@wagmi/core":
+ "@wagmi/chains":
optional: true
typescript:
optional: true
- checksum: dcb5bbbbed55b66ac736c679905b9bce6bfff3300efe1bdc1571c39e8d154f7c1393d75df3cd0f426a6d35363ec1ccbe71932fe05dada2e222c1d3a744524f77
+ checksum: d30b8de02ec3a11ddd081782b5df62ec50b76a01c6f0bcc945500a7dfd53b603d065223b5eb98ead65f5cb82cf2da2d277064f241f77ca9e064c15bdb43bb1c8
languageName: node
linkType: hard
-"@wagmi/core@npm:0.10.6":
- version: 0.10.6
- resolution: "@wagmi/core@npm:0.10.6"
+"@wagmi/core@npm:1.1.0":
+ version: 1.1.0
+ resolution: "@wagmi/core@npm:1.1.0"
dependencies:
- "@wagmi/chains": 0.2.14
- "@wagmi/connectors": 0.3.8
- abitype: ^0.3.0
+ "@wagmi/chains": 1.0.0
+ "@wagmi/connectors": 2.1.0
+ abitype: 0.8.7
eventemitter3: ^4.0.7
zustand: ^4.3.1
peerDependencies:
- ethers: ">=5.5.1 <6"
- typescript: ">=4.9.4"
+ typescript: ">=5.0.4"
+ viem: ~0.3.35
peerDependenciesMeta:
typescript:
optional: true
- checksum: 9b52a213b29c75916539232ae41b09e438ba41f1f948a4d69b25193bc16d0114a5005f38b8a0d777e0ecc8a6e6e69689c3ae46a22b42f377fedf581076aa6a9f
+ checksum: 57a35a3d9ee5bb6eadae50b6ab627c82514bd1434720cc0b426200cb1701799d248558f71014b15887189a5fe838be84e5448a3706c346e4b3185540b0ae2185
languageName: node
linkType: hard
@@ -8196,7 +8160,7 @@ __metadata:
languageName: node
linkType: hard
-"@walletconnect/ethereum-provider@npm:^2.5.1":
+"@walletconnect/ethereum-provider@npm:2.7.7":
version: 2.7.7
resolution: "@walletconnect/ethereum-provider@npm:2.7.7"
dependencies:
@@ -8678,7 +8642,7 @@ __metadata:
languageName: node
linkType: hard
-"@web3modal/standalone@npm:^2.2.1":
+"@web3modal/standalone@npm:^2.4.2":
version: 2.4.2
resolution: "@web3modal/standalone@npm:2.4.2"
dependencies:
@@ -9020,32 +8984,6 @@ __metadata:
languageName: node
linkType: hard
-"abitype@npm:^0.3.0":
- version: 0.3.0
- resolution: "abitype@npm:0.3.0"
- peerDependencies:
- typescript: ">=4.9.4"
- zod: ">=3.19.1"
- peerDependenciesMeta:
- zod:
- optional: true
- checksum: d7f604d917d0ffddc0a7865c24db78585d257202500a70b99c63da659fe299148778fcb78b31e9dbc2d213d69475880702cb05be22eaa0a49e22c73672dd97e1
- languageName: node
- linkType: hard
-
-"abitype@npm:~0.7.1":
- version: 0.7.1
- resolution: "abitype@npm:0.7.1"
- peerDependencies:
- typescript: ">=4.9.4"
- zod: ^3 >=3.19.1
- peerDependenciesMeta:
- zod:
- optional: true
- checksum: de0d7082d28a4835b3d8dc4d8c75e9222c95a1f9eed13d6b2381403b46f46b68ea7a281e8ba6628d259a98c54ea466ebc206eec21db6205fa1641c7393854f5e
- languageName: node
- linkType: hard
-
"abort-controller@npm:^3.0.0":
version: 3.0.0
resolution: "abort-controller@npm:3.0.0"
@@ -17075,15 +17013,6 @@ __metadata:
languageName: node
linkType: hard
-"idna-uts46-hx@npm:^4.1.2":
- version: 4.1.2
- resolution: "idna-uts46-hx@npm:4.1.2"
- dependencies:
- punycode: ^2.1.1
- checksum: 97772ba4e517ccf19e4552d09f1b9cccca2e6b8a3f8dd66fc5caccd1dbc41e3ff1915d899b7e9ffd518f4f2958e638d5bc6d3728f859510d64e417a7664f928a
- languageName: node
- linkType: hard
-
"ieee754@npm:^1.1.13, ieee754@npm:^1.2.1":
version: 1.2.1
resolution: "ieee754@npm:1.2.1"
@@ -18063,7 +17992,7 @@ __metadata:
languageName: node
linkType: hard
-"isomorphic-ws@npm:5.0.0, isomorphic-ws@npm:^5.0.0":
+"isomorphic-ws@npm:5.0.0":
version: 5.0.0
resolution: "isomorphic-ws@npm:5.0.0"
peerDependencies:
@@ -28386,21 +28315,6 @@ __metadata:
languageName: node
linkType: hard
-"viem@npm:^0.1.14":
- version: 0.1.26
- resolution: "viem@npm:0.1.26"
- dependencies:
- "@noble/hashes": ^1.1.2
- "@noble/secp256k1": ^1.7.1
- "@wagmi/chains": ~0.2.11
- abitype: ~0.7.1
- idna-uts46-hx: ^4.1.2
- isomorphic-ws: ^5.0.0
- ws: ^8.12.0
- checksum: 4c3d6c832770f2a9139941d711d2ba70c510cbf6b0f4ce9cc85b6789a34d5b3f784ced3a66e7cdc6b413b74ea54f0fa7e4aa8608e34bf0d55a8744a0133d8bc2
- languageName: node
- linkType: hard
-
"viem@npm:^0.3.48":
version: 0.3.48
resolution: "viem@npm:0.3.48"
@@ -28418,6 +28332,23 @@ __metadata:
languageName: node
linkType: hard
+"viem@npm:~0.3.35":
+ version: 0.3.49
+ resolution: "viem@npm:0.3.49"
+ dependencies:
+ "@adraffy/ens-normalize": 1.9.0
+ "@noble/curves": 1.0.0
+ "@noble/hashes": 1.3.0
+ "@scure/bip32": 1.3.0
+ "@scure/bip39": 1.2.0
+ "@wagmi/chains": 1.0.0
+ abitype: 0.8.7
+ isomorphic-ws: 5.0.0
+ ws: 8.12.0
+ checksum: fa1a071c64d7dc2dcfa52d2d747a7c276ba487f54b0b686e543178d98b9bdd2699fe00c426f194f2b11da6397b12a7305c68d53caa81798e2d9c12abdfb47f8b
+ languageName: node
+ linkType: hard
+
"vue-hot-reload-api@npm:^2.3.0":
version: 2.3.4
resolution: "vue-hot-reload-api@npm:2.3.4"
@@ -28508,24 +28439,24 @@ __metadata:
languageName: node
linkType: hard
-"wagmi@npm:0.12.6":
- version: 0.12.6
- resolution: "wagmi@npm:0.12.6"
+"wagmi@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "wagmi@npm:1.1.0"
dependencies:
- "@tanstack/query-sync-storage-persister": ^4.14.5
- "@tanstack/react-query": ^4.14.5
- "@tanstack/react-query-persist-client": ^4.14.5
- "@wagmi/core": 0.10.6
- abitype: ^0.3.0
+ "@tanstack/query-sync-storage-persister": ^4.27.1
+ "@tanstack/react-query": ^4.28.0
+ "@tanstack/react-query-persist-client": ^4.28.0
+ "@wagmi/core": 1.1.0
+ abitype: 0.8.7
use-sync-external-store: ^1.2.0
peerDependencies:
- ethers: ">=5.5.1 <6"
react: ">=17.0.0"
- typescript: ">=4.9.4"
+ typescript: ">=5.0.4"
+ viem: ~0.3.35
peerDependenciesMeta:
typescript:
optional: true
- checksum: 4e12fbdc2b56e80de2a98bb0ab296e8ad3a857c58565b9d580c993b774051766402fd34a26b751bc823308d485ac8c178eaff052b1befafce3d27157198d1339
+ checksum: 696812399dcbb86e62d65931580ab5118be57168d560dfeb6b49c55af8526cc849b1e906f4dac2567ea3aec371db53890e497e5cab012c6c09fcb08e068729a9
languageName: node
linkType: hard
@@ -29323,9 +29254,9 @@ __metadata:
languageName: node
linkType: hard
-"ws@npm:^8.12.0, ws@npm:^8.5.0":
- version: 8.13.0
- resolution: "ws@npm:8.13.0"
+"ws@npm:^8.4.2":
+ version: 8.12.1
+ resolution: "ws@npm:8.12.1"
peerDependencies:
bufferutil: ^4.0.1
utf-8-validate: ">=5.0.2"
@@ -29334,13 +29265,13 @@ __metadata:
optional: true
utf-8-validate:
optional: true
- checksum: 53e991bbf928faf5dc6efac9b8eb9ab6497c69feeb94f963d648b7a3530a720b19ec2e0ec037344257e05a4f35bd9ad04d9de6f289615ffb133282031b18c61c
+ checksum: 97301c1c4d838fc81bd413f370f75c12aabe44527b31323b761eab3043a9ecb7e32ffd668548382c9a6a5ad3a1c3a9249608e8338e6b939f2f9540f1e21970b5
languageName: node
linkType: hard
-"ws@npm:^8.4.2":
- version: 8.12.1
- resolution: "ws@npm:8.12.1"
+"ws@npm:^8.5.0":
+ version: 8.13.0
+ resolution: "ws@npm:8.13.0"
peerDependencies:
bufferutil: ^4.0.1
utf-8-validate: ">=5.0.2"
@@ -29349,7 +29280,7 @@ __metadata:
optional: true
utf-8-validate:
optional: true
- checksum: 97301c1c4d838fc81bd413f370f75c12aabe44527b31323b761eab3043a9ecb7e32ffd668548382c9a6a5ad3a1c3a9249608e8338e6b939f2f9540f1e21970b5
+ checksum: 53e991bbf928faf5dc6efac9b8eb9ab6497c69feeb94f963d648b7a3530a720b19ec2e0ec037344257e05a4f35bd9ad04d9de6f289615ffb133282031b18c61c
languageName: node
linkType: hard
@@ -29605,7 +29536,7 @@ __metadata:
languageName: node
linkType: hard
-"zod@npm:^3.20.2":
+"zod@npm:^3.21.4":
version: 3.21.4
resolution: "zod@npm:3.21.4"
checksum: f185ba87342ff16f7a06686767c2b2a7af41110c7edf7c1974095d8db7a73792696bcb4a00853de0d2edeb34a5b2ea6a55871bc864227dace682a0a28de33e1f
From 84da0e9dfb2ce6143a8652996193fffde9af0919 Mon Sep 17 00:00:00 2001
From: marino <102478601+kemuru@users.noreply.github.com>
Date: Thu, 8 Jun 2023 17:00:07 +0100
Subject: [PATCH 06/41] refactor: jurorbalance, policyregistry &
disputekitclassic hooks
---
.../useDisputeKitClassicMultipliers.ts | 17 ++++++-------
web/src/hooks/queries/useJurorBalance.ts | 7 +++---
.../hooks/queries/usePolicyRegistryEvent.ts | 25 ++++++++++---------
3 files changed, 24 insertions(+), 25 deletions(-)
diff --git a/web/src/hooks/queries/useDisputeKitClassicMultipliers.ts b/web/src/hooks/queries/useDisputeKitClassicMultipliers.ts
index 194bb126d..6c81ac74d 100644
--- a/web/src/hooks/queries/useDisputeKitClassicMultipliers.ts
+++ b/web/src/hooks/queries/useDisputeKitClassicMultipliers.ts
@@ -1,16 +1,15 @@
import useSWRImmutable from "swr/immutable";
-import { BigNumber } from "ethers";
-import { useDisputeKitClassic } from "hooks/contracts/generated";
+import { getDisputeKitClassic } from "hooks/contracts/generated";
export const useDisputeKitClassicMultipliers = () => {
- const disputeKitClassic = useDisputeKitClassic();
+ const disputeKitClassic = getDisputeKitClassic({});
return useSWRImmutable(
() => (disputeKitClassic ? `Multipliers` : false),
async () => {
if (!disputeKitClassic) return;
- const winner_stake_multiplier = await disputeKitClassic.WINNER_STAKE_MULTIPLIER();
- const loser_stake_multiplier = await disputeKitClassic.LOSER_STAKE_MULTIPLIER();
- const loser_appeal_period_multiplier = await disputeKitClassic.LOSER_APPEAL_PERIOD_MULTIPLIER();
+ const winner_stake_multiplier = await disputeKitClassic.read.WINNER_STAKE_MULTIPLIER();
+ const loser_stake_multiplier = await disputeKitClassic.read.LOSER_STAKE_MULTIPLIER();
+ const loser_appeal_period_multiplier = await disputeKitClassic.read.LOSER_APPEAL_PERIOD_MULTIPLIER();
return {
winner_stake_multiplier,
loser_stake_multiplier,
@@ -21,7 +20,7 @@ export const useDisputeKitClassicMultipliers = () => {
};
export interface IDisputeKitClassicMultipliers {
- winner_stake_multiplier: BigNumber;
- loser_stake_multiplier: BigNumber;
- loser_appeal_period_multiplier: BigNumber;
+ winner_stake_multiplier: bigint;
+ loser_stake_multiplier: bigint;
+ loser_appeal_period_multiplier: bigint;
}
diff --git a/web/src/hooks/queries/useJurorBalance.ts b/web/src/hooks/queries/useJurorBalance.ts
index 1ef093dae..91f94cb2f 100644
--- a/web/src/hooks/queries/useJurorBalance.ts
+++ b/web/src/hooks/queries/useJurorBalance.ts
@@ -1,14 +1,13 @@
import useSWR from "swr";
-import { BigNumber } from "ethers";
-import { useKlerosCore } from "hooks/contracts/generated";
+import { getKlerosCore } from "hooks/contracts/generated";
export const useJurorBalance = (user?: `0x${string}` | null, courtId?: string | undefined) => {
- const klerosCore = useKlerosCore();
+ const klerosCore = getKlerosCore({});
return useSWR(
() => (klerosCore && user && courtId ? `JurorBalance${user}${courtId}` : false),
async () => {
if (klerosCore && user && courtId) {
- return await klerosCore.getJurorBalance(user, BigNumber.from(courtId));
+ return await klerosCore.read.getJurorBalance([user, BigInt(courtId)]);
} else {
return undefined;
}
diff --git a/web/src/hooks/queries/usePolicyRegistryEvent.ts b/web/src/hooks/queries/usePolicyRegistryEvent.ts
index a955f102c..487ba393b 100644
--- a/web/src/hooks/queries/usePolicyRegistryEvent.ts
+++ b/web/src/hooks/queries/usePolicyRegistryEvent.ts
@@ -1,21 +1,22 @@
import useSWRImmutable from "swr/immutable";
-import { BigNumber } from "ethers";
-import { usePolicyRegistry } from "hooks/contracts/generated";
+import { getPolicyRegistry } from "hooks/contracts/generated";
+import { usePublicClient } from "wagmi";
export const usePolicyRegistryEvent = (courtID?: string | number) => {
- const policyRegistry = usePolicyRegistry();
+ const policyRegistry = getPolicyRegistry({});
+ const publicClient = usePublicClient();
+
return useSWRImmutable(
() => (policyRegistry && courtID ? `PolicyRegistry${courtID}` : false),
async () => {
- if (policyRegistry) {
- const policyFilter = policyRegistry.filters.PolicyUpdate(
- BigNumber.from(courtID),
- null,
- null
- );
- return policyRegistry
- .queryFilter(policyFilter)
- .then((events) => events[0]);
+ if (policyRegistry && courtID) {
+ const policyFilter = await policyRegistry.createEventFilter.PolicyUpdate({
+ _courtID: BigInt(courtID),
+ });
+ const policyUpdateEvents = await publicClient.getFilterLogs({
+ filter: policyFilter,
+ });
+ return policyUpdateEvents[0];
} else throw Error;
}
);
From 0c57e6bd510fa01eafd025f586e7f102f2bd42a9 Mon Sep 17 00:00:00 2001
From: marino <102478601+kemuru@users.noreply.github.com>
Date: Thu, 8 Jun 2023 18:08:38 +0100
Subject: [PATCH 07/41] fix: hook import order
---
web/src/hooks/queries/usePolicyRegistryEvent.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/web/src/hooks/queries/usePolicyRegistryEvent.ts b/web/src/hooks/queries/usePolicyRegistryEvent.ts
index 487ba393b..4808d2c6e 100644
--- a/web/src/hooks/queries/usePolicyRegistryEvent.ts
+++ b/web/src/hooks/queries/usePolicyRegistryEvent.ts
@@ -1,6 +1,6 @@
import useSWRImmutable from "swr/immutable";
-import { getPolicyRegistry } from "hooks/contracts/generated";
import { usePublicClient } from "wagmi";
+import { getPolicyRegistry } from "hooks/contracts/generated";
export const usePolicyRegistryEvent = (courtID?: string | number) => {
const policyRegistry = getPolicyRegistry({});
From 8833a1e499322db1417aceeb31ae04b2f4a388c2 Mon Sep 17 00:00:00 2001
From: alcercu <333aleix333@gmail.com>
Date: Fri, 9 Jun 2023 09:56:59 +0200
Subject: [PATCH 08/41] feat(web): migrate queries to wagmi
---
web/src/hooks/queries/useAppealCost.ts | 7 +++----
web/src/hooks/queries/usePNKAllowance.ts | 8 ++++----
2 files changed, 7 insertions(+), 8 deletions(-)
diff --git a/web/src/hooks/queries/useAppealCost.ts b/web/src/hooks/queries/useAppealCost.ts
index c0e15dc53..433254b3f 100644
--- a/web/src/hooks/queries/useAppealCost.ts
+++ b/web/src/hooks/queries/useAppealCost.ts
@@ -1,14 +1,13 @@
import useSWRImmutable from "swr/immutable";
-import { BigNumber } from "ethers";
-import { useKlerosCore } from "hooks/contracts/generated";
+import { getKlerosCore } from "hooks/contracts/generated";
export const useAppealCost = (disputeID?: string) => {
- const klerosCore = useKlerosCore();
+ const klerosCore = getKlerosCore({});
return useSWRImmutable(
() => (klerosCore && disputeID ? `AppealCost${disputeID}` : false),
async () => {
if (!klerosCore || typeof disputeID === "undefined") return;
- return await klerosCore.appealCost(BigNumber.from(disputeID));
+ return await klerosCore.read.appealCost([BigInt(disputeID)]);
}
);
};
diff --git a/web/src/hooks/queries/usePNKAllowance.ts b/web/src/hooks/queries/usePNKAllowance.ts
index 247f04eb2..f1cd49c18 100644
--- a/web/src/hooks/queries/usePNKAllowance.ts
+++ b/web/src/hooks/queries/usePNKAllowance.ts
@@ -21,16 +21,16 @@
// };
import useSWR from "swr";
-import { usePnk, useKlerosCore } from "hooks/contracts/generated";
+import { getPnk, getKlerosCore } from "hooks/contracts/generated";
export const usePNKAllowance = (user?: `0x${string}` | null) => {
- const pnkContract = usePnk();
- const klerosCore = useKlerosCore();
+ const pnkContract = getPnk({});
+ const klerosCore = getKlerosCore({});
return useSWR(
() => (pnkContract && user ? `PNKAllowance${user}` : false),
async () => {
if (pnkContract && user && klerosCore) {
- return await pnkContract.allowance(user, klerosCore.address);
+ return await pnkContract.read.allowance([user, klerosCore.address]);
} else {
return undefined;
}
From 3f637bbb4ba9fb021b46d57db6ad7b1d4112f58b Mon Sep 17 00:00:00 2001
From: nhestrompia
Date: Fri, 9 Jun 2023 11:00:36 +0300
Subject: [PATCH 09/41] refactor: migrate hooks to viem/wagmi
---
web/src/hooks/queries/useEvidenceGroup.ts | 51 +++++++++++++++--------
web/src/hooks/queries/usePNKBalance.ts | 7 ++--
2 files changed, 37 insertions(+), 21 deletions(-)
diff --git a/web/src/hooks/queries/useEvidenceGroup.ts b/web/src/hooks/queries/useEvidenceGroup.ts
index f7773f696..a0067c9ca 100644
--- a/web/src/hooks/queries/useEvidenceGroup.ts
+++ b/web/src/hooks/queries/useEvidenceGroup.ts
@@ -1,31 +1,46 @@
import useSWRImmutable from "swr/immutable";
-// import { utils } from "ethers";
-import { BigNumber } from "ethers";
-import { useIMetaEvidence } from "hooks/contracts/generated";
+import { getIMetaEvidence, iMetaEvidenceABI } from "hooks/contracts/generated";
+import { usePublicClient } from "wagmi";
+import { parseAbiItem } from "viem";
-export const useEvidenceGroup = (
- disputeID?: string,
- arbitrableAddress?: string
-) => {
+export const useEvidenceGroup = (disputeID?: string, arbitrableAddress?: string) => {
// const formattedAddress = arbitrableAddress
// ? utils.getAddress(arbitrableAddress)
// : undefined;
- const arbitrable = useIMetaEvidence({
+ const publicClient = usePublicClient();
+
+ const arbitrable = getIMetaEvidence({
address: "0xc0fcc96BFd78e36550FCaB434A9EE1210B57225b",
});
+ console.log("🚀 ~ file: useEvidenceGroup.ts:14 ~ useEvidenceGroup ~ arbitrable:", arbitrable);
+ console.log("_disputeID", disputeID);
+
return useSWRImmutable(
- () =>
- arbitrable ? `EvidenceGroup${disputeID}${arbitrableAddress}` : false,
+ () => (arbitrable ? `EvidenceGroup${disputeID}${arbitrableAddress}` : false),
async () => {
if (arbitrable) {
- const disputeFilter = arbitrable.filters.Dispute(
- null,
- BigNumber.from(parseInt(disputeID!) + 1),
- null,
- null
- );
- const disputeEvents = await arbitrable.queryFilter(disputeFilter);
- return disputeEvents[0].args?._evidenceGroupID.toString();
+ const disputeFilter = await arbitrable.createEventFilter.Dispute({
+ _disputeID: BigInt(parseInt(disputeID!) + 1),
+ });
+ // const disputeFilter = await publicClient.createContractEventFilter({
+ // abi: iMetaEvidenceABI,
+ // address: "0xc0fcc96BFd78e36550FCaB434A9EE1210B57225b",
+ // eventName: "Dispute",
+ // args: {
+ // _disputeID: BigInt(parseInt(disputeID!) + 1),
+ // },
+ // });
+ // const disputeFilter = await publicClient.createEventFilter({
+ // address: "0xc0fcc96BFd78e36550FCaB434A9EE1210B57225b",
+ // event: parseAbiItem('event Dispute(IArbitrator indexed _arbitrator, uint256 indexed _disputeID, uint256 _metaEvidenceID, uint256 _evidenceGroupID)'),
+ // args:{_disputeId: BigInt(parseInt(disputeID!) + 1)
+ // }
+ // });
+
+ const disputeEvents = await publicClient.getFilterLogs({
+ filter: disputeFilter,
+ });
+ return disputeEvents[0];
} else throw Error;
}
);
diff --git a/web/src/hooks/queries/usePNKBalance.ts b/web/src/hooks/queries/usePNKBalance.ts
index 420018a17..0d1ad50fc 100644
--- a/web/src/hooks/queries/usePNKBalance.ts
+++ b/web/src/hooks/queries/usePNKBalance.ts
@@ -1,13 +1,14 @@
import useSWR from "swr";
-import { usePnk } from "hooks/contracts/generated";
+import { getPnk } from "hooks/contracts/generated";
export const usePNKBalance = (user?: `0x${string}` | null) => {
- const pnkContract = usePnk();
+ const pnkContract = getPnk({});
+
return useSWR(
() => (pnkContract && user ? `PNKBalance${user}` : false),
async () => {
if (pnkContract && user) {
- const balance = await pnkContract.balanceOf(user);
+ const balance = await pnkContract.read.balanceOf([user]);
return balance;
} else {
return undefined;
From 05b01a411163cd21ab0fec542d58e8c04483add0 Mon Sep 17 00:00:00 2001
From: nhestrompia
Date: Fri, 9 Jun 2023 11:37:40 +0300
Subject: [PATCH 10/41] fix: change publicClient provider
---
web/src/context/Web3Provider.tsx | 13 ++++---------
web/src/hooks/queries/useEvidenceGroup.ts | 20 ++------------------
2 files changed, 6 insertions(+), 27 deletions(-)
diff --git a/web/src/context/Web3Provider.tsx b/web/src/context/Web3Provider.tsx
index f262c7870..adadc0fa4 100644
--- a/web/src/context/Web3Provider.tsx
+++ b/web/src/context/Web3Provider.tsx
@@ -1,9 +1,6 @@
import React from "react";
-import {
- EthereumClient,
- w3mConnectors,
- w3mProvider,
-} from "@web3modal/ethereum";
+import { EthereumClient, w3mConnectors } from "@web3modal/ethereum";
+import { alchemyProvider } from "@wagmi/core/providers/alchemy";
import { Web3Modal } from "@web3modal/react";
import { configureChains, createConfig, WagmiConfig } from "wagmi";
import { arbitrumGoerli, gnosisChiado } from "wagmi/chains";
@@ -11,7 +8,7 @@ import { arbitrumGoerli, gnosisChiado } from "wagmi/chains";
const chains = [arbitrumGoerli, gnosisChiado];
const projectId = "6efaa26765fa742153baf9281e218217";
-const { publicClient } = configureChains(chains, [w3mProvider({ projectId })]);
+const { publicClient } = configureChains(chains, [alchemyProvider({ apiKey: "" })]);
const wagmiConfig = createConfig({
autoConnect: false,
@@ -21,9 +18,7 @@ const wagmiConfig = createConfig({
const ethereumClient = new EthereumClient(wagmiConfig, chains);
-const Web3Provider: React.FC<{ children: React.ReactNode }> = ({
- children,
-}) => (
+const Web3Provider: React.FC<{ children: React.ReactNode }> = ({ children }) => (
<>
{children}
diff --git a/web/src/hooks/queries/useEvidenceGroup.ts b/web/src/hooks/queries/useEvidenceGroup.ts
index a0067c9ca..9f8f8b4d1 100644
--- a/web/src/hooks/queries/useEvidenceGroup.ts
+++ b/web/src/hooks/queries/useEvidenceGroup.ts
@@ -1,7 +1,6 @@
import useSWRImmutable from "swr/immutable";
-import { getIMetaEvidence, iMetaEvidenceABI } from "hooks/contracts/generated";
+import { getIMetaEvidence } from "hooks/contracts/generated";
import { usePublicClient } from "wagmi";
-import { parseAbiItem } from "viem";
export const useEvidenceGroup = (disputeID?: string, arbitrableAddress?: string) => {
// const formattedAddress = arbitrableAddress
@@ -12,8 +11,6 @@ export const useEvidenceGroup = (disputeID?: string, arbitrableAddress?: string)
const arbitrable = getIMetaEvidence({
address: "0xc0fcc96BFd78e36550FCaB434A9EE1210B57225b",
});
- console.log("🚀 ~ file: useEvidenceGroup.ts:14 ~ useEvidenceGroup ~ arbitrable:", arbitrable);
- console.log("_disputeID", disputeID);
return useSWRImmutable(
() => (arbitrable ? `EvidenceGroup${disputeID}${arbitrableAddress}` : false),
@@ -22,24 +19,11 @@ export const useEvidenceGroup = (disputeID?: string, arbitrableAddress?: string)
const disputeFilter = await arbitrable.createEventFilter.Dispute({
_disputeID: BigInt(parseInt(disputeID!) + 1),
});
- // const disputeFilter = await publicClient.createContractEventFilter({
- // abi: iMetaEvidenceABI,
- // address: "0xc0fcc96BFd78e36550FCaB434A9EE1210B57225b",
- // eventName: "Dispute",
- // args: {
- // _disputeID: BigInt(parseInt(disputeID!) + 1),
- // },
- // });
- // const disputeFilter = await publicClient.createEventFilter({
- // address: "0xc0fcc96BFd78e36550FCaB434A9EE1210B57225b",
- // event: parseAbiItem('event Dispute(IArbitrator indexed _arbitrator, uint256 indexed _disputeID, uint256 _metaEvidenceID, uint256 _evidenceGroupID)'),
- // args:{_disputeId: BigInt(parseInt(disputeID!) + 1)
- // }
- // });
const disputeEvents = await publicClient.getFilterLogs({
filter: disputeFilter,
});
+
return disputeEvents[0];
} else throw Error;
}
From 09e8890f8b1d545693f60ead1ad4fffdad5cdd94 Mon Sep 17 00:00:00 2001
From: nhestrompia
Date: Fri, 9 Jun 2023 11:46:55 +0300
Subject: [PATCH 11/41] fix: provider error
---
web/src/context/Web3Provider.tsx | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/web/src/context/Web3Provider.tsx b/web/src/context/Web3Provider.tsx
index adadc0fa4..96abbc3c5 100644
--- a/web/src/context/Web3Provider.tsx
+++ b/web/src/context/Web3Provider.tsx
@@ -4,11 +4,12 @@ import { alchemyProvider } from "@wagmi/core/providers/alchemy";
import { Web3Modal } from "@web3modal/react";
import { configureChains, createConfig, WagmiConfig } from "wagmi";
import { arbitrumGoerli, gnosisChiado } from "wagmi/chains";
+import { publicProvider } from "wagmi/providers/public";
const chains = [arbitrumGoerli, gnosisChiado];
const projectId = "6efaa26765fa742153baf9281e218217";
-const { publicClient } = configureChains(chains, [alchemyProvider({ apiKey: "" })]);
+const { publicClient } = configureChains(chains, [alchemyProvider({ apiKey: "" }), publicProvider()]);
const wagmiConfig = createConfig({
autoConnect: false,
From 2de836f0d99d7d2eac5322dd0f3bd2a69ed73a48 Mon Sep 17 00:00:00 2001
From: marino <102478601+kemuru@users.noreply.github.com>
Date: Fri, 9 Jun 2023 10:01:19 +0100
Subject: [PATCH 12/41] fix: fix provider
---
web/src/context/Web3Provider.tsx | 14 +++++---------
1 file changed, 5 insertions(+), 9 deletions(-)
diff --git a/web/src/context/Web3Provider.tsx b/web/src/context/Web3Provider.tsx
index f262c7870..85d9f9ea7 100644
--- a/web/src/context/Web3Provider.tsx
+++ b/web/src/context/Web3Provider.tsx
@@ -1,17 +1,15 @@
import React from "react";
-import {
- EthereumClient,
- w3mConnectors,
- w3mProvider,
-} from "@web3modal/ethereum";
+import { EthereumClient, w3mConnectors } from "@web3modal/ethereum";
import { Web3Modal } from "@web3modal/react";
import { configureChains, createConfig, WagmiConfig } from "wagmi";
import { arbitrumGoerli, gnosisChiado } from "wagmi/chains";
+import { publicProvider } from "wagmi/providers/public";
+import { alchemyProvider } from "wagmi/dist/providers/alchemy";
const chains = [arbitrumGoerli, gnosisChiado];
const projectId = "6efaa26765fa742153baf9281e218217";
-const { publicClient } = configureChains(chains, [w3mProvider({ projectId })]);
+const { publicClient } = configureChains(chains, [alchemyProvider({ apiKey: "" }), publicProvider()]);
const wagmiConfig = createConfig({
autoConnect: false,
@@ -21,9 +19,7 @@ const wagmiConfig = createConfig({
const ethereumClient = new EthereumClient(wagmiConfig, chains);
-const Web3Provider: React.FC<{ children: React.ReactNode }> = ({
- children,
-}) => (
+const Web3Provider: React.FC<{ children: React.ReactNode }> = ({ children }) => (
<>
{children}
From c16be0261b54be437f9b74baf2ddc76d3b31e802 Mon Sep 17 00:00:00 2001
From: marino <102478601+kemuru@users.noreply.github.com>
Date: Sat, 10 Jun 2023 11:09:32 +0100
Subject: [PATCH 13/41] refactor: started migration
---
web/src/hooks/useParsedAmount.ts | 12 ++-
.../Cases/CaseDetails/Appeal/Classic/Fund.tsx | 21 ++---
.../Appeal/Classic/Options/StageOne.tsx | 18 +----
.../Appeal/Classic/Options/StageTwo.tsx | 27 ++-----
.../Cases/CaseDetails/Appeal/OptionCard.tsx | 18 ++---
.../Evidence/SubmitEvidenceModal.tsx | 7 +-
.../pages/Cases/CaseDetails/Voting/Binary.tsx | 76 +++++++------------
.../CourtDetails/StakePanel/InputDisplay.tsx | 16 ++--
.../StakePanel/JurorStakeDisplay.tsx | 4 +-
.../StakePanel/StakeWithdrawButton.tsx | 38 +++-------
web/src/pages/Courts/CourtDetails/Stats.tsx | 39 +++-------
web/src/pages/Home/CourtOverview/Chart.tsx | 8 +-
web/src/pages/Home/CourtOverview/Stats.tsx | 48 +++---------
web/src/utils/commify.ts | 7 ++
web/src/utils/shortenAddress.ts | 10 +--
15 files changed, 111 insertions(+), 238 deletions(-)
create mode 100644 web/src/utils/commify.ts
diff --git a/web/src/hooks/useParsedAmount.ts b/web/src/hooks/useParsedAmount.ts
index 103f658f9..711e41ca7 100644
--- a/web/src/hooks/useParsedAmount.ts
+++ b/web/src/hooks/useParsedAmount.ts
@@ -1,6 +1,12 @@
import { useMemo } from "react";
-import { BigNumber, utils } from "ethers";
+import { parseUnits } from "viem";
-export function useParsedAmount(amount: string): BigNumber {
- return useMemo(() => (amount === "" ? BigNumber.from(0) : utils.parseUnits(amount, 18)), [amount]);
+export function useParsedAmount(amount: string): bigint {
+ return useMemo(() => {
+ if (amount === "" || isNaN(Number(amount))) {
+ return BigInt(0);
+ } else {
+ return parseUnits(`${Number(amount)}`, 18);
+ }
+ }, [amount]);
}
diff --git a/web/src/pages/Cases/CaseDetails/Appeal/Classic/Fund.tsx b/web/src/pages/Cases/CaseDetails/Appeal/Classic/Fund.tsx
index b789858da..301bb78aa 100644
--- a/web/src/pages/Cases/CaseDetails/Appeal/Classic/Fund.tsx
+++ b/web/src/pages/Cases/CaseDetails/Appeal/Classic/Fund.tsx
@@ -4,10 +4,7 @@ import { useParams } from "react-router-dom";
import { useAccount, useBalance } from "wagmi";
import { useDebounce } from "react-use";
import { Field, Button } from "@kleros/ui-components-library";
-import {
- usePrepareDisputeKitClassicFundAppeal,
- useDisputeKitClassicFundAppeal,
-} from "hooks/contracts/generated";
+import { usePrepareDisputeKitClassicFundAppeal, useDisputeKitClassicFundAppeal } from "hooks/contracts/generated";
import { wrapWithToast } from "utils/wrapWithToast";
import { useParsedAmount } from "hooks/useParsedAmount";
import {
@@ -16,15 +13,13 @@ import {
useFundingContext,
} from "hooks/useClassicAppealContext";
import { notUndefined } from "utils/index";
-import { BigNumber } from "ethers";
const Fund: React.FC = () => {
const loserSideCountdown = useLoserSideCountdownContext();
const { fundedChoices, winningChoice } = useFundingContext();
const needFund =
notUndefined([loserSideCountdown, fundedChoices]) &&
- (loserSideCountdown! > 0 ||
- (fundedChoices!.length > 0 && !fundedChoices?.includes(winningChoice!)));
+ (loserSideCountdown! > 0 || (fundedChoices!.length > 0 && !fundedChoices?.includes(winningChoice!)));
const { id } = useParams();
const { address, isDisconnected } = useAccount();
const { data: balance } = useBalance({
@@ -39,13 +34,12 @@ const Fund: React.FC = () => {
const { selectedOption } = useSelectedOptionContext();
const { config: fundAppealConfig } = usePrepareDisputeKitClassicFundAppeal({
enabled: notUndefined([id, selectedOption]),
- args: [BigNumber.from(id), BigNumber.from(selectedOption)],
+ args: [BigInt(id!), BigInt(selectedOption!)],
overrides: {
value: parsedAmount,
},
});
- const { writeAsync: fundAppeal } =
- useDisputeKitClassicFundAppeal(fundAppealConfig);
+ const { writeAsync: fundAppeal } = useDisputeKitClassicFundAppeal(fundAppealConfig);
return needFund ? (
@@ -59,12 +53,7 @@ const Fund: React.FC = () => {
placeholder="Amount to fund"
/>
balance.value}
text={isDisconnected ? "Connect to Fund" : "Fund"}
onClick={() => {
if (fundAppeal) {
diff --git a/web/src/pages/Cases/CaseDetails/Appeal/Classic/Options/StageOne.tsx b/web/src/pages/Cases/CaseDetails/Appeal/Classic/Options/StageOne.tsx
index bb345d97d..8d648ab5a 100644
--- a/web/src/pages/Cases/CaseDetails/Appeal/Classic/Options/StageOne.tsx
+++ b/web/src/pages/Cases/CaseDetails/Appeal/Classic/Options/StageOne.tsx
@@ -1,6 +1,5 @@
import React from "react";
import styled from "styled-components";
-import { BigNumber } from "ethers";
import StageExplainer from "../StageExplainer";
import OptionCard from "../../OptionCard";
import {
@@ -11,12 +10,7 @@ import {
} from "hooks/useClassicAppealContext";
const StageOne: React.FC = () => {
- const {
- paidFees,
- winningChoice,
- loserRequiredFunding,
- winnerRequiredFunding,
- } = useFundingContext();
+ const { paidFees, winningChoice, loserRequiredFunding, winnerRequiredFunding } = useFundingContext();
const options = useOptionsContext();
const loserSideCountdown = useLoserSideCountdownContext();
const { selectedOption, setSelectedOption } = useSelectedOptionContext();
@@ -34,14 +28,8 @@ const StageOne: React.FC = () => {
text={answer}
selected={i === selectedOption}
winner={i.toString() === winningChoice}
- funding={
- paidFees[i] ? BigNumber.from(paidFees[i]) : BigNumber.from(0)
- }
- required={
- i.toString() === winningChoice
- ? winnerRequiredFunding
- : loserRequiredFunding
- }
+ funding={paidFees[i] ? BigInt(paidFees[i]) : BigInt(0)}
+ required={i.toString() === winningChoice ? winnerRequiredFunding : loserRequiredFunding}
onClick={() => setSelectedOption(i)}
/>
))}
diff --git a/web/src/pages/Cases/CaseDetails/Appeal/Classic/Options/StageTwo.tsx b/web/src/pages/Cases/CaseDetails/Appeal/Classic/Options/StageTwo.tsx
index bc989edcc..3145788ad 100644
--- a/web/src/pages/Cases/CaseDetails/Appeal/Classic/Options/StageTwo.tsx
+++ b/web/src/pages/Cases/CaseDetails/Appeal/Classic/Options/StageTwo.tsx
@@ -1,22 +1,15 @@
import React, { useEffect } from "react";
import styled from "styled-components";
-import { BigNumber } from "ethers";
import OptionCard from "../../OptionCard";
-import {
- useFundingContext,
- useOptionsContext,
- useSelectedOptionContext,
-} from "hooks/useClassicAppealContext";
+import { useFundingContext, useOptionsContext, useSelectedOptionContext } from "hooks/useClassicAppealContext";
import { notUndefined } from "utils/index";
const StageOne: React.FC = () => {
- const { paidFees, winningChoice, winnerRequiredFunding, fundedChoices } =
- useFundingContext();
+ const { paidFees, winningChoice, winnerRequiredFunding, fundedChoices } = useFundingContext();
const options = useOptionsContext();
const { selectedOption, setSelectedOption } = useSelectedOptionContext();
useEffect(() => {
- if (notUndefined(winningChoice))
- setSelectedOption(parseInt(winningChoice!));
+ if (notUndefined(winningChoice)) setSelectedOption(parseInt(winningChoice!));
});
return (
@@ -24,19 +17,13 @@ const StageOne: React.FC = () => {
fundedChoices!.length > 0 &&
!fundedChoices?.includes(winningChoice!) ? (
<>
-
+
setSelectedOption(parseInt(winningChoice!, 10))}
@@ -44,9 +31,7 @@ const StageOne: React.FC = () => {
>
) : (
-
+
)}
);
diff --git a/web/src/pages/Cases/CaseDetails/Appeal/OptionCard.tsx b/web/src/pages/Cases/CaseDetails/Appeal/OptionCard.tsx
index 0a9c31e15..416b85165 100644
--- a/web/src/pages/Cases/CaseDetails/Appeal/OptionCard.tsx
+++ b/web/src/pages/Cases/CaseDetails/Appeal/OptionCard.tsx
@@ -3,12 +3,12 @@ import styled from "styled-components";
import { useMeasure } from "react-use";
import { Card, Radio, LinearProgress } from "@kleros/ui-components-library";
import Gavel from "svgs/icons/gavel.svg";
-import { BigNumber, utils } from "ethers";
+import { formatEther } from "viem";
interface IOptionCard extends React.HTMLAttributes {
text: string;
- funding: BigNumber;
- required: BigNumber;
+ funding: bigint;
+ required: bigint;
winner?: boolean;
selected?: boolean;
canBeSelected?: boolean;
@@ -38,18 +38,12 @@ const OptionCard: React.FC = ({
-
+
);
};
diff --git a/web/src/pages/Cases/CaseDetails/Evidence/SubmitEvidenceModal.tsx b/web/src/pages/Cases/CaseDetails/Evidence/SubmitEvidenceModal.tsx
index 383851ca6..585406818 100644
--- a/web/src/pages/Cases/CaseDetails/Evidence/SubmitEvidenceModal.tsx
+++ b/web/src/pages/Cases/CaseDetails/Evidence/SubmitEvidenceModal.tsx
@@ -1,11 +1,10 @@
import React, { useState } from "react";
import styled from "styled-components";
-import { BigNumber } from "ethers";
import { useSigner } from "wagmi";
import { toast } from "react-toastify";
import Modal from "react-modal";
import { Textarea, Button } from "@kleros/ui-components-library";
-import { useDisputeKitClassic } from "hooks/contracts/generated";
+import { getDisputeKitClassic } from "hooks/contracts/generated";
import { wrapWithToast, OPTIONS as toastOptions } from "utils/wrapWithToast";
import { uploadFormDataToIPFS } from "utils/uploadFormDataToIPFS";
@@ -15,7 +14,7 @@ const SubmitEvidenceModal: React.FC<{
close: () => void;
}> = ({ isOpen, evidenceGroup, close }) => {
const { data: signer } = useSigner();
- const disputeKit = useDisputeKitClassic({
+ const disputeKit = getDisputeKitClassic({
signerOrProvider: signer,
});
const [isSending, setIsSending] = useState(false);
@@ -40,7 +39,7 @@ const SubmitEvidenceModal: React.FC<{
const response = await res.json();
if (res.status === 200) {
const cid = "/ipfs/" + response["cid"];
- await wrapWithToast(disputeKit.submitEvidence(BigNumber.from(evidenceGroup), cid)).then(() => {
+ await wrapWithToast(disputeKit.submitEvidence(BigInt(evidenceGroup), cid)).then(() => {
setMessage("");
close();
});
diff --git a/web/src/pages/Cases/CaseDetails/Voting/Binary.tsx b/web/src/pages/Cases/CaseDetails/Voting/Binary.tsx
index 4bdd2c50b..9501030d8 100644
--- a/web/src/pages/Cases/CaseDetails/Voting/Binary.tsx
+++ b/web/src/pages/Cases/CaseDetails/Voting/Binary.tsx
@@ -2,28 +2,21 @@ import React, { useMemo, useState } from "react";
import styled from "styled-components";
import { useParams } from "react-router-dom";
import { Button, Textarea } from "@kleros/ui-components-library";
-import { useDisputeKitClassic } from "hooks/contracts/generated";
+import { getDisputeKitClassic } from "hooks/contracts/generated";
import { useGetMetaEvidence } from "queries/useGetMetaEvidence";
import { wrapWithToast } from "utils/wrapWithToast";
import { useSigner } from "wagmi";
-import { BigNumber } from "ethers";
-const Binary: React.FC<{ arbitrable?: string; voteIDs: string[] }> = ({
- arbitrable,
- voteIDs,
-}) => {
+const Binary: React.FC<{ arbitrable?: string; voteIDs: string[] }> = ({ arbitrable, voteIDs }) => {
const { id } = useParams();
- const parsedDisputeID = BigNumber.from(id);
- const parsedVoteIDs = useMemo(
- () => voteIDs.map((voteID) => BigNumber.from(voteID)),
- [voteIDs]
- );
+ const parsedDisputeID = BigInt(id!);
+ const parsedVoteIDs = useMemo(() => voteIDs.map((voteID) => BigInt(voteID)), [voteIDs]);
const { data: metaEvidence } = useGetMetaEvidence(id, arbitrable);
const [chosenOption, setChosenOption] = useState(-1);
const [isSending, setIsSending] = useState(false);
const [justification, setJustification] = useState("");
const { data: signer } = useSigner();
- const disputeKit = useDisputeKitClassic({
+ const disputeKit = getDisputeKitClassic({
signerOrProvider: signer,
});
return id ? (
@@ -35,40 +28,31 @@ const Binary: React.FC<{ arbitrable?: string; voteIDs: string[] }> = ({
onChange={(e) => setJustification(e.target.value)}
placeholder="Justify your vote..."
message={
- "A good justification contributes to case comprehension. " +
- "Low quality justifications can be challenged."
+ "A good justification contributes to case comprehension. " + "Low quality justifications can be challenged."
}
variant="info"
/>
- {metaEvidence?.rulingOptions?.titles?.map(
- (answer: string, i: number) => (
-
@@ -82,13 +66,7 @@ const Binary: React.FC<{ arbitrable?: string; voteIDs: string[] }> = ({
setIsSending(true);
setChosenOption(0);
wrapWithToast(
- disputeKit.castVote(
- parsedDisputeID,
- parsedVoteIDs,
- BigNumber.from(0),
- BigNumber.from(0),
- justification
- )
+ disputeKit.castVote(parsedDisputeID, parsedVoteIDs, BigInt(0), BigInt(0), justification)
).finally(() => {
setChosenOption(-1);
setIsSending(false);
diff --git a/web/src/pages/Courts/CourtDetails/StakePanel/InputDisplay.tsx b/web/src/pages/Courts/CourtDetails/StakePanel/InputDisplay.tsx
index 2476d7ed4..6275b20af 100644
--- a/web/src/pages/Courts/CourtDetails/StakePanel/InputDisplay.tsx
+++ b/web/src/pages/Courts/CourtDetails/StakePanel/InputDisplay.tsx
@@ -1,7 +1,7 @@
import React, { useState } from "react";
import styled from "styled-components";
import { useParams } from "react-router-dom";
-import { utils } from "ethers";
+import { formatEther } from "viem";
import { useDebounce } from "react-use";
import { useAccount } from "wagmi";
import { Button, Field } from "@kleros/ui-components-library";
@@ -17,11 +17,7 @@ interface IInputDisplay {
setIsSending: (arg0: boolean) => void;
}
-const InputDisplay: React.FC = ({
- action,
- isSending,
- setIsSending,
-}) => {
+const InputDisplay: React.FC = ({ action, isSending, setIsSending }) => {
const [amount, setAmount] = useState("");
const [debouncedAmount, setDebouncedAmount] = useState("");
useDebounce(() => setDebouncedAmount(amount), 500, [amount]);
@@ -30,9 +26,9 @@ const InputDisplay: React.FC = ({
const { id } = useParams();
const { address } = useAccount();
const { data: balance } = usePNKBalance(address);
- const parsedBalance = utils.formatEther(balance || 0);
+ const parsedBalance = formatEther(balance!);
const { data: jurorBalance } = useJurorBalance(address, id);
- const parsedStake = utils.formatEther(jurorBalance?.staked || 0);
+ const parsedStake = formatEther(jurorBalance?.staked || 0);
const isStaking = action === ActionType.stake;
return (
@@ -57,9 +53,7 @@ const InputDisplay: React.FC = ({
}}
placeholder={isStaking ? "Amount to stake" : "Amount to withdraw"}
message={
- isStaking
- ? "You may need two transactions, one to increase allowance, the other to stake."
- : undefined
+ isStaking ? "You may need two transactions, one to increase allowance, the other to stake." : undefined
}
variant="info"
/>
diff --git a/web/src/pages/Courts/CourtDetails/StakePanel/JurorStakeDisplay.tsx b/web/src/pages/Courts/CourtDetails/StakePanel/JurorStakeDisplay.tsx
index 27ed71171..5c68cd6f3 100644
--- a/web/src/pages/Courts/CourtDetails/StakePanel/JurorStakeDisplay.tsx
+++ b/web/src/pages/Courts/CourtDetails/StakePanel/JurorStakeDisplay.tsx
@@ -1,7 +1,7 @@
import React from "react";
import styled from "styled-components";
import { useParams } from "react-router-dom";
-import { BigNumber, utils } from "ethers";
+import { formatEther } from "viem";
import { useJurorBalance } from "queries/useJurorBalance";
import { useAccount } from "wagmi";
import Field from "components/Field";
@@ -9,7 +9,7 @@ import DiceIcon from "svgs/icons/dice.svg";
import LockerIcon from "svgs/icons/locker.svg";
import PNKIcon from "svgs/icons/pnk.svg";
-const format = (value: BigNumber | undefined): string => (value !== undefined ? utils.formatEther(value) : "0");
+const format = (value: bigint | undefined): string => (value !== undefined ? formatEther(value) : "0");
const JurorBalanceDisplay = () => {
const { id } = useParams();
diff --git a/web/src/pages/Courts/CourtDetails/StakePanel/StakeWithdrawButton.tsx b/web/src/pages/Courts/CourtDetails/StakePanel/StakeWithdrawButton.tsx
index a198f89b2..ca9103f44 100644
--- a/web/src/pages/Courts/CourtDetails/StakePanel/StakeWithdrawButton.tsx
+++ b/web/src/pages/Courts/CourtDetails/StakePanel/StakeWithdrawButton.tsx
@@ -1,6 +1,5 @@
import React, { useMemo } from "react";
import { useParams } from "react-router-dom";
-import { BigNumber } from "ethers";
import { useAccount } from "wagmi";
import { Button } from "@kleros/ui-components-library";
import { usePNKAllowance } from "hooks/queries/usePNKAllowance";
@@ -24,19 +23,13 @@ export enum ActionType {
interface IActionButton {
isSending: boolean;
- parsedAmount: BigNumber;
+ parsedAmount: bigint;
action: ActionType;
setIsSending: (arg0: boolean) => void;
setAmount: (arg0: string) => void;
}
-const StakeWithdrawButton: React.FC = ({
- parsedAmount,
- action,
- setAmount,
- isSending,
- setIsSending,
-}) => {
+const StakeWithdrawButton: React.FC = ({ parsedAmount, action, setAmount, isSending, setIsSending }) => {
const { id } = useParams();
const { address } = useAccount();
const { data: balance } = usePnkBalanceOf({
@@ -48,27 +41,22 @@ const StakeWithdrawButton: React.FC = ({
const { data: allowance } = usePNKAllowance(address);
const isStaking = action === ActionType.stake;
- const isAllowance = isStaking && allowance && allowance.lt(parsedAmount);
+ const isAllowance = isStaking && allowance && allowance < parsedAmount;
const targetStake = useMemo(() => {
if (action === ActionType.stake) {
- return jurorBalance?.staked.add(parsedAmount);
+ return jurorBalance?.staked + parsedAmount;
} else {
- return jurorBalance?.staked.sub(parsedAmount);
+ return jurorBalance?.staked - parsedAmount;
}
}, [action, jurorBalance, parsedAmount]);
const klerosCore = useKlerosCore();
const { config: increaseAllowanceConfig } = usePreparePnkIncreaseAllowance({
enabled: notUndefined([klerosCore, targetStake, allowance]),
- args: [
- klerosCore?.address,
- targetStake?.sub(allowance ?? BigNumber.from(0))!,
- ],
+ args: [klerosCore?.address, targetStake?.sub(allowance ?? BigInt(0))!],
});
- const { writeAsync: increaseAllowance } = usePnkIncreaseAllowance(
- increaseAllowanceConfig
- );
+ const { writeAsync: increaseAllowance } = usePnkIncreaseAllowance(increaseAllowanceConfig);
const handleAllowance = () => {
if (notUndefined(increaseAllowance)) {
setIsSending(true);
@@ -97,7 +85,7 @@ const StakeWithdrawButton: React.FC = ({
const buttonProps = {
[ActionType.allowance]: {
text: "Allow PNK",
- checkDisabled: () => !balance || targetStake!.gt(balance),
+ checkDisabled: () => !balance || targetStake! > balance,
onClick: handleAllowance,
},
[ActionType.stake]: {
@@ -112,18 +100,12 @@ const StakeWithdrawButton: React.FC = ({
},
};
- const { text, checkDisabled, onClick } =
- buttonProps[isAllowance ? ActionType.allowance : action];
+ const { text, checkDisabled, onClick } = buttonProps[isAllowance ? ActionType.allowance : action];
return (
);
diff --git a/web/src/pages/Courts/CourtDetails/Stats.tsx b/web/src/pages/Courts/CourtDetails/Stats.tsx
index a8bfc4304..8c773f090 100644
--- a/web/src/pages/Courts/CourtDetails/Stats.tsx
+++ b/web/src/pages/Courts/CourtDetails/Stats.tsx
@@ -1,15 +1,15 @@
import React from "react";
import styled from "styled-components";
-import { utils } from "ethers";
+import { formatUnits, formatEther } from "viem";
import { useParams } from "react-router-dom";
import { useCourtDetails, CourtDetailsQuery } from "queries/useCourtDetails";
import StatDisplay, { IStatDisplay } from "components/StatDisplay";
-import PNKIcon from "svgs/icons/pnk.svg";
import EthereumIcon from "svgs/icons/ethereum.svg";
import PNKRedistributedIcon from "svgs/icons/redistributed-pnk.svg";
import JurorIcon from "svgs/icons/user.svg";
import BalanceIcon from "svgs/icons/law-balance.svg";
import MinStake from "svgs/icons/min-stake.svg";
+import { commify } from "utils/commify";
const StyledCard = styled.div`
width: auto;
@@ -32,21 +32,15 @@ interface IStat {
const stats: IStat[] = [
{
title: "Min Stake",
- getText: (data) => utils.commify(utils.formatUnits(data?.minStake, 18)),
- getSubtext: (data) =>
- (parseInt(utils.formatUnits(data?.minStake, 18)) * 0.029)
- .toFixed(2)
- .toString() + "$",
+ getText: (data) => commify(formatUnits(data?.minStake, 18)),
+ getSubtext: (data) => (parseInt(formatUnits(data?.minStake, 18)) * 0.029).toFixed(2).toString() + "$",
color: "purple",
icon: MinStake,
},
{
title: "Vote Stake",
- getText: (data) => utils.commify(utils.formatUnits(data?.minStake, 18)),
- getSubtext: (data) =>
- (parseInt(utils.formatUnits(data?.minStake, 18)) * 0.029)
- .toFixed(2)
- .toString() + "$",
+ getText: (data) => commify(formatUnits(data?.minStake, 18)),
+ getSubtext: (data) => (parseInt(formatUnits(data?.minStake, 18)) * 0.029).toFixed(2).toString() + "$",
color: "blue",
icon: EthereumIcon,
},
@@ -59,11 +53,8 @@ const stats: IStat[] = [
},
{
title: "PNK Staked",
- getText: (data) => utils.commify(utils.formatUnits(data?.stake, 18)),
- getSubtext: (data) =>
- (parseInt(utils.formatUnits(data?.stake, 18)) * 0.029)
- .toFixed(2)
- .toString() + "$",
+ getText: (data) => commify(formatUnits(data?.stake, 18)),
+ getSubtext: (data) => (parseInt(formatUnits(data?.stake, 18)) * 0.029).toFixed(2).toString() + "$",
color: "green",
icon: JurorIcon,
},
@@ -83,21 +74,15 @@ const stats: IStat[] = [
},
{
title: "ETH paid to Jurors",
- getText: (data) => utils.commify(utils.formatEther(data?.paidETH)),
- getSubtext: (data) =>
- (parseInt(utils.formatUnits(data?.paidETH, 18)) * 1600)
- .toFixed(2)
- .toString() + "$",
+ getText: (data) => commify(formatEther(data?.paidETH)),
+ getSubtext: (data) => (parseInt(formatUnits(data?.paidETH, 18)) * 1600).toFixed(2).toString() + "$",
color: "orange",
icon: BalanceIcon,
},
{
title: "PNK redistributed",
- getText: (data) => utils.commify(utils.formatUnits(data?.paidPNK, 18)),
- getSubtext: (data) =>
- (parseInt(utils.formatUnits(data?.paidPNK, 18)) * 0.029)
- .toFixed(2)
- .toString() + "$",
+ getText: (data) => commify(formatUnits(data?.paidPNK, 18)),
+ getSubtext: (data) => (parseInt(formatUnits(data?.paidPNK, 18)) * 0.029).toFixed(2).toString() + "$",
color: "orange",
icon: BalanceIcon,
},
diff --git a/web/src/pages/Home/CourtOverview/Chart.tsx b/web/src/pages/Home/CourtOverview/Chart.tsx
index 071362ccd..3c940aa25 100644
--- a/web/src/pages/Home/CourtOverview/Chart.tsx
+++ b/web/src/pages/Home/CourtOverview/Chart.tsx
@@ -2,7 +2,7 @@ import React, { useState } from "react";
import styled from "styled-components";
import TimeSeriesChart from "./TimeSeriesChart";
import { DropdownSelect } from "@kleros/ui-components-library";
-import { utils } from "ethers";
+import { formatUnits } from "viem";
import { useHomePageContext } from "hooks/useHomePageContext";
const Container = styled.div`
@@ -51,11 +51,7 @@ const Chart: React.FC = () => {
...accData,
{
x: Number(counter.id) * 1000,
- y: Number(
- chartOption === "stakedPNK"
- ? utils.formatUnits(counter[chartOption], 18)
- : counter[chartOption]
- ),
+ y: Number(chartOption === "stakedPNK" ? formatUnits(counter[chartOption], 18) : counter[chartOption]),
},
];
}, []);
diff --git a/web/src/pages/Home/CourtOverview/Stats.tsx b/web/src/pages/Home/CourtOverview/Stats.tsx
index baa95ca98..4b1d8ab65 100644
--- a/web/src/pages/Home/CourtOverview/Stats.tsx
+++ b/web/src/pages/Home/CourtOverview/Stats.tsx
@@ -1,6 +1,6 @@
import React from "react";
import styled from "styled-components";
-import { utils, BigNumber } from "ethers";
+import { formatEther, formatUnits } from "viem";
import { Card } from "@kleros/ui-components-library";
import StatDisplay, { IStatDisplay } from "components/StatDisplay";
import PNKIcon from "svgs/icons/pnk.svg";
@@ -8,11 +8,8 @@ import EthereumIcon from "svgs/icons/ethereum.svg";
import PNKRedistributedIcon from "svgs/icons/redistributed-pnk.svg";
import JurorIcon from "svgs/icons/user.svg";
import BalanceIcon from "svgs/icons/law-balance.svg";
-import {
- useHomePageContext,
- HomePageQuery,
- HomePageQueryDataPoints,
-} from "hooks/useHomePageContext";
+import { commify } from "utils/commify";
+import { useHomePageContext, HomePageQuery, HomePageQueryDataPoints } from "hooks/useHomePageContext";
const StyledCard = styled(Card)`
width: auto;
@@ -24,10 +21,8 @@ const StyledCard = styled(Card)`
flex-wrap: wrap;
`;
-const getLastOrZero = (
- src: HomePageQuery["counters"],
- stat: HomePageQueryDataPoints
-) => (src.length > 0 ? src.at(-1)?.[stat] : BigNumber.from(0).toString());
+const getLastOrZero = (src: HomePageQuery["counters"], stat: HomePageQueryDataPoints) =>
+ src.length > 0 ? src.at(-1)?.[stat] : BigInt(0).toString();
interface IStat {
title: string;
@@ -40,45 +35,25 @@ interface IStat {
const stats: IStat[] = [
{
title: "PNK staked",
- getText: (counters) =>
- utils.commify(
- utils.formatUnits(getLastOrZero(counters, "stakedPNK"), 18)
- ),
+ getText: (counters) => commify(formatUnits(getLastOrZero(counters, "stakedPNK"), 18)),
getSubtext: (counters) =>
- (
- parseInt(utils.formatUnits(getLastOrZero(counters, "stakedPNK"))) *
- 0.029
- )
- .toFixed(2)
- .toString() + "$",
+ (parseInt(formatUnits(getLastOrZero(counters, "stakedPNK"), 18)) * 0.029).toFixed(2).toString() + "$",
color: "purple",
icon: PNKIcon,
},
{
title: "ETH Paid to jurors",
- getText: (counters) =>
- utils.commify(utils.formatEther(getLastOrZero(counters, "paidETH"))),
+ getText: (counters) => commify(formatEther(getLastOrZero(counters, "paidETH"))),
getSubtext: (counters) =>
- (parseInt(utils.formatUnits(getLastOrZero(counters, "paidETH"))) * 1650)
- .toFixed(2)
- .toString() + "$",
+ (parseInt(formatUnits(getLastOrZero(counters, "paidETH"), 18)) * 1650).toFixed(2).toString() + "$",
color: "blue",
icon: EthereumIcon,
},
{
title: "PNK redistributed",
- getText: (counters) =>
- utils.commify(
- utils.formatUnits(getLastOrZero(counters, "redistributedPNK"), 18)
- ),
+ getText: (counters) => commify(formatUnits(getLastOrZero(counters, "redistributedPNK"), 18)),
getSubtext: (counters) =>
- (
- parseInt(
- utils.formatUnits(getLastOrZero(counters, "redistributedPNK"))
- ) * 0.029
- )
- .toFixed(2)
- .toString() + "$",
+ (parseInt(formatUnits(getLastOrZero(counters, "redistributedPNK"), 18)) * 0.029).toFixed(2).toString() + "$",
color: "purple",
icon: PNKRedistributedIcon,
},
@@ -97,7 +72,6 @@ const stats: IStat[] = [
icon: BalanceIcon,
},
];
-
const Stats = () => {
const { data } = useHomePageContext();
return (
diff --git a/web/src/utils/commify.ts b/web/src/utils/commify.ts
new file mode 100644
index 000000000..d6d8dcdca
--- /dev/null
+++ b/web/src/utils/commify.ts
@@ -0,0 +1,7 @@
+export const commify = (value: number | bigint | string): string => {
+ const [integerPart, decimalPart] = value.toString().split(".");
+
+ const formattedIntegerPart = integerPart.replace(/\B(?=(\d{3})+(?!\d))/g, ",");
+
+ return decimalPart ? `${formattedIntegerPart}.${decimalPart}` : formattedIntegerPart;
+};
diff --git a/web/src/utils/shortenAddress.ts b/web/src/utils/shortenAddress.ts
index 87f084bfa..12caf9f6e 100644
--- a/web/src/utils/shortenAddress.ts
+++ b/web/src/utils/shortenAddress.ts
@@ -1,13 +1,9 @@
-import { utils } from "ethers";
+import { getAddress } from "viem";
export function shortenAddress(address: string): string {
try {
- const formattedAddress = utils.getAddress(address);
- return (
- formattedAddress.substring(0, 6) +
- "..." +
- formattedAddress.substring(formattedAddress.length - 4)
- );
+ const formattedAddress = getAddress(address);
+ return formattedAddress.substring(0, 6) + "..." + formattedAddress.substring(formattedAddress.length - 4);
} catch {
throw new TypeError("Invalid input, address can't be parsed");
}
From 348af608a793e25ad14c5714a1c9ee2c0c210d00 Mon Sep 17 00:00:00 2001
From: nhestrompia
Date: Mon, 12 Jun 2023 10:51:00 +0300
Subject: [PATCH 14/41] refactor: migrating from ethers to viem
---
web/src/components/DisputeCard/index.tsx | 4 +-
web/src/consts/index.ts | 4 +-
web/src/hooks/queries/useGetMetaEvidence.ts | 17 +--
web/src/hooks/useClassicAppealContext.tsx | 111 +++++--------------
web/src/hooks/useParsedAmount.ts | 6 +-
web/src/hooks/useWeb3.ts | 3 +-
web/src/pages/Cases/CaseDetails/Overview.tsx | 43 ++-----
7 files changed, 53 insertions(+), 135 deletions(-)
diff --git a/web/src/components/DisputeCard/index.tsx b/web/src/components/DisputeCard/index.tsx
index b7fca57b8..aa5190008 100644
--- a/web/src/components/DisputeCard/index.tsx
+++ b/web/src/components/DisputeCard/index.tsx
@@ -1,7 +1,7 @@
import React from "react";
import styled from "styled-components";
import { useNavigate } from "react-router-dom";
-import { utils } from "ethers";
+import { formatEther } from "viem";
import Skeleton from "react-loading-skeleton";
import { Card } from "@kleros/ui-components-library";
import { Periods } from "consts/periods";
@@ -42,7 +42,7 @@ const DisputeCard: React.FC = ({
court,
}) => {
const currentPeriodIndex = Periods[period];
- const rewards = `≥ ${utils.formatEther(court.feeForJuror)} ETH`;
+ const rewards = `≥ ${formatEther(court.feeForJuror)} ETH`;
const date =
currentPeriodIndex === 4
? lastPeriodChange
diff --git a/web/src/consts/index.ts b/web/src/consts/index.ts
index 5b21a577f..35f1e63dc 100644
--- a/web/src/consts/index.ts
+++ b/web/src/consts/index.ts
@@ -1,3 +1 @@
-import { BigNumber } from "ethers";
-
-export const ONE_BASIS_POINT = BigNumber.from("10000");
+export const ONE_BASIS_POINT = BigInt("10000");
diff --git a/web/src/hooks/queries/useGetMetaEvidence.ts b/web/src/hooks/queries/useGetMetaEvidence.ts
index ef4fb1b1d..4d7a99802 100644
--- a/web/src/hooks/queries/useGetMetaEvidence.ts
+++ b/web/src/hooks/queries/useGetMetaEvidence.ts
@@ -1,12 +1,8 @@
import useSWRImmutable from "swr/immutable";
-// import { utils } from "ethers";
import { usePublicClient } from "wagmi";
import { getIMetaEvidence } from "hooks/contracts/generated";
-export const useGetMetaEvidence = (
- disputeID?: string,
- arbitrableAddress?: string
-) => {
+export const useGetMetaEvidence = (disputeID?: string, arbitrableAddress?: string) => {
// const formattedAddress = arbitrableAddress
// ? utils.getAddress(arbitrableAddress)
// : undefined;
@@ -24,16 +20,13 @@ export const useGetMetaEvidence = (
const disputeEvents = await publicClient.getFilterLogs({
filter: disputeFilter,
});
- const metaEvidenceFilter =
- await arbitrable.createEventFilter.MetaEvidence({
- _metaEvidenceID: disputeEvents[0].args._metaEvidenceID,
- });
+ const metaEvidenceFilter = await arbitrable.createEventFilter.MetaEvidence({
+ _metaEvidenceID: disputeEvents[0].args._metaEvidenceID,
+ });
const metaEvidenceEvents = await publicClient.getFilterLogs({
filter: metaEvidenceFilter,
});
- return fetch(
- `https://cloudflare-ipfs.com${metaEvidenceEvents[0].args?._evidence}`
- ).then((res) => res.json());
+ return fetch(`https://cloudflare-ipfs.com${metaEvidenceEvents[0].args?._evidence}`).then((res) => res.json());
} else throw Error;
}
);
diff --git a/web/src/hooks/useClassicAppealContext.tsx b/web/src/hooks/useClassicAppealContext.tsx
index 234aaaff0..04808204f 100644
--- a/web/src/hooks/useClassicAppealContext.tsx
+++ b/web/src/hooks/useClassicAppealContext.tsx
@@ -1,16 +1,12 @@
import React, { useMemo, useState, createContext, useContext } from "react";
import { useParams } from "react-router-dom";
-import { BigNumber } from "ethers";
import { ONE_BASIS_POINT } from "consts/index";
import { Periods } from "consts/periods";
import { notUndefined } from "utils/index";
import { useGetMetaEvidence } from "queries/useGetMetaEvidence";
import { useAppealCost } from "queries/useAppealCost";
import { useDisputeKitClassicMultipliers } from "queries/useDisputeKitClassicMultipliers";
-import {
- useClassicAppealQuery,
- ClassicAppealQuery,
-} from "queries/useClassicAppealQuery";
+import { useClassicAppealQuery, ClassicAppealQuery } from "queries/useClassicAppealQuery";
import { useCountdown } from "hooks/useCountdown";
const LoserSideCountdownContext = createContext(undefined);
@@ -29,9 +25,9 @@ const SelectedOptionContext = createContext({
interface IFundingContext {
winningChoice: string | undefined;
- paidFees: BigNumber[] | undefined;
- loserRequiredFunding: BigNumber | undefined;
- winnerRequiredFunding: BigNumber | undefined;
+ paidFees: BigInt[] | undefined;
+ loserRequiredFunding: BigInt | undefined;
+ winnerRequiredFunding: BigInt | undefined;
fundedChoices: string[] | undefined;
}
const FundingContext = createContext({
@@ -54,31 +50,20 @@ export const ClassicAppealProvider: React.FC<{
const arbitrable = data?.dispute?.arbitrated.id;
const { data: metaEvidence } = useGetMetaEvidence(id, arbitrable);
const { data: multipliers } = useDisputeKitClassicMultipliers();
- const options = ["Refuse to Arbitrate"].concat(
- metaEvidence?.rulingOptions?.titles
- );
+ const options = ["Refuse to Arbitrate"].concat(metaEvidence?.rulingOptions?.titles);
const loserSideCountdown = useLoserSideCountdown(
dispute?.lastPeriodChange,
dispute?.court.timesPerPeriod[Periods.appeal],
- multipliers?.loser_appeal_period_multiplier.toString()
- );
- const loserRequiredFunding = getLoserRequiredFunding(
- appealCost,
- multipliers?.loser_stake_multiplier
- );
- const winnerRequiredFunding = getWinnerRequiredFunding(
- appealCost,
- multipliers?.winner_stake_multiplier
+ multipliers?.loser_appeal_period_multiplier.toString()!
);
+ const loserRequiredFunding = getLoserRequiredFunding(appealCost!, multipliers?.loser_stake_multiplier!);
+ const winnerRequiredFunding = getWinnerRequiredFunding(appealCost!, multipliers?.winner_stake_multiplier!);
const fundedChoices = getFundedChoices(data?.dispute);
const [selectedOption, setSelectedOption] = useState();
return (
({ selectedOption, setSelectedOption }),
- [selectedOption, setSelectedOption]
- )}
+ value={useMemo(() => ({ selectedOption, setSelectedOption }), [selectedOption, setSelectedOption])}
>
-
- {children}
-
+ {children}
);
};
-export const useLoserSideCountdownContext = () =>
- useContext(LoserSideCountdownContext);
+export const useLoserSideCountdownContext = () => useContext(LoserSideCountdownContext);
export const useSelectedOptionContext = () => useContext(SelectedOptionContext);
export const useFundingContext = () => useContext(FundingContext);
export const useOptionsContext = () => useContext(OptionsContext);
const getCurrentLocalRound = (dispute?: ClassicAppealQuery["dispute"]) => {
- const currentLocalRoundIndex =
- dispute?.disputeKitDispute?.currentLocalRoundIndex;
+ const currentLocalRoundIndex = dispute?.disputeKitDispute?.currentLocalRoundIndex;
return dispute?.disputeKitDispute?.localRounds[currentLocalRoundIndex];
};
const getPaidFees = (dispute?: ClassicAppealQuery["dispute"]) => {
const currentLocalRound = getCurrentLocalRound(dispute);
- return currentLocalRound?.paidFees.map((amount) => BigNumber.from(amount));
+ return currentLocalRound?.paidFees.map((amount) => BigInt(amount));
};
const getFundedChoices = (dispute?: ClassicAppealQuery["dispute"]) => {
@@ -134,57 +109,29 @@ const getWinningChoice = (dispute?: ClassicAppealQuery["dispute"]) => {
return currentLocalRound?.winningChoice;
};
-const getLoserRequiredFunding = (
- appealCost: BigNumber,
- loser_stake_multiplier: BigNumber
-): BigNumber =>
+const getLoserRequiredFunding = (appealCost: bigint, loser_stake_multiplier: bigint): BigInt =>
notUndefined([appealCost, loser_stake_multiplier])
- ? appealCost.add(
- loser_stake_multiplier.mul(appealCost).div(ONE_BASIS_POINT)
- )
- : BigNumber.from(0);
+ ? appealCost + (loser_stake_multiplier * appealCost) / ONE_BASIS_POINT
+ : BigInt(0);
-const getWinnerRequiredFunding = (
- appealCost: BigNumber,
- winner_stake_multiplier: BigNumber
-): BigNumber =>
+const getWinnerRequiredFunding = (appealCost: bigint, winner_stake_multiplier: bigint): BigInt =>
notUndefined([appealCost, winner_stake_multiplier])
- ? appealCost.add(
- winner_stake_multiplier.mul(appealCost).div(ONE_BASIS_POINT)
- )
- : BigNumber.from(0);
+ ? appealCost + (winner_stake_multiplier * appealCost) / ONE_BASIS_POINT
+ : BigInt(0);
-const getDeadline = (
- lastPeriodChange: string,
- appealPeriodDuration: string,
- loserTimeMultiplier: string
-): number => {
- const parsedLastPeriodChange = BigNumber.from(lastPeriodChange);
- const parsedAppealPeriodDuration = BigNumber.from(appealPeriodDuration);
- const parsedLoserTimeMultiplier = BigNumber.from(loserTimeMultiplier);
- const loserAppealPeriodDuration = parsedAppealPeriodDuration
- .mul(parsedLoserTimeMultiplier)
- .div(ONE_BASIS_POINT);
- return loserAppealPeriodDuration.add(parsedLastPeriodChange).toNumber();
+const getDeadline = (lastPeriodChange: string, appealPeriodDuration: string, loserTimeMultiplier: string): number => {
+ const parsedLastPeriodChange = BigInt(lastPeriodChange);
+ const parsedAppealPeriodDuration = BigInt(appealPeriodDuration);
+ const parsedLoserTimeMultiplier = BigInt(loserTimeMultiplier);
+ const loserAppealPeriodDuration = (parsedAppealPeriodDuration * parsedLoserTimeMultiplier) / ONE_BASIS_POINT;
+ return Number(loserAppealPeriodDuration + parsedLastPeriodChange);
};
-function useLoserSideCountdown(
- lastPeriodChange: string,
- appealPeriodDuration: string,
- loserTimeMultiplier: string
-) {
+function useLoserSideCountdown(lastPeriodChange: string, appealPeriodDuration: string, loserTimeMultiplier: string) {
const deadline = useMemo(
() =>
- notUndefined([
- lastPeriodChange,
- appealPeriodDuration,
- loserTimeMultiplier,
- ])
- ? getDeadline(
- lastPeriodChange,
- appealPeriodDuration,
- loserTimeMultiplier
- )
+ notUndefined([lastPeriodChange, appealPeriodDuration, loserTimeMultiplier])
+ ? getDeadline(lastPeriodChange, appealPeriodDuration, loserTimeMultiplier)
: 0,
[lastPeriodChange, appealPeriodDuration, loserTimeMultiplier]
);
diff --git a/web/src/hooks/useParsedAmount.ts b/web/src/hooks/useParsedAmount.ts
index 103f658f9..037e29dcd 100644
--- a/web/src/hooks/useParsedAmount.ts
+++ b/web/src/hooks/useParsedAmount.ts
@@ -1,6 +1,6 @@
import { useMemo } from "react";
-import { BigNumber, utils } from "ethers";
+import { parseUnits } from "viem";
-export function useParsedAmount(amount: string): BigNumber {
- return useMemo(() => (amount === "" ? BigNumber.from(0) : utils.parseUnits(amount, 18)), [amount]);
+export function useParsedAmount(amount: string): BigInt {
+ return useMemo(() => (amount === "" ? BigInt(0) : parseUnits(`${parseInt(amount)}`, 18)), [amount]);
}
diff --git a/web/src/hooks/useWeb3.ts b/web/src/hooks/useWeb3.ts
index 300fdadbf..599c11e83 100644
--- a/web/src/hooks/useWeb3.ts
+++ b/web/src/hooks/useWeb3.ts
@@ -1,4 +1,3 @@
-import { Web3Provider } from "@ethersproject/providers";
import { useWeb3React } from "@web3-react/core";
-export const useWeb3 = () => useWeb3React();
+export const useWeb3 = () => useWeb3React();
diff --git a/web/src/pages/Cases/CaseDetails/Overview.tsx b/web/src/pages/Cases/CaseDetails/Overview.tsx
index 8c0c39f1b..ec3f79480 100644
--- a/web/src/pages/Cases/CaseDetails/Overview.tsx
+++ b/web/src/pages/Cases/CaseDetails/Overview.tsx
@@ -1,7 +1,7 @@
import React from "react";
import styled from "styled-components";
import { Link, useParams } from "react-router-dom";
-import { utils } from "ethers";
+import { formatEther } from "viem";
import { useDisputeDetailsQuery } from "queries/useDisputeDetailsQuery";
import { useGetMetaEvidence } from "queries/useGetMetaEvidence";
import { useCourtPolicy } from "queries/useCourtPolicy";
@@ -9,10 +9,7 @@ import { useCourtPolicyURI } from "queries/useCourtPolicyURI";
import PolicyIcon from "svgs/icons/policy.svg";
import DisputeInfo from "components/DisputeCard/DisputeInfo";
-const Overview: React.FC<{ arbitrable?: string; courtID?: string }> = ({
- arbitrable,
- courtID,
-}) => {
+const Overview: React.FC<{ arbitrable?: string; courtID?: string }> = ({ arbitrable, courtID }) => {
const { id } = useParams();
const { data: metaEvidence } = useGetMetaEvidence(id, arbitrable);
const { data: disputeDetails } = useDisputeDetailsQuery(id);
@@ -20,9 +17,7 @@ const Overview: React.FC<{ arbitrable?: string; courtID?: string }> = ({
const { data: courtPolicy } = useCourtPolicy(courtID);
const courtName = courtPolicy?.name;
const court = disputeDetails?.dispute?.court;
- const rewards = court
- ? `≥ ${utils.formatEther(court.feeForJuror)} ETH`
- : undefined;
+ const rewards = court ? `≥ ${formatEther(court.feeForJuror)} ETH` : undefined;
const category = metaEvidence ? metaEvidence.category : undefined;
return (
<>
@@ -41,41 +36,27 @@ const Overview: React.FC<{ arbitrable?: string; courtID?: string }> = ({
{metaEvidence && Voting Options
}
- {metaEvidence?.rulingOptions?.titles?.map(
- (answer: string, i: number) => (
-
- Option {i + 1}:
-
-
- )
- )}
+ {metaEvidence?.rulingOptions?.titles?.map((answer: string, i: number) => (
+
+ Option {i + 1}:
+
+
+ ))}
-
+
Make sure you understand the Policies
{metaEvidence?.fileURI && (
-
+
Dispute Policy
)}
{courtPolicy && (
-
+
Court Policy
From e7b15a9380da8463ca74d392212859f353f2a526 Mon Sep 17 00:00:00 2001
From: nhestrompia
Date: Mon, 12 Jun 2023 12:24:35 +0300
Subject: [PATCH 15/41] fix: error fixes
---
.../pages/Cases/CaseDetails/Voting/Binary.tsx | 44 +++++++++++--------
web/src/pages/Home/CourtOverview/Chart.tsx | 6 ++-
2 files changed, 30 insertions(+), 20 deletions(-)
diff --git a/web/src/pages/Cases/CaseDetails/Voting/Binary.tsx b/web/src/pages/Cases/CaseDetails/Voting/Binary.tsx
index 9501030d8..5b1bb6755 100644
--- a/web/src/pages/Cases/CaseDetails/Voting/Binary.tsx
+++ b/web/src/pages/Cases/CaseDetails/Voting/Binary.tsx
@@ -5,8 +5,8 @@ import { Button, Textarea } from "@kleros/ui-components-library";
import { getDisputeKitClassic } from "hooks/contracts/generated";
import { useGetMetaEvidence } from "queries/useGetMetaEvidence";
import { wrapWithToast } from "utils/wrapWithToast";
-import { useSigner } from "wagmi";
-
+import { useWalletClient, usePublicClient } from "wagmi";
+import { disputeKitClassicABI, disputeKitClassicAddress } from "hooks/contracts/generated";
const Binary: React.FC<{ arbitrable?: string; voteIDs: string[] }> = ({ arbitrable, voteIDs }) => {
const { id } = useParams();
const parsedDisputeID = BigInt(id!);
@@ -15,10 +15,10 @@ const Binary: React.FC<{ arbitrable?: string; voteIDs: string[] }> = ({ arbitrab
const [chosenOption, setChosenOption] = useState(-1);
const [isSending, setIsSending] = useState(false);
const [justification, setJustification] = useState("");
- const { data: signer } = useSigner();
- const disputeKit = getDisputeKitClassic({
- signerOrProvider: signer,
- });
+ const { data: walletClient } = useWalletClient();
+ const disputeKit = getDisputeKitClassic({});
+ const publicClient = usePublicClient();
+
return id ? (
@@ -39,13 +39,19 @@ const Binary: React.FC<{ arbitrable?: string; voteIDs: string[] }> = ({ arbitrab
text={answer}
disabled={isSending}
isLoading={chosenOption === i + 1}
- onClick={() => {
+ onClick={async () => {
if (disputeKit) {
+ const [address] = await walletClient!.getAddresses();
+ const { request } = await publicClient.simulateContract({
+ abi: disputeKitClassicABI,
+ address: disputeKitClassicAddress[421613],
+ functionName: "castVote",
+ account: address,
+ args: [parsedDisputeID, parsedVoteIDs, BigInt(i + 1), BigInt(0), justification],
+ });
setIsSending(true);
setChosenOption(i + 1);
- wrapWithToast(
- disputeKit!.castVote(parsedDisputeID, parsedVoteIDs, BigInt(i + 1), BigInt(0), justification)
- ).finally(() => {
+ wrapWithToast(walletClient!.writeContract(request)).finally(() => {
setChosenOption(-1);
setIsSending(false);
});
@@ -61,12 +67,20 @@ const Binary: React.FC<{ arbitrable?: string; voteIDs: string[] }> = ({ arbitrab
text="Refuse to Arbitrate"
disabled={isSending}
isLoading={chosenOption === 0}
- onClick={() => {
+ onClick={async () => {
if (disputeKit) {
setIsSending(true);
setChosenOption(0);
+ const [address] = await walletClient!.getAddresses();
+
wrapWithToast(
- disputeKit.castVote(parsedDisputeID, parsedVoteIDs, BigInt(0), BigInt(0), justification)
+ publicClient.simulateContract({
+ abi: disputeKitClassicABI,
+ address: disputeKitClassicAddress[421613],
+ functionName: "castVote",
+ account: address,
+ args: [parsedDisputeID, parsedVoteIDs, BigInt(0), BigInt(0), justification],
+ })
).finally(() => {
setChosenOption(-1);
setIsSending(false);
@@ -80,17 +94,14 @@ const Binary: React.FC<{ arbitrable?: string; voteIDs: string[] }> = ({ arbitrab
<>>
);
};
-
const Container = styled.div`
width: 100%;
height: auto;
`;
-
const MainContainer = styled.div`
width: 100%;
height: auto;
`;
-
const StyledTextarea = styled(Textarea)`
width: 100%;
height: auto;
@@ -103,7 +114,6 @@ const StyledTextarea = styled(Textarea)`
hyphens: auto;
}
`;
-
const OptionsContainer = styled.div`
margin-top: 24px;
display: flex;
@@ -111,7 +121,6 @@ const OptionsContainer = styled.div`
justify-content: center;
gap: 16px;
`;
-
const RefuseToArbitrateContainer = styled.div`
width: 100%;
background-color: ${({ theme }) => theme.lightBlue};
@@ -119,5 +128,4 @@ const RefuseToArbitrateContainer = styled.div`
display: flex;
justify-content: center;
`;
-
export default Binary;
diff --git a/web/src/pages/Home/CourtOverview/Chart.tsx b/web/src/pages/Home/CourtOverview/Chart.tsx
index 3c940aa25..a39c59876 100644
--- a/web/src/pages/Home/CourtOverview/Chart.tsx
+++ b/web/src/pages/Home/CourtOverview/Chart.tsx
@@ -31,8 +31,10 @@ const ChartOptionsDropdown: React.FC<{
alignRight
defaultValue={"stakedPNK"}
items={CHART_OPTIONS}
- callback={(newValue: string) => {
- setChartOption(newValue);
+ callback={(newValue: string | number) => {
+ if (typeof newValue === "string") {
+ setChartOption(newValue);
+ }
}}
/>
);
From 300c2d07e08a9df2098c107641010670a9c1c723 Mon Sep 17 00:00:00 2001
From: nhestrompia
Date: Mon, 12 Jun 2023 12:27:12 +0300
Subject: [PATCH 16/41] refactor: promise resolve waiting
---
web/src/pages/Cases/CaseDetails/Voting/Binary.tsx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/web/src/pages/Cases/CaseDetails/Voting/Binary.tsx b/web/src/pages/Cases/CaseDetails/Voting/Binary.tsx
index 5b1bb6755..96de4db9d 100644
--- a/web/src/pages/Cases/CaseDetails/Voting/Binary.tsx
+++ b/web/src/pages/Cases/CaseDetails/Voting/Binary.tsx
@@ -73,7 +73,7 @@ const Binary: React.FC<{ arbitrable?: string; voteIDs: string[] }> = ({ arbitrab
setChosenOption(0);
const [address] = await walletClient!.getAddresses();
- wrapWithToast(
+ await wrapWithToast(
publicClient.simulateContract({
abi: disputeKitClassicABI,
address: disputeKitClassicAddress[421613],
From 2a4838c21a8b0f808c8585730799b7fde13d3e4b Mon Sep 17 00:00:00 2001
From: nhestrompia
Date: Mon, 12 Jun 2023 12:38:48 +0300
Subject: [PATCH 17/41] feat: submitEvidenceModal migration
---
.../Evidence/SubmitEvidenceModal.tsx | 20 +++++++++++++------
1 file changed, 14 insertions(+), 6 deletions(-)
diff --git a/web/src/pages/Cases/CaseDetails/Evidence/SubmitEvidenceModal.tsx b/web/src/pages/Cases/CaseDetails/Evidence/SubmitEvidenceModal.tsx
index 585406818..23980ff9e 100644
--- a/web/src/pages/Cases/CaseDetails/Evidence/SubmitEvidenceModal.tsx
+++ b/web/src/pages/Cases/CaseDetails/Evidence/SubmitEvidenceModal.tsx
@@ -1,22 +1,22 @@
import React, { useState } from "react";
import styled from "styled-components";
-import { useSigner } from "wagmi";
import { toast } from "react-toastify";
import Modal from "react-modal";
import { Textarea, Button } from "@kleros/ui-components-library";
import { getDisputeKitClassic } from "hooks/contracts/generated";
import { wrapWithToast, OPTIONS as toastOptions } from "utils/wrapWithToast";
import { uploadFormDataToIPFS } from "utils/uploadFormDataToIPFS";
+import { useWalletClient, usePublicClient } from "wagmi";
+import { disputeKitClassicABI, disputeKitClassicAddress } from "hooks/contracts/generated";
const SubmitEvidenceModal: React.FC<{
isOpen: boolean;
evidenceGroup: string;
close: () => void;
}> = ({ isOpen, evidenceGroup, close }) => {
- const { data: signer } = useSigner();
- const disputeKit = getDisputeKitClassic({
- signerOrProvider: signer,
- });
+ const disputeKit = getDisputeKitClassic({});
+ const { data: walletClient } = useWalletClient();
+ const publicClient = usePublicClient();
const [isSending, setIsSending] = useState(false);
const [message, setMessage] = useState("");
return (
@@ -39,7 +39,15 @@ const SubmitEvidenceModal: React.FC<{
const response = await res.json();
if (res.status === 200) {
const cid = "/ipfs/" + response["cid"];
- await wrapWithToast(disputeKit.submitEvidence(BigInt(evidenceGroup), cid)).then(() => {
+ const [address] = await walletClient!.getAddresses();
+ const { request } = await publicClient.simulateContract({
+ abi: disputeKitClassicABI,
+ address: disputeKitClassicAddress[421613],
+ functionName: "submitEvidence",
+ account: address,
+ args: [BigInt(evidenceGroup), cid],
+ });
+ await wrapWithToast(walletClient!.writeContract(request)).then(() => {
setMessage("");
close();
});
From 4e4080784d74b046a4e1a0061f659df2291e3d93 Mon Sep 17 00:00:00 2001
From: nhestrompia
Date: Mon, 12 Jun 2023 12:49:13 +0300
Subject: [PATCH 18/41] fix: fund file error fix
---
web/src/pages/Cases/CaseDetails/Appeal/Classic/Fund.tsx | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/web/src/pages/Cases/CaseDetails/Appeal/Classic/Fund.tsx b/web/src/pages/Cases/CaseDetails/Appeal/Classic/Fund.tsx
index 301bb78aa..32fa9e93d 100644
--- a/web/src/pages/Cases/CaseDetails/Appeal/Classic/Fund.tsx
+++ b/web/src/pages/Cases/CaseDetails/Appeal/Classic/Fund.tsx
@@ -35,9 +35,7 @@ const Fund: React.FC = () => {
const { config: fundAppealConfig } = usePrepareDisputeKitClassicFundAppeal({
enabled: notUndefined([id, selectedOption]),
args: [BigInt(id!), BigInt(selectedOption!)],
- overrides: {
- value: parsedAmount,
- },
+ value: parsedAmount,
});
const { writeAsync: fundAppeal } = useDisputeKitClassicFundAppeal(fundAppealConfig);
return needFund ? (
From cd69c430057abcc094b912c8f501779f7e6c15af Mon Sep 17 00:00:00 2001
From: nhestrompia
Date: Mon, 12 Jun 2023 13:01:02 +0300
Subject: [PATCH 19/41] fix: inputDisplay error fix
---
web/src/pages/Courts/CourtDetails/StakePanel/InputDisplay.tsx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/web/src/pages/Courts/CourtDetails/StakePanel/InputDisplay.tsx b/web/src/pages/Courts/CourtDetails/StakePanel/InputDisplay.tsx
index 6275b20af..57da92374 100644
--- a/web/src/pages/Courts/CourtDetails/StakePanel/InputDisplay.tsx
+++ b/web/src/pages/Courts/CourtDetails/StakePanel/InputDisplay.tsx
@@ -28,7 +28,7 @@ const InputDisplay: React.FC = ({ action, isSending, setIsSending
const { data: balance } = usePNKBalance(address);
const parsedBalance = formatEther(balance!);
const { data: jurorBalance } = useJurorBalance(address, id);
- const parsedStake = formatEther(jurorBalance?.staked || 0);
+ const parsedStake = formatEther((jurorBalance && jurorBalance[0]) || BigInt(0));
const isStaking = action === ActionType.stake;
return (
From 7955e8fd545d3d5a8f7eba64dc34b13835742d7c Mon Sep 17 00:00:00 2001
From: marino <102478601+kemuru@users.noreply.github.com>
Date: Mon, 12 Jun 2023 11:05:05 +0100
Subject: [PATCH 20/41] fix: bug fixes
---
.../StakePanel/JurorStakeDisplay.tsx | 4 ++--
.../StakePanel/StakeWithdrawButton.tsx | 16 +++++++++-------
2 files changed, 11 insertions(+), 9 deletions(-)
diff --git a/web/src/pages/Courts/CourtDetails/StakePanel/JurorStakeDisplay.tsx b/web/src/pages/Courts/CourtDetails/StakePanel/JurorStakeDisplay.tsx
index 5c68cd6f3..e4588c45a 100644
--- a/web/src/pages/Courts/CourtDetails/StakePanel/JurorStakeDisplay.tsx
+++ b/web/src/pages/Courts/CourtDetails/StakePanel/JurorStakeDisplay.tsx
@@ -20,12 +20,12 @@ const JurorBalanceDisplay = () => {
{
icon: PNKIcon,
name: "My Stake",
- value: `${format(jurorBalance?.staked)} PNK`,
+ value: `${format(jurorBalance?.[0])} PNK`,
},
{
icon: LockerIcon,
name: "Locked Stake",
- value: `${format(jurorBalance?.locked)} PNK`,
+ value: `${format(jurorBalance?.[1])} PNK`,
},
{
icon: DiceIcon,
diff --git a/web/src/pages/Courts/CourtDetails/StakePanel/StakeWithdrawButton.tsx b/web/src/pages/Courts/CourtDetails/StakePanel/StakeWithdrawButton.tsx
index ca9103f44..db436addd 100644
--- a/web/src/pages/Courts/CourtDetails/StakePanel/StakeWithdrawButton.tsx
+++ b/web/src/pages/Courts/CourtDetails/StakePanel/StakeWithdrawButton.tsx
@@ -4,7 +4,7 @@ import { useAccount } from "wagmi";
import { Button } from "@kleros/ui-components-library";
import { usePNKAllowance } from "hooks/queries/usePNKAllowance";
import {
- useKlerosCore,
+ getKlerosCore,
useKlerosCoreSetStake,
usePrepareKlerosCoreSetStake,
usePnkBalanceOf,
@@ -44,17 +44,19 @@ const StakeWithdrawButton: React.FC = ({ parsedAmount, action, se
const isAllowance = isStaking && allowance && allowance < parsedAmount;
const targetStake = useMemo(() => {
- if (action === ActionType.stake) {
- return jurorBalance?.staked + parsedAmount;
- } else {
- return jurorBalance?.staked - parsedAmount;
+ if (jurorBalance) {
+ if (action === ActionType.stake) {
+ return jurorBalance[0] + parsedAmount;
+ } else {
+ return jurorBalance[0] - parsedAmount;
+ }
}
}, [action, jurorBalance, parsedAmount]);
- const klerosCore = useKlerosCore();
+ const klerosCore = getKlerosCore({});
const { config: increaseAllowanceConfig } = usePreparePnkIncreaseAllowance({
enabled: notUndefined([klerosCore, targetStake, allowance]),
- args: [klerosCore?.address, targetStake?.sub(allowance ?? BigInt(0))!],
+ args: [klerosCore?.address, BigInt(targetStake ?? 0) - BigInt(allowance ?? 0)],
});
const { writeAsync: increaseAllowance } = usePnkIncreaseAllowance(increaseAllowanceConfig);
const handleAllowance = () => {
From 42feb59c0b7c7e8cb76eba817949e0c76c144694 Mon Sep 17 00:00:00 2001
From: marino <102478601+kemuru@users.noreply.github.com>
Date: Mon, 12 Jun 2023 11:12:06 +0100
Subject: [PATCH 21/41] fix: stakewithdrawbutton type fix
---
.../Courts/CourtDetails/StakePanel/StakeWithdrawButton.tsx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/web/src/pages/Courts/CourtDetails/StakePanel/StakeWithdrawButton.tsx b/web/src/pages/Courts/CourtDetails/StakePanel/StakeWithdrawButton.tsx
index db436addd..93366cac2 100644
--- a/web/src/pages/Courts/CourtDetails/StakePanel/StakeWithdrawButton.tsx
+++ b/web/src/pages/Courts/CourtDetails/StakePanel/StakeWithdrawButton.tsx
@@ -70,7 +70,7 @@ const StakeWithdrawButton: React.FC = ({ parsedAmount, action, se
const { config: setStakeConfig } = usePrepareKlerosCoreSetStake({
enabled: notUndefined([targetStake, id]),
- args: [id, targetStake],
+ args: [BigInt(id!), targetStake!],
});
const { writeAsync: setStake } = useKlerosCoreSetStake(setStakeConfig);
const handleStake = () => {
From 4d8a007bbed942209fb03bc47fe4be4260e94127 Mon Sep 17 00:00:00 2001
From: marino <102478601+kemuru@users.noreply.github.com>
Date: Mon, 12 Jun 2023 11:20:11 +0100
Subject: [PATCH 22/41] fix: sonarcloud error commify.ts
---
web/src/utils/commify.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/web/src/utils/commify.ts b/web/src/utils/commify.ts
index d6d8dcdca..f4b4137db 100644
--- a/web/src/utils/commify.ts
+++ b/web/src/utils/commify.ts
@@ -1,7 +1,7 @@
export const commify = (value: number | bigint | string): string => {
const [integerPart, decimalPart] = value.toString().split(".");
- const formattedIntegerPart = integerPart.replace(/\B(?=(\d{3})+(?!\d))/g, ",");
+ const formattedIntegerPart = integerPart.replace(/\d(?=(\d{3})+$)/g, "$&,");
return decimalPart ? `${formattedIntegerPart}.${decimalPart}` : formattedIntegerPart;
};
From b9bde73dde98079f65a1ebbabe1ffae0ee87518a Mon Sep 17 00:00:00 2001
From: marino <102478601+kemuru@users.noreply.github.com>
Date: Mon, 12 Jun 2023 11:27:50 +0100
Subject: [PATCH 23/41] refactor: change commify function
---
web/src/utils/commify.ts | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/web/src/utils/commify.ts b/web/src/utils/commify.ts
index f4b4137db..f1df3e6d2 100644
--- a/web/src/utils/commify.ts
+++ b/web/src/utils/commify.ts
@@ -1,7 +1,16 @@
export const commify = (value: number | bigint | string): string => {
const [integerPart, decimalPart] = value.toString().split(".");
- const formattedIntegerPart = integerPart.replace(/\d(?=(\d{3})+$)/g, "$&,");
+ let formattedIntegerPart = "";
+ let counter = 0;
+
+ for (let i = integerPart.length - 1; i >= 0; i--) {
+ counter++;
+ formattedIntegerPart = integerPart[i] + formattedIntegerPart;
+ if (counter % 3 === 0 && i !== 0) {
+ formattedIntegerPart = "," + formattedIntegerPart;
+ }
+ }
return decimalPart ? `${formattedIntegerPart}.${decimalPart}` : formattedIntegerPart;
};
From db0018cff192e25b2a3c818ac40af3722661922c Mon Sep 17 00:00:00 2001
From: marino <102478601+kemuru@users.noreply.github.com>
Date: Mon, 12 Jun 2023 11:44:52 +0100
Subject: [PATCH 24/41] fix: optional chain & duplicate imports code smells
---
.../pages/Cases/CaseDetails/Evidence/SubmitEvidenceModal.tsx | 3 +--
web/src/pages/Cases/CaseDetails/Voting/Binary.tsx | 4 ++--
web/src/pages/Courts/CourtDetails/StakePanel/InputDisplay.tsx | 2 +-
3 files changed, 4 insertions(+), 5 deletions(-)
diff --git a/web/src/pages/Cases/CaseDetails/Evidence/SubmitEvidenceModal.tsx b/web/src/pages/Cases/CaseDetails/Evidence/SubmitEvidenceModal.tsx
index 23980ff9e..01fba4938 100644
--- a/web/src/pages/Cases/CaseDetails/Evidence/SubmitEvidenceModal.tsx
+++ b/web/src/pages/Cases/CaseDetails/Evidence/SubmitEvidenceModal.tsx
@@ -3,11 +3,10 @@ import styled from "styled-components";
import { toast } from "react-toastify";
import Modal from "react-modal";
import { Textarea, Button } from "@kleros/ui-components-library";
-import { getDisputeKitClassic } from "hooks/contracts/generated";
import { wrapWithToast, OPTIONS as toastOptions } from "utils/wrapWithToast";
import { uploadFormDataToIPFS } from "utils/uploadFormDataToIPFS";
import { useWalletClient, usePublicClient } from "wagmi";
-import { disputeKitClassicABI, disputeKitClassicAddress } from "hooks/contracts/generated";
+import { getDisputeKitClassic, disputeKitClassicABI, disputeKitClassicAddress } from "hooks/contracts/generated";
const SubmitEvidenceModal: React.FC<{
isOpen: boolean;
diff --git a/web/src/pages/Cases/CaseDetails/Voting/Binary.tsx b/web/src/pages/Cases/CaseDetails/Voting/Binary.tsx
index 96de4db9d..75553a067 100644
--- a/web/src/pages/Cases/CaseDetails/Voting/Binary.tsx
+++ b/web/src/pages/Cases/CaseDetails/Voting/Binary.tsx
@@ -2,11 +2,11 @@ import React, { useMemo, useState } from "react";
import styled from "styled-components";
import { useParams } from "react-router-dom";
import { Button, Textarea } from "@kleros/ui-components-library";
-import { getDisputeKitClassic } from "hooks/contracts/generated";
import { useGetMetaEvidence } from "queries/useGetMetaEvidence";
import { wrapWithToast } from "utils/wrapWithToast";
import { useWalletClient, usePublicClient } from "wagmi";
-import { disputeKitClassicABI, disputeKitClassicAddress } from "hooks/contracts/generated";
+import { getDisputeKitClassic, disputeKitClassicABI, disputeKitClassicAddress } from "hooks/contracts/generated";
+
const Binary: React.FC<{ arbitrable?: string; voteIDs: string[] }> = ({ arbitrable, voteIDs }) => {
const { id } = useParams();
const parsedDisputeID = BigInt(id!);
diff --git a/web/src/pages/Courts/CourtDetails/StakePanel/InputDisplay.tsx b/web/src/pages/Courts/CourtDetails/StakePanel/InputDisplay.tsx
index 57da92374..80306f39f 100644
--- a/web/src/pages/Courts/CourtDetails/StakePanel/InputDisplay.tsx
+++ b/web/src/pages/Courts/CourtDetails/StakePanel/InputDisplay.tsx
@@ -28,7 +28,7 @@ const InputDisplay: React.FC = ({ action, isSending, setIsSending
const { data: balance } = usePNKBalance(address);
const parsedBalance = formatEther(balance!);
const { data: jurorBalance } = useJurorBalance(address, id);
- const parsedStake = formatEther((jurorBalance && jurorBalance[0]) || BigInt(0));
+ const parsedStake = formatEther(jurorBalance?.[0] || BigInt(0));
const isStaking = action === ActionType.stake;
return (
From c625440009905e7d076a42854d3ad0464deb9249 Mon Sep 17 00:00:00 2001
From: nhestrompia
Date: Mon, 12 Jun 2023 18:29:53 +0300
Subject: [PATCH 25/41] fix: bigint type
---
web/src/hooks/useClassicAppealContext.tsx | 10 +++++-----
web/src/hooks/useParsedAmount.ts | 2 +-
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/web/src/hooks/useClassicAppealContext.tsx b/web/src/hooks/useClassicAppealContext.tsx
index 04808204f..c05b24f16 100644
--- a/web/src/hooks/useClassicAppealContext.tsx
+++ b/web/src/hooks/useClassicAppealContext.tsx
@@ -25,9 +25,9 @@ const SelectedOptionContext = createContext({
interface IFundingContext {
winningChoice: string | undefined;
- paidFees: BigInt[] | undefined;
- loserRequiredFunding: BigInt | undefined;
- winnerRequiredFunding: BigInt | undefined;
+ paidFees: bigint[] | undefined;
+ loserRequiredFunding: bigint | undefined;
+ winnerRequiredFunding: bigint | undefined;
fundedChoices: string[] | undefined;
}
const FundingContext = createContext({
@@ -109,12 +109,12 @@ const getWinningChoice = (dispute?: ClassicAppealQuery["dispute"]) => {
return currentLocalRound?.winningChoice;
};
-const getLoserRequiredFunding = (appealCost: bigint, loser_stake_multiplier: bigint): BigInt =>
+const getLoserRequiredFunding = (appealCost: bigint, loser_stake_multiplier: bigint): bigint =>
notUndefined([appealCost, loser_stake_multiplier])
? appealCost + (loser_stake_multiplier * appealCost) / ONE_BASIS_POINT
: BigInt(0);
-const getWinnerRequiredFunding = (appealCost: bigint, winner_stake_multiplier: bigint): BigInt =>
+const getWinnerRequiredFunding = (appealCost: bigint, winner_stake_multiplier: bigint): bigint =>
notUndefined([appealCost, winner_stake_multiplier])
? appealCost + (winner_stake_multiplier * appealCost) / ONE_BASIS_POINT
: BigInt(0);
diff --git a/web/src/hooks/useParsedAmount.ts b/web/src/hooks/useParsedAmount.ts
index 037e29dcd..b7d2a0d44 100644
--- a/web/src/hooks/useParsedAmount.ts
+++ b/web/src/hooks/useParsedAmount.ts
@@ -1,6 +1,6 @@
import { useMemo } from "react";
import { parseUnits } from "viem";
-export function useParsedAmount(amount: string): BigInt {
+export function useParsedAmount(amount: string): bigint {
return useMemo(() => (amount === "" ? BigInt(0) : parseUnits(`${parseInt(amount)}`, 18)), [amount]);
}
From 56bd3a8ae66664c5c7fb4e5b07dfec38a4d541bd Mon Sep 17 00:00:00 2001
From: alcercu <333aleix333@gmail.com>
Date: Tue, 13 Jun 2023 11:47:07 +0200
Subject: [PATCH 26/41] chore(web): update es version to es2020
---
web/tsconfig.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/web/tsconfig.json b/web/tsconfig.json
index 1c47e8578..9ef703005 100644
--- a/web/tsconfig.json
+++ b/web/tsconfig.json
@@ -46,7 +46,7 @@
"./src/assets/svgs*"
]
},
- "target": "es2017",
+ "target": "es2020",
"rootDir": "src",
"outDir": "build/dist",
"allowJs": true,
From 61d0000c9285d73ed32bd96e243dab57622c6e09 Mon Sep 17 00:00:00 2001
From: alcercu <333aleix333@gmail.com>
Date: Tue, 13 Jun 2023 11:49:17 +0200
Subject: [PATCH 27/41] refactor(web): use numbern syntax
---
web/src/consts/index.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/web/src/consts/index.ts b/web/src/consts/index.ts
index 35f1e63dc..0731a7ce1 100644
--- a/web/src/consts/index.ts
+++ b/web/src/consts/index.ts
@@ -1 +1 @@
-export const ONE_BASIS_POINT = BigInt("10000");
+export const ONE_BASIS_POINT = 10000n;
From 87d7c6f3cf690eaecaf8b2962f18848160da5808 Mon Sep 17 00:00:00 2001
From: nhestrompia
Date: Mon, 12 Jun 2023 20:02:06 +0300
Subject: [PATCH 28/41] fix: bigint notation
---
web/src/hooks/useClassicAppealContext.tsx | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/web/src/hooks/useClassicAppealContext.tsx b/web/src/hooks/useClassicAppealContext.tsx
index c05b24f16..ab6bc47b4 100644
--- a/web/src/hooks/useClassicAppealContext.tsx
+++ b/web/src/hooks/useClassicAppealContext.tsx
@@ -112,12 +112,12 @@ const getWinningChoice = (dispute?: ClassicAppealQuery["dispute"]) => {
const getLoserRequiredFunding = (appealCost: bigint, loser_stake_multiplier: bigint): bigint =>
notUndefined([appealCost, loser_stake_multiplier])
? appealCost + (loser_stake_multiplier * appealCost) / ONE_BASIS_POINT
- : BigInt(0);
+ : 0n;
const getWinnerRequiredFunding = (appealCost: bigint, winner_stake_multiplier: bigint): bigint =>
notUndefined([appealCost, winner_stake_multiplier])
? appealCost + (winner_stake_multiplier * appealCost) / ONE_BASIS_POINT
- : BigInt(0);
+ : 0n;
const getDeadline = (lastPeriodChange: string, appealPeriodDuration: string, loserTimeMultiplier: string): number => {
const parsedLastPeriodChange = BigInt(lastPeriodChange);
From c47ecbda6b0aeaf50a6bb5abe9ae019a90d0ab6c Mon Sep 17 00:00:00 2001
From: nhestrompia
Date: Mon, 12 Jun 2023 20:04:05 +0300
Subject: [PATCH 29/41] fix: another bigint notation fix
---
web/src/hooks/useParsedAmount.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/web/src/hooks/useParsedAmount.ts b/web/src/hooks/useParsedAmount.ts
index b7d2a0d44..99c1a99a9 100644
--- a/web/src/hooks/useParsedAmount.ts
+++ b/web/src/hooks/useParsedAmount.ts
@@ -2,5 +2,5 @@ import { useMemo } from "react";
import { parseUnits } from "viem";
export function useParsedAmount(amount: string): bigint {
- return useMemo(() => (amount === "" ? BigInt(0) : parseUnits(`${parseInt(amount)}`, 18)), [amount]);
+ return useMemo(() => (amount === "" ? 0n : parseUnits(`${parseInt(amount)}`, 18)), [amount]);
}
From 96982457cd8749cf9f951e04cf6f70ddd376b366 Mon Sep 17 00:00:00 2001
From: alcercu <333aleix333@gmail.com>
Date: Tue, 13 Jun 2023 11:26:11 +0200
Subject: [PATCH 30/41] refactor(web): useParsedAmount
---
web/src/hooks/useParsedAmount.ts | 10 ++--------
1 file changed, 2 insertions(+), 8 deletions(-)
diff --git a/web/src/hooks/useParsedAmount.ts b/web/src/hooks/useParsedAmount.ts
index 711e41ca7..c46c30727 100644
--- a/web/src/hooks/useParsedAmount.ts
+++ b/web/src/hooks/useParsedAmount.ts
@@ -1,12 +1,6 @@
import { useMemo } from "react";
import { parseUnits } from "viem";
-export function useParsedAmount(amount: string): bigint {
- return useMemo(() => {
- if (amount === "" || isNaN(Number(amount))) {
- return BigInt(0);
- } else {
- return parseUnits(`${Number(amount)}`, 18);
- }
- }, [amount]);
+export function useParsedAmount(amount: `${number}`): bigint {
+ return useMemo(() => parseUnits(amount, 18), [amount]);
}
From 0a53259db4923f1afd3984ca9b206496fede4a49 Mon Sep 17 00:00:00 2001
From: marino <102478601+kemuru@users.noreply.github.com>
Date: Tue, 13 Jun 2023 10:57:57 +0100
Subject: [PATCH 31/41] refactor: change bigint syntax to n
---
.../Cases/CaseDetails/Appeal/Classic/Options/StageOne.tsx | 2 +-
.../Cases/CaseDetails/Appeal/Classic/Options/StageTwo.tsx | 2 +-
web/src/pages/Cases/CaseDetails/Appeal/OptionCard.tsx | 2 +-
web/src/pages/Cases/CaseDetails/Voting/Binary.tsx | 4 ++--
web/src/pages/Courts/CourtDetails/StakePanel/InputDisplay.tsx | 2 +-
.../Courts/CourtDetails/StakePanel/StakeWithdrawButton.tsx | 2 +-
web/src/pages/Home/CourtOverview/Stats.tsx | 2 +-
7 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/web/src/pages/Cases/CaseDetails/Appeal/Classic/Options/StageOne.tsx b/web/src/pages/Cases/CaseDetails/Appeal/Classic/Options/StageOne.tsx
index 8d648ab5a..746137ddc 100644
--- a/web/src/pages/Cases/CaseDetails/Appeal/Classic/Options/StageOne.tsx
+++ b/web/src/pages/Cases/CaseDetails/Appeal/Classic/Options/StageOne.tsx
@@ -28,7 +28,7 @@ const StageOne: React.FC = () => {
text={answer}
selected={i === selectedOption}
winner={i.toString() === winningChoice}
- funding={paidFees[i] ? BigInt(paidFees[i]) : BigInt(0)}
+ funding={paidFees[i] ? BigInt(paidFees[i]) : 0n}
required={i.toString() === winningChoice ? winnerRequiredFunding : loserRequiredFunding}
onClick={() => setSelectedOption(i)}
/>
diff --git a/web/src/pages/Cases/CaseDetails/Appeal/Classic/Options/StageTwo.tsx b/web/src/pages/Cases/CaseDetails/Appeal/Classic/Options/StageTwo.tsx
index 3145788ad..961db64d1 100644
--- a/web/src/pages/Cases/CaseDetails/Appeal/Classic/Options/StageTwo.tsx
+++ b/web/src/pages/Cases/CaseDetails/Appeal/Classic/Options/StageTwo.tsx
@@ -23,7 +23,7 @@ const StageOne: React.FC = () => {
text={options![winningChoice!]}
selected={winningChoice === selectedOption}
winner={true}
- funding={paidFees![winningChoice!] ? BigInt(paidFees![winningChoice!]) : BigInt(0)}
+ funding={paidFees![winningChoice!] ? BigInt(paidFees![winningChoice!]) : 0n}
required={winnerRequiredFunding!}
canBeSelected={false}
onClick={() => setSelectedOption(parseInt(winningChoice!, 10))}
diff --git a/web/src/pages/Cases/CaseDetails/Appeal/OptionCard.tsx b/web/src/pages/Cases/CaseDetails/Appeal/OptionCard.tsx
index 416b85165..a68a83300 100644
--- a/web/src/pages/Cases/CaseDetails/Appeal/OptionCard.tsx
+++ b/web/src/pages/Cases/CaseDetails/Appeal/OptionCard.tsx
@@ -43,7 +43,7 @@ const OptionCard: React.FC = ({
: formatEther(funding) + " out of " + formatEther(required) + "ETH required"}
-
+
);
};
diff --git a/web/src/pages/Cases/CaseDetails/Voting/Binary.tsx b/web/src/pages/Cases/CaseDetails/Voting/Binary.tsx
index 75553a067..a6f1432ed 100644
--- a/web/src/pages/Cases/CaseDetails/Voting/Binary.tsx
+++ b/web/src/pages/Cases/CaseDetails/Voting/Binary.tsx
@@ -47,7 +47,7 @@ const Binary: React.FC<{ arbitrable?: string; voteIDs: string[] }> = ({ arbitrab
address: disputeKitClassicAddress[421613],
functionName: "castVote",
account: address,
- args: [parsedDisputeID, parsedVoteIDs, BigInt(i + 1), BigInt(0), justification],
+ args: [parsedDisputeID, parsedVoteIDs, BigInt(i + 1), 0n, justification],
});
setIsSending(true);
setChosenOption(i + 1);
@@ -79,7 +79,7 @@ const Binary: React.FC<{ arbitrable?: string; voteIDs: string[] }> = ({ arbitrab
address: disputeKitClassicAddress[421613],
functionName: "castVote",
account: address,
- args: [parsedDisputeID, parsedVoteIDs, BigInt(0), BigInt(0), justification],
+ args: [parsedDisputeID, parsedVoteIDs, 0n, 0n, justification],
})
).finally(() => {
setChosenOption(-1);
diff --git a/web/src/pages/Courts/CourtDetails/StakePanel/InputDisplay.tsx b/web/src/pages/Courts/CourtDetails/StakePanel/InputDisplay.tsx
index 80306f39f..baa52d1e5 100644
--- a/web/src/pages/Courts/CourtDetails/StakePanel/InputDisplay.tsx
+++ b/web/src/pages/Courts/CourtDetails/StakePanel/InputDisplay.tsx
@@ -28,7 +28,7 @@ const InputDisplay: React.FC = ({ action, isSending, setIsSending
const { data: balance } = usePNKBalance(address);
const parsedBalance = formatEther(balance!);
const { data: jurorBalance } = useJurorBalance(address, id);
- const parsedStake = formatEther(jurorBalance?.[0] || BigInt(0));
+ const parsedStake = formatEther(jurorBalance?.[0] || 0n);
const isStaking = action === ActionType.stake;
return (
diff --git a/web/src/pages/Courts/CourtDetails/StakePanel/StakeWithdrawButton.tsx b/web/src/pages/Courts/CourtDetails/StakePanel/StakeWithdrawButton.tsx
index 93366cac2..fb00e401a 100644
--- a/web/src/pages/Courts/CourtDetails/StakePanel/StakeWithdrawButton.tsx
+++ b/web/src/pages/Courts/CourtDetails/StakePanel/StakeWithdrawButton.tsx
@@ -107,7 +107,7 @@ const StakeWithdrawButton: React.FC = ({ parsedAmount, action, se
);
diff --git a/web/src/pages/Home/CourtOverview/Stats.tsx b/web/src/pages/Home/CourtOverview/Stats.tsx
index 4b1d8ab65..2da3d2804 100644
--- a/web/src/pages/Home/CourtOverview/Stats.tsx
+++ b/web/src/pages/Home/CourtOverview/Stats.tsx
@@ -22,7 +22,7 @@ const StyledCard = styled(Card)`
`;
const getLastOrZero = (src: HomePageQuery["counters"], stat: HomePageQueryDataPoints) =>
- src.length > 0 ? src.at(-1)?.[stat] : BigInt(0).toString();
+ src.length > 0 ? src.at(-1)?.[stat] : 0n.toString();
interface IStat {
title: string;
From 4ceee36c1d520301a5ccc98cf9a18069949fc182 Mon Sep 17 00:00:00 2001
From: alcercu <333aleix333@gmail.com>
Date: Tue, 13 Jun 2023 12:15:55 +0200
Subject: [PATCH 32/41] refactor(web): use autogenerated function
---
.../Evidence/SubmitEvidenceModal.tsx | 52 ++++++++-----------
1 file changed, 22 insertions(+), 30 deletions(-)
diff --git a/web/src/pages/Cases/CaseDetails/Evidence/SubmitEvidenceModal.tsx b/web/src/pages/Cases/CaseDetails/Evidence/SubmitEvidenceModal.tsx
index 01fba4938..44d78bc13 100644
--- a/web/src/pages/Cases/CaseDetails/Evidence/SubmitEvidenceModal.tsx
+++ b/web/src/pages/Cases/CaseDetails/Evidence/SubmitEvidenceModal.tsx
@@ -5,17 +5,15 @@ import Modal from "react-modal";
import { Textarea, Button } from "@kleros/ui-components-library";
import { wrapWithToast, OPTIONS as toastOptions } from "utils/wrapWithToast";
import { uploadFormDataToIPFS } from "utils/uploadFormDataToIPFS";
-import { useWalletClient, usePublicClient } from "wagmi";
-import { getDisputeKitClassic, disputeKitClassicABI, disputeKitClassicAddress } from "hooks/contracts/generated";
+import { useWalletClient } from "wagmi";
+import { prepareWriteDisputeKitClassic } from "hooks/contracts/generated";
const SubmitEvidenceModal: React.FC<{
isOpen: boolean;
evidenceGroup: string;
close: () => void;
}> = ({ isOpen, evidenceGroup, close }) => {
- const disputeKit = getDisputeKitClassic({});
const { data: walletClient } = useWalletClient();
- const publicClient = usePublicClient();
const [isSending, setIsSending] = useState(false);
const [message, setMessage] = useState("");
return (
@@ -29,32 +27,26 @@ const SubmitEvidenceModal: React.FC<{
isLoading={isSending}
disabled={isSending}
onClick={() => {
- if (disputeKit) {
- setIsSending(true);
- const formData = constructEvidence(message);
- toast.info("Uploading to IPFS", toastOptions);
- uploadFormDataToIPFS(formData)
- .then(async (res) => {
- const response = await res.json();
- if (res.status === 200) {
- const cid = "/ipfs/" + response["cid"];
- const [address] = await walletClient!.getAddresses();
- const { request } = await publicClient.simulateContract({
- abi: disputeKitClassicABI,
- address: disputeKitClassicAddress[421613],
- functionName: "submitEvidence",
- account: address,
- args: [BigInt(evidenceGroup), cid],
- });
- await wrapWithToast(walletClient!.writeContract(request)).then(() => {
- setMessage("");
- close();
- });
- }
- })
- .catch()
- .finally(() => setIsSending(false));
- }
+ setIsSending(true);
+ const formData = constructEvidence(message);
+ toast.info("Uploading to IPFS", toastOptions);
+ uploadFormDataToIPFS(formData)
+ .then(async (res) => {
+ const response = await res.json();
+ if (res.status === 200) {
+ const cid = "/ipfs/" + response["cid"];
+ const { request } = await prepareWriteDisputeKitClassic({
+ functionName: "submitEvidence",
+ args: [BigInt(evidenceGroup), cid],
+ });
+ await wrapWithToast(walletClient!.writeContract(request)).then(() => {
+ setMessage("");
+ close();
+ });
+ }
+ })
+ .catch()
+ .finally(() => setIsSending(false));
}}
/>
From fdd2630be2eb7c884a83c8fa470688ce4a76d6ae Mon Sep 17 00:00:00 2001
From: alcercu <333aleix333@gmail.com>
Date: Tue, 13 Jun 2023 12:24:06 +0200
Subject: [PATCH 33/41] refactor(web): use autogenerated function to prepare
transaction
---
.../pages/Cases/CaseDetails/Voting/Binary.tsx | 57 +++++++------------
1 file changed, 21 insertions(+), 36 deletions(-)
diff --git a/web/src/pages/Cases/CaseDetails/Voting/Binary.tsx b/web/src/pages/Cases/CaseDetails/Voting/Binary.tsx
index a6f1432ed..e25f52299 100644
--- a/web/src/pages/Cases/CaseDetails/Voting/Binary.tsx
+++ b/web/src/pages/Cases/CaseDetails/Voting/Binary.tsx
@@ -5,7 +5,7 @@ import { Button, Textarea } from "@kleros/ui-components-library";
import { useGetMetaEvidence } from "queries/useGetMetaEvidence";
import { wrapWithToast } from "utils/wrapWithToast";
import { useWalletClient, usePublicClient } from "wagmi";
-import { getDisputeKitClassic, disputeKitClassicABI, disputeKitClassicAddress } from "hooks/contracts/generated";
+import { prepareWriteDisputeKitClassic } from "hooks/contracts/generated";
const Binary: React.FC<{ arbitrable?: string; voteIDs: string[] }> = ({ arbitrable, voteIDs }) => {
const { id } = useParams();
@@ -16,7 +16,6 @@ const Binary: React.FC<{ arbitrable?: string; voteIDs: string[] }> = ({ arbitrab
const [isSending, setIsSending] = useState(false);
const [justification, setJustification] = useState("");
const { data: walletClient } = useWalletClient();
- const disputeKit = getDisputeKitClassic({});
const publicClient = usePublicClient();
return id ? (
@@ -40,22 +39,16 @@ const Binary: React.FC<{ arbitrable?: string; voteIDs: string[] }> = ({ arbitrab
disabled={isSending}
isLoading={chosenOption === i + 1}
onClick={async () => {
- if (disputeKit) {
- const [address] = await walletClient!.getAddresses();
- const { request } = await publicClient.simulateContract({
- abi: disputeKitClassicABI,
- address: disputeKitClassicAddress[421613],
- functionName: "castVote",
- account: address,
- args: [parsedDisputeID, parsedVoteIDs, BigInt(i + 1), 0n, justification],
- });
- setIsSending(true);
- setChosenOption(i + 1);
- wrapWithToast(walletClient!.writeContract(request)).finally(() => {
- setChosenOption(-1);
- setIsSending(false);
- });
- }
+ setIsSending(true);
+ setChosenOption(i + 1);
+ const { request } = await prepareWriteDisputeKitClassic({
+ functionName: "castVote",
+ args: [parsedDisputeID, parsedVoteIDs, BigInt(i + 1), 0n, justification],
+ });
+ wrapWithToast(walletClient!.writeContract(request)).finally(() => {
+ setChosenOption(-1);
+ setIsSending(false);
+ });
}}
/>
))}
@@ -68,24 +61,16 @@ const Binary: React.FC<{ arbitrable?: string; voteIDs: string[] }> = ({ arbitrab
disabled={isSending}
isLoading={chosenOption === 0}
onClick={async () => {
- if (disputeKit) {
- setIsSending(true);
- setChosenOption(0);
- const [address] = await walletClient!.getAddresses();
-
- await wrapWithToast(
- publicClient.simulateContract({
- abi: disputeKitClassicABI,
- address: disputeKitClassicAddress[421613],
- functionName: "castVote",
- account: address,
- args: [parsedDisputeID, parsedVoteIDs, 0n, 0n, justification],
- })
- ).finally(() => {
- setChosenOption(-1);
- setIsSending(false);
- });
- }
+ setIsSending(true);
+ setChosenOption(0);
+ const { request } = await prepareWriteDisputeKitClassic({
+ functionName: "castVote",
+ args: [parsedDisputeID, parsedVoteIDs, 0n, 0n, justification],
+ });
+ wrapWithToast(walletClient!.writeContract(request)).finally(() => {
+ setChosenOption(-1);
+ setIsSending(false);
+ });
}}
/>
From 792af5fe3a5a0cbedbdb1be7c799e6dfdd8f6372 Mon Sep 17 00:00:00 2001
From: alcercu <333aleix333@gmail.com>
Date: Tue, 13 Jun 2023 12:25:21 +0200
Subject: [PATCH 34/41] refactor(web): remove unused import
---
web/src/pages/Cases/CaseDetails/Voting/Binary.tsx | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/web/src/pages/Cases/CaseDetails/Voting/Binary.tsx b/web/src/pages/Cases/CaseDetails/Voting/Binary.tsx
index e25f52299..9d4eb0bb1 100644
--- a/web/src/pages/Cases/CaseDetails/Voting/Binary.tsx
+++ b/web/src/pages/Cases/CaseDetails/Voting/Binary.tsx
@@ -4,7 +4,7 @@ import { useParams } from "react-router-dom";
import { Button, Textarea } from "@kleros/ui-components-library";
import { useGetMetaEvidence } from "queries/useGetMetaEvidence";
import { wrapWithToast } from "utils/wrapWithToast";
-import { useWalletClient, usePublicClient } from "wagmi";
+import { useWalletClient } from "wagmi";
import { prepareWriteDisputeKitClassic } from "hooks/contracts/generated";
const Binary: React.FC<{ arbitrable?: string; voteIDs: string[] }> = ({ arbitrable, voteIDs }) => {
@@ -16,7 +16,6 @@ const Binary: React.FC<{ arbitrable?: string; voteIDs: string[] }> = ({ arbitrab
const [isSending, setIsSending] = useState(false);
const [justification, setJustification] = useState("");
const { data: walletClient } = useWalletClient();
- const publicClient = usePublicClient();
return id ? (
From 4f3abc56af0f5150bcf50f390716dfbd3860be5a Mon Sep 17 00:00:00 2001
From: alcercu <333aleix333@gmail.com>
Date: Tue, 13 Jun 2023 13:09:03 +0200
Subject: [PATCH 35/41] fix(web): use ethers commify
---
web/src/utils/commify.ts | 58 ++++++++++++++++++++++++++++++++--------
1 file changed, 47 insertions(+), 11 deletions(-)
diff --git a/web/src/utils/commify.ts b/web/src/utils/commify.ts
index f1df3e6d2..355651e49 100644
--- a/web/src/utils/commify.ts
+++ b/web/src/utils/commify.ts
@@ -1,16 +1,52 @@
-export const commify = (value: number | bigint | string): string => {
- const [integerPart, decimalPart] = value.toString().split(".");
+export function commify(value: string | number): string {
+ const comps = String(value).split(".");
- let formattedIntegerPart = "";
- let counter = 0;
+ if (
+ comps.length > 2 ||
+ !comps[0].match(/^-?[0-9]*$/) ||
+ (comps[1] && !comps[1].match(/^[0-9]*$/)) ||
+ value === "." ||
+ value === "-."
+ ) {
+ return value.toString();
+ }
+
+ // Make sure we have at least one whole digit (0 if none)
+ let whole = comps[0];
+
+ let negative = "";
+ if (whole.substring(0, 1) === "-") {
+ negative = "-";
+ whole = whole.substring(1);
+ }
+
+ // Make sure we have at least 1 whole digit with no leading zeros
+ while (whole.substring(0, 1) === "0") {
+ whole = whole.substring(1);
+ }
+ if (whole === "") {
+ whole = "0";
+ }
+
+ let suffix = "";
+ if (comps.length === 2) {
+ suffix = "." + (comps[1] || "0");
+ }
+ while (suffix.length > 2 && suffix[suffix.length - 1] === "0") {
+ suffix = suffix.substring(0, suffix.length - 1);
+ }
- for (let i = integerPart.length - 1; i >= 0; i--) {
- counter++;
- formattedIntegerPart = integerPart[i] + formattedIntegerPart;
- if (counter % 3 === 0 && i !== 0) {
- formattedIntegerPart = "," + formattedIntegerPart;
+ const formatted: string[] = [];
+ while (whole.length) {
+ if (whole.length <= 3) {
+ formatted.unshift(whole);
+ break;
+ } else {
+ const index = whole.length - 3;
+ formatted.unshift(whole.substring(index));
+ whole = whole.substring(0, index);
}
}
- return decimalPart ? `${formattedIntegerPart}.${decimalPart}` : formattedIntegerPart;
-};
+ return negative + formatted.join(",") + suffix;
+}
From d2801c95d4bb01864fb560c05744ee3c8c95f8f8 Mon Sep 17 00:00:00 2001
From: nhestrompia
Date: Wed, 14 Jun 2023 16:20:27 +0300
Subject: [PATCH 36/41] feat: add links to solutions and help
---
web/src/layout/Header/navbar/DappList.tsx | 16 ++++++++--------
web/src/layout/Header/navbar/Menu/Help.tsx | 12 ++++++------
web/src/layout/Header/navbar/Product.tsx | 1 -
3 files changed, 14 insertions(+), 15 deletions(-)
diff --git a/web/src/layout/Header/navbar/DappList.tsx b/web/src/layout/Header/navbar/DappList.tsx
index dc468da19..fb345be6a 100644
--- a/web/src/layout/Header/navbar/DappList.tsx
+++ b/web/src/layout/Header/navbar/DappList.tsx
@@ -19,42 +19,42 @@ const ITEMS = [
{
text: "Court",
Icon: Court,
- url: "",
+ url: "https://court.kleros.io/",
},
{
text: "Escrow",
Icon: Escrow,
- url: "",
+ url: "https://escrow.kleros.io",
},
{
text: "Tokens",
Icon: Tokens,
- url: "",
+ url: "https://tokens.kleros.io/",
},
{
text: "POH",
Icon: POH,
- url: "",
+ url: "https://www.proofofhumanity.id",
},
{
text: "Curate",
Icon: Curate,
- url: "",
+ url: "https://curate.kleros.io/",
},
{
text: "Resolver",
Icon: Resolver,
- url: "",
+ url: "https://resolve.kleros.io/",
},
{
text: "Linguo",
Icon: Linguo,
- url: "",
+ url: "https://linguo.kleros.io/",
},
{
text: "Governor",
Icon: Governor,
- url: "",
+ url: "https://governor.kleros.io/",
},
];
diff --git a/web/src/layout/Header/navbar/Menu/Help.tsx b/web/src/layout/Header/navbar/Menu/Help.tsx
index 18a8ae8cd..f94b3b049 100644
--- a/web/src/layout/Header/navbar/Menu/Help.tsx
+++ b/web/src/layout/Header/navbar/Menu/Help.tsx
@@ -12,17 +12,17 @@ const ITEMS = [
{
text: "Onboarding",
Icon: Book,
- url: "",
+ url: "https://kleros.dodao.io/",
},
{
text: "Get Help",
Icon: Telegram,
- url: "",
+ url: "https://t.me/kleros",
},
{
text: "Report a Bug",
Icon: Bug,
- url: "",
+ url: "https://github.com/kleros/kleros-v2/issues/new",
},
{
text: "DApp Guide",
@@ -37,7 +37,7 @@ const ITEMS = [
{
text: "FAQ",
Icon: Faq,
- url: "",
+ url: "https://kleros.gitbook.io/docs/kleros-faq",
},
];
@@ -61,7 +61,7 @@ const Container = styled.div`
box-shadow: 0px 2px 3px rgba(0, 0, 0, 0.06);
`;
-const ListItem = styled.div`
+const ListItem = styled.a`
display: flex;
gap: 8px;
padding: 0px 8px;
@@ -106,7 +106,7 @@ const Help: React.FC = ({ toggle }) => {
{ITEMS.map((item) => (
-
+
{item.text}
diff --git a/web/src/layout/Header/navbar/Product.tsx b/web/src/layout/Header/navbar/Product.tsx
index a5e6bf69a..25552396d 100644
--- a/web/src/layout/Header/navbar/Product.tsx
+++ b/web/src/layout/Header/navbar/Product.tsx
@@ -55,7 +55,6 @@ const StyledImg = styled.img`
`;
const Product: React.FC = ({ text, url, Icon }) => {
- console.log("icon", Icon);
return (
{typeof Icon === "string" ? : }
From 235939b87fcfb816c44a1224cc3556699f1470f4 Mon Sep 17 00:00:00 2001
From: alcercu <333aleix333@gmail.com>
Date: Fri, 16 Jun 2023 11:51:30 +0200
Subject: [PATCH 37/41] chore: use correct prettier config
---
web/.eslintrc.json | 2 +-
web/package.json | 1 +
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/web/.eslintrc.json b/web/.eslintrc.json
index 780538033..4a6e560ab 100644
--- a/web/.eslintrc.json
+++ b/web/.eslintrc.json
@@ -60,7 +60,7 @@
"max-len": [
"warn",
{
- "code": 80
+ "code": 120
}
],
"react/prop-types": 0,
diff --git a/web/package.json b/web/package.json
index e4e8eed0f..9b1c41d17 100644
--- a/web/package.json
+++ b/web/package.json
@@ -33,6 +33,7 @@
"generate-gql": "graphql-codegen",
"generate-hooks": "wagmi generate"
},
+ "prettier": "@kleros/kleros-v2-prettier-config",
"devDependencies": {
"@kleros/kleros-v2-eslint-config": "workspace:^",
"@kleros/kleros-v2-prettier-config": "workspace:^",
From 395392315f87eabcb5a351f1ad2192efc2b0d0f0 Mon Sep 17 00:00:00 2001
From: alcercu <333aleix333@gmail.com>
Date: Fri, 16 Jun 2023 13:05:56 +0200
Subject: [PATCH 38/41] fix: revert updates to parcel version as it breaks
wagmi
---
web/package.json | 4 +-
yarn.lock | 1238 +++++++++++++++++++---------------------------
2 files changed, 516 insertions(+), 726 deletions(-)
diff --git a/web/package.json b/web/package.json
index 9b1c41d17..7c1cc996e 100644
--- a/web/package.json
+++ b/web/package.json
@@ -39,7 +39,7 @@
"@kleros/kleros-v2-prettier-config": "workspace:^",
"@kleros/kleros-v2-tsconfig": "workspace:^",
"@netlify/functions": "^1.6.0",
- "@parcel/transformer-svg-react": "~2.9.2",
+ "@parcel/transformer-svg-react": "~2.8.0",
"@parcel/watcher": "~2.1.0",
"@types/react": "^18.2.12",
"@types/react-dom": "^18.2.5",
@@ -77,7 +77,7 @@
"graphql": "^16.6.0",
"graphql-request": "~5.1.0",
"moment": "^2.29.4",
- "parcel": "~2.9.2",
+ "parcel": "~2.8.0",
"react": "^18.2.0",
"react-chartjs-2": "^4.3.1",
"react-dom": "^18.2.0",
diff --git a/yarn.lock b/yarn.lock
index b2320df4a..3a7a13708 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -3780,6 +3780,16 @@ __metadata:
languageName: node
linkType: hard
+"@jridgewell/source-map@npm:^0.3.3":
+ version: 0.3.3
+ resolution: "@jridgewell/source-map@npm:0.3.3"
+ dependencies:
+ "@jridgewell/gen-mapping": ^0.3.0
+ "@jridgewell/trace-mapping": ^0.3.9
+ checksum: ae1302146339667da5cd6541260ecbef46ae06819a60f88da8f58b3e64682f787c09359933d050dea5d2173ea7fa40f40dd4d4e7a8d325c5892cccd99aaf8959
+ languageName: node
+ linkType: hard
+
"@jridgewell/sourcemap-codec@npm:1.4.14, @jridgewell/sourcemap-codec@npm:^1.4.10":
version: 1.4.14
resolution: "@jridgewell/sourcemap-codec@npm:1.4.14"
@@ -3957,7 +3967,7 @@ __metadata:
"@kleros/kleros-v2-tsconfig": "workspace:^"
"@kleros/ui-components-library": ^1.9.2
"@netlify/functions": ^1.6.0
- "@parcel/transformer-svg-react": ~2.9.2
+ "@parcel/transformer-svg-react": ~2.8.0
"@parcel/watcher": ~2.1.0
"@sentry/react": ^7.55.2
"@sentry/tracing": ^7.55.2
@@ -3987,7 +3997,7 @@ __metadata:
graphql-request: ~5.1.0
lru-cache: ^7.18.3
moment: ^2.29.4
- parcel: ~2.9.2
+ parcel: ~2.8.0
react: ^18.2.0
react-chartjs-2: ^4.3.1
react-dom: ^18.2.0
@@ -4174,44 +4184,44 @@ __metadata:
languageName: node
linkType: hard
-"@lmdb/lmdb-darwin-arm64@npm:2.7.11":
- version: 2.7.11
- resolution: "@lmdb/lmdb-darwin-arm64@npm:2.7.11"
+"@lmdb/lmdb-darwin-arm64@npm:2.5.2":
+ version: 2.5.2
+ resolution: "@lmdb/lmdb-darwin-arm64@npm:2.5.2"
conditions: os=darwin & cpu=arm64
languageName: node
linkType: hard
-"@lmdb/lmdb-darwin-x64@npm:2.7.11":
- version: 2.7.11
- resolution: "@lmdb/lmdb-darwin-x64@npm:2.7.11"
+"@lmdb/lmdb-darwin-x64@npm:2.5.2":
+ version: 2.5.2
+ resolution: "@lmdb/lmdb-darwin-x64@npm:2.5.2"
conditions: os=darwin & cpu=x64
languageName: node
linkType: hard
-"@lmdb/lmdb-linux-arm64@npm:2.7.11":
- version: 2.7.11
- resolution: "@lmdb/lmdb-linux-arm64@npm:2.7.11"
+"@lmdb/lmdb-linux-arm64@npm:2.5.2":
+ version: 2.5.2
+ resolution: "@lmdb/lmdb-linux-arm64@npm:2.5.2"
conditions: os=linux & cpu=arm64
languageName: node
linkType: hard
-"@lmdb/lmdb-linux-arm@npm:2.7.11":
- version: 2.7.11
- resolution: "@lmdb/lmdb-linux-arm@npm:2.7.11"
+"@lmdb/lmdb-linux-arm@npm:2.5.2":
+ version: 2.5.2
+ resolution: "@lmdb/lmdb-linux-arm@npm:2.5.2"
conditions: os=linux & cpu=arm
languageName: node
linkType: hard
-"@lmdb/lmdb-linux-x64@npm:2.7.11":
- version: 2.7.11
- resolution: "@lmdb/lmdb-linux-x64@npm:2.7.11"
+"@lmdb/lmdb-linux-x64@npm:2.5.2":
+ version: 2.5.2
+ resolution: "@lmdb/lmdb-linux-x64@npm:2.5.2"
conditions: os=linux & cpu=x64
languageName: node
linkType: hard
-"@lmdb/lmdb-win32-x64@npm:2.7.11":
- version: 2.7.11
- resolution: "@lmdb/lmdb-win32-x64@npm:2.7.11"
+"@lmdb/lmdb-win32-x64@npm:2.5.2":
+ version: 2.5.2
+ resolution: "@lmdb/lmdb-win32-x64@npm:2.5.2"
conditions: os=win32 & cpu=x64
languageName: node
linkType: hard
@@ -4385,13 +4395,6 @@ __metadata:
languageName: node
linkType: hard
-"@msgpackr-extract/msgpackr-extract-darwin-arm64@npm:3.0.2":
- version: 3.0.2
- resolution: "@msgpackr-extract/msgpackr-extract-darwin-arm64@npm:3.0.2"
- conditions: os=darwin & cpu=arm64
- languageName: node
- linkType: hard
-
"@msgpackr-extract/msgpackr-extract-darwin-x64@npm:2.2.0":
version: 2.2.0
resolution: "@msgpackr-extract/msgpackr-extract-darwin-x64@npm:2.2.0"
@@ -4399,13 +4402,6 @@ __metadata:
languageName: node
linkType: hard
-"@msgpackr-extract/msgpackr-extract-darwin-x64@npm:3.0.2":
- version: 3.0.2
- resolution: "@msgpackr-extract/msgpackr-extract-darwin-x64@npm:3.0.2"
- conditions: os=darwin & cpu=x64
- languageName: node
- linkType: hard
-
"@msgpackr-extract/msgpackr-extract-linux-arm64@npm:2.2.0":
version: 2.2.0
resolution: "@msgpackr-extract/msgpackr-extract-linux-arm64@npm:2.2.0"
@@ -4413,13 +4409,6 @@ __metadata:
languageName: node
linkType: hard
-"@msgpackr-extract/msgpackr-extract-linux-arm64@npm:3.0.2":
- version: 3.0.2
- resolution: "@msgpackr-extract/msgpackr-extract-linux-arm64@npm:3.0.2"
- conditions: os=linux & cpu=arm64
- languageName: node
- linkType: hard
-
"@msgpackr-extract/msgpackr-extract-linux-arm@npm:2.2.0":
version: 2.2.0
resolution: "@msgpackr-extract/msgpackr-extract-linux-arm@npm:2.2.0"
@@ -4427,13 +4416,6 @@ __metadata:
languageName: node
linkType: hard
-"@msgpackr-extract/msgpackr-extract-linux-arm@npm:3.0.2":
- version: 3.0.2
- resolution: "@msgpackr-extract/msgpackr-extract-linux-arm@npm:3.0.2"
- conditions: os=linux & cpu=arm
- languageName: node
- linkType: hard
-
"@msgpackr-extract/msgpackr-extract-linux-x64@npm:2.2.0":
version: 2.2.0
resolution: "@msgpackr-extract/msgpackr-extract-linux-x64@npm:2.2.0"
@@ -4441,13 +4423,6 @@ __metadata:
languageName: node
linkType: hard
-"@msgpackr-extract/msgpackr-extract-linux-x64@npm:3.0.2":
- version: 3.0.2
- resolution: "@msgpackr-extract/msgpackr-extract-linux-x64@npm:3.0.2"
- conditions: os=linux & cpu=x64
- languageName: node
- linkType: hard
-
"@msgpackr-extract/msgpackr-extract-win32-x64@npm:2.2.0":
version: 2.2.0
resolution: "@msgpackr-extract/msgpackr-extract-win32-x64@npm:2.2.0"
@@ -4455,13 +4430,6 @@ __metadata:
languageName: node
linkType: hard
-"@msgpackr-extract/msgpackr-extract-win32-x64@npm:3.0.2":
- version: 3.0.2
- resolution: "@msgpackr-extract/msgpackr-extract-win32-x64@npm:3.0.2"
- conditions: os=win32 & cpu=x64
- languageName: node
- linkType: hard
-
"@multiformats/mafmt@npm:^11.0.3":
version: 11.1.2
resolution: "@multiformats/mafmt@npm:11.1.2"
@@ -5116,111 +5084,110 @@ __metadata:
languageName: node
linkType: hard
-"@parcel/bundler-default@npm:2.9.2":
- version: 2.9.2
- resolution: "@parcel/bundler-default@npm:2.9.2"
+"@parcel/bundler-default@npm:2.8.3":
+ version: 2.8.3
+ resolution: "@parcel/bundler-default@npm:2.8.3"
dependencies:
- "@parcel/diagnostic": 2.9.2
- "@parcel/graph": 2.9.2
- "@parcel/hash": 2.9.2
- "@parcel/plugin": 2.9.2
- "@parcel/utils": 2.9.2
+ "@parcel/diagnostic": 2.8.3
+ "@parcel/graph": 2.8.3
+ "@parcel/hash": 2.8.3
+ "@parcel/plugin": 2.8.3
+ "@parcel/utils": 2.8.3
nullthrows: ^1.1.1
- checksum: acd5045aaef2a13f45e842514c151c746a004712ad6f0479e566376a0333090f8e2e837b8e783d9d1f013505581faa363056724aa894b516f294c69e01471b12
+ checksum: 219b2be341cad20991659b7a3031454a081ce0787c161a4da8a73ae8a4af4468667b284caea9488e869b162763d308cfd6495ab35fe386413b14325d6667ea86
languageName: node
linkType: hard
-"@parcel/cache@npm:2.9.2":
- version: 2.9.2
- resolution: "@parcel/cache@npm:2.9.2"
+"@parcel/cache@npm:2.8.3":
+ version: 2.8.3
+ resolution: "@parcel/cache@npm:2.8.3"
dependencies:
- "@parcel/fs": 2.9.2
- "@parcel/logger": 2.9.2
- "@parcel/utils": 2.9.2
- lmdb: 2.7.11
+ "@parcel/fs": 2.8.3
+ "@parcel/logger": 2.8.3
+ "@parcel/utils": 2.8.3
+ lmdb: 2.5.2
peerDependencies:
- "@parcel/core": ^2.9.2
- checksum: 7968be08b0bb7937c279b6978d95ad1f4fd0408b7b92a77971239ed6f2c759da02bff9f2c4037bbf5877851695c1f058f0bc1ed0774e1aab2551444bfaf87cf6
+ "@parcel/core": ^2.8.3
+ checksum: cd679053d229f8d06536a8fc9d857e5fa58905492e1a97c4f6b1da82de0dcef202a609c1e36206d3cdb32e5da3a214525f868b98dfd7aa671a53dacceb004fd9
languageName: node
linkType: hard
-"@parcel/codeframe@npm:2.9.2":
- version: 2.9.2
- resolution: "@parcel/codeframe@npm:2.9.2"
+"@parcel/codeframe@npm:2.8.3":
+ version: 2.8.3
+ resolution: "@parcel/codeframe@npm:2.8.3"
dependencies:
chalk: ^4.1.0
- checksum: 6a9cc239947e147208248cfbd03ffe94b57881f8523ea381a663143d189698c02bc7447143c93ec4d069a64ed297139e80cd2ea6d0acf422fc226d570fe0b2ea
- languageName: node
- linkType: hard
-
-"@parcel/compressor-raw@npm:2.9.2":
- version: 2.9.2
- resolution: "@parcel/compressor-raw@npm:2.9.2"
- dependencies:
- "@parcel/plugin": 2.9.2
- checksum: 263005e4bc5cf547ce01ccc60d9414f783be01e9b408658f9dc12583d8c88200b0a56e03ca1b4d737689d0c859eca9afa6a8b553c8b6816108461ed34044e5c8
- languageName: node
- linkType: hard
-
-"@parcel/config-default@npm:2.9.2":
- version: 2.9.2
- resolution: "@parcel/config-default@npm:2.9.2"
- dependencies:
- "@parcel/bundler-default": 2.9.2
- "@parcel/compressor-raw": 2.9.2
- "@parcel/namer-default": 2.9.2
- "@parcel/optimizer-css": 2.9.2
- "@parcel/optimizer-htmlnano": 2.9.2
- "@parcel/optimizer-image": 2.9.2
- "@parcel/optimizer-svgo": 2.9.2
- "@parcel/optimizer-swc": 2.9.2
- "@parcel/packager-css": 2.9.2
- "@parcel/packager-html": 2.9.2
- "@parcel/packager-js": 2.9.2
- "@parcel/packager-raw": 2.9.2
- "@parcel/packager-svg": 2.9.2
- "@parcel/reporter-dev-server": 2.9.2
- "@parcel/resolver-default": 2.9.2
- "@parcel/runtime-browser-hmr": 2.9.2
- "@parcel/runtime-js": 2.9.2
- "@parcel/runtime-react-refresh": 2.9.2
- "@parcel/runtime-service-worker": 2.9.2
- "@parcel/transformer-babel": 2.9.2
- "@parcel/transformer-css": 2.9.2
- "@parcel/transformer-html": 2.9.2
- "@parcel/transformer-image": 2.9.2
- "@parcel/transformer-js": 2.9.2
- "@parcel/transformer-json": 2.9.2
- "@parcel/transformer-postcss": 2.9.2
- "@parcel/transformer-posthtml": 2.9.2
- "@parcel/transformer-raw": 2.9.2
- "@parcel/transformer-react-refresh-wrap": 2.9.2
- "@parcel/transformer-svg": 2.9.2
- peerDependencies:
- "@parcel/core": ^2.9.2
- checksum: b07a1c93d739c9e491bd6bec36349645c8edf83364505f2a88080159ea963560105f3d5d9d12e2a34681804737139f2736277b2a0ec874ae47f66eb60737cc88
- languageName: node
- linkType: hard
-
-"@parcel/core@npm:2.9.2":
- version: 2.9.2
- resolution: "@parcel/core@npm:2.9.2"
+ checksum: a6e82c30e6251dcae14f247a14f6cb265f766b8bf18b62dd6a1c4a103cfae364a08897b36c5c379d0d867169647cb72962266f77571f718ff68ef70a16b81c02
+ languageName: node
+ linkType: hard
+
+"@parcel/compressor-raw@npm:2.8.3":
+ version: 2.8.3
+ resolution: "@parcel/compressor-raw@npm:2.8.3"
+ dependencies:
+ "@parcel/plugin": 2.8.3
+ checksum: ca3b8a4f60e5193cffaa8041e709513df9c6cb54f32c9d20fef993a9af2d84f1e2d8bf8f4092220a8abaec24679498f854e683511876187f35b4f94a5852cf85
+ languageName: node
+ linkType: hard
+
+"@parcel/config-default@npm:2.8.3":
+ version: 2.8.3
+ resolution: "@parcel/config-default@npm:2.8.3"
+ dependencies:
+ "@parcel/bundler-default": 2.8.3
+ "@parcel/compressor-raw": 2.8.3
+ "@parcel/namer-default": 2.8.3
+ "@parcel/optimizer-css": 2.8.3
+ "@parcel/optimizer-htmlnano": 2.8.3
+ "@parcel/optimizer-image": 2.8.3
+ "@parcel/optimizer-svgo": 2.8.3
+ "@parcel/optimizer-terser": 2.8.3
+ "@parcel/packager-css": 2.8.3
+ "@parcel/packager-html": 2.8.3
+ "@parcel/packager-js": 2.8.3
+ "@parcel/packager-raw": 2.8.3
+ "@parcel/packager-svg": 2.8.3
+ "@parcel/reporter-dev-server": 2.8.3
+ "@parcel/resolver-default": 2.8.3
+ "@parcel/runtime-browser-hmr": 2.8.3
+ "@parcel/runtime-js": 2.8.3
+ "@parcel/runtime-react-refresh": 2.8.3
+ "@parcel/runtime-service-worker": 2.8.3
+ "@parcel/transformer-babel": 2.8.3
+ "@parcel/transformer-css": 2.8.3
+ "@parcel/transformer-html": 2.8.3
+ "@parcel/transformer-image": 2.8.3
+ "@parcel/transformer-js": 2.8.3
+ "@parcel/transformer-json": 2.8.3
+ "@parcel/transformer-postcss": 2.8.3
+ "@parcel/transformer-posthtml": 2.8.3
+ "@parcel/transformer-raw": 2.8.3
+ "@parcel/transformer-react-refresh-wrap": 2.8.3
+ "@parcel/transformer-svg": 2.8.3
+ peerDependencies:
+ "@parcel/core": ^2.8.3
+ checksum: 08c700a7a253f39e84e1d341b3e0f558a2410bb27bf8a128113d8d157c32a7ef6b6ebd95e2c26d9f35c1040b98ff229ab56782247746189b4c41b925d1efd251
+ languageName: node
+ linkType: hard
+
+"@parcel/core@npm:2.8.3":
+ version: 2.8.3
+ resolution: "@parcel/core@npm:2.8.3"
dependencies:
"@mischnic/json-sourcemap": ^0.1.0
- "@parcel/cache": 2.9.2
- "@parcel/diagnostic": 2.9.2
- "@parcel/events": 2.9.2
- "@parcel/fs": 2.9.2
- "@parcel/graph": 2.9.2
- "@parcel/hash": 2.9.2
- "@parcel/logger": 2.9.2
- "@parcel/package-manager": 2.9.2
- "@parcel/plugin": 2.9.2
- "@parcel/profiler": 2.9.2
+ "@parcel/cache": 2.8.3
+ "@parcel/diagnostic": 2.8.3
+ "@parcel/events": 2.8.3
+ "@parcel/fs": 2.8.3
+ "@parcel/graph": 2.8.3
+ "@parcel/hash": 2.8.3
+ "@parcel/logger": 2.8.3
+ "@parcel/package-manager": 2.8.3
+ "@parcel/plugin": 2.8.3
"@parcel/source-map": ^2.1.1
- "@parcel/types": 2.9.2
- "@parcel/utils": 2.9.2
- "@parcel/workers": 2.9.2
+ "@parcel/types": 2.8.3
+ "@parcel/utils": 2.8.3
+ "@parcel/workers": 2.8.3
abortcontroller-polyfill: ^1.1.9
base-x: ^3.0.8
browserslist: ^4.6.6
@@ -5231,366 +5198,340 @@ __metadata:
msgpackr: ^1.5.4
nullthrows: ^1.1.1
semver: ^5.7.1
- checksum: 34fdd5779189d54695c7b71f9d52f5fabe898d769f8059427f30d2be29695e8ac05a4bbcd2309e80d129fde9d18693f0668e190402b4e06ca9c7e1b8bef152f7
+ checksum: 68adceb1b041208fe922bb52da218e6be90d6e016322f4eac5a5dbfbac72838080cf9bbce51785d65556a258293c02dffba4482217dbd9b723258101d925fb0e
languageName: node
linkType: hard
-"@parcel/diagnostic@npm:2.9.2":
- version: 2.9.2
- resolution: "@parcel/diagnostic@npm:2.9.2"
+"@parcel/diagnostic@npm:2.8.3":
+ version: 2.8.3
+ resolution: "@parcel/diagnostic@npm:2.8.3"
dependencies:
"@mischnic/json-sourcemap": ^0.1.0
nullthrows: ^1.1.1
- checksum: b27c14d711d0770dba1c91644aca31d5360b4d65fe28c07b59cd7b212687cb8d71637a59ff83114950470836153a02ac3da24d0be900e446d2b280a5e47d29cf
+ checksum: c24d98a2dbf068ef334c595d51504cd063310c0327477b5d7bcf817af3f8ad79d56593cdf91d8d45cb4a41a48baf9090ae4100a96d2c197d4ed20bc5db9df2d9
languageName: node
linkType: hard
-"@parcel/events@npm:2.9.2":
- version: 2.9.2
- resolution: "@parcel/events@npm:2.9.2"
- checksum: 4bc905a5e317a303cf39b209600f06d049482650336a48117e8b0084c2f73e3e5ff8cb179fe99462ddcb55eeb54db084877ce8f237ef6dc1e699f93e67175efb
+"@parcel/events@npm:2.8.3":
+ version: 2.8.3
+ resolution: "@parcel/events@npm:2.8.3"
+ checksum: 9d23c6663e9afce1d1094c46d38eba0b0171835201140258c1dcd33f63cfbc20bb1abdc163cbb7a01d407a8cf06c8742c10035c8a835ebca261b19d8ee0fbf7e
languageName: node
linkType: hard
-"@parcel/fs-search@npm:2.9.2":
- version: 2.9.2
- resolution: "@parcel/fs-search@npm:2.9.2"
- checksum: 68fd149a48e09bd24aa9035ede5c38f92b4b4fb98df7dbcfbfde6bc85dd1e99705c26cc465a2777b4f940017795e3e3d56dab356fb07f45d5647bb2588689fe9
+"@parcel/fs-search@npm:2.8.3":
+ version: 2.8.3
+ resolution: "@parcel/fs-search@npm:2.8.3"
+ dependencies:
+ detect-libc: ^1.0.3
+ checksum: 25e8eda6942fbf28e02cef1f5e94acafb3e33275a20b0a3e553402f04d2d24026be796b645728e872949dc8555b03a7d26d615a4f8eeed03a3af76aed535cc10
languageName: node
linkType: hard
-"@parcel/fs@npm:2.9.2":
- version: 2.9.2
- resolution: "@parcel/fs@npm:2.9.2"
+"@parcel/fs@npm:2.8.3":
+ version: 2.8.3
+ resolution: "@parcel/fs@npm:2.8.3"
dependencies:
- "@parcel/fs-search": 2.9.2
- "@parcel/types": 2.9.2
- "@parcel/utils": 2.9.2
+ "@parcel/fs-search": 2.8.3
+ "@parcel/types": 2.8.3
+ "@parcel/utils": 2.8.3
"@parcel/watcher": ^2.0.7
- "@parcel/workers": 2.9.2
+ "@parcel/workers": 2.8.3
peerDependencies:
- "@parcel/core": ^2.9.2
- checksum: 410c63e0dcdbf01563248fca0017b1e037ec27b229ebf17815f605bf50676bbc3787b1326898cff30a21d439658d46fb7103258416bd05d79de52def06060a52
+ "@parcel/core": ^2.8.3
+ checksum: cc421552daef3c7676030867a1b4ed45d64d5f4221b0b12d487a86183a39544290fd3e7ed9104b1b58c05f2a6b5ec0698ce37a9cd49c484d94ed6b445f26d598
languageName: node
linkType: hard
-"@parcel/graph@npm:2.9.2":
- version: 2.9.2
- resolution: "@parcel/graph@npm:2.9.2"
+"@parcel/graph@npm:2.8.3":
+ version: 2.8.3
+ resolution: "@parcel/graph@npm:2.8.3"
dependencies:
nullthrows: ^1.1.1
- checksum: 9943396a21331b82adb1aac6e541688471eae0ab3ff06417eed9e65ea40f78e881bf8f8de0f1ca1a86fa2e297221ec04311f28232dcecad5929b0cf6676fce7e
+ checksum: ceed8445f5a23396cca001a54ee0620bd7d6ecbb455977c16bd2f446da14c1791817ed715a4cf70d6ba66310991eeee44d692f15f70ff52e75b98b629da25a88
languageName: node
linkType: hard
-"@parcel/hash@npm:2.9.2":
- version: 2.9.2
- resolution: "@parcel/hash@npm:2.9.2"
+"@parcel/hash@npm:2.8.3":
+ version: 2.8.3
+ resolution: "@parcel/hash@npm:2.8.3"
dependencies:
+ detect-libc: ^1.0.3
xxhash-wasm: ^0.4.2
- checksum: 7ee42d33a1464c28ee118ad305e372e98596621b8df35a449427e6990e4ed858607b885afdcfa09a33079bd878298c62b2a2d231198003ce47a0fa8577b80d3a
+ checksum: 29cef199feda672756c930a8b45ee91e46607aa1b6659c38658758fe2f88870c20e0d4e8738d96ca8b44df60c1b767b5593110e2d24b99382214158c759258d0
languageName: node
linkType: hard
-"@parcel/logger@npm:2.9.2":
- version: 2.9.2
- resolution: "@parcel/logger@npm:2.9.2"
+"@parcel/logger@npm:2.8.3":
+ version: 2.8.3
+ resolution: "@parcel/logger@npm:2.8.3"
dependencies:
- "@parcel/diagnostic": 2.9.2
- "@parcel/events": 2.9.2
- checksum: 072052724aee9ec32b4c91127e7b4ffd1ffbe8398159c5176004bd4f33c143017c3e480ace614d3af91838336783d2905c8608759108331f0ba49617e921837f
+ "@parcel/diagnostic": 2.8.3
+ "@parcel/events": 2.8.3
+ checksum: 04fd46313138ea8e38c5bd051cd79ee245ad0a7bb6d5d12a892cafa79755af81ec1b6ddc83a79224bb74170bc1323f016cf849981326adb391f43920976ec9dc
languageName: node
linkType: hard
-"@parcel/markdown-ansi@npm:2.9.2":
- version: 2.9.2
- resolution: "@parcel/markdown-ansi@npm:2.9.2"
+"@parcel/markdown-ansi@npm:2.8.3":
+ version: 2.8.3
+ resolution: "@parcel/markdown-ansi@npm:2.8.3"
dependencies:
chalk: ^4.1.0
- checksum: 171d62a76135bd3731d74b2b445ed64118285394389f83b81f074b6677ed66c9b1b62dc84ffcb6e54cc13bf8cd0adc8f83e6518d2d081f0376772411f7db0f74
+ checksum: 1985f149b2ac08347f954230922fdcc45d7ceedba9b7f458078843a018d950a56cb512fb951537b4f995e861b9290b0757cfc0eadf542a13b124175b5ef02945
languageName: node
linkType: hard
-"@parcel/namer-default@npm:2.9.2":
- version: 2.9.2
- resolution: "@parcel/namer-default@npm:2.9.2"
+"@parcel/namer-default@npm:2.8.3":
+ version: 2.8.3
+ resolution: "@parcel/namer-default@npm:2.8.3"
dependencies:
- "@parcel/diagnostic": 2.9.2
- "@parcel/plugin": 2.9.2
+ "@parcel/diagnostic": 2.8.3
+ "@parcel/plugin": 2.8.3
nullthrows: ^1.1.1
- checksum: 903da6aada666b900339d962bc516625b4e14111340dcb6047d8c0db6dba9dc267dc8fc818671337605f3b734227768e39491d1d1bc5dac3a430873dcff9f9f0
+ checksum: 7c2c3434460d8fa6c9d482a9bfc681e47322ad82c8beef193eee9e45831374860d0f89de4c69e2e5cf41301cad19c7e87f5b536ca7d684aa383e783bcce02ef1
languageName: node
linkType: hard
-"@parcel/node-resolver-core@npm:3.0.2":
- version: 3.0.2
- resolution: "@parcel/node-resolver-core@npm:3.0.2"
+"@parcel/node-resolver-core@npm:2.8.3":
+ version: 2.8.3
+ resolution: "@parcel/node-resolver-core@npm:2.8.3"
dependencies:
- "@mischnic/json-sourcemap": ^0.1.0
- "@parcel/diagnostic": 2.9.2
- "@parcel/fs": 2.9.2
- "@parcel/utils": 2.9.2
+ "@parcel/diagnostic": 2.8.3
+ "@parcel/utils": 2.8.3
nullthrows: ^1.1.1
semver: ^5.7.1
- checksum: 82d5122e36755d5123648d0ab7b918a0f0bddf9845216536cafb5c4b1458f2ea19d89a5893096d0123d750b39ee4822f0b3e89b37d8d163f7bc3cef270017933
+ checksum: 4976d3ecc9acc6ee05c7709291f4576c269bc84f896c8bf9e6171ce6f9fbd9c2dd7e3db4e11542b3b29093c73f5451724c94bf7b0735b9920ddcdeecf1809968
languageName: node
linkType: hard
-"@parcel/optimizer-css@npm:2.9.2":
- version: 2.9.2
- resolution: "@parcel/optimizer-css@npm:2.9.2"
+"@parcel/optimizer-css@npm:2.8.3":
+ version: 2.8.3
+ resolution: "@parcel/optimizer-css@npm:2.8.3"
dependencies:
- "@parcel/diagnostic": 2.9.2
- "@parcel/plugin": 2.9.2
+ "@parcel/diagnostic": 2.8.3
+ "@parcel/plugin": 2.8.3
"@parcel/source-map": ^2.1.1
- "@parcel/utils": 2.9.2
+ "@parcel/utils": 2.8.3
browserslist: ^4.6.6
lightningcss: ^1.16.1
nullthrows: ^1.1.1
- checksum: 2ba9bd6eeaf696ed928961b3c582a01730d7bd33b0e8c91e9c3bf5b374b239a87557492e653d7bf92758b7d20a277a1beb859587c21ba9b882d3c2d4dbe4539b
+ checksum: ffac43a2c20243d57b8627257b5a74462ebc0f4aa780b3117237240c9c3e9ca37ddcc8312296be9fe571a78f5a44cc14fa47ca9490d3796d673d8313d6cd8c9a
languageName: node
linkType: hard
-"@parcel/optimizer-htmlnano@npm:2.9.2":
- version: 2.9.2
- resolution: "@parcel/optimizer-htmlnano@npm:2.9.2"
+"@parcel/optimizer-htmlnano@npm:2.8.3":
+ version: 2.8.3
+ resolution: "@parcel/optimizer-htmlnano@npm:2.8.3"
dependencies:
- "@parcel/plugin": 2.9.2
+ "@parcel/plugin": 2.8.3
htmlnano: ^2.0.0
nullthrows: ^1.1.1
posthtml: ^0.16.5
svgo: ^2.4.0
- checksum: 9a5f1caf59df73d846982cffe6dcd2a4fb260612c91c6dad39aace0a00d6ce47d38aaab289c051e3f60c8a70bbc8af60af1ccd03484879933fea308921aae81c
+ checksum: ca1cab7b1ecc16f209ad867fbdd8b2f446fd831d8688db068491fa22786a5aa3a0debb4290e0f003830c6b06c6f3a4c3a3cd9cdb033e7fa6cded8a19887d5f23
languageName: node
linkType: hard
-"@parcel/optimizer-image@npm:2.9.2":
- version: 2.9.2
- resolution: "@parcel/optimizer-image@npm:2.9.2"
+"@parcel/optimizer-image@npm:2.8.3":
+ version: 2.8.3
+ resolution: "@parcel/optimizer-image@npm:2.8.3"
dependencies:
- "@parcel/diagnostic": 2.9.2
- "@parcel/plugin": 2.9.2
- "@parcel/utils": 2.9.2
- "@parcel/workers": 2.9.2
- peerDependencies:
- "@parcel/core": ^2.9.2
- checksum: 8cbf4b2e9ad4ae3fb69db710dd44d3cb8f0c9bda238b4316864d872bee26a1238daa9ef92d5aa862f7819607616d57db154deae0a9eedb9c01ad1173b90f01a8
+ "@parcel/diagnostic": 2.8.3
+ "@parcel/plugin": 2.8.3
+ "@parcel/utils": 2.8.3
+ "@parcel/workers": 2.8.3
+ detect-libc: ^1.0.3
+ checksum: 72c5acffaea833237f62e23c8fb183eb85863ccddeb11304b2299b28973b957daba1e34854d347314edf35d83cba695c0d7600e1ae125dec4cc3151abd8f2e31
languageName: node
linkType: hard
-"@parcel/optimizer-svgo@npm:2.9.2":
- version: 2.9.2
- resolution: "@parcel/optimizer-svgo@npm:2.9.2"
+"@parcel/optimizer-svgo@npm:2.8.3":
+ version: 2.8.3
+ resolution: "@parcel/optimizer-svgo@npm:2.8.3"
dependencies:
- "@parcel/diagnostic": 2.9.2
- "@parcel/plugin": 2.9.2
- "@parcel/utils": 2.9.2
+ "@parcel/diagnostic": 2.8.3
+ "@parcel/plugin": 2.8.3
+ "@parcel/utils": 2.8.3
svgo: ^2.4.0
- checksum: 67ed4bd0db96a10d968a2aeb469e973530b46136fbd4779e5a9d39c85aa5b929666c2ec5170bdaa21979ab5508ce8becc03c2ef16584dd16e06e8fe07ebfb95b
+ checksum: b3544c08fac4009de1ec6f88136a58cdec70b072433b13fb99f9e6584dc4731afea82ae13d27e4121ed5aaec9e4481225a54251ce52b6ece835908300c26fa33
languageName: node
linkType: hard
-"@parcel/optimizer-swc@npm:2.9.2":
- version: 2.9.2
- resolution: "@parcel/optimizer-swc@npm:2.9.2"
+"@parcel/optimizer-terser@npm:2.8.3":
+ version: 2.8.3
+ resolution: "@parcel/optimizer-terser@npm:2.8.3"
dependencies:
- "@parcel/diagnostic": 2.9.2
- "@parcel/plugin": 2.9.2
+ "@parcel/diagnostic": 2.8.3
+ "@parcel/plugin": 2.8.3
"@parcel/source-map": ^2.1.1
- "@parcel/utils": 2.9.2
- "@swc/core": ^1.3.36
+ "@parcel/utils": 2.8.3
nullthrows: ^1.1.1
- checksum: e21d0bee331b36a5054ca6a99ec1ee8fb3ebc1cb3e431276f8653eb36fb86dd7bf3cd70b835614e0ce6ae9dc876e3bf91dec5902cb26151d7d1e007e41a88677
+ terser: ^5.2.0
+ checksum: ee1959f5965c7eee8ad1519f9d2554810030f326e959dd5e44aa014c29a51c2ab777dfbbf604a6b4436b75176a8694b7b8c9d99f945d57dea7828225762c8823
languageName: node
linkType: hard
-"@parcel/package-manager@npm:2.9.2":
- version: 2.9.2
- resolution: "@parcel/package-manager@npm:2.9.2"
- dependencies:
- "@parcel/diagnostic": 2.9.2
- "@parcel/fs": 2.9.2
- "@parcel/logger": 2.9.2
- "@parcel/node-resolver-core": 3.0.2
- "@parcel/types": 2.9.2
- "@parcel/utils": 2.9.2
- "@parcel/workers": 2.9.2
+"@parcel/package-manager@npm:2.8.3":
+ version: 2.8.3
+ resolution: "@parcel/package-manager@npm:2.8.3"
+ dependencies:
+ "@parcel/diagnostic": 2.8.3
+ "@parcel/fs": 2.8.3
+ "@parcel/logger": 2.8.3
+ "@parcel/types": 2.8.3
+ "@parcel/utils": 2.8.3
+ "@parcel/workers": 2.8.3
semver: ^5.7.1
peerDependencies:
- "@parcel/core": ^2.9.2
- checksum: f7f1913f7fb55800c4446ed641c3cfb9e79439449d0dc9ccc3cda20eb33564559f3ffd0e7b32743dae3fdaf04f8d44c893c3bdd0ff2946ed01433370287be935
+ "@parcel/core": ^2.8.3
+ checksum: 572a5aacfd7bc545d9aa35ff2125f1231226b550f9b0fe2c36d68a82ec8ffb047035e25fdb883bc2331a6eaf69c98bb5d6752644546d962de7bf544c6243a959
languageName: node
linkType: hard
-"@parcel/packager-css@npm:2.9.2":
- version: 2.9.2
- resolution: "@parcel/packager-css@npm:2.9.2"
+"@parcel/packager-css@npm:2.8.3":
+ version: 2.8.3
+ resolution: "@parcel/packager-css@npm:2.8.3"
dependencies:
- "@parcel/diagnostic": 2.9.2
- "@parcel/plugin": 2.9.2
+ "@parcel/plugin": 2.8.3
"@parcel/source-map": ^2.1.1
- "@parcel/utils": 2.9.2
+ "@parcel/utils": 2.8.3
nullthrows: ^1.1.1
- checksum: 835894034ebae62c279383064c3049f593aef4a8e35a1361701126d58603d606cf005acc6edbb2051a74a4add38f261f21badbe667cec778695ef6b4e33b3014
+ checksum: bb28fc9f02df83a1fd8eac7043466debb67398190819282a40a52ff299b0f4c3f474bfa7806be776ce36a66cc89574128a9fa210d2c0c9cb905bbb4dbbd2b926
languageName: node
linkType: hard
-"@parcel/packager-html@npm:2.9.2":
- version: 2.9.2
- resolution: "@parcel/packager-html@npm:2.9.2"
+"@parcel/packager-html@npm:2.8.3":
+ version: 2.8.3
+ resolution: "@parcel/packager-html@npm:2.8.3"
dependencies:
- "@parcel/plugin": 2.9.2
- "@parcel/types": 2.9.2
- "@parcel/utils": 2.9.2
+ "@parcel/plugin": 2.8.3
+ "@parcel/types": 2.8.3
+ "@parcel/utils": 2.8.3
nullthrows: ^1.1.1
posthtml: ^0.16.5
- checksum: 8551a11ea2f95abd2a38633fe294931b2255853b3733fb733882de8c396a29c5e8902f4c232fe33c786b74688bc020418c0801c76a8a5310762d247b48bdce06
+ checksum: 631f98fca0fdd3f11fe4cfbc1e0ad73b86f7fb00be7164fef5633c600a13282ae592b8f7d9aa31d4f66bd645ae57ce27e67db51a81b2a91c286ed5c8b36a4a87
languageName: node
linkType: hard
-"@parcel/packager-js@npm:2.9.2":
- version: 2.9.2
- resolution: "@parcel/packager-js@npm:2.9.2"
+"@parcel/packager-js@npm:2.8.3":
+ version: 2.8.3
+ resolution: "@parcel/packager-js@npm:2.8.3"
dependencies:
- "@parcel/diagnostic": 2.9.2
- "@parcel/hash": 2.9.2
- "@parcel/plugin": 2.9.2
+ "@parcel/diagnostic": 2.8.3
+ "@parcel/hash": 2.8.3
+ "@parcel/plugin": 2.8.3
"@parcel/source-map": ^2.1.1
- "@parcel/utils": 2.9.2
+ "@parcel/utils": 2.8.3
globals: ^13.2.0
nullthrows: ^1.1.1
- checksum: 49fef23dc6f2cf8083521be44f141be5f7ba11a98079d5caf2c4f8b3a910a61a6abfba64d02b7afdce167f3887c8a5e11346214bf0f5328e4d0800831a44f06a
+ checksum: 92ac88244b6104c5905ab95d882b755134042654ab48106ca84ab18441fb7240b66f049e407146958aead0812345823da729a4a37f32be17afd2b44cbdebc926
languageName: node
linkType: hard
-"@parcel/packager-raw@npm:2.9.2":
- version: 2.9.2
- resolution: "@parcel/packager-raw@npm:2.9.2"
+"@parcel/packager-raw@npm:2.8.3":
+ version: 2.8.3
+ resolution: "@parcel/packager-raw@npm:2.8.3"
dependencies:
- "@parcel/plugin": 2.9.2
- checksum: b56412fc298f8e2104ac154fc928c49d1eea3804360adeb71038859765951713a84490e0823f201321f2f8e479196177d0fb9dccca343ff451cc54a94cbfbfb2
+ "@parcel/plugin": 2.8.3
+ checksum: 26236dd64624a25fc1d749fb96b1bc3a6854b14d4386109670572f55feda4bb6affde19b1c9e971c4e50bfb53fd88e32da8303c83a3cb18ceaf12dd310685c34
languageName: node
linkType: hard
-"@parcel/packager-svg@npm:2.9.2":
- version: 2.9.2
- resolution: "@parcel/packager-svg@npm:2.9.2"
+"@parcel/packager-svg@npm:2.8.3":
+ version: 2.8.3
+ resolution: "@parcel/packager-svg@npm:2.8.3"
dependencies:
- "@parcel/plugin": 2.9.2
- "@parcel/types": 2.9.2
- "@parcel/utils": 2.9.2
+ "@parcel/plugin": 2.8.3
+ "@parcel/types": 2.8.3
+ "@parcel/utils": 2.8.3
posthtml: ^0.16.4
- checksum: ef38f501fbaba30b05da68f47dc475f77ed6da68642d13aef9e9de00e1f6114f1f1e2afeb4e2cb3d2deb314c7d52957acad1a88632c30750879ee6faf976d34a
+ checksum: 45c966ad8e6dbb25049adca66d761089a09cda83558d8767b46501a023b8d94b050f1a2899b1c8b18eac6cf87d2605ad5aa9a4cb2f9d90474794576dafb2e4fc
languageName: node
linkType: hard
-"@parcel/plugin@npm:2.9.2":
- version: 2.9.2
- resolution: "@parcel/plugin@npm:2.9.2"
- dependencies:
- "@parcel/types": 2.9.2
- checksum: 3104b076ec0e475cc81d51fd2e74d21daaf7067179af0d397130781944a65dc8fc4c7ada5ac9a27a37f66a46b039095c4c993b2a1a68c0312f334e7dd1594c1f
- languageName: node
- linkType: hard
-
-"@parcel/profiler@npm:2.9.2":
- version: 2.9.2
- resolution: "@parcel/profiler@npm:2.9.2"
+"@parcel/plugin@npm:2.8.3":
+ version: 2.8.3
+ resolution: "@parcel/plugin@npm:2.8.3"
dependencies:
- "@parcel/diagnostic": 2.9.2
- "@parcel/events": 2.9.2
- chrome-trace-event: ^1.0.2
- checksum: 390faeb1a057e12be4504e334e0e169c9471e4cc534328be0d3aa2acd65b2f198a298dbf381b7d4f6c8596b41e7d1fec0cfc5e88c9bd52b3372f65b4ed713cfd
+ "@parcel/types": 2.8.3
+ checksum: a69ac66f5cc28197cf689f1c4144398457d62a086621a22b3b45fe863909a094b616dad415ec01673a9eb731b05fe9060bcb340c07efcd48343577a540fbfdf7
languageName: node
linkType: hard
-"@parcel/reporter-cli@npm:2.9.2":
- version: 2.9.2
- resolution: "@parcel/reporter-cli@npm:2.9.2"
+"@parcel/reporter-cli@npm:2.8.3":
+ version: 2.8.3
+ resolution: "@parcel/reporter-cli@npm:2.8.3"
dependencies:
- "@parcel/plugin": 2.9.2
- "@parcel/types": 2.9.2
- "@parcel/utils": 2.9.2
+ "@parcel/plugin": 2.8.3
+ "@parcel/types": 2.8.3
+ "@parcel/utils": 2.8.3
chalk: ^4.1.0
term-size: ^2.2.1
- checksum: d9b5ca577f3db9afb9024bfec89177f094e5d9d540e09f009a62f7603e110fe8be9307063c07421efa6e4c3534a5e3950f872e321532e836f556bee030fd6727
+ checksum: 791dd4706aac706427a563455d9db5fa330b77e94fe4226b3751cd527327d8540d62400a8040e85a5fd29ecb6e673507e9d4a1fa754c093f1c005078670eef85
languageName: node
linkType: hard
-"@parcel/reporter-dev-server@npm:2.9.2":
- version: 2.9.2
- resolution: "@parcel/reporter-dev-server@npm:2.9.2"
- dependencies:
- "@parcel/plugin": 2.9.2
- "@parcel/utils": 2.9.2
- checksum: 1fdc8d48fd9ac238bc386062c47e7dcd6923b5f0a88defef71d417b056c46eaa6998bbe555dbcd2f5472d8035268d580a831c9bd7c6aceb766343945779014f2
- languageName: node
- linkType: hard
-
-"@parcel/reporter-tracer@npm:2.9.2":
- version: 2.9.2
- resolution: "@parcel/reporter-tracer@npm:2.9.2"
+"@parcel/reporter-dev-server@npm:2.8.3":
+ version: 2.8.3
+ resolution: "@parcel/reporter-dev-server@npm:2.8.3"
dependencies:
- "@parcel/plugin": 2.9.2
- "@parcel/utils": 2.9.2
- chrome-trace-event: ^1.0.3
- nullthrows: ^1.1.1
- checksum: e08623e902668d6b143dc3af03f1f736be11a681a6d3abd4071540d7d84fa010e22b96615694cc7afee27f5718beefd4ab9802285047b807ec2533dd875e13e9
+ "@parcel/plugin": 2.8.3
+ "@parcel/utils": 2.8.3
+ checksum: 329db9fd0cdc3ddc36d8156a7d67747335c76b1368116c98e266218f1e1ce4ea108981441bcb78961f64e2067a2d8a1745d8aa069398d50e67278e1333293723
languageName: node
linkType: hard
-"@parcel/resolver-default@npm:2.9.2":
- version: 2.9.2
- resolution: "@parcel/resolver-default@npm:2.9.2"
+"@parcel/resolver-default@npm:2.8.3":
+ version: 2.8.3
+ resolution: "@parcel/resolver-default@npm:2.8.3"
dependencies:
- "@parcel/node-resolver-core": 3.0.2
- "@parcel/plugin": 2.9.2
- checksum: dc502cd62fe660a2fb011222dd7c2dae4751929ef8d64734b0bafcd2fd8d2ea6c45a563721fa7d02cfb6bb82d31698b0f567665e26dc5155817bb438802a4698
+ "@parcel/node-resolver-core": 2.8.3
+ "@parcel/plugin": 2.8.3
+ checksum: 40515a62c1a301050144e1427ac7a591afedea50e89baff0ab4ed05ad8424f5df6ad4a7b5e413956a199ecef18bf8220b353fb115af72fac4187a62e8a997d1d
languageName: node
linkType: hard
-"@parcel/runtime-browser-hmr@npm:2.9.2":
- version: 2.9.2
- resolution: "@parcel/runtime-browser-hmr@npm:2.9.2"
+"@parcel/runtime-browser-hmr@npm:2.8.3":
+ version: 2.8.3
+ resolution: "@parcel/runtime-browser-hmr@npm:2.8.3"
dependencies:
- "@parcel/plugin": 2.9.2
- "@parcel/utils": 2.9.2
- checksum: 4d08afa02689f6fe444f88e4ab83684d7527b4942123e1b08ebdfddbfbeddc4d9b9a916164d0b794baec44208ead9f787913114756c3aba9d9b1a222d06a3b38
+ "@parcel/plugin": 2.8.3
+ "@parcel/utils": 2.8.3
+ checksum: 56c276c7b03bb4c301d7dbe94c5183404af4064286f67682399e848ff894bfb5ea783dad11082290d40f2f07be64252dd236b993baf2e3e8fbb30a572f95a0dc
languageName: node
linkType: hard
-"@parcel/runtime-js@npm:2.9.2":
- version: 2.9.2
- resolution: "@parcel/runtime-js@npm:2.9.2"
+"@parcel/runtime-js@npm:2.8.3":
+ version: 2.8.3
+ resolution: "@parcel/runtime-js@npm:2.8.3"
dependencies:
- "@parcel/diagnostic": 2.9.2
- "@parcel/plugin": 2.9.2
- "@parcel/utils": 2.9.2
+ "@parcel/plugin": 2.8.3
+ "@parcel/utils": 2.8.3
nullthrows: ^1.1.1
- checksum: 8dada6fecfb75db2fb2e5f0376aa3abc9a83d67b62dc84113f804afea66621abc1e380c4ed0ba7633ec4cb7f1b662c1e273a56c08722e5aa1fb05b3897ab05b5
+ checksum: ee5e04f84d522a6f53753c3956d37cacb2bdabb2539e2f40e640762b3cc43b20efc495331fe254d92d82a06c3e1b4690c17125090a12300d75ad7c3a9ca3e2f0
languageName: node
linkType: hard
-"@parcel/runtime-react-refresh@npm:2.9.2":
- version: 2.9.2
- resolution: "@parcel/runtime-react-refresh@npm:2.9.2"
+"@parcel/runtime-react-refresh@npm:2.8.3":
+ version: 2.8.3
+ resolution: "@parcel/runtime-react-refresh@npm:2.8.3"
dependencies:
- "@parcel/plugin": 2.9.2
- "@parcel/utils": 2.9.2
+ "@parcel/plugin": 2.8.3
+ "@parcel/utils": 2.8.3
react-error-overlay: 6.0.9
react-refresh: ^0.9.0
- checksum: 16631bc0209c1cb8dd9aa3c1ea8cff0e53cca57ebf557baf7419ba5db846615864f44dd46ce8fe84bcacd5bde4d8ee08c1ab42b6e5e37b201125e2114637af9d
+ checksum: 327159be0c8183f1cff139de973e8e8ca6b83dc2fc94846a89415fabf8cd8535e95ed3ae9750ac08e73a303de57c18c4e5da959ecbe73af75f1d3c9a98f5c20b
languageName: node
linkType: hard
-"@parcel/runtime-service-worker@npm:2.9.2":
- version: 2.9.2
- resolution: "@parcel/runtime-service-worker@npm:2.9.2"
+"@parcel/runtime-service-worker@npm:2.8.3":
+ version: 2.8.3
+ resolution: "@parcel/runtime-service-worker@npm:2.8.3"
dependencies:
- "@parcel/plugin": 2.9.2
- "@parcel/utils": 2.9.2
+ "@parcel/plugin": 2.8.3
+ "@parcel/utils": 2.8.3
nullthrows: ^1.1.1
- checksum: 21180ba472e2ef2969fe58aee7b7cf5a25e4975fd2e3187a92f4f01378cd9c784c63f0bdd0aaaaa1246de793611aad9b7a4b3e8a311125bee1cb9fb8eea8476a
+ checksum: 0646fee9a9378c0844c223d0eaf1c46e817738e70b2e993434717fb6aab998339b37a32c5bd9db891fcb8bc44dc3d7530564f84a5cd978d6dd47f204f18bd44a
languageName: node
linkType: hard
@@ -5603,205 +5544,205 @@ __metadata:
languageName: node
linkType: hard
-"@parcel/transformer-babel@npm:2.9.2":
- version: 2.9.2
- resolution: "@parcel/transformer-babel@npm:2.9.2"
+"@parcel/transformer-babel@npm:2.8.3":
+ version: 2.8.3
+ resolution: "@parcel/transformer-babel@npm:2.8.3"
dependencies:
- "@parcel/diagnostic": 2.9.2
- "@parcel/plugin": 2.9.2
+ "@parcel/diagnostic": 2.8.3
+ "@parcel/plugin": 2.8.3
"@parcel/source-map": ^2.1.1
- "@parcel/utils": 2.9.2
+ "@parcel/utils": 2.8.3
browserslist: ^4.6.6
json5: ^2.2.0
nullthrows: ^1.1.1
semver: ^5.7.0
- checksum: 4177b0f17666f75de64888aee599f37fa3b84cf0b2b1bcb33168c7d115c1a37805da9c092605f66220b551f6de7b6e51710822b92ae7b8c9fd688bbefc68d977
+ checksum: a27bbe8d893854a77d9a8c9b45490728b2db81ad0782b7d9085d00c50155840477dd4ada8e382e0b02f9f5f8761da48bd6d3feb62ddd582e6608f92d4468df80
languageName: node
linkType: hard
-"@parcel/transformer-css@npm:2.9.2":
- version: 2.9.2
- resolution: "@parcel/transformer-css@npm:2.9.2"
+"@parcel/transformer-css@npm:2.8.3":
+ version: 2.8.3
+ resolution: "@parcel/transformer-css@npm:2.8.3"
dependencies:
- "@parcel/diagnostic": 2.9.2
- "@parcel/plugin": 2.9.2
+ "@parcel/diagnostic": 2.8.3
+ "@parcel/plugin": 2.8.3
"@parcel/source-map": ^2.1.1
- "@parcel/utils": 2.9.2
+ "@parcel/utils": 2.8.3
browserslist: ^4.6.6
lightningcss: ^1.16.1
nullthrows: ^1.1.1
- checksum: 4aacbe62fa4d013bc624246f22d16f39aacf7b255c0eab17926bf11d026aa53efde10ba28747b22e0710d21e361dc43b8b44f0e93e3748e700c4f741cdcb68ec
+ checksum: 31375a140550968a36f7a8eb998c03f20200d202b7c62c98fb49b05f719777ca545d08f356dec9ca6d9a601ba0020abce5cf4672fe425bc99a540dccf262a6cc
languageName: node
linkType: hard
-"@parcel/transformer-html@npm:2.9.2":
- version: 2.9.2
- resolution: "@parcel/transformer-html@npm:2.9.2"
+"@parcel/transformer-html@npm:2.8.3":
+ version: 2.8.3
+ resolution: "@parcel/transformer-html@npm:2.8.3"
dependencies:
- "@parcel/diagnostic": 2.9.2
- "@parcel/hash": 2.9.2
- "@parcel/plugin": 2.9.2
+ "@parcel/diagnostic": 2.8.3
+ "@parcel/hash": 2.8.3
+ "@parcel/plugin": 2.8.3
nullthrows: ^1.1.1
posthtml: ^0.16.5
posthtml-parser: ^0.10.1
posthtml-render: ^3.0.0
semver: ^5.7.1
srcset: 4
- checksum: baf4047c55745116db6052d4568353875e14c82763bfbd2fab110a50eb3d811edb5276375829cb9cef15dd7e3ce45db4b34658426f6ef754c9f638670a70c930
+ checksum: 21600a3e0ac9e05aa6f6066ef94f8ba7e0de62a8ae59a812230907f5731dcf73dc5308fb74b32bfb6dab16089d13f72043965e1e87e8c4daec8447a9081af8eb
languageName: node
linkType: hard
-"@parcel/transformer-image@npm:2.9.2":
- version: 2.9.2
- resolution: "@parcel/transformer-image@npm:2.9.2"
+"@parcel/transformer-image@npm:2.8.3":
+ version: 2.8.3
+ resolution: "@parcel/transformer-image@npm:2.8.3"
dependencies:
- "@parcel/plugin": 2.9.2
- "@parcel/utils": 2.9.2
- "@parcel/workers": 2.9.2
+ "@parcel/plugin": 2.8.3
+ "@parcel/utils": 2.8.3
+ "@parcel/workers": 2.8.3
nullthrows: ^1.1.1
peerDependencies:
- "@parcel/core": ^2.9.2
- checksum: 197ffd824532abe1d711c4344477fc404aa87d5ebb76f64752522bf6813b06497a15f15a1eeba19ea8648c608961439f763fa5bcff8a5647063e6e5856a96ade
+ "@parcel/core": ^2.8.3
+ checksum: f4b3464828e1b3d44e7da5c7a71272f5f53f830d9bb371e8dd8b2f32040f4426f3efeae12949947e34b39f7755a253f0b48c6eeec6d86ad43baf0b30717f1f47
languageName: node
linkType: hard
-"@parcel/transformer-js@npm:2.9.2":
- version: 2.9.2
- resolution: "@parcel/transformer-js@npm:2.9.2"
+"@parcel/transformer-js@npm:2.8.3":
+ version: 2.8.3
+ resolution: "@parcel/transformer-js@npm:2.8.3"
dependencies:
- "@parcel/diagnostic": 2.9.2
- "@parcel/plugin": 2.9.2
+ "@parcel/diagnostic": 2.8.3
+ "@parcel/plugin": 2.8.3
"@parcel/source-map": ^2.1.1
- "@parcel/utils": 2.9.2
- "@parcel/workers": 2.9.2
- "@swc/helpers": ^0.5.0
+ "@parcel/utils": 2.8.3
+ "@parcel/workers": 2.8.3
+ "@swc/helpers": ^0.4.12
browserslist: ^4.6.6
+ detect-libc: ^1.0.3
nullthrows: ^1.1.1
regenerator-runtime: ^0.13.7
semver: ^5.7.1
peerDependencies:
- "@parcel/core": ^2.9.2
- checksum: 0ea4ff8282c825caaf66612aabeaa9b0d7032fd6b1aa67e54c6b2fdb3a83055406576fa006c5eb0d0fd70d8dbf0b1b01aa32134d15f897d385fdf69e869b1e37
+ "@parcel/core": ^2.8.3
+ checksum: 29fb203502309e11452837e4ae60589300c0d91fae35cf4774e70959e9f4532960ef4619959ce9c95f0060020faabbcfd024b076f41c7d5f7e126c3547244ff6
languageName: node
linkType: hard
-"@parcel/transformer-json@npm:2.9.2":
- version: 2.9.2
- resolution: "@parcel/transformer-json@npm:2.9.2"
+"@parcel/transformer-json@npm:2.8.3":
+ version: 2.8.3
+ resolution: "@parcel/transformer-json@npm:2.8.3"
dependencies:
- "@parcel/plugin": 2.9.2
+ "@parcel/plugin": 2.8.3
json5: ^2.2.0
- checksum: 656c01128ed68df06b5dcb11e39702444d37daa645befe93858f7e4d64f86cc81573a201cb6293c3ad2be26cc14131175a4d77ba72619d0172a2ca647a113d57
+ checksum: 04da28b0f0ff1ec1d7c6383b880daa2918f85ba1375351690a9a07ea4de102531d5f6addb3091ae5109623e270e1d2cdf582661f4a0805bd982a653a06d26890
languageName: node
linkType: hard
-"@parcel/transformer-postcss@npm:2.9.2":
- version: 2.9.2
- resolution: "@parcel/transformer-postcss@npm:2.9.2"
+"@parcel/transformer-postcss@npm:2.8.3":
+ version: 2.8.3
+ resolution: "@parcel/transformer-postcss@npm:2.8.3"
dependencies:
- "@parcel/diagnostic": 2.9.2
- "@parcel/hash": 2.9.2
- "@parcel/plugin": 2.9.2
- "@parcel/utils": 2.9.2
+ "@parcel/diagnostic": 2.8.3
+ "@parcel/hash": 2.8.3
+ "@parcel/plugin": 2.8.3
+ "@parcel/utils": 2.8.3
clone: ^2.1.1
nullthrows: ^1.1.1
postcss-value-parser: ^4.2.0
semver: ^5.7.1
- checksum: 4c514e8098b1c4dc27f0917aa06ab0e098c46eec5d4f15d866852ccc12207a03ee91fa768d5ce1d7cfdcd9ed54fe2f7c1ed394a5c24c8450d1b2adb8a4443acd
+ checksum: 2c75cb5cec7112d12a28ac5cddc9f2e939f76e006929757804431b266e7541aae5df6ba8601727c33c7b53f0f971a6df5dfb4394fa0baf284bd2c6fc9b507650
languageName: node
linkType: hard
-"@parcel/transformer-posthtml@npm:2.9.2":
- version: 2.9.2
- resolution: "@parcel/transformer-posthtml@npm:2.9.2"
+"@parcel/transformer-posthtml@npm:2.8.3":
+ version: 2.8.3
+ resolution: "@parcel/transformer-posthtml@npm:2.8.3"
dependencies:
- "@parcel/plugin": 2.9.2
- "@parcel/utils": 2.9.2
+ "@parcel/plugin": 2.8.3
+ "@parcel/utils": 2.8.3
nullthrows: ^1.1.1
posthtml: ^0.16.5
posthtml-parser: ^0.10.1
posthtml-render: ^3.0.0
semver: ^5.7.1
- checksum: a88988f71497a0941e93c0f337e6b2d586e8fc901f7dc4d9f28bb5c3ac43fa59781afe169c37872a0c6c97a9b6d0b24262e6ef39cb8a8309dc5443b8d49f0a4a
+ checksum: 130c95782aebb2491f2d89685db573b3b85ed1f7d9862684db2ab9d11fe8148995185a4e144b818de06d596cf687c5bd57b6b8648d2856cf830a9674c2ec3237
languageName: node
linkType: hard
-"@parcel/transformer-raw@npm:2.9.2":
- version: 2.9.2
- resolution: "@parcel/transformer-raw@npm:2.9.2"
+"@parcel/transformer-raw@npm:2.8.3":
+ version: 2.8.3
+ resolution: "@parcel/transformer-raw@npm:2.8.3"
dependencies:
- "@parcel/plugin": 2.9.2
- checksum: 1603569c73ed99da19e2f5953cd1e36c2c13c514e48d2ec3ab4b3fe194c66ab963acd9e5d9dff780997a9e9af0619629c46e2324966841261139427e67dd5bd9
+ "@parcel/plugin": 2.8.3
+ checksum: 371263bb526373c229aa3e730f2a1d6687bd6b771203d73237c04da3a3ada86c4fcf0b534d3fb366a7b3842df0cf98ae1e033602613cafd9f702f47a6568a83c
languageName: node
linkType: hard
-"@parcel/transformer-react-refresh-wrap@npm:2.9.2":
- version: 2.9.2
- resolution: "@parcel/transformer-react-refresh-wrap@npm:2.9.2"
+"@parcel/transformer-react-refresh-wrap@npm:2.8.3":
+ version: 2.8.3
+ resolution: "@parcel/transformer-react-refresh-wrap@npm:2.8.3"
dependencies:
- "@parcel/plugin": 2.9.2
- "@parcel/utils": 2.9.2
+ "@parcel/plugin": 2.8.3
+ "@parcel/utils": 2.8.3
react-refresh: ^0.9.0
- checksum: 9de36a5fa4fc87e69379e16fc90b1e089b8b609bdcc1d50eb4bd8fb8a79e33503588e2871759b44dde97d8fbd1c095f4024889d70446c5805a2e2e75c01c33ec
+ checksum: e9648e04b7f9b29f47ec7baedfba9cc36bbb7e44be6ad4b6b4433c20d1b5a3184a3043b712add16a5cc06300289305d5fa9ebb73c6dc926d04df7c52d9bc3316
languageName: node
linkType: hard
-"@parcel/transformer-svg-react@npm:~2.9.2":
- version: 2.9.2
- resolution: "@parcel/transformer-svg-react@npm:2.9.2"
+"@parcel/transformer-svg-react@npm:~2.8.0":
+ version: 2.8.3
+ resolution: "@parcel/transformer-svg-react@npm:2.8.3"
dependencies:
- "@parcel/plugin": 2.9.2
+ "@parcel/plugin": 2.8.3
"@svgr/core": ^6.2.0
"@svgr/plugin-jsx": ^6.2.0
"@svgr/plugin-svgo": ^6.2.0
- checksum: 3adc97f14b9e0340033fdd913b3321c97a649bc342b31b6c76a21bc6236b55ec48e2c6106aa204176918ec495152d23e1e51f8e486851f9a28e019f5a20096d0
+ checksum: 0becee4a08c46b2ffde246aab6b52e03d3b9c12b945d83ac412005e05195579481ce7b7f94923e6b3a7b65cc4bde029343279ed1794d5a22e975f92f4e8f400d
languageName: node
linkType: hard
-"@parcel/transformer-svg@npm:2.9.2":
- version: 2.9.2
- resolution: "@parcel/transformer-svg@npm:2.9.2"
+"@parcel/transformer-svg@npm:2.8.3":
+ version: 2.8.3
+ resolution: "@parcel/transformer-svg@npm:2.8.3"
dependencies:
- "@parcel/diagnostic": 2.9.2
- "@parcel/hash": 2.9.2
- "@parcel/plugin": 2.9.2
+ "@parcel/diagnostic": 2.8.3
+ "@parcel/hash": 2.8.3
+ "@parcel/plugin": 2.8.3
nullthrows: ^1.1.1
posthtml: ^0.16.5
posthtml-parser: ^0.10.1
posthtml-render: ^3.0.0
semver: ^5.7.1
- checksum: 1b8b2c60ee467febf553ef20ed9500d74cd3d0022c04219d8c29db4a99ade879137ca10afea1c0d5360ae422dc2c6dcee4269bc3205516c5f5bd52ea06bc5f33
+ checksum: 1f3db309e47d07849a2b4ffe11b508fd7ae792c0c0ce7b03e442fffb25f5e7425c5027428729bf2b587309265bba0be6da635d62c51ae8ab7e54483eff3f575e
languageName: node
linkType: hard
-"@parcel/types@npm:2.9.2":
- version: 2.9.2
- resolution: "@parcel/types@npm:2.9.2"
+"@parcel/types@npm:2.8.3":
+ version: 2.8.3
+ resolution: "@parcel/types@npm:2.8.3"
dependencies:
- "@parcel/cache": 2.9.2
- "@parcel/diagnostic": 2.9.2
- "@parcel/fs": 2.9.2
- "@parcel/package-manager": 2.9.2
+ "@parcel/cache": 2.8.3
+ "@parcel/diagnostic": 2.8.3
+ "@parcel/fs": 2.8.3
+ "@parcel/package-manager": 2.8.3
"@parcel/source-map": ^2.1.1
- "@parcel/workers": 2.9.2
+ "@parcel/workers": 2.8.3
utility-types: ^3.10.0
- checksum: 976fb4453410d89b3e47145b2c45baff1c310a5a2d2834eea5e94653db5ea93e586b826b4aac819c3051b314b550636ac0941ed7ea147d6ec40f7645d99fe574
+ checksum: ece0abdd5c7cce32a246155f6828f6a92830341dfbceb81c9aaf7da44e0733b87ea8a607412dfe4b5ec59d7c9a3c1b1463b94ec8a5a82b745541881952003a16
languageName: node
linkType: hard
-"@parcel/utils@npm:2.9.2":
- version: 2.9.2
- resolution: "@parcel/utils@npm:2.9.2"
+"@parcel/utils@npm:2.8.3":
+ version: 2.8.3
+ resolution: "@parcel/utils@npm:2.8.3"
dependencies:
- "@parcel/codeframe": 2.9.2
- "@parcel/diagnostic": 2.9.2
- "@parcel/hash": 2.9.2
- "@parcel/logger": 2.9.2
- "@parcel/markdown-ansi": 2.9.2
+ "@parcel/codeframe": 2.8.3
+ "@parcel/diagnostic": 2.8.3
+ "@parcel/hash": 2.8.3
+ "@parcel/logger": 2.8.3
+ "@parcel/markdown-ansi": 2.8.3
"@parcel/source-map": ^2.1.1
chalk: ^4.1.0
- nullthrows: ^1.1.1
- checksum: 130cf1a6cb9f395f9067a7b15e34f0b0893e5aae69b73b9b3323e7ede9391cbc2a3b35fdde5432eddad2c81ac7f5ccdbdd36170b9119282e2ad991f2c2b0a41d
+ checksum: 69edf3e7c3ef1ccd4caa6ca838a64b27b27668b213212579111405824ed969e6555857b33f0b9e793e97399a60f034904addde19b98628b37a2fcbbb9141cafa
languageName: node
linkType: hard
@@ -5818,19 +5759,19 @@ __metadata:
languageName: node
linkType: hard
-"@parcel/workers@npm:2.9.2":
- version: 2.9.2
- resolution: "@parcel/workers@npm:2.9.2"
+"@parcel/workers@npm:2.8.3":
+ version: 2.8.3
+ resolution: "@parcel/workers@npm:2.8.3"
dependencies:
- "@parcel/diagnostic": 2.9.2
- "@parcel/logger": 2.9.2
- "@parcel/profiler": 2.9.2
- "@parcel/types": 2.9.2
- "@parcel/utils": 2.9.2
+ "@parcel/diagnostic": 2.8.3
+ "@parcel/logger": 2.8.3
+ "@parcel/types": 2.8.3
+ "@parcel/utils": 2.8.3
+ chrome-trace-event: ^1.0.2
nullthrows: ^1.1.1
peerDependencies:
- "@parcel/core": ^2.9.2
- checksum: 7e980749c1353058a7dbf74fb250c453ee382a2522d3b0a7b605a6a13926f6924ac644b2b6bbc4b0ca59a8f8e1b468a82e15efb41d94a1f75ce2906ccd8f506b
+ "@parcel/core": ^2.8.3
+ checksum: e3168b3e9ee6bd8e92472e11af9228aca689c5d31841410c908ab31f2a11adf939481d9f4d945ae44d7d3ec1e07980fb3ca5c2f87be82e31a02a94f4655c8e01
languageName: node
linkType: hard
@@ -6881,120 +6822,6 @@ __metadata:
languageName: node
linkType: hard
-"@swc/core-darwin-arm64@npm:1.3.64":
- version: 1.3.64
- resolution: "@swc/core-darwin-arm64@npm:1.3.64"
- conditions: os=darwin & cpu=arm64
- languageName: node
- linkType: hard
-
-"@swc/core-darwin-x64@npm:1.3.64":
- version: 1.3.64
- resolution: "@swc/core-darwin-x64@npm:1.3.64"
- conditions: os=darwin & cpu=x64
- languageName: node
- linkType: hard
-
-"@swc/core-linux-arm-gnueabihf@npm:1.3.64":
- version: 1.3.64
- resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.64"
- conditions: os=linux & cpu=arm
- languageName: node
- linkType: hard
-
-"@swc/core-linux-arm64-gnu@npm:1.3.64":
- version: 1.3.64
- resolution: "@swc/core-linux-arm64-gnu@npm:1.3.64"
- conditions: os=linux & cpu=arm64 & libc=glibc
- languageName: node
- linkType: hard
-
-"@swc/core-linux-arm64-musl@npm:1.3.64":
- version: 1.3.64
- resolution: "@swc/core-linux-arm64-musl@npm:1.3.64"
- conditions: os=linux & cpu=arm64 & libc=musl
- languageName: node
- linkType: hard
-
-"@swc/core-linux-x64-gnu@npm:1.3.64":
- version: 1.3.64
- resolution: "@swc/core-linux-x64-gnu@npm:1.3.64"
- conditions: os=linux & cpu=x64 & libc=glibc
- languageName: node
- linkType: hard
-
-"@swc/core-linux-x64-musl@npm:1.3.64":
- version: 1.3.64
- resolution: "@swc/core-linux-x64-musl@npm:1.3.64"
- conditions: os=linux & cpu=x64 & libc=musl
- languageName: node
- linkType: hard
-
-"@swc/core-win32-arm64-msvc@npm:1.3.64":
- version: 1.3.64
- resolution: "@swc/core-win32-arm64-msvc@npm:1.3.64"
- conditions: os=win32 & cpu=arm64
- languageName: node
- linkType: hard
-
-"@swc/core-win32-ia32-msvc@npm:1.3.64":
- version: 1.3.64
- resolution: "@swc/core-win32-ia32-msvc@npm:1.3.64"
- conditions: os=win32 & cpu=ia32
- languageName: node
- linkType: hard
-
-"@swc/core-win32-x64-msvc@npm:1.3.64":
- version: 1.3.64
- resolution: "@swc/core-win32-x64-msvc@npm:1.3.64"
- conditions: os=win32 & cpu=x64
- languageName: node
- linkType: hard
-
-"@swc/core@npm:^1.3.36":
- version: 1.3.64
- resolution: "@swc/core@npm:1.3.64"
- dependencies:
- "@swc/core-darwin-arm64": 1.3.64
- "@swc/core-darwin-x64": 1.3.64
- "@swc/core-linux-arm-gnueabihf": 1.3.64
- "@swc/core-linux-arm64-gnu": 1.3.64
- "@swc/core-linux-arm64-musl": 1.3.64
- "@swc/core-linux-x64-gnu": 1.3.64
- "@swc/core-linux-x64-musl": 1.3.64
- "@swc/core-win32-arm64-msvc": 1.3.64
- "@swc/core-win32-ia32-msvc": 1.3.64
- "@swc/core-win32-x64-msvc": 1.3.64
- peerDependencies:
- "@swc/helpers": ^0.5.0
- dependenciesMeta:
- "@swc/core-darwin-arm64":
- optional: true
- "@swc/core-darwin-x64":
- optional: true
- "@swc/core-linux-arm-gnueabihf":
- optional: true
- "@swc/core-linux-arm64-gnu":
- optional: true
- "@swc/core-linux-arm64-musl":
- optional: true
- "@swc/core-linux-x64-gnu":
- optional: true
- "@swc/core-linux-x64-musl":
- optional: true
- "@swc/core-win32-arm64-msvc":
- optional: true
- "@swc/core-win32-ia32-msvc":
- optional: true
- "@swc/core-win32-x64-msvc":
- optional: true
- peerDependenciesMeta:
- "@swc/helpers":
- optional: true
- checksum: ea77168089a34dcec088ab81aef99301eba003b5ed3dca4039803050ba9344e754687f7d4fb4b3e40d22509658bdbdbac2f94f99c6f94051970566c857774371
- languageName: node
- linkType: hard
-
"@swc/helpers@npm:^0.3.2":
version: 0.3.17
resolution: "@swc/helpers@npm:0.3.17"
@@ -7004,12 +6831,12 @@ __metadata:
languageName: node
linkType: hard
-"@swc/helpers@npm:^0.5.0":
- version: 0.5.1
- resolution: "@swc/helpers@npm:0.5.1"
+"@swc/helpers@npm:^0.4.12":
+ version: 0.4.14
+ resolution: "@swc/helpers@npm:0.4.14"
dependencies:
tslib: ^2.4.0
- checksum: 71e0e27234590435e4c62b97ef5e796f88e786841a38c7116a5e27a3eafa7b9ead7cdec5249b32165902076de78446945311c973e59bddf77c1e24f33a8f272a
+ checksum: 273fd3f3fc461a92f3790cc551ea054745c6d6959afbe1232e6d7aa1c722bbc114d308aab96bef5c78fc0303c85c7b472ef00e2253251cc89737f3b1af56e5a5
languageName: node
linkType: hard
@@ -9497,6 +9324,15 @@ __metadata:
languageName: node
linkType: hard
+"acorn@npm:^8.8.2":
+ version: 8.9.0
+ resolution: "acorn@npm:8.9.0"
+ bin:
+ acorn: bin/acorn
+ checksum: 25dfb94952386ecfb847e61934de04a4e7c2dc21c2e700fc4e2ef27ce78cb717700c4c4f279cd630bb4774948633c3859fc16063ec8573bda4568e0a312e6744
+ languageName: node
+ linkType: hard
+
"add-stream@npm:^1.0.0":
version: 1.0.0
resolution: "add-stream@npm:1.0.0"
@@ -11526,7 +11362,7 @@ __metadata:
languageName: node
linkType: hard
-"chrome-trace-event@npm:^1.0.2, chrome-trace-event@npm:^1.0.3":
+"chrome-trace-event@npm:^1.0.2":
version: 1.0.3
resolution: "chrome-trace-event@npm:1.0.3"
checksum: cb8b1fc7e881aaef973bd0c4a43cd353c2ad8323fb471a041e64f7c2dd849cde4aad15f8b753331a32dda45c973f032c8a03b8177fc85d60eaa75e91e08bfb97
@@ -20155,75 +19991,75 @@ __metadata:
languageName: node
linkType: hard
-"lightningcss-darwin-arm64@npm:1.19.0":
- version: 1.19.0
- resolution: "lightningcss-darwin-arm64@npm:1.19.0"
+"lightningcss-darwin-arm64@npm:1.21.0":
+ version: 1.21.0
+ resolution: "lightningcss-darwin-arm64@npm:1.21.0"
conditions: os=darwin & cpu=arm64
languageName: node
linkType: hard
-"lightningcss-darwin-x64@npm:1.19.0":
- version: 1.19.0
- resolution: "lightningcss-darwin-x64@npm:1.19.0"
+"lightningcss-darwin-x64@npm:1.21.0":
+ version: 1.21.0
+ resolution: "lightningcss-darwin-x64@npm:1.21.0"
conditions: os=darwin & cpu=x64
languageName: node
linkType: hard
-"lightningcss-linux-arm-gnueabihf@npm:1.19.0":
- version: 1.19.0
- resolution: "lightningcss-linux-arm-gnueabihf@npm:1.19.0"
+"lightningcss-linux-arm-gnueabihf@npm:1.21.0":
+ version: 1.21.0
+ resolution: "lightningcss-linux-arm-gnueabihf@npm:1.21.0"
conditions: os=linux & cpu=arm
languageName: node
linkType: hard
-"lightningcss-linux-arm64-gnu@npm:1.19.0":
- version: 1.19.0
- resolution: "lightningcss-linux-arm64-gnu@npm:1.19.0"
+"lightningcss-linux-arm64-gnu@npm:1.21.0":
+ version: 1.21.0
+ resolution: "lightningcss-linux-arm64-gnu@npm:1.21.0"
conditions: os=linux & cpu=arm64 & libc=glibc
languageName: node
linkType: hard
-"lightningcss-linux-arm64-musl@npm:1.19.0":
- version: 1.19.0
- resolution: "lightningcss-linux-arm64-musl@npm:1.19.0"
+"lightningcss-linux-arm64-musl@npm:1.21.0":
+ version: 1.21.0
+ resolution: "lightningcss-linux-arm64-musl@npm:1.21.0"
conditions: os=linux & cpu=arm64 & libc=musl
languageName: node
linkType: hard
-"lightningcss-linux-x64-gnu@npm:1.19.0":
- version: 1.19.0
- resolution: "lightningcss-linux-x64-gnu@npm:1.19.0"
+"lightningcss-linux-x64-gnu@npm:1.21.0":
+ version: 1.21.0
+ resolution: "lightningcss-linux-x64-gnu@npm:1.21.0"
conditions: os=linux & cpu=x64 & libc=glibc
languageName: node
linkType: hard
-"lightningcss-linux-x64-musl@npm:1.19.0":
- version: 1.19.0
- resolution: "lightningcss-linux-x64-musl@npm:1.19.0"
+"lightningcss-linux-x64-musl@npm:1.21.0":
+ version: 1.21.0
+ resolution: "lightningcss-linux-x64-musl@npm:1.21.0"
conditions: os=linux & cpu=x64 & libc=musl
languageName: node
linkType: hard
-"lightningcss-win32-x64-msvc@npm:1.19.0":
- version: 1.19.0
- resolution: "lightningcss-win32-x64-msvc@npm:1.19.0"
+"lightningcss-win32-x64-msvc@npm:1.21.0":
+ version: 1.21.0
+ resolution: "lightningcss-win32-x64-msvc@npm:1.21.0"
conditions: os=win32 & cpu=x64
languageName: node
linkType: hard
"lightningcss@npm:^1.16.1":
- version: 1.19.0
- resolution: "lightningcss@npm:1.19.0"
+ version: 1.21.0
+ resolution: "lightningcss@npm:1.21.0"
dependencies:
detect-libc: ^1.0.3
- lightningcss-darwin-arm64: 1.19.0
- lightningcss-darwin-x64: 1.19.0
- lightningcss-linux-arm-gnueabihf: 1.19.0
- lightningcss-linux-arm64-gnu: 1.19.0
- lightningcss-linux-arm64-musl: 1.19.0
- lightningcss-linux-x64-gnu: 1.19.0
- lightningcss-linux-x64-musl: 1.19.0
- lightningcss-win32-x64-msvc: 1.19.0
+ lightningcss-darwin-arm64: 1.21.0
+ lightningcss-darwin-x64: 1.21.0
+ lightningcss-linux-arm-gnueabihf: 1.21.0
+ lightningcss-linux-arm64-gnu: 1.21.0
+ lightningcss-linux-arm64-musl: 1.21.0
+ lightningcss-linux-x64-gnu: 1.21.0
+ lightningcss-linux-x64-musl: 1.21.0
+ lightningcss-win32-x64-msvc: 1.21.0
dependenciesMeta:
lightningcss-darwin-arm64:
optional: true
@@ -20241,7 +20077,7 @@ __metadata:
optional: true
lightningcss-win32-x64-msvc:
optional: true
- checksum: c51de34b7379f9da391d0c1157893bb1484357d1ce2212a8c7943690d7a4fed7f2fa0d2dd7a92004b4444662011564ec7bf31f458a1638c856c529fe07285177
+ checksum: ecb1b594dafebe120f99fbe77a062da44bd65327e6ccbc179bb95c247aca6aad047e737525a549ac3e44128bad12e46ff3d292596679e0a94beba6a3a6f2e78e
languageName: node
linkType: hard
@@ -20427,21 +20263,21 @@ __metadata:
languageName: node
linkType: hard
-"lmdb@npm:2.7.11":
- version: 2.7.11
- resolution: "lmdb@npm:2.7.11"
- dependencies:
- "@lmdb/lmdb-darwin-arm64": 2.7.11
- "@lmdb/lmdb-darwin-x64": 2.7.11
- "@lmdb/lmdb-linux-arm": 2.7.11
- "@lmdb/lmdb-linux-arm64": 2.7.11
- "@lmdb/lmdb-linux-x64": 2.7.11
- "@lmdb/lmdb-win32-x64": 2.7.11
- msgpackr: 1.8.5
+"lmdb@npm:2.5.2":
+ version: 2.5.2
+ resolution: "lmdb@npm:2.5.2"
+ dependencies:
+ "@lmdb/lmdb-darwin-arm64": 2.5.2
+ "@lmdb/lmdb-darwin-x64": 2.5.2
+ "@lmdb/lmdb-linux-arm": 2.5.2
+ "@lmdb/lmdb-linux-arm64": 2.5.2
+ "@lmdb/lmdb-linux-x64": 2.5.2
+ "@lmdb/lmdb-win32-x64": 2.5.2
+ msgpackr: ^1.5.4
node-addon-api: ^4.3.0
node-gyp: latest
- node-gyp-build-optional-packages: 5.0.6
- ordered-binary: ^1.4.0
+ node-gyp-build-optional-packages: 5.0.3
+ ordered-binary: ^1.2.4
weak-lru-cache: ^1.2.2
dependenciesMeta:
"@lmdb/lmdb-darwin-arm64":
@@ -20456,9 +20292,7 @@ __metadata:
optional: true
"@lmdb/lmdb-win32-x64":
optional: true
- bin:
- download-lmdb-prebuilds: bin/download-prebuilds.js
- checksum: 44f9c7ea078b79c5a11179af3e4a6e604c63ced6fedbd58b06a048ba9e1ab54bac5772675a7de637a7955918ea7fa62c233d76d0a232137b3003ede539cd8516
+ checksum: 3362dc2b03c6fbdfc02291001007e4096767476e65fbf8d5e332ef473946a0d108319748ef5974ebb84cf6ffa4015c039920f130bcc09c03a751b03a9fd93dff
languageName: node
linkType: hard
@@ -22016,49 +21850,6 @@ __metadata:
languageName: node
linkType: hard
-"msgpackr-extract@npm:^3.0.1":
- version: 3.0.2
- resolution: "msgpackr-extract@npm:3.0.2"
- dependencies:
- "@msgpackr-extract/msgpackr-extract-darwin-arm64": 3.0.2
- "@msgpackr-extract/msgpackr-extract-darwin-x64": 3.0.2
- "@msgpackr-extract/msgpackr-extract-linux-arm": 3.0.2
- "@msgpackr-extract/msgpackr-extract-linux-arm64": 3.0.2
- "@msgpackr-extract/msgpackr-extract-linux-x64": 3.0.2
- "@msgpackr-extract/msgpackr-extract-win32-x64": 3.0.2
- node-gyp: latest
- node-gyp-build-optional-packages: 5.0.7
- dependenciesMeta:
- "@msgpackr-extract/msgpackr-extract-darwin-arm64":
- optional: true
- "@msgpackr-extract/msgpackr-extract-darwin-x64":
- optional: true
- "@msgpackr-extract/msgpackr-extract-linux-arm":
- optional: true
- "@msgpackr-extract/msgpackr-extract-linux-arm64":
- optional: true
- "@msgpackr-extract/msgpackr-extract-linux-x64":
- optional: true
- "@msgpackr-extract/msgpackr-extract-win32-x64":
- optional: true
- bin:
- download-msgpackr-prebuilds: bin/download-prebuilds.js
- checksum: 5adb809b965bac41c310e60373d54c955fe78e4d134ab036d0f9ee5b322cec0a739878d395e17c1ac82d840705896b2dafae6a8cc04ad34c14d2de4b06b58330
- languageName: node
- linkType: hard
-
-"msgpackr@npm:1.8.5":
- version: 1.8.5
- resolution: "msgpackr@npm:1.8.5"
- dependencies:
- msgpackr-extract: ^3.0.1
- dependenciesMeta:
- msgpackr-extract:
- optional: true
- checksum: baa6d94fb6ea0592318c19a988f9379279e1882042c46585802c89720fcd8698e59819b55afb188b126f8ee3be792098791b2cfe03ad1defdb6011edb3b146ad
- languageName: node
- linkType: hard
-
"msgpackr@npm:^1.5.4":
version: 1.8.1
resolution: "msgpackr@npm:1.8.1"
@@ -22380,28 +22171,6 @@ __metadata:
languageName: node
linkType: hard
-"node-gyp-build-optional-packages@npm:5.0.6":
- version: 5.0.6
- resolution: "node-gyp-build-optional-packages@npm:5.0.6"
- bin:
- node-gyp-build-optional-packages: bin.js
- node-gyp-build-optional-packages-optional: optional.js
- node-gyp-build-optional-packages-test: build-test.js
- checksum: 080656ae27e914035f8b259b3cd2e7e75538e219544a0378485714953eb5cf24391ea2e3d0c3cd4dabd75bebab966c1ac7c1432af9af0b2c2ef02bf9ec56ef99
- languageName: node
- linkType: hard
-
-"node-gyp-build-optional-packages@npm:5.0.7":
- version: 5.0.7
- resolution: "node-gyp-build-optional-packages@npm:5.0.7"
- bin:
- node-gyp-build-optional-packages: bin.js
- node-gyp-build-optional-packages-optional: optional.js
- node-gyp-build-optional-packages-test: build-test.js
- checksum: bcb4537af15bcb3811914ea0db8f69284ca10db1cc7543a167a4c41ae4b9b5044b133f789fdadad0b7adc6931f6ae7def3c75b0bc7b05836881aae52400163e6
- languageName: node
- linkType: hard
-
"node-gyp-build@npm:^4.2.0, node-gyp-build@npm:^4.3.0":
version: 4.6.0
resolution: "node-gyp-build@npm:4.6.0"
@@ -22901,7 +22670,7 @@ __metadata:
languageName: node
linkType: hard
-"ordered-binary@npm:^1.4.0":
+"ordered-binary@npm:^1.2.4":
version: 1.4.0
resolution: "ordered-binary@npm:1.4.0"
checksum: 951fecb400b4e4e5176983679994cb7eb0a3ed1da8406d2bb1f7e76417cb61af85ea557d184cccfa3fe50b4c1582a69a4b2e20625f0d56083330b11bf1bcdeb4
@@ -23126,27 +22895,27 @@ __metadata:
languageName: node
linkType: hard
-"parcel@npm:~2.9.2":
- version: 2.9.2
- resolution: "parcel@npm:2.9.2"
- dependencies:
- "@parcel/config-default": 2.9.2
- "@parcel/core": 2.9.2
- "@parcel/diagnostic": 2.9.2
- "@parcel/events": 2.9.2
- "@parcel/fs": 2.9.2
- "@parcel/logger": 2.9.2
- "@parcel/package-manager": 2.9.2
- "@parcel/reporter-cli": 2.9.2
- "@parcel/reporter-dev-server": 2.9.2
- "@parcel/reporter-tracer": 2.9.2
- "@parcel/utils": 2.9.2
+"parcel@npm:~2.8.0":
+ version: 2.8.3
+ resolution: "parcel@npm:2.8.3"
+ dependencies:
+ "@parcel/config-default": 2.8.3
+ "@parcel/core": 2.8.3
+ "@parcel/diagnostic": 2.8.3
+ "@parcel/events": 2.8.3
+ "@parcel/fs": 2.8.3
+ "@parcel/logger": 2.8.3
+ "@parcel/package-manager": 2.8.3
+ "@parcel/reporter-cli": 2.8.3
+ "@parcel/reporter-dev-server": 2.8.3
+ "@parcel/utils": 2.8.3
chalk: ^4.1.0
commander: ^7.0.0
get-port: ^4.2.0
+ v8-compile-cache: ^2.0.0
bin:
parcel: lib/bin.js
- checksum: bd16d671044301535e2032054d1b3831f24f876312c905fe20eecfbb08208b6a3d8aa41808903c9c5b91878d650633f76b5102c20547c34d0412e6ec3ced9ded
+ checksum: 09cd2dc23c2ec0417e9de93face185a08679d744c6cbb627fce6ffb507f8af1f8d0642f063e0cf771b699419a29db8ee7ca60cdb32966a65dd3b03da35473bfa
languageName: node
linkType: hard
@@ -28201,6 +27970,20 @@ __metadata:
languageName: node
linkType: hard
+"terser@npm:^5.2.0":
+ version: 5.18.0
+ resolution: "terser@npm:5.18.0"
+ dependencies:
+ "@jridgewell/source-map": ^0.3.3
+ acorn: ^8.8.2
+ commander: ^2.20.0
+ source-map-support: ~0.5.20
+ bin:
+ terser: bin/terser
+ checksum: d01eb9805a978b3338b68fd2d9e35c1cd4cad78ea093dc92c7b3c38965232f0af0f95e0c6d90920ecf600a74135c608aebae26302c036c01393a590e1918bb90
+ languageName: node
+ linkType: hard
+
"test-exclude@npm:^6.0.0":
version: 6.0.0
resolution: "test-exclude@npm:6.0.0"
@@ -29331,6 +29114,13 @@ __metadata:
languageName: node
linkType: hard
+"v8-compile-cache@npm:^2.0.0":
+ version: 2.3.0
+ resolution: "v8-compile-cache@npm:2.3.0"
+ checksum: adb0a271eaa2297f2f4c536acbfee872d0dd26ec2d76f66921aa7fc437319132773483344207bdbeee169225f4739016d8d2dbf0553913a52bb34da6d0334f8e
+ languageName: node
+ linkType: hard
+
"v8-to-istanbul@npm:^8.1.0":
version: 8.1.1
resolution: "v8-to-istanbul@npm:8.1.1"
From 3288285d1b54b22aac8c1cee98e768ea0ac190e8 Mon Sep 17 00:00:00 2001
From: alcercu <333aleix333@gmail.com>
Date: Fri, 16 Jun 2023 13:09:31 +0200
Subject: [PATCH 39/41] feat: isUndefined returns a type predicate to play nice
with typescript
---
web/src/utils/index.ts | 10 +---------
1 file changed, 1 insertion(+), 9 deletions(-)
diff --git a/web/src/utils/index.ts b/web/src/utils/index.ts
index b3be7bac9..31059cf6e 100644
--- a/web/src/utils/index.ts
+++ b/web/src/utils/index.ts
@@ -1,9 +1 @@
-export const notUndefined = (maybeObjects: any[] | any): boolean =>
- Array.isArray(maybeObjects)
- ? maybeObjects.reduce((acc, maybeObject) =>
- acc && _notUndefined(maybeObject) ? true : false
- )
- : _notUndefined(maybeObjects);
-
-const _notUndefined = (maybeObject: any): boolean =>
- typeof maybeObject !== "undefined";
+export const isUndefined = (maybeObject: any): maybeObject is undefined => typeof maybeObject === "undefined";
From 4e9e40bb3b9dc9d781f6d881415dd93ba32c065a Mon Sep 17 00:00:00 2001
From: marino <102478601+kemuru@users.noreply.github.com>
Date: Fri, 16 Jun 2023 12:59:27 +0100
Subject: [PATCH 40/41] refactor: started assertion refactoring
---
.../Cases/CaseDetails/Appeal/Classic/Fund.tsx | 13 ++++++-----
.../Appeal/Classic/Options/StageTwo.tsx | 12 +++++-----
.../Evidence/SubmitEvidenceModal.tsx | 4 ++--
.../pages/Cases/CaseDetails/Voting/Binary.tsx | 22 +++++++++++--------
.../CourtDetails/StakePanel/InputDisplay.tsx | 2 +-
.../StakePanel/StakeWithdrawButton.tsx | 14 ++++++------
6 files changed, 38 insertions(+), 29 deletions(-)
diff --git a/web/src/pages/Cases/CaseDetails/Appeal/Classic/Fund.tsx b/web/src/pages/Cases/CaseDetails/Appeal/Classic/Fund.tsx
index 32fa9e93d..28d2d88c0 100644
--- a/web/src/pages/Cases/CaseDetails/Appeal/Classic/Fund.tsx
+++ b/web/src/pages/Cases/CaseDetails/Appeal/Classic/Fund.tsx
@@ -12,14 +12,17 @@ import {
useSelectedOptionContext,
useFundingContext,
} from "hooks/useClassicAppealContext";
-import { notUndefined } from "utils/index";
+import { isUndefined } from "utils/index";
const Fund: React.FC = () => {
const loserSideCountdown = useLoserSideCountdownContext();
const { fundedChoices, winningChoice } = useFundingContext();
const needFund =
- notUndefined([loserSideCountdown, fundedChoices]) &&
- (loserSideCountdown! > 0 || (fundedChoices!.length > 0 && !fundedChoices?.includes(winningChoice!)));
+ loserSideCountdown! > 0 ||
+ (!isUndefined(fundedChoices) &&
+ !isUndefined(winningChoice) &&
+ fundedChoices.length > 0 &&
+ !fundedChoices.includes(winningChoice));
const { id } = useParams();
const { address, isDisconnected } = useAccount();
const { data: balance } = useBalance({
@@ -33,8 +36,8 @@ const Fund: React.FC = () => {
const [isSending, setIsSending] = useState(false);
const { selectedOption } = useSelectedOptionContext();
const { config: fundAppealConfig } = usePrepareDisputeKitClassicFundAppeal({
- enabled: notUndefined([id, selectedOption]),
- args: [BigInt(id!), BigInt(selectedOption!)],
+ enabled: !isUndefined(id) && !isUndefined(selectedOption),
+ args: [BigInt(id ?? 0), BigInt(selectedOption ?? 0)],
value: parsedAmount,
});
const { writeAsync: fundAppeal } = useDisputeKitClassicFundAppeal(fundAppealConfig);
diff --git a/web/src/pages/Cases/CaseDetails/Appeal/Classic/Options/StageTwo.tsx b/web/src/pages/Cases/CaseDetails/Appeal/Classic/Options/StageTwo.tsx
index 961db64d1..4fb7f1ca9 100644
--- a/web/src/pages/Cases/CaseDetails/Appeal/Classic/Options/StageTwo.tsx
+++ b/web/src/pages/Cases/CaseDetails/Appeal/Classic/Options/StageTwo.tsx
@@ -2,20 +2,22 @@ import React, { useEffect } from "react";
import styled from "styled-components";
import OptionCard from "../../OptionCard";
import { useFundingContext, useOptionsContext, useSelectedOptionContext } from "hooks/useClassicAppealContext";
-import { notUndefined } from "utils/index";
+import { isUndefined } from "utils/index";
const StageOne: React.FC = () => {
const { paidFees, winningChoice, winnerRequiredFunding, fundedChoices } = useFundingContext();
const options = useOptionsContext();
const { selectedOption, setSelectedOption } = useSelectedOptionContext();
useEffect(() => {
- if (notUndefined(winningChoice)) setSelectedOption(parseInt(winningChoice!));
+ if (!isUndefined(winningChoice)) setSelectedOption(parseInt(winningChoice));
});
return (
- {notUndefined([winningChoice, fundedChoices, paidFees]) &&
- fundedChoices!.length > 0 &&
- !fundedChoices?.includes(winningChoice!) ? (
+ {!isUndefined(winningChoice) &&
+ !isUndefined(fundedChoices) &&
+ !isUndefined(paidFees) &&
+ fundedChoices.length > 0 &&
+ !fundedChoices.includes(winningChoice) ? (
<>
diff --git a/web/src/pages/Cases/CaseDetails/Evidence/SubmitEvidenceModal.tsx b/web/src/pages/Cases/CaseDetails/Evidence/SubmitEvidenceModal.tsx
index 44d78bc13..96f944a4e 100644
--- a/web/src/pages/Cases/CaseDetails/Evidence/SubmitEvidenceModal.tsx
+++ b/web/src/pages/Cases/CaseDetails/Evidence/SubmitEvidenceModal.tsx
@@ -33,13 +33,13 @@ const SubmitEvidenceModal: React.FC<{
uploadFormDataToIPFS(formData)
.then(async (res) => {
const response = await res.json();
- if (res.status === 200) {
+ if (res.status === 200 && walletClient) {
const cid = "/ipfs/" + response["cid"];
const { request } = await prepareWriteDisputeKitClassic({
functionName: "submitEvidence",
args: [BigInt(evidenceGroup), cid],
});
- await wrapWithToast(walletClient!.writeContract(request)).then(() => {
+ await wrapWithToast(walletClient.writeContract(request)).then(() => {
setMessage("");
close();
});
diff --git a/web/src/pages/Cases/CaseDetails/Voting/Binary.tsx b/web/src/pages/Cases/CaseDetails/Voting/Binary.tsx
index 9d4eb0bb1..97337e992 100644
--- a/web/src/pages/Cases/CaseDetails/Voting/Binary.tsx
+++ b/web/src/pages/Cases/CaseDetails/Voting/Binary.tsx
@@ -9,7 +9,7 @@ import { prepareWriteDisputeKitClassic } from "hooks/contracts/generated";
const Binary: React.FC<{ arbitrable?: string; voteIDs: string[] }> = ({ arbitrable, voteIDs }) => {
const { id } = useParams();
- const parsedDisputeID = BigInt(id!);
+ const parsedDisputeID = BigInt(id ?? 0);
const parsedVoteIDs = useMemo(() => voteIDs.map((voteID) => BigInt(voteID)), [voteIDs]);
const { data: metaEvidence } = useGetMetaEvidence(id, arbitrable);
const [chosenOption, setChosenOption] = useState(-1);
@@ -44,10 +44,12 @@ const Binary: React.FC<{ arbitrable?: string; voteIDs: string[] }> = ({ arbitrab
functionName: "castVote",
args: [parsedDisputeID, parsedVoteIDs, BigInt(i + 1), 0n, justification],
});
- wrapWithToast(walletClient!.writeContract(request)).finally(() => {
- setChosenOption(-1);
- setIsSending(false);
- });
+ if (walletClient) {
+ wrapWithToast(walletClient?.writeContract(request)).finally(() => {
+ setChosenOption(-1);
+ setIsSending(false);
+ });
+ }
}}
/>
))}
@@ -66,10 +68,12 @@ const Binary: React.FC<{ arbitrable?: string; voteIDs: string[] }> = ({ arbitrab
functionName: "castVote",
args: [parsedDisputeID, parsedVoteIDs, 0n, 0n, justification],
});
- wrapWithToast(walletClient!.writeContract(request)).finally(() => {
- setChosenOption(-1);
- setIsSending(false);
- });
+ if (walletClient) {
+ wrapWithToast(walletClient.writeContract(request)).finally(() => {
+ setChosenOption(-1);
+ setIsSending(false);
+ });
+ }
}}
/>
diff --git a/web/src/pages/Courts/CourtDetails/StakePanel/InputDisplay.tsx b/web/src/pages/Courts/CourtDetails/StakePanel/InputDisplay.tsx
index baa52d1e5..264668533 100644
--- a/web/src/pages/Courts/CourtDetails/StakePanel/InputDisplay.tsx
+++ b/web/src/pages/Courts/CourtDetails/StakePanel/InputDisplay.tsx
@@ -26,7 +26,7 @@ const InputDisplay: React.FC = ({ action, isSending, setIsSending
const { id } = useParams();
const { address } = useAccount();
const { data: balance } = usePNKBalance(address);
- const parsedBalance = formatEther(balance!);
+ const parsedBalance = formatEther(balance ?? 0n);
const { data: jurorBalance } = useJurorBalance(address, id);
const parsedStake = formatEther(jurorBalance?.[0] || 0n);
const isStaking = action === ActionType.stake;
diff --git a/web/src/pages/Courts/CourtDetails/StakePanel/StakeWithdrawButton.tsx b/web/src/pages/Courts/CourtDetails/StakePanel/StakeWithdrawButton.tsx
index fb00e401a..88bd26e2b 100644
--- a/web/src/pages/Courts/CourtDetails/StakePanel/StakeWithdrawButton.tsx
+++ b/web/src/pages/Courts/CourtDetails/StakePanel/StakeWithdrawButton.tsx
@@ -13,7 +13,7 @@ import {
} from "hooks/contracts/generated";
import { useJurorBalance } from "queries/useJurorBalance";
import { wrapWithToast } from "utils/wrapWithToast";
-import { notUndefined } from "utils/index";
+import { isUndefined } from "utils/index";
export enum ActionType {
allowance = "allowance",
@@ -33,7 +33,7 @@ const StakeWithdrawButton: React.FC = ({ parsedAmount, action, se
const { id } = useParams();
const { address } = useAccount();
const { data: balance } = usePnkBalanceOf({
- enabled: notUndefined(address),
+ enabled: !isUndefined(address),
args: [address!],
watch: true,
});
@@ -55,12 +55,12 @@ const StakeWithdrawButton: React.FC = ({ parsedAmount, action, se
const klerosCore = getKlerosCore({});
const { config: increaseAllowanceConfig } = usePreparePnkIncreaseAllowance({
- enabled: notUndefined([klerosCore, targetStake, allowance]),
+ enabled: !isUndefined([klerosCore, targetStake, allowance]),
args: [klerosCore?.address, BigInt(targetStake ?? 0) - BigInt(allowance ?? 0)],
});
const { writeAsync: increaseAllowance } = usePnkIncreaseAllowance(increaseAllowanceConfig);
const handleAllowance = () => {
- if (notUndefined(increaseAllowance)) {
+ if (!isUndefined(increaseAllowance)) {
setIsSending(true);
wrapWithToast(increaseAllowance!()).finally(() => {
setIsSending(false);
@@ -69,8 +69,8 @@ const StakeWithdrawButton: React.FC = ({ parsedAmount, action, se
};
const { config: setStakeConfig } = usePrepareKlerosCoreSetStake({
- enabled: notUndefined([targetStake, id]),
- args: [BigInt(id!), targetStake!],
+ enabled: !isUndefined(targetStake) && !isUndefined(id),
+ args: [BigInt(id ?? 0), targetStake],
});
const { writeAsync: setStake } = useKlerosCoreSetStake(setStakeConfig);
const handleStake = () => {
@@ -107,7 +107,7 @@ const StakeWithdrawButton: React.FC = ({ parsedAmount, action, se
);
From 1e03469c628b0ebe4427f45ec2878f0a0b5ae04a Mon Sep 17 00:00:00 2001
From: nhestrompia
Date: Fri, 16 Jun 2023 16:22:38 +0300
Subject: [PATCH 41/41] fix: code smell
---
web/src/pages/Cases/CaseDetails/Appeal/Classic/Fund.tsx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/web/src/pages/Cases/CaseDetails/Appeal/Classic/Fund.tsx b/web/src/pages/Cases/CaseDetails/Appeal/Classic/Fund.tsx
index 28d2d88c0..49c572ea4 100644
--- a/web/src/pages/Cases/CaseDetails/Appeal/Classic/Fund.tsx
+++ b/web/src/pages/Cases/CaseDetails/Appeal/Classic/Fund.tsx
@@ -18,7 +18,7 @@ const Fund: React.FC = () => {
const loserSideCountdown = useLoserSideCountdownContext();
const { fundedChoices, winningChoice } = useFundingContext();
const needFund =
- loserSideCountdown! > 0 ||
+ (loserSideCountdown ?? 0) > 0 ||
(!isUndefined(fundedChoices) &&
!isUndefined(winningChoice) &&
fundedChoices.length > 0 &&