@abstract-foundation/agw-client
Version:
Abstract Global Wallet Client SDK
28 lines (24 loc) • 812 B
text/typescript
import type { Address, PublicClient, Transport } from 'viem';
import type { ChainEIP712 } from 'viem/chains';
import { FeatureFlagRegistryAbi } from './abis/FeatureFlagRegistryAbi.js';
import { FEATURE_FLAG_REGISTRY_ADDRESS } from './constants.js';
export async function isFeatureFlagEnabled(
client: PublicClient<Transport, ChainEIP712>,
account: Address,
featureFlag: string,
) {
try {
const enabled = await client.readContract({
address: FEATURE_FLAG_REGISTRY_ADDRESS,
abi: FeatureFlagRegistryAbi,
functionName: 'isFeatureFlagEnabled',
args: [featureFlag, account],
});
return enabled;
} catch (error) {
// if flag status can not be determined, default to disabled to
// ensure the flow is not blocked
console.error(error);
return false;
}
}