Skip to Content
STPV1 DocsReading State

Reading Collection State

There are many view functions for collection and subscribers. The SDK leverages multicall to make several calls in a single request. See the contract reference section for details about each view function.

Collection State

The collection state object contains all relevent contract level state.

import { fetchCollectionState, CollectionState, } from '@withfabric/protocol-sdks/stpv1'; const state: CollectionState = await fetchCollectionState({ contractAddress: '0x...', }); // Typedef for reference type CollectionState = { /** The address of the NFT */ address: `0x${string}`; /** Can accounts contribute */ isPaused: boolean; /** The name of the NFT */ name: string; /** The symbol of the NFT */ symbol: string; /** The contract metadata URI */ contractURI: string; /** The token metadata URI */ tokenUri: string; /** The number of tokens (wei) which buys one second of time */ tokensPerSecond: bigint; /** Minimum purchase in seconds */ minimumPurchaseSeconds: bigint; /** Owner address */ ownerAddress: `0x${string}`; /** The address of the ERC-20 token used for the campaign */ erc20Address: `0x${string}`; /** The fee in basis points to charge for transfers */ feeBips: number; /** The address of the fee collector */ feeCollectorAddress: `0x${string}`; /** The balance of the creator */ creatorBalance: bigint; /** The supply cap */ supplyCap: bigint; /** The number of tokens minted */ totalSupply: bigint; /** The transfer recipient */ transferRecipient: `0x${string}`; /** The total reward points */ totalRewardPoints: bigint; /** The reward basis points */ rewardBps: number; /** The reward multiplier */ rewardMultiplier: bigint; };

Subscriber State

Subscriber state contains all relevent state for a given account.

import { fetchSubscriberState, SubscriberState, } from '@withfabric/protocol-sdks/stpv1'; const state: SubscriberState = await fetchSubscriberState({ contractAddress: '0x...', account: '0x...', }); // Typedef for reference type SubscriberState = { /** The address of the account */ address: `0x${string}`; /** The token id (0 means no subscription) */ tokenId: bigint; /** The amount of seconds the account can refund */ refundableSeconds: bigint; /** The amount of seconds the account has purchased */ secondsPurchased: bigint; /** The amount of tokens the account can withdraw from rewards */ rewardBalance: bigint; /** The amount of reward points the account has */ rewardPoints: bigint; /** Expires at */ expiresAt: Date; };

Combined State (Context)

Context contains all relevent state for a given account, collection, and account holdings relevant to the denominated collection token.

import { fetchContext, FullState, } from '@withfabric/protocol-sdks/stpv1'; const state: SubscriberState = await fetchContext({ contractAddress: '0x...', account: '0x...', }); // Typedef for reference type FullState = { /** The state of the campaign */ collection: CollectionState; /** The state of the connected account */ subscriber: SubscriberState; /** The holdings of the connected account */ holdings: ApprovedTokens; };
Last updated on