diff --git a/packages/react-app-revamp/components/ChargeLayout/components/Vote/components/ChargeInfo/index.tsx b/packages/react-app-revamp/components/ChargeLayout/components/Vote/components/ChargeInfo/index.tsx index c1bdb8cc9..bafc88b87 100644 --- a/packages/react-app-revamp/components/ChargeLayout/components/Vote/components/ChargeInfo/index.tsx +++ b/packages/react-app-revamp/components/ChargeLayout/components/Vote/components/ChargeInfo/index.tsx @@ -28,7 +28,9 @@ const ChargeInfo: React.FC = ({ charge }) => { } return ( -
+

{chargeLabel}:

{entryChargeFormatted} {chainUnitLabel} diff --git a/packages/react-app-revamp/components/ChargeLayout/components/Vote/components/MyVotes/index.tsx b/packages/react-app-revamp/components/ChargeLayout/components/Vote/components/MyVotes/index.tsx index 179297228..a9bdb29e5 100644 --- a/packages/react-app-revamp/components/ChargeLayout/components/Vote/components/MyVotes/index.tsx +++ b/packages/react-app-revamp/components/ChargeLayout/components/Vote/components/MyVotes/index.tsx @@ -18,24 +18,23 @@ const MyVotes: React.FC = ({ charge, amountOfVotes, chainId }) => }); const insufficientBalance = charge && balanceData ? balanceData.value < BigInt(charge.type.costToVote) : false; + const isPerVote = charge?.voteType === VoteType.PerVote; return (

- my votes: + {isPerVote ? "my wallet" : "my votes:"}
- {balanceData && charge?.voteType === VoteType.PerVote && ( - <> - - {formatBalance(balanceData.formatted)} {balanceData.symbol} - - = - + {balanceData && isPerVote ? ( + + {formatBalance(balanceData.formatted)} {balanceData.symbol} + + ) : ( + + {formatNumberAbbreviated(amountOfVotes)} vote{amountOfVotes !== 1 ? "s" : ""} + )} - - {formatNumberAbbreviated(amountOfVotes)} vote{amountOfVotes !== 1 ? "s" : ""} -
); diff --git a/packages/react-app-revamp/components/ChargeLayout/components/Vote/components/TotalCharge/index.tsx b/packages/react-app-revamp/components/ChargeLayout/components/Vote/components/TotalCharge/index.tsx index 6392b7b4b..932bd443d 100644 --- a/packages/react-app-revamp/components/ChargeLayout/components/Vote/components/TotalCharge/index.tsx +++ b/packages/react-app-revamp/components/ChargeLayout/components/Vote/components/TotalCharge/index.tsx @@ -1,6 +1,6 @@ import { chains } from "@config/wagmi"; import { extractPathSegments } from "@helpers/extractPath"; -import { Charge } from "@hooks/useDeployContest/types"; +import { Charge, VoteType } from "@hooks/useDeployContest/types"; import { usePathname } from "next/navigation"; import React, { useEffect, useState } from "react"; import { formatEther } from "viem"; @@ -27,7 +27,7 @@ const TotalCharge: React.FC = ({ charge: contestCharge, amount return; } - if (contestCharge.voteType === "PerVote") { + if (contestCharge.voteType === VoteType.PerVote) { const chargeAmount = parseFloat(formatEther(BigInt(contestCharge.type.costToVote))); const multipliedCharge = chargeAmount * amountOfVotes; const charge = +multipliedCharge.toFixed(6); @@ -37,6 +37,10 @@ const TotalCharge: React.FC = ({ charge: contestCharge, amount } }, [contestCharge, amountOfVotes]); + if (contestCharge.voteType === VoteType.PerTransaction) { + return null; + } + return (

total charge:

diff --git a/packages/react-app-revamp/components/UI/Slider/index.tsx b/packages/react-app-revamp/components/UI/Slider/index.tsx index 50bf8943f..ce5c32360 100644 --- a/packages/react-app-revamp/components/UI/Slider/index.tsx +++ b/packages/react-app-revamp/components/UI/Slider/index.tsx @@ -62,7 +62,7 @@ const StepSlider: FC = ({ }; return ( -
+
; + amount: number; + amountOfVotes: number; + isFocused: boolean; + sliderValue: number; + charge: Charge | null; + chainId: number; + voteDisabled: boolean; + handleVote: () => void; + handleChange: (value: string) => void; + handleKeyDownInput: (e: React.KeyboardEvent) => void; + handleKeyDownSlider: (e: React.KeyboardEvent) => void; + handleSliderChange: (value: number) => void; + handleClick: (isUpvote: boolean) => void; + setIsFocused: (value: boolean) => void; + handleInput: (e: React.ChangeEvent) => void; +} + +const VotingWidgetMobile: FC = ({ + downvoteAllowed, + isUpvote, + isInvalid, + inputRef, + amount, + amountOfVotes, + isFocused, + handleVote, + handleChange, + handleKeyDownInput, + handleKeyDownSlider, + handleSliderChange, + handleClick, + setIsFocused, + handleInput, + sliderValue, + charge, + chainId, + voteDisabled, +}) => { + return ( +
+
+ {downvoteAllowed ? ( +
+
handleClick(true)} + > + upvote +
+
handleClick(false)} + > + downvote +
+
+ ) : null} +
+
+
+ {charge?.voteType === VoteType.PerVote ? ( + <> + + {charge ? : null} + + ) : null} +
+
+
+
+ handleChange(e.target.value)} + onFocus={() => setIsFocused(true)} + onBlur={() => setIsFocused(false)} + placeholder="0.00" + max={amountOfVotes} + onKeyDown={handleKeyDownInput} + onInput={handleInput} + className="w-full text-[32px] bg-transparent outline-none placeholder-primary-5" + /> + + vote{amount !== 1 ? "s" : ""} + +
+
+ + {charge?.voteType === VoteType.PerTransaction ? ( + <> + + {charge ? : null} + + ) : null} + {charge ? : null} +
+
+ + + add votes to entry + +
+
+
+ ); +}; + +export default VotingWidgetMobile; diff --git a/packages/react-app-revamp/components/Voting/index.tsx b/packages/react-app-revamp/components/Voting/index.tsx index 7f51e0824..ef8dba246 100644 --- a/packages/react-app-revamp/components/Voting/index.tsx +++ b/packages/react-app-revamp/components/Voting/index.tsx @@ -11,7 +11,9 @@ import { ContestStateEnum, useContestStateStore } from "@hooks/useContestState/s import { switchChain } from "@wagmi/core"; import { usePathname } from "next/navigation"; import { FC, useEffect, useRef, useState } from "react"; +import { useMediaQuery } from "react-responsive"; import { useAccount } from "wagmi"; +import VotingWidgetMobile from "./components/Mobile"; interface VotingWidgetProps { proposalId: string; @@ -22,6 +24,7 @@ interface VotingWidgetProps { const VotingWidget: FC = ({ proposalId, amountOfVotes, downvoteAllowed, onVote }) => { const { charge } = useContestStore(state => state); + const isMobile = useMediaQuery({ query: "(max-width: 768px)" }); const asPath = usePathname(); const { chainId: accountChainId } = useAccount(); const { chainName } = extractPathSegments(asPath ?? ""); @@ -33,7 +36,7 @@ const VotingWidget: FC = ({ proposalId, amountOfVotes, downvo const [isFocused, setIsFocused] = useState(true); const voteDisabled = isLoading || amount === 0 || isInvalid || isNaN(amount); const chainId = chains.filter( - (chain: { name: string }) => chain.name.toLowerCase().replace(" ", "") === chainName, + (chain: { name: string }) => chain.name.toLowerCase().replace(" ", "") === chainName.toLowerCase(), )?.[0]?.id; const isCorrectNetwork = chainId === accountChainId; const { contestState } = useContestStateStore(state => state); @@ -105,20 +108,42 @@ const VotingWidget: FC = ({ proposalId, amountOfVotes, downvo } }; - const handleVote = () => { - if (isCorrectNetwork) { - onVote?.(amount, isUpvote); - } else { - onSwitchNetwork(); + const handleVote = async () => { + if (!isCorrectNetwork) { + await switchChain(config, { chainId }); } - }; - const onSwitchNetwork = async () => { - await switchChain(config, { chainId }); + onVote?.(amount, isUpvote); }; if (isContestCanceled) return null; + if (isMobile) { + return ( + + ); + } + return (
@@ -142,57 +167,50 @@ const VotingWidget: FC = ({ proposalId, amountOfVotes, downvo
) : null} -
-
- - {charge ? : null} -
-
- handleChange(e.target.value)} - onFocus={() => setIsFocused(true)} - onBlur={() => setIsFocused(false)} - placeholder="0.00" - max={amountOfVotes} - onKeyDown={handleKeyDownInput} - onInput={handleInput} - className="w-full text-[32px] bg-transparent outline-none placeholder-primary-5" - /> - vote{amount !== 1 ? "s" : ""} +
+
+
+ handleChange(e.target.value)} + onFocus={() => setIsFocused(true)} + onBlur={() => setIsFocused(false)} + placeholder="0.00" + max={amountOfVotes} + onKeyDown={handleKeyDownInput} + onInput={handleInput} + className="w-full text-[32px] bg-transparent outline-none placeholder-primary-5" + /> + + vote{amount !== 1 ? "s" : ""} + +
+
- +
+ + {charge ? : null} +
{charge ? : null}
+ + add votes to entry +
- {isCorrectNetwork ? ( - onVote?.(amount, isUpvote)} - > - add votes to entry - - ) : ( - - switch network - - )}
); }; diff --git a/packages/react-app-revamp/components/_pages/Contest/components/EntryPreviewTitleToggle/index.tsx b/packages/react-app-revamp/components/_pages/Contest/components/EntryPreviewTitleToggle/index.tsx index 875e74d34..b4c6ca912 100644 --- a/packages/react-app-revamp/components/_pages/Contest/components/EntryPreviewTitleToggle/index.tsx +++ b/packages/react-app-revamp/components/_pages/Contest/components/EntryPreviewTitleToggle/index.tsx @@ -16,7 +16,7 @@ const EntryPreviewTitleToggle: FC = () => { if (!enabledPreview || enabledPreview !== EntryPreview.TITLE) return null; return ( -
+
= ({ ) : null} {contestStatus === ContestStatus.VotingOpen && (
-
-
-

add votes

-
+
{isConnected ? ( currentUserAvailableVotesAmount > 0 ? ( = ( )}
-
-
-

add votes

-
+
= ({ {contestStatus === ContestStatus.VotingOpen && (
-
-
-

add votes

-
+
{isConnected ? ( currentUserAvailableVotesAmount > 0 ? ( state); - const { connector } = useAccount(); - const [chainId, setChainId] = useState( - chains.filter((chain: { name: string }) => chain.name.toLowerCase().replace(" ", "") === chainName)?.[0]?.id, - ); + const chainId = chains.find(chain => chain.name.toLowerCase() === chainName.toLowerCase())?.id; async function getContractConfig() { return { @@ -145,24 +142,6 @@ export function useGenerateProof() { return recipients; } - useEffect(() => { - const handleChange = (data: { accounts?: readonly Address[]; chainId?: number }) => { - if (data.chainId === undefined) return; - - setChainId(data.chainId); - }; - - if (connector && connector.emitter) { - connector.emitter.on("change", handleChange); - } - - return () => { - if (connector && connector.emitter) { - connector.emitter.off("change", handleChange); - } - }; - }, [connector]); - return { getProofs, }; diff --git a/packages/react-app-revamp/package.json b/packages/react-app-revamp/package.json index 812f90977..399505837 100644 --- a/packages/react-app-revamp/package.json +++ b/packages/react-app-revamp/package.json @@ -9,8 +9,8 @@ "start": "next start" }, "dependencies": { - "@aws-sdk/client-s3": "3.709.0", - "@aws-sdk/s3-request-presigner": "3.709.0", + "@aws-sdk/client-s3": "3.712.0", + "@aws-sdk/s3-request-presigner": "3.712.0", "@babel/core": "7.26.0", "@babel/preset-env": "7.26.0", "@clustersxyz/sdk": "0.4.3", @@ -20,7 +20,7 @@ "@lens-protocol/metadata": "1.2.0", "@next/third-parties": "14.2.20", "@rainbow-me/rainbowkit": "2.2.1", - "@supabase/supabase-js": "2.47.3", + "@supabase/supabase-js": "2.47.7", "@tailwindcss/line-clamp": "0.4.4", "@tailwindcss/typography": "0.5.15", "@tanstack/react-query": "5.62.7", @@ -33,7 +33,7 @@ "@tiptap/starter-kit": "2.4.0", "@types/gtag.js": "0.0.20", "@types/lodash": "4.17.13", - "@types/node": "20.17.9", + "@types/node": "20.17.10", "@types/papaparse": "5.3.15", "@types/react": "18.3.16", "@types/react-csv": "1.1.10", @@ -44,14 +44,14 @@ "@types/uuid": "10.0.0", "@typescript-eslint/parser": "7.18.0", "@vercel/node": "3.2.29", - "@wagmi/connectors": "5.5.3", - "@wagmi/core": "2.15.2", + "@wagmi/connectors": "5.6.1", + "@wagmi/core": "2.16.0", "autoprefixer": "10.4.20", "cheerio": "1.0.0", "class-variance-authority": "0.7.1", "compare-versions": "6.1.1", "date-fns": "3.6.0", - "eslint": "9.16.0", + "eslint": "9.17.0", "eslint-config-next": "14.2.20", "ethers": "5.7.2", "fuse.js": "7.0.0", @@ -105,10 +105,10 @@ "underscore": "1.13.7", "uuid": "10.0.0", "valibot": "0.42.1", - "viem": "2.21.54", - "wagmi": "2.13.5", + "viem": "2.21.55", + "wagmi": "2.14.1", "webpack": "5.97.1", - "zod": "3.23.8", + "zod": "3.24.1", "zustand": "4.5.5" } } diff --git a/yarn.lock b/yarn.lock index a66f908d3..c104776f0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -102,18 +102,18 @@ "@smithy/util-utf8" "^2.0.0" tslib "^2.6.2" -"@aws-sdk/client-s3@3.709.0": - version "3.709.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.709.0.tgz#ae27e18c5ced29f0d24857e4a28fb6947cdba3a4" - integrity sha512-IvC7coELoQ4YenTdULArVdL5yk6jNRVUALX1aqv9JlPdrXxb3Om6YrM9e7AlSTLxrULTsAe1ubm8i/DmcSY/Ng== +"@aws-sdk/client-s3@3.712.0": + version "3.712.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.712.0.tgz#2911e9c7a65fd9e5679926fdb838311a0b29e37c" + integrity sha512-Hq1IIwOFutmHtTz3mROR1XhTDL8rxcYbYw3ajjgeMJB5tjcvodpfkfz/L4dxXZMwqylWf6SNQNAiaGh5mlsGGQ== dependencies: "@aws-crypto/sha1-browser" "5.2.0" "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/client-sso-oidc" "3.709.0" - "@aws-sdk/client-sts" "3.709.0" + "@aws-sdk/client-sso-oidc" "3.712.0" + "@aws-sdk/client-sts" "3.712.0" "@aws-sdk/core" "3.709.0" - "@aws-sdk/credential-provider-node" "3.709.0" + "@aws-sdk/credential-provider-node" "3.712.0" "@aws-sdk/middleware-bucket-endpoint" "3.709.0" "@aws-sdk/middleware-expect-continue" "3.709.0" "@aws-sdk/middleware-flexible-checksums" "3.709.0" @@ -129,7 +129,7 @@ "@aws-sdk/types" "3.709.0" "@aws-sdk/util-endpoints" "3.709.0" "@aws-sdk/util-user-agent-browser" "3.709.0" - "@aws-sdk/util-user-agent-node" "3.709.0" + "@aws-sdk/util-user-agent-node" "3.712.0" "@aws-sdk/xml-builder" "3.709.0" "@smithy/config-resolver" "^3.0.13" "@smithy/core" "^2.5.5" @@ -166,15 +166,15 @@ "@smithy/util-waiter" "^3.2.0" tslib "^2.6.2" -"@aws-sdk/client-sso-oidc@3.709.0": - version "3.709.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.709.0.tgz#959e4df4070f1d059d8d0cd5b9028d9a46ac7ecf" - integrity sha512-1w6egz17QQy661lNCRmZZlqIANEbD6g2VFAQIJbVwSiu7brg+GUns+mT1eLLLHAMQc1sL0Ds8/ybSK2SrgGgIA== +"@aws-sdk/client-sso-oidc@3.712.0": + version "3.712.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.712.0.tgz#ba3c9ae1b74f3c44e406397c60c812bb9e2e98a4" + integrity sha512-xNFrG9syrG6pxUP7Ld/nu3afQ9+rbJM9qrE+wDNz4VnNZ3vLiJty4fH85zBFhOQ5OF2DIJTWsFzXGi2FYjsCMA== dependencies: "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" "@aws-sdk/core" "3.709.0" - "@aws-sdk/credential-provider-node" "3.709.0" + "@aws-sdk/credential-provider-node" "3.712.0" "@aws-sdk/middleware-host-header" "3.709.0" "@aws-sdk/middleware-logger" "3.709.0" "@aws-sdk/middleware-recursion-detection" "3.709.0" @@ -183,7 +183,7 @@ "@aws-sdk/types" "3.709.0" "@aws-sdk/util-endpoints" "3.709.0" "@aws-sdk/util-user-agent-browser" "3.709.0" - "@aws-sdk/util-user-agent-node" "3.709.0" + "@aws-sdk/util-user-agent-node" "3.712.0" "@smithy/config-resolver" "^3.0.13" "@smithy/core" "^2.5.5" "@smithy/fetch-http-handler" "^4.1.2" @@ -211,10 +211,10 @@ "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/client-sso@3.709.0": - version "3.709.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.709.0.tgz#b5b29161e07af6f82afd7a6e750c09b0158d19e3" - integrity sha512-Qxeo8cN0jNy6Wnbqq4wucffAGJM6sJjofoTgNtPA6cC7sPYx7aYC6OAAAo6NaMRY+WywOKdS9Wgjx2QYRxKx7w== +"@aws-sdk/client-sso@3.712.0": + version "3.712.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.712.0.tgz#9644585700f5d96a16151bdb5387755adc524db8" + integrity sha512-tBo/eW3YpZ9f3Q1qA7aA8uliNFJJX0OP7R2IUJ8t6rqVTk15wWCEPNmXzUZKgruDnKUfCaF4+r9q/Yy4fBc9PA== dependencies: "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" @@ -227,7 +227,7 @@ "@aws-sdk/types" "3.709.0" "@aws-sdk/util-endpoints" "3.709.0" "@aws-sdk/util-user-agent-browser" "3.709.0" - "@aws-sdk/util-user-agent-node" "3.709.0" + "@aws-sdk/util-user-agent-node" "3.712.0" "@smithy/config-resolver" "^3.0.13" "@smithy/core" "^2.5.5" "@smithy/fetch-http-handler" "^4.1.2" @@ -255,16 +255,16 @@ "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/client-sts@3.709.0": - version "3.709.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.709.0.tgz#b9ad3c9c6419d0d149b28cdd6c115cc40c4e7906" - integrity sha512-cBAvlPg6yslXNL385UUGFPw+XY+lA9BzioNdIFkMo3fEUlTShogTtiWz4LsyLHoN6LhKojssP9DSmmWKWjCZIw== +"@aws-sdk/client-sts@3.712.0": + version "3.712.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.712.0.tgz#455daebd946369c60c7795efbd7a6b5981d0662a" + integrity sha512-gIO6BD+hkEe3GKQhbiFP0zcNQv0EkP1Cl9SOstxS+X9CeudEgVX/xEPUjyoFVkfkntPBJ1g0I1u5xOzzRExl4g== dependencies: "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/client-sso-oidc" "3.709.0" + "@aws-sdk/client-sso-oidc" "3.712.0" "@aws-sdk/core" "3.709.0" - "@aws-sdk/credential-provider-node" "3.709.0" + "@aws-sdk/credential-provider-node" "3.712.0" "@aws-sdk/middleware-host-header" "3.709.0" "@aws-sdk/middleware-logger" "3.709.0" "@aws-sdk/middleware-recursion-detection" "3.709.0" @@ -273,7 +273,7 @@ "@aws-sdk/types" "3.709.0" "@aws-sdk/util-endpoints" "3.709.0" "@aws-sdk/util-user-agent-browser" "3.709.0" - "@aws-sdk/util-user-agent-node" "3.709.0" + "@aws-sdk/util-user-agent-node" "3.712.0" "@smithy/config-resolver" "^3.0.13" "@smithy/core" "^2.5.5" "@smithy/fetch-http-handler" "^4.1.2" @@ -345,16 +345,16 @@ "@smithy/util-stream" "^3.3.2" tslib "^2.6.2" -"@aws-sdk/credential-provider-ini@3.709.0": - version "3.709.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.709.0.tgz#b01c68d98ce4cc48f79405234e32a9de2f943ea1" - integrity sha512-qCF8IIGcPoUp+Ib3ANhbF5gElxFd+kIrtv2/1tKdvhudMANstQbMiWV0LTH47ZZR6c3as4iSrm09NZnpEoD/pA== +"@aws-sdk/credential-provider-ini@3.712.0": + version "3.712.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.712.0.tgz#21d94d3fbaf5cece29bc62d56cf7f0dfb8b7d25e" + integrity sha512-sTsdQ/Fm/suqMdpjhMuss/5uKL18vcuWnNTQVrG9iGNRqZLbq65MXquwbUpgzfoUmIcH+4CrY6H2ebpTIECIag== dependencies: "@aws-sdk/core" "3.709.0" "@aws-sdk/credential-provider-env" "3.709.0" "@aws-sdk/credential-provider-http" "3.709.0" "@aws-sdk/credential-provider-process" "3.709.0" - "@aws-sdk/credential-provider-sso" "3.709.0" + "@aws-sdk/credential-provider-sso" "3.712.0" "@aws-sdk/credential-provider-web-identity" "3.709.0" "@aws-sdk/types" "3.709.0" "@smithy/credential-provider-imds" "^3.2.8" @@ -363,16 +363,16 @@ "@smithy/types" "^3.7.2" tslib "^2.6.2" -"@aws-sdk/credential-provider-node@3.709.0": - version "3.709.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.709.0.tgz#270a31aae394e6c8fe7d3fdd0b92e7c3a863b933" - integrity sha512-4HRX9KYWPSjO5O/Vg03YAsebKpvTjTvpK1n7zHYBmlLMBLxUrVsL1nNKKC5p2/7OW3RL8XR1ki3QkoV7kGRxUQ== +"@aws-sdk/credential-provider-node@3.712.0": + version "3.712.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.712.0.tgz#6f017382b1182578cf62798310f42264b652e36e" + integrity sha512-gXrHymW3rMRYORkPVQwL8Gi5Lu92F16SoZR543x03qCi7rm00oL9tRD85ACxkhprS1Wh8lUIUMNoeiwnYWTNuQ== dependencies: "@aws-sdk/credential-provider-env" "3.709.0" "@aws-sdk/credential-provider-http" "3.709.0" - "@aws-sdk/credential-provider-ini" "3.709.0" + "@aws-sdk/credential-provider-ini" "3.712.0" "@aws-sdk/credential-provider-process" "3.709.0" - "@aws-sdk/credential-provider-sso" "3.709.0" + "@aws-sdk/credential-provider-sso" "3.712.0" "@aws-sdk/credential-provider-web-identity" "3.709.0" "@aws-sdk/types" "3.709.0" "@smithy/credential-provider-imds" "^3.2.8" @@ -393,12 +393,12 @@ "@smithy/types" "^3.7.2" tslib "^2.6.2" -"@aws-sdk/credential-provider-sso@3.709.0": - version "3.709.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.709.0.tgz#f0cb855eed86748ff0c9afa06b3a234fb04b3206" - integrity sha512-rYdTDOxazS2GdGScelsRK5CAkktRLCCdRjlwXaxrcW57j749hEqxcF5uTv9RD6WBwInfedcSywErNZB+hylQlg== +"@aws-sdk/credential-provider-sso@3.712.0": + version "3.712.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.712.0.tgz#d29c8c14e2460a817ed2eb7ad5d205d7914817af" + integrity sha512-8lCMxY7Lb9VK9qdlNXRJXE3W1UDVURnJZ3a4XWYNY6yr1TfQaN40mMyXX1oNlXXJtMV0szRvjM8dZj37E/ESAw== dependencies: - "@aws-sdk/client-sso" "3.709.0" + "@aws-sdk/client-sso" "3.712.0" "@aws-sdk/core" "3.709.0" "@aws-sdk/token-providers" "3.709.0" "@aws-sdk/types" "3.709.0" @@ -552,10 +552,10 @@ "@smithy/util-middleware" "^3.0.11" tslib "^2.6.2" -"@aws-sdk/s3-request-presigner@3.709.0": - version "3.709.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.709.0.tgz#d3c9d881158bdece69863be318d49e9d7d2c512f" - integrity sha512-WYmXU2ur/z6xBX9TcGwSWlSiS8rxrRl2f1HJXZzgSu9FWZ7fJssoQGvrk/w64wjNq1tEzKbd1iWXw9s9qexT3g== +"@aws-sdk/s3-request-presigner@3.712.0": + version "3.712.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.712.0.tgz#f6023a4167adad884a9b1efa2a845280a0fa1b26" + integrity sha512-LE+uNtGDyypRMxBfrJmkpWaW+x0QFp4qYH+nZYMDLdD0um8UrTrbVSfvIxcVm9QsL1gVy6WkpUj+5cU3YZBgyQ== dependencies: "@aws-sdk/signature-v4-multi-region" "3.709.0" "@aws-sdk/types" "3.709.0" @@ -649,10 +649,10 @@ bowser "^2.11.0" tslib "^2.6.2" -"@aws-sdk/util-user-agent-node@3.709.0": - version "3.709.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.709.0.tgz#7ff5a508bcad49963a550acadcced43d7af9960d" - integrity sha512-trBfzSCVWy7ILgqhEXgiuM7hfRCw4F4a8IK90tjk9YL0jgoJ6eJuOp7+DfCtHJaygoBxD3cdMFkOu+lluFmGBA== +"@aws-sdk/util-user-agent-node@3.712.0": + version "3.712.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.712.0.tgz#7634627775e0993eace70dea1dd915122f1a053f" + integrity sha512-26X21bZ4FWsVpqs33uOXiB60TOWQdVlr7T7XONDFL/XN7GEpUJkWuuIB4PTok6VOmh1viYcdxZQqekXPuzXexQ== dependencies: "@aws-sdk/middleware-user-agent" "3.709.0" "@aws-sdk/types" "3.709.0" @@ -3033,10 +3033,10 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@9.16.0": - version "9.16.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.16.0.tgz#3df2b2dd3b9163056616886c86e4082f45dbf3f4" - integrity sha512-tw2HxzQkrbeuvyj1tG2Yqq+0H9wGoI2IMk4EOsQeX+vmd75FtJAzf+gTA69WF+baUKRYQ3x2kbLE08js5OsTVg== +"@eslint/js@9.17.0": + version "9.17.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.17.0.tgz#1523e586791f80376a6f8398a3964455ecc651ec" + integrity sha512-Sxc4hqcs1kTu0iID3kcZDW3JHq2a77HO9P8CP6YEA/FpH3Ll8UXE2r/86Rz9YJLKme39S9vU5OWNjC6Xl0Cr3w== "@eslint/object-schema@^2.1.4": version "2.1.4" @@ -4389,23 +4389,23 @@ utf-8-validate "^5.0.2" uuid "^8.3.2" -"@metamask/sdk-install-modal-web@0.31.1": - version "0.31.1" - resolved "https://registry.yarnpkg.com/@metamask/sdk-install-modal-web/-/sdk-install-modal-web-0.31.1.tgz#c08ddeb6d8e5a21344477a3f395ebc66952f0bcd" - integrity sha512-J83K6jN2V3xkTb+/5eyASatlgqHdpzjkTVU6cC+Z/YA9cE32zX8vE0EQweGmExgv+kJ5zz/BiqSZZbMfuilRfQ== +"@metamask/sdk-install-modal-web@0.31.2": + version "0.31.2" + resolved "https://registry.yarnpkg.com/@metamask/sdk-install-modal-web/-/sdk-install-modal-web-0.31.2.tgz#bb8c92a6844a632be8525e7bb5a35924a926d6cd" + integrity sha512-KPv36kQjmTwErU8g2neuHHSgkD5+1hp4D6ERfk5Kc2r73aOYNCdG9wDGRUmFmcY2MKkeK1EuDyZfJ4FPU30fxQ== dependencies: "@paulmillr/qr" "^0.2.1" -"@metamask/sdk@0.31.1": - version "0.31.1" - resolved "https://registry.yarnpkg.com/@metamask/sdk/-/sdk-0.31.1.tgz#111f2eeba9f40d1bc358b4bd60bdf5b423d78daf" - integrity sha512-olU3TYRAxIZP5ZXDmi5Y53zXikkPySNiTuBI4QD+2hWYomVlMV2SjOKHSRR6gPuI+fFEg/Z+ImrxDthQfMODwA== +"@metamask/sdk@0.31.2": + version "0.31.2" + resolved "https://registry.yarnpkg.com/@metamask/sdk/-/sdk-0.31.2.tgz#2ec1c1c7cf6a444e65104862e83814a493047d72" + integrity sha512-6MWON2g1j7XwAHWam4trusGxeyhQweNLEHPsfuIxSwcsXoEm08Jj80OglJxQI4KwjcDnjSWBkQGG3mmK6ug/cA== dependencies: "@babel/runtime" "^7.26.0" "@metamask/onboarding" "^1.0.1" "@metamask/providers" "16.1.0" "@metamask/sdk-communication-layer" "0.31.0" - "@metamask/sdk-install-modal-web" "0.31.1" + "@metamask/sdk-install-modal-web" "0.31.2" "@paulmillr/qr" "^0.2.1" bowser "^2.9.0" cross-fetch "^4.0.0" @@ -7209,10 +7209,10 @@ "@stablelib/random" "^1.0.2" "@stablelib/wipe" "^1.0.1" -"@supabase/auth-js@2.66.1": - version "2.66.1" - resolved "https://registry.yarnpkg.com/@supabase/auth-js/-/auth-js-2.66.1.tgz#40d9e7d98206123afc169877ecfe3fea33a4a0ae" - integrity sha512-kOW+04SuDXmP2jRX9JL1Rgzduj8BcOG1qC3RaWdZsxnv89svNCdLRv8PfXW3QPKJdw0k1jF30OlQDPkzbDEL9w== +"@supabase/auth-js@2.67.1": + version "2.67.1" + resolved "https://registry.yarnpkg.com/@supabase/auth-js/-/auth-js-2.67.1.tgz#b72217136df61d645dcfb7b12c7db8cbb7875a4c" + integrity sha512-1SRZG9VkLFz4rtiyEc1l49tMq9jTYu4wJt3pMQEWi7yshZFIBdVH1o5sshk1plQd5LY6GcrPIpCydM2gGDxchA== dependencies: "@supabase/node-fetch" "^2.6.14" @@ -7254,12 +7254,12 @@ dependencies: "@supabase/node-fetch" "^2.6.14" -"@supabase/supabase-js@2.47.3": - version "2.47.3" - resolved "https://registry.yarnpkg.com/@supabase/supabase-js/-/supabase-js-2.47.3.tgz#1240eae822d9ad78619fb75709e0e0a5d9411b1b" - integrity sha512-AmwTyHtOXdfjLVKiM+neYItB62T4gAl1jV8ZrIg3yp1Z1NICzYfsujJDSuELkrLkYvU/RGfZXpIBheDTt7fmwA== +"@supabase/supabase-js@2.47.7": + version "2.47.7" + resolved "https://registry.yarnpkg.com/@supabase/supabase-js/-/supabase-js-2.47.7.tgz#ebfd8b88b47963e05b4ec57c8640dc28e040635a" + integrity sha512-ZhAiboKRo4rclM98PWu+6DjrHyYnF5Dzy10dNSdOalxYvcYjYS4Gf1JbVZeofgyXweepWEJd3diwoW1v1OroDw== dependencies: - "@supabase/auth-js" "2.66.1" + "@supabase/auth-js" "2.67.1" "@supabase/functions-js" "2.4.3" "@supabase/node-fetch" "2.6.15" "@supabase/postgrest-js" "1.16.3" @@ -7684,10 +7684,10 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-16.9.1.tgz#0611b37db4246c937feef529ddcc018cf8e35708" integrity sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g== -"@types/node@20.17.9": - version "20.17.9" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.17.9.tgz#5f141d4b7ee125cdee5faefe28de095398865bab" - integrity sha512-0JOXkRyLanfGPE2QRCwgxhzlBAvaRdCNMcvbd7jFfpmD4eEXll7LRwy5ymJmyeZqk7Nh7eD2LeUyQ68BbndmXw== +"@types/node@20.17.10": + version "20.17.10" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.17.10.tgz#3f7166190aece19a0d1d364d75c8b0b5778c1e18" + integrity sha512-/jrvh5h6NXhEauFFexRin69nA0uHJ5gwk4iDivp/DeoEua3uwCUto6PC86IpRITBOs4+6i2I56K5x5b6WYGXHA== dependencies: undici-types "~6.19.2" @@ -8093,22 +8093,22 @@ loupe "^2.3.7" pretty-format "^29.7.0" -"@wagmi/connectors@5.5.3": - version "5.5.3" - resolved "https://registry.yarnpkg.com/@wagmi/connectors/-/connectors-5.5.3.tgz#0bf4778ce66f0bd646f86b4479ef24054e409ebd" - integrity sha512-ADXcNuNtONh4PNzs5tWiYzl77P4UohXC7ozYecGvbn3Fkdk6x4tfsF9Wy3Ag5WcVbbp89MPpJ2+VK2ckBgtLAg== +"@wagmi/connectors@5.6.1": + version "5.6.1" + resolved "https://registry.yarnpkg.com/@wagmi/connectors/-/connectors-5.6.1.tgz#948ca387916136501da80989f3eba351b0c6a595" + integrity sha512-6nGxKSDtT6udnrW21SPqP7gcaZFpyRAz7Ecf2DelYh5OHpGk/FBNB8mtB/w0AVSCH6XRIpVK81pO412pPBiEYg== dependencies: "@coinbase/wallet-sdk" "4.2.3" - "@metamask/sdk" "0.31.1" + "@metamask/sdk" "0.31.2" "@safe-global/safe-apps-provider" "0.18.4" "@safe-global/safe-apps-sdk" "9.1.0" "@walletconnect/ethereum-provider" "2.17.0" cbw-sdk "npm:@coinbase/wallet-sdk@3.9.3" -"@wagmi/core@2.15.2": - version "2.15.2" - resolved "https://registry.yarnpkg.com/@wagmi/core/-/core-2.15.2.tgz#5bc934b4bca0d7fac1062c920a5366716f069613" - integrity sha512-4Bu1JA3HqtKvmBBsesvJ3HyqyLk69XYP0lwmG8jFqa5osfqn9iD8pvjsq5VHbIus+ZFM/UL6ydp9WWdtPNjH7w== +"@wagmi/core@2.16.0": + version "2.16.0" + resolved "https://registry.yarnpkg.com/@wagmi/core/-/core-2.16.0.tgz#b997b2544cd80b4aac4df25ccb2436bf77f9fbe1" + integrity sha512-sy4n7Jv6YCbT2jp4zQ/9H6l0A8StsN7P8mm2BRuODgW2w6Fj4j6h2xgYJD2tIjJHkLU/nvPJ7audZ55X7XQU/g== dependencies: eventemitter3 "5.0.1" mipd "0.0.7" @@ -10022,10 +10022,10 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" -cross-spawn@^7.0.5: - version "7.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.5.tgz#910aac880ff5243da96b728bc6521a5f6c2f2f82" - integrity sha512-ZVJrKKYunU38/76t0RMOulHOnUcbU9GbpWKAOZ0mhjr7CX6FVrH+4FrAapSOekrgFQ3f/8gwMEuIft0aKq6Hug== +cross-spawn@^7.0.6: + version "7.0.6" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" + integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== dependencies: path-key "^3.1.0" shebang-command "^2.0.0" @@ -11036,17 +11036,17 @@ eslint-visitor-keys@^4.2.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz#687bacb2af884fcdda8a6e7d65c606f46a14cd45" integrity sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw== -eslint@9.16.0: - version "9.16.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.16.0.tgz#66832e66258922ac0a626f803a9273e37747f2a6" - integrity sha512-whp8mSQI4C8VXd+fLgSM0lh3UlmcFtVwUQjyKCFfsp+2ItAIYhlq/hqGahGqHE6cv9unM41VlqKk2VtKYR2TaA== +eslint@9.17.0: + version "9.17.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.17.0.tgz#faa1facb5dd042172fdc520106984b5c2421bb0c" + integrity sha512-evtlNcpJg+cZLcnVKwsai8fExnqjGPicK7gnUtlNuzu+Fv9bI0aLpND5T44VLQtoMEnI57LoXO9XAkIXwohKrA== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.12.1" "@eslint/config-array" "^0.19.0" "@eslint/core" "^0.9.0" "@eslint/eslintrc" "^3.2.0" - "@eslint/js" "9.16.0" + "@eslint/js" "9.17.0" "@eslint/plugin-kit" "^0.2.3" "@humanfs/node" "^0.16.6" "@humanwhocodes/module-importer" "^1.0.1" @@ -11055,7 +11055,7 @@ eslint@9.16.0: "@types/json-schema" "^7.0.15" ajv "^6.12.4" chalk "^4.0.0" - cross-spawn "^7.0.5" + cross-spawn "^7.0.6" debug "^4.3.2" escape-string-regexp "^4.0.0" eslint-scope "^8.2.0" @@ -17425,10 +17425,10 @@ vary@~1.1.2: resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== -viem@2.21.54: - version "2.21.54" - resolved "https://registry.yarnpkg.com/viem/-/viem-2.21.54.tgz#76d6f86ab8809078f1ac140ac1a2beadbc86b9f6" - integrity sha512-G9mmtbua3UtnVY9BqAtWdNp+3AO+oWhD0B9KaEsZb6gcrOWgmA4rz02yqEMg+qW9m6KgKGie7q3zcHqJIw6AqA== +viem@2.21.55: + version "2.21.55" + resolved "https://registry.yarnpkg.com/viem/-/viem-2.21.55.tgz#a57ad31fcf2a0f6c011b1909f02c94421ec4f781" + integrity sha512-PgXew7C11cAuEtOSgRyQx2kJxEOPUwIwZA9dMglRByqJuFVA7wSGZZOOo/93iylAA8E15bEdqy9xulU3oKZ70Q== dependencies: "@noble/curves" "1.7.0" "@noble/hashes" "1.6.1" @@ -17527,13 +17527,13 @@ w3c-keyname@^2.2.0: resolved "https://registry.yarnpkg.com/w3c-keyname/-/w3c-keyname-2.2.8.tgz#7b17c8c6883d4e8b86ac8aba79d39e880f8869c5" integrity sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ== -wagmi@2.13.5: - version "2.13.5" - resolved "https://registry.yarnpkg.com/wagmi/-/wagmi-2.13.5.tgz#3466f408012d882ed333eed82b3e45a122dfb17b" - integrity sha512-jeW6UFIcmMJjtcFF3K18X7xYzwmR/fxs4sGxKFSCqyY90zoOQ6jorwnv/PwCaJnzHyBBtSlWILvPqU/D9MEWCA== +wagmi@2.14.1: + version "2.14.1" + resolved "https://registry.yarnpkg.com/wagmi/-/wagmi-2.14.1.tgz#8c6e1e389f8dab7c21d1c91e3c2fba4815c4fbdb" + integrity sha512-Lq/UFJVorjwJlFjXbU+Jtfo64PObNfUCPtwgqi+q/WGBWzG7CL0xmCsB3wPc+YZYwD8O9OqFDHfcggUi0qwcGA== dependencies: - "@wagmi/connectors" "5.5.3" - "@wagmi/core" "2.15.2" + "@wagmi/connectors" "5.6.1" + "@wagmi/core" "2.16.0" use-sync-external-store "1.2.0" walker@^1.0.7: @@ -18217,7 +18217,12 @@ youch@^3.2.2: mustache "^4.2.0" stacktracey "^2.1.8" -zod@3.23.8, zod@^3.20.6: +zod@3.24.1: + version "3.24.1" + resolved "https://registry.yarnpkg.com/zod/-/zod-3.24.1.tgz#27445c912738c8ad1e9de1bea0359fa44d9d35ee" + integrity sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A== + +zod@^3.20.6: version "3.23.8" resolved "https://registry.yarnpkg.com/zod/-/zod-3.23.8.tgz#e37b957b5d52079769fb8097099b592f0ef4067d" integrity sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==