Skip to content

Commit

Permalink
chore: added useBaseAssetId hook to templates (#3550)
Browse files Browse the repository at this point in the history
  • Loading branch information
petertonysmith94 authored Jan 6, 2025
1 parent d404734 commit 9b52153
Show file tree
Hide file tree
Showing 13 changed files with 102 additions and 13 deletions.
5 changes: 5 additions & 0 deletions .changeset/small-spoons-drive.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"create-fuels": patch
---

chore: added `useBaseAssetId` hook to templates
7 changes: 4 additions & 3 deletions apps/create-fuels-counter-guide/src/components/Faucet.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,18 @@ import { useEffect, useState } from "react";
import LocalFaucet from "./LocalFaucet";
import Button from "./Button";
import { isLocal, renderFormattedBalance, testnetFaucetUrl } from "../lib.tsx";
import { useBaseAssetId } from "../hooks/useBaseAssetId.tsx";

export default function Faucet() {
const { wallet } = useWallet();
const { baseAssetId } = useBaseAssetId();
const connectedWalletAddress = wallet?.address.toB256() || "";

const [addressToFund, setAddressToFund] = useState("");

const { balance, refetch } = useBalance({ address: addressToFund });

const [initialAddressLoaded, setInitialAddressLoaded] = useState(false);

const { balance, refetch } = useBalance({ address: addressToFund, assetId: baseAssetId });

useEffect(() => {
if (connectedWalletAddress && !initialAddressLoaded && !addressToFund) {
setAddressToFund(connectedWalletAddress);
Expand Down
4 changes: 4 additions & 0 deletions apps/create-fuels-counter-guide/src/components/Predicate.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,22 +7,26 @@ import Button from "./Button";
import LocalFaucet from "./LocalFaucet";
import { isLocal, renderFormattedBalance } from "../lib.tsx";
import { useNotification } from "../hooks/useNotification.tsx";
import { useBaseAssetId } from "../hooks/useBaseAssetId.tsx";

export default function Predicate() {
const { errorNotification, transactionSubmitNotification, transactionSuccessNotification, successNotification } = useNotification();
useNotification();
const [predicate, setPredicate] = useState<FuelPredicate<InputValue[]>>();
const [predicatePin, setPredicatePin] = useState<string>();
const [isLoading, setIsLoading] = useState(false);
const { baseAssetId } = useBaseAssetId();

const { wallet } = useWallet();
const address = wallet?.address.toB256() || "";
const { balance: walletBalance, refetch: refetchWallet } = useBalance({
address,
assetId: baseAssetId,
});
const predicateAddress = predicate?.address?.toB256();
const { balance: predicateBalance, refetch: refetchPredicate } = useBalance({
address: predicateAddress,
assetId: baseAssetId,
});

useEffect(() => {
Expand Down
6 changes: 5 additions & 1 deletion apps/create-fuels-counter-guide/src/components/Wallet.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,16 @@ import { useEffect } from "react";
import Button from "./Button";
import LocalFaucet from "./LocalFaucet";
import { isLocal, renderFormattedBalance } from "../lib.tsx";
import { useBaseAssetId } from "../hooks/useBaseAssetId.tsx";

export default function Wallet() {
const { disconnect } = useDisconnect();
const { wallet } = useWallet();
const { baseAssetId } = useBaseAssetId();

const address = wallet?.address.toB256() || "";
const { balance, refetch } = useBalance({ address });

const { balance, refetch } = useBalance({ address, assetId: baseAssetId });

useEffect(() => {
refetch();
Expand Down
17 changes: 17 additions & 0 deletions apps/create-fuels-counter-guide/src/hooks/useBaseAssetId.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import { useNamedQuery, useProvider } from "@fuels/react";

export const useBaseAssetId = () => {
const { provider } = useProvider();

return useNamedQuery("baseAssetId", {
queryKey: ["baseAssetId"],
queryFn: async () => {
if (!provider) {
throw new Error("Provider not found");
}

return await provider.getBaseAssetId();
},
placeholderData: undefined,
});
};
11 changes: 8 additions & 3 deletions templates/nextjs/src/components/Faucet.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,23 +4,28 @@ import { useEffect, useState } from "react";
import LocalFaucet from "./LocalFaucet";
import Button from "./Button";
import { isLocal, renderFormattedBalance, testnetFaucetUrl } from "../lib";
import { useBaseAssetId } from "@/hooks/useBaseAssetId";

export default function Faucet() {
const { wallet } = useWallet();
const { baseAssetId } = useBaseAssetId();
const connectedWalletAddress = wallet?.address.toB256() || "";

const [addressToFund, setAddressToFund] = useState("");

const { balance, refetch } = useBalance({ address: addressToFund });

const [initialAddressLoaded, setInitialAddressLoaded] = useState(false);

const { balance, refetch } = useBalance({
address: addressToFund,
assetId: baseAssetId,
});

useEffect(() => {
if (connectedWalletAddress && !initialAddressLoaded && !addressToFund) {
setAddressToFund(connectedWalletAddress);
setInitialAddressLoaded(true);
}
}, [connectedWalletAddress, addressToFund, initialAddressLoaded]);

useEffect(() => {
refetch();
}, [refetch]);
Expand Down
4 changes: 4 additions & 0 deletions templates/nextjs/src/components/Predicate.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import Button from "./Button";
import LocalFaucet from "./LocalFaucet";
import { isLocal, renderFormattedBalance } from "../lib";
import { useNotification } from "../hooks/useNotification";
import { useBaseAssetId } from "@/hooks/useBaseAssetId";

export default function Predicate() {
const {
Expand All @@ -19,15 +20,18 @@ export default function Predicate() {
const [predicate, setPredicate] = useState<TestPredicate>();
const [predicatePin, setPredicatePin] = useState<string>();
const [isLoading, setIsLoading] = useState(false);
const { baseAssetId } = useBaseAssetId();

const { wallet } = useWallet();
const address = wallet?.address.toB256() || "";
const { balance: walletBalance, refetch: refetchWallet } = useBalance({
address,
assetId: baseAssetId,
});
const predicateAddress = predicate?.address?.toB256();
const { balance: predicateBalance, refetch: refetchPredicate } = useBalance({
address: predicateAddress,
assetId: baseAssetId,
});

useEffect(() => {
Expand Down
5 changes: 4 additions & 1 deletion templates/nextjs/src/components/Wallet.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,15 @@ import { useEffect } from "react";
import Button from "./Button";
import LocalFaucet from "./LocalFaucet";
import { isLocal, renderFormattedBalance } from "../lib";
import { useBaseAssetId } from "@/hooks/useBaseAssetId";

export default function Wallet() {
const { disconnect } = useDisconnect();
const { wallet } = useWallet();
const { baseAssetId } = useBaseAssetId();

const address = wallet?.address.toB256() || "";
const { balance, refetch } = useBalance({ address });
const { balance, refetch } = useBalance({ address, assetId: baseAssetId });

useEffect(() => {
refetch();
Expand Down
17 changes: 17 additions & 0 deletions templates/nextjs/src/hooks/useBaseAssetId.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import { useNamedQuery, useProvider } from "@fuels/react";

export const useBaseAssetId = () => {
const { provider } = useProvider();

return useNamedQuery("baseAssetId", {
queryKey: ["baseAssetId"],
queryFn: async () => {
if (!provider) {
throw new Error("Provider not found");
}

return await provider.getBaseAssetId();
},
placeholderData: undefined,
});
};
10 changes: 7 additions & 3 deletions templates/vite/src/components/Faucet.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,21 @@ import { useEffect, useState } from "react";
import LocalFaucet from "./LocalFaucet";
import Button from "./Button";
import { isLocal, renderFormattedBalance, testnetFaucetUrl } from "../lib.tsx";
import { useBaseAssetId } from "../hooks/useBaseAssetId.tsx";

export default function Faucet() {
const { wallet } = useWallet();
const { baseAssetId } = useBaseAssetId();
const connectedWalletAddress = wallet?.address.toB256() || "";

const [addressToFund, setAddressToFund] = useState("");

const { balance, refetch } = useBalance({ address: addressToFund });

const [initialAddressLoaded, setInitialAddressLoaded] = useState(false);

const { balance, refetch } = useBalance({
address: addressToFund,
assetId: baseAssetId,
});

useEffect(() => {
if (connectedWalletAddress && !initialAddressLoaded && !addressToFund) {
setAddressToFund(connectedWalletAddress);
Expand Down
6 changes: 5 additions & 1 deletion templates/vite/src/components/Predicate.tsx
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
import { useBalance, useWallet } from "@fuels/react";
import { useEffect, useState } from "react";
import { bn, Predicate as FuelPredicate, InputValue } from "fuels";
import { bn } from "fuels";

import { TestPredicate } from "../sway-api/predicates";
import Button from "./Button";
import LocalFaucet from "./LocalFaucet";
import { isLocal, renderFormattedBalance } from "../lib.tsx";
import { useNotification } from "../hooks/useNotification.tsx";
import { useBaseAssetId } from "../hooks/useBaseAssetId.tsx";

export default function Predicate() {
const {
Expand All @@ -18,15 +19,18 @@ export default function Predicate() {
const [predicate, setPredicate] = useState<TestPredicate>();
const [predicatePin, setPredicatePin] = useState<string>();
const [isLoading, setIsLoading] = useState(false);
const { baseAssetId } = useBaseAssetId();

const { wallet } = useWallet();
const address = wallet?.address.toB256() || "";
const { balance: walletBalance, refetch: refetchWallet } = useBalance({
address,
assetId: baseAssetId,
});
const predicateAddress = predicate?.address?.toB256();
const { balance: predicateBalance, refetch: refetchPredicate } = useBalance({
address: predicateAddress,
assetId: baseAssetId,
});

useEffect(() => {
Expand Down
6 changes: 5 additions & 1 deletion templates/vite/src/components/Wallet.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,16 @@ import { useEffect } from "react";
import Button from "./Button";
import LocalFaucet from "./LocalFaucet";
import { isLocal, renderFormattedBalance } from "../lib.tsx";
import { useBaseAssetId } from "../hooks/useBaseAssetId.tsx";

export default function Wallet() {
const { disconnect } = useDisconnect();
const { wallet } = useWallet();
const { baseAssetId } = useBaseAssetId();

const address = wallet?.address.toB256() || "";
const { balance, refetch } = useBalance({ address });

const { balance, refetch } = useBalance({ address, assetId: baseAssetId });

useEffect(() => {
refetch();
Expand Down
17 changes: 17 additions & 0 deletions templates/vite/src/hooks/useBaseAssetId.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import { useNamedQuery, useProvider } from "@fuels/react";

export const useBaseAssetId = () => {
const { provider } = useProvider();

return useNamedQuery("baseAssetId", {
queryKey: ["baseAssetId"],
queryFn: async () => {
if (!provider) {
throw new Error("Provider not found");
}

return await provider.getBaseAssetId();
},
placeholderData: undefined,
});
};

0 comments on commit 9b52153

Please sign in to comment.