In certain scenarios, you may want to manually refresh all private balances.
Example: Manually refresh balances
import { NETWORK_CONFIG, NetworkName } from '@railgun-community/shared-models';
import { refreshBalances } from '@railgun-community/wallet';
const { chain } = NETWORK_CONFIG[NetworkName.Ethereum];
const railgunWalletID = '...'; // Obtained after a previous call to `createRailgunWallet`
// Optional filter to only scan the provided wallet IDs. Leave undefined to scan all wallets.
const walletIdFilter = [railgunWalletID];
try {
await refreshBalances(chain, walletIdFilter);
// During scan, `onMerkletreeScanCallback` callback from the previous section will trigger.
// When scan is completed, `onBalanceUpdateCallback` callback from the previous section will trigger.
// This may take a few minutes on first sync, but only a few seconds on subsequent calls.
} catch (err) {
// Scan failed to run.
}