diff --git a/src/components/VoteTab.tsx b/src/components/VoteTab.tsx index 186bd7f..f382ad4 100644 --- a/src/components/VoteTab.tsx +++ b/src/components/VoteTab.tsx @@ -2,6 +2,7 @@ import { useState } from "react"; import { DragDropContext, Draggable, Droppable } from "@hello-pangea/dnd"; import { useAccount, + useBalance, useWaitForTransactionReceipt, useWriteContract, } from "wagmi"; @@ -9,10 +10,14 @@ import { sdk } from "@farcaster/frame-sdk"; import axios from "axios"; import weeklyHackathonWeekOneVoteAbi from "../lib/weeklyHackathonWeekOneVote.abi.json"; import { HackathonFinalist, useFarcaster } from "./providers/FarcasterProvider"; +import { HACKATHON_TOKEN_CONTRACT_ADDRESS } from "./BuyHackathonButton"; const WEEKLY_HACKATHON_WEEK_ONE_CONTRACT_ADDRESS = "0xb08806a1c22bf9c06dfa73296fb17a14d9cfc63b"; +const HACKATHON_TOKEN_CONTRACT_ADDRESS = + "0x3dF58A5737130FdC180D360dDd3EFBa34e5801cb"; + const reorder = ( list: HackathonFinalist[], startIndex: number, @@ -104,6 +109,25 @@ const VoteTab = ({ ); }; + const result = useBalance({ + address, + token: HACKATHON_TOKEN_CONTRACT_ADDRESS, + }) + + const formatBalance = (balance: number) => { + if (balance < 100000) { + return balance.toFixed(0); + } else if (balance < 1000000) { + return (balance / 1000).toFixed(1) + "K"; + } else { + return (balance / 1000000).toFixed(1) + "M"; + } + }; + + const formattedBalance = result?.data ? formatBalance(parseFloat(result.data.formatted)) : 0; + + const enoughBalance = result.data ? parseFloat(result.data.formatted) > 88888 : false; + const prepareVote = async () => { try { const preliminaryVote = finalists.map((finalist) => finalist.id).join(""); @@ -168,14 +192,18 @@ const VoteTab = ({ } return ( -