Abi
Abi

Reputation: 493

How to check if an account is associated with an HTS token using the Hashgraph JS SDK

Using the SDK, I was able to obtain a “TokenBalanceMap” using the following code:

const accountBalance = await new AccountBalanceQuery()
.setAccountId(accountId)
.setTokenIds([tokenId])
.execute(client);

const tokenBalance = accountBalance.tokens;

But the tokens property is marked as @deprecated (SDK version is 2.31.0). What’s the recommended way to do this?

Upvotes: 2

Views: 94

Answers (1)

EmmBee
EmmBee

Reputation: 169

Using the mirror nodes is the recommended way to check if an account is currently associated with an HTS token. It’s important to note when you associate with a token it will show you have a 0 balance of that token. Once you receive that token your balance will go up as expected.

Here is how you can check using the mirror nodes:

First, construct a fetch request to get account info by account id.

const testnetUrl = 'https://testnet.mirrornode.hedera.com/';
  // fetch the account info
  const accountInfo = await fetch(`${testnetUrl}api/v1/accounts/${accountId}`, {method: "GET"});

convert the response to json and grab the associated tokens list from the json

const associatedTokensList = accountInfoJson.balance.tokens;

Here is a link to the Hedera Mirror Node REST API swagger documentation https://testnet.mirrornode.hedera.com/api/v1/docs/#/

Upvotes: 3

Related Questions