@lyncworld/fuel-marketplace
Version:
Marketplace NPM SDK on Fuel blockchain. Powered by LYNC, it allows anyone to create their own decentralized marketplace which includes listing and buying of Non-fungible tokens (NFTs) and Semi-fungible tokens (SFTs) in a few lines of code.
53 lines (45 loc) • 1.35 kB
text/typescript
import { AllNftsInCollectionArgs, TokensInCollection } from '@/interfaces';
import { fetchAllNftOfContract, getContractBalances } from '@/utils';
import { Address } from 'fuels';
export const getAllNftsInCollection = async ({
network,
nftStandard,
contractAddress,
}: AllNftsInCollectionArgs): Promise<
| {
success: true;
data: TokensInCollection[];
}
| {
success: false;
error: unknown;
}
> => {
if (!network || !contractAddress || !nftStandard)
throw new Error('Missing arguments: Network, Contract address, and Nft standard.');
const isAddress = Address.fromB256(contractAddress);
if (!isAddress) {
return {
success: false,
error: new Error('Invalid contract address'),
};
}
const contractBalances = await getContractBalances(network, contractAddress);
if (!contractBalances.success) {
return contractBalances as {
success: false;
error: unknown;
};
}
const assetIds: string[] = [];
contractBalances.data?.forEach((d) => {
if (d.assetId !== '0x0000000000000000000000000000000000000000000000000000000000000000') {
assetIds.push(d.assetId);
}
});
const allNftsOfContract = await fetchAllNftOfContract(network, contractAddress, nftStandard, assetIds);
return {
success: true,
data: allNftsOfContract,
};
};