Balance
Supports checking balances for CROSS tokens, ERC20 tokens, and NFTs.
Get Balance of CROSS
Function to retrieve the balance of native CROSS tokens.
// React Example
import { useAppKitAccount } from '@to-nexus/sdk/react'
function getCrossBalance() {
const account = useAppKitAccount()
if (!account?.isConnected) return null
return account.balance
}
// Vanilla JS Example
import { AccountController } from '@to-nexus/sdk';
const accountState = AccountController.state;
const crossBalance = accountState.balance;
console.log('CROSS balance:', crossBalance);
Get Balance of ERC20
Function to retrieve the balance of an ERC20 token.
// React Example
import { useAppKitAccount, ConnectionController } from '@to-nexus/sdk/react'
const ERC20_ADDRESS = "0x6892a97F4E85D45f4CaCAfBc5fc0B5186f355A1b"
const FROM_ADDRESS = AccountController.state.address as `0x${string}`
function getERC20Balance() {
const account = useAppKitAccount()
if (!account?.isConnected) return null
return ConnectionController.readContract({
contractAddress: ERC20_ADDRESS,
method: 'balanceOf',
abi: sampleErc20ABI,
args: [FROM_ADDRESS]
})
}
// Vanilla JS Example
import { AccountController, ConnectionController } from '@to-nexus/sdk';
const ERC20_ADDRESS = '0xe934057Ac314cD9bA9BC17AE2378959fd39Aa2E3';
const sampleErc20ABI = /* ... ABI ... */;
const FROM_ADDRESS = AccountController.state.address;
const erc20Balance = await ConnectionController.readContract({
contractAddress: ERC20_ADDRESS,
method: 'balanceOf',
abi: sampleErc20ABI,
args: [FROM_ADDRESS]
});
console.log('ERC20 balance:', erc20Balance);
Get Balance of NFT
Function to retrieve the balance of an NFT.
// React Example
import { useAppKitAccount, ConnectionController } from '@to-nexus/sdk/react'
const ERC721_ADDRESS = "0xEeE291deAF8505681AA7A3e930A6f12b7f21fe65"
const FROM_ADDRESS = AccountController.state.address as `0x${string}`
function getNFTBalance() {
const account = useAppKitAccount()
if (!account?.isConnected) return null
return ConnectionController.readContract({
contractAddress: ERC721_ADDRESS,
method: 'balanceOf',
abi: sampleErc721ABI,
args: [FROM_ADDRESS]
})
}
// Vanilla JS Example
import { AccountController, ConnectionController } from '@to-nexus/sdk';
const ERC721_ADDRESS = '0xEeE291deAF8505681AA7A3e930A6f12b7f21fe65';
const sampleErc721ABI = /* ... ABI ... */;
const FROM_ADDRESS = AccountController.state.address;
const nftBalance = await ConnectionController.readContract({
contractAddress: ERC721_ADDRESS,
method: 'balanceOf',
abi: sampleErc721ABI,
args: [FROM_ADDRESS]
});
console.log('NFT balance:', nftBalance);
Balance Subscription
Functionality to subscribe to balance changes.
// React Example
import { useAppKitAccount, AccountController } from '@to-nexus/sdk/react'
import { useEffect, useState } from 'react'
function BalanceSubscriber() {
// Get account state and manage balance state
const account = useAppKitAccount()
const [balance, setBalance] = useState<string>('0')
useEffect(() => {
// Subscribe to balance changes
const unsubscribe = AccountController.subscribe('balance', (newBalance) => {
setBalance(newBalance)
})
// Cleanup subscription
return () => {
unsubscribe()
}
}, [])
return (
<div>
<p>Current Balance: {balance}</p>
</div>
)
}
// Vanilla JS Example
import { AccountController } from '@to-nexus/sdk';
// Subscribe to balance changes
const unsubscribe = AccountController.subscribe('balance', (newBalance) => {
console.log('Balance changed:', newBalance);
});
// To unsubscribe
// unsubscribe();
Balance Formatting
Functionality to format balance values.
// React Example
import { ConnectionController } from '@to-nexus/sdk/react'
function formatBalance(balance: string, decimals: number = 18) {
return ConnectionController.formatUnits(balance, decimals)
}
// Vanilla JS Example
import { ConnectionController } from '@to-nexus/sdk';
function formatBalance(balance, decimals = 18) {
return ConnectionController.formatUnits(balance, decimals);
}
Updated about 1 month ago