Skip to content

Commit

Permalink
Use better types
Browse files Browse the repository at this point in the history
  • Loading branch information
portdeveloper committed Mar 12, 2024
1 parent 022e273 commit 13144c1
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 12 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { AugmentedAbiFunction } from "./ContractUI";
import { ReadOnlyFunctionForm } from "./ReadOnlyFunctionForm";
import { Abi, AbiFunction } from "abitype";
import { Abi } from "abitype";
import { XMarkIcon } from "@heroicons/react/24/outline";
import { Contract, ContractName, GenericContract, InheritedFunctions } from "~~/utils/scaffold-eth/contract";

Expand All @@ -15,9 +16,7 @@ export const ContractReadMethods = ({
}

const functionsToDisplay = (
((deployedContractData.abi || []) as Abi).filter(part => part.type === "function") as (AbiFunction & {
uid: string;
})[]
((deployedContractData.abi || []) as Abi).filter(part => part.type === "function") as AugmentedAbiFunction[]
)
.filter(fn => {
const isQueryableWithParams =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ type ContractUIProps = {
initialContractData: { address: string; abi: Abi };
};

interface AugmentedAbiFunction extends AbiFunction {
export interface AugmentedAbiFunction extends AbiFunction {
uid: string;
}

Expand Down Expand Up @@ -70,7 +70,7 @@ export const ContractUI = ({ className = "", initialContractData }: ContractUIPr
);

// local abi state for for dispalying selected methods
const [abi, setAbi] = useState<(AbiFunction & { uid: string })[]>([]);
const [abi, setAbi] = useState<AugmentedAbiFunction[]>([]);

const handleMethodSelect = (uid: string) => {
const methodToAdd = readMethodsWithInputsAndWriteMethods.find(method => method.uid === uid);
Expand All @@ -94,7 +94,7 @@ export const ContractUI = ({ className = "", initialContractData }: ContractUIPr
const selectedMethods = readMethodsWithInputsAndWriteMethods.filter(
method => method.type === "function" && "name" in method && selectedMethodNames.includes(method.uid),
) as AbiFunction[];
setAbi(selectedMethods as (AbiFunction & { uid: string })[]);
setAbi(selectedMethods as AugmentedAbiFunction[]);
}, [initialContractData.abi, router?.query?.methods]);

const { data: contractNameData, isLoading: isContractNameLoading } = useContractRead({
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { AugmentedAbiFunction } from "./ContractUI";
import { WriteOnlyFunctionForm } from "./WriteOnlyFunctionForm";
import { Abi, AbiFunction } from "abitype";
import { Abi } from "abitype";
import { XMarkIcon } from "@heroicons/react/24/outline";
import { Contract, ContractName, GenericContract, InheritedFunctions } from "~~/utils/scaffold-eth/contract";

Expand All @@ -17,7 +18,7 @@ export const ContractWriteMethods = ({
}

const functionsToDisplay = (
(deployedContractData.abi as Abi).filter(part => part.type === "function") as (AbiFunction & { uid: string })[]
(deployedContractData.abi as Abi).filter(part => part.type === "function") as AugmentedAbiFunction[]
)
.filter(fn => {
const isWriteableFunction = fn.stateMutability !== "view" && fn.stateMutability !== "pure";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import { useState } from "react";
import { AbiFunction } from "abitype";
import { AugmentedAbiFunction } from "./ContractUI";
import { ChevronDownIcon, ChevronRightIcon, XMarkIcon } from "@heroicons/react/24/outline";

interface MethodSelectorProps {
readMethodsWithInputsAndWriteMethods: (AbiFunction & { uid: string })[];
abi: (AbiFunction & { uid: string })[];
readMethodsWithInputsAndWriteMethods: AugmentedAbiFunction[];
abi: AugmentedAbiFunction[];
onMethodSelect: (uid: string) => void;
removeMethod: (uid: string) => void;
}
Expand Down

0 comments on commit 13144c1

Please sign in to comment.