1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- /**
- * Demonstrate the use of a few of the Metaplex Read API methods,
- * (needed to fetch compressed NFTs)
- */
- // imports from other libraries
- import type { PublicKey } from '@solana/web3.js';
- // import custom helpers for demos
- import { printConsoleSeparator } from './utils/helpers';
- // local import of the connection wrapper, to help with using the ReadApi
- import { WrapperConnection } from './ReadApi/WrapperConnection';
- import { RPC_PATH } from './cnft-burn';
- export async function getcNFTsFromCollection(collectionMint: PublicKey, owner: string) {
- // load the stored PublicKeys for ease of use
- // let keys = loadPublicKeysFromFile();
- // ensure the primary script was already run
- // if (!keys?.collectionMint)
- // return console.warn("No local keys were found, specifically `collectionMint`");
- // convert the locally saved keys to PublicKeys
- // const collectionMint: PublicKey = keys.collectionMint;
- console.log('Collection mint:', collectionMint.toBase58());
- //////////////////////////////////////////////////////////////////////////////
- //////////////////////////////////////////////////////////////////////////////
- // load the env variables and store the cluster RPC url
- const CLUSTER_URL = RPC_PATH;
- // create a new rpc connection, using the ReadApi wrapper
- const connection = new WrapperConnection(CLUSTER_URL);
- printConsoleSeparator("Getting all assets by the 'collection' group...");
- const assets = await connection
- .getAssetsByGroup({
- groupKey: 'collection',
- groupValue: collectionMint.toBase58(),
- sortBy: {
- sortBy: 'recent_action',
- sortDirection: 'asc',
- },
- })
- .then((res) => {
- console.log('Total assets returned:', res.total);
- // loop over each of the asset items in the collection
- const assetsIds = res.items?.map((asset) => {
- // display a spacer between each of the assets
- console.log('\n===============================================');
- // print the entire asset record to the console
- // console.log(asset);
- // print some useful info
- console.log('assetId:', asset.id);
- console.log('ownership:', asset.ownership);
- console.log('compression:', asset.compression);
- if (asset.ownership?.owner === owner) {
- console.log('assetId:', asset.id);
- return asset.id;
- }
- });
- return assetsIds;
- });
- return assets;
- }
|