1
+ import { formatUnitsWithDecimalsDisplayed } from "@/lib/amount" ;
2
+ import { Text } from "@radix-ui/themes" ;
1
3
// support ENS, basename
2
4
// Option to use ipfs gateway, ens metadata services
3
- import React , { useEffect , useState } from 'react' ;
4
- import { Text } from '@radix-ui/themes' ;
5
- import { useAccount , useBalance , useReadContract , useToken } from 'wagmi' ;
6
- import { Address , Chain , formatUnits } from 'viem' ;
7
- import { mainnet } from 'viem/chains'
8
- import { ABI_ERC20 } from '../../utils/config' ;
9
- import { formatUnitsWithDecimalsDisplayed } from '@/lib/amount' ;
10
-
5
+ import React , { useEffect , useState } from "react" ;
6
+ import { Address , Chain , formatUnits } from "viem" ;
7
+ import { mainnet } from "viem/chains" ;
8
+ import { useAccount , useBalance , useReadContract , useToken } from "wagmi" ;
9
+ import { ABI_ERC20 } from "../../utils/config" ;
11
10
12
11
type ETHBalanceProps = {
13
- address : Address ,
14
- chainId ?: number ,
15
- decimalsDisplayed : number
16
- }
17
-
12
+ address : Address ;
13
+ chainId ?: number ;
14
+ decimalsDisplayed : number ;
15
+ } ;
18
16
19
17
// Consider locale for https://github.com/bpierre/dnum
20
18
21
19
export const ETHBalance = ( {
22
- address,
23
- chainId = mainnet . id ,
24
- decimalsDisplayed = 4
20
+ address,
21
+ chainId = mainnet . id ,
22
+ decimalsDisplayed = 4 ,
25
23
} : ETHBalanceProps ) => {
24
+ const { data, isError, isLoading } = useBalance ( {
25
+ address,
26
+ chainId,
27
+ } ) ;
26
28
27
- const { data, isError, isLoading } = useBalance ( {
28
- address,
29
- chainId,
30
- } ) ;
31
-
32
-
33
-
34
- if ( isError ) return < Text > Error loading balance</ Text > ;
35
- if ( isLoading || ! data ) return < Text > Loading...</ Text > ;
36
-
37
- return (
38
- < Text >
39
- { formatUnitsWithDecimalsDisplayed ( data , decimalsDisplayed ) } { data ?. symbol }
40
- </ Text >
41
- ) ;
42
-
43
- }
29
+ if ( isError ) return < Text > Error loading balance</ Text > ;
30
+ if ( isLoading || ! data ) return < Text > Loading...</ Text > ;
44
31
32
+ return (
33
+ < Text >
34
+ { formatUnitsWithDecimalsDisplayed ( data , decimalsDisplayed ) } { data ?. symbol }
35
+ </ Text >
36
+ ) ;
37
+ } ;
45
38
46
39
export const Balance = ( {
47
- address,
48
- chainId = mainnet . id ,
49
- token
40
+ address,
41
+ chainId = mainnet . id ,
42
+ token,
50
43
} : {
51
- address : Address ,
52
- chainId ?: number ,
53
- token ?: Address
44
+ address : Address ;
45
+ chainId ?: number ;
46
+ token ?: Address ;
54
47
} ) => {
48
+ if ( token ) {
49
+ return < TokenBalance address = { address } chainId = { chainId } token = { token } /> ;
50
+ }
55
51
56
- if ( token ) {
57
- return < TokenBalance address = { address } chainId = { chainId } token = { token } />
58
- }
59
-
60
- return < ETHBalance address = { address } chainId = { chainId } />
61
-
62
- }
52
+ return < ETHBalance address = { address } chainId = { chainId } /> ;
53
+ } ;
63
54
64
55
export const TokenBalance = ( {
65
- address,
66
- chainId = mainnet . id ,
67
- token
56
+ address,
57
+ chainId = mainnet . id ,
58
+ token,
68
59
} : {
69
- address : Address ,
70
- chainId ?: number ,
71
- token ?: Address
60
+ address : Address ;
61
+ chainId ?: number ;
62
+ token ?: Address ;
72
63
} ) => {
73
-
74
-
75
- const { data, isError, isLoading } = useReadContract ( {
76
- abi : ABI_ERC20 ,
77
- address : token ,
78
- chainId,
79
- functionName : 'balanceOf' ,
80
- args : [ address ] ,
81
- account : address ,
82
- } ) ;
83
-
84
- if ( isLoading ) return < Text > Loading...</ Text > ;
85
- if ( isError ) return < Text > Error loading balance</ Text > ;
86
-
87
- return (
88
- < Text >
89
- { data ?. toString ( ) }
90
- </ Text >
91
- ) ;
92
- }
64
+ const { data, isError, isLoading } = useReadContract ( {
65
+ abi : ABI_ERC20 ,
66
+ address : token ,
67
+ chainId,
68
+ functionName : "balanceOf" ,
69
+ args : [ address ] ,
70
+ account : address ,
71
+ } ) ;
72
+
73
+ if ( isLoading ) return < Text > Loading...</ Text > ;
74
+ if ( isError ) return < Text > Error loading balance</ Text > ;
75
+
76
+ return < Text > { data ?. toString ( ) } </ Text > ;
77
+ } ;
0 commit comments