Files
orionprotocol-sdk/src/utils/checkIsToken.ts
Aleksandr Kraiz e05dfe6695 fix
2023-05-09 22:48:28 +04:00

26 lines
738 B
TypeScript

import { ERC20__factory } from '@orionprotocol/contracts/lib/ethers-v5/index.js';
import { ethers } from 'ethers';
import invariant from 'tiny-invariant';
const checkIsToken = async (address: string, provider?: ethers.providers.Provider) => {
invariant(provider, 'No provider for token checking');
const tokenContract = ERC20__factory.connect(address, provider);
try {
const results = await Promise.all(
[
tokenContract.name(),
tokenContract.symbol(),
tokenContract.decimals(),
tokenContract.totalSupply(),
tokenContract.balanceOf(ethers.constants.AddressZero),
],
);
return Boolean(results);
} catch (err) {
return false;
}
};
export default checkIsToken;