{"version":3,"sources":["../../src/internal/nft.ts"],"sourcesContent":["// Copyright © Endless\n// Copyright © Aptos Foundation\n// SPDX-License-Identifier: Apache-2.0\n\nimport { EndlessConfig } from \"../api/endlessConfig\";\nimport { AccountAddress, AccountAddressInput } from \"../core/accountAddress\";\nimport { getEndlessIndexer, postEndlessIndexer } from \"../client\";\nimport {\n  CollectionResponse,\n  NftMetrics,\n  NftTokenResponse,\n  PageableCollectionResponse,\n  PageableHoldersItem,\n  PageableNftCollectionHistoryRecord,\n  PageableNftTokenHistoryRecord,\n  PageableNftTokenResponse,\n  PaginationArgsOfIndexer,\n} from \"../types\";\n\n/**\n * Get all collections\n *\n * @param args.endlessConfig The config for the Endless SDK\n * @param args.options.page The page number to retrieve\n * @param args.options.pageSize The number of items to retrieve per page\n * @returns The collections\n */\nexport async function getCollections(args: {\n  endlessConfig: EndlessConfig;\n  options?: PaginationArgsOfIndexer;\n}): Promise<PageableCollectionResponse> {\n  const { endlessConfig, options } = args;\n  const { data } = await getEndlessIndexer<{}, PageableCollectionResponse>({\n    endlessConfig,\n    originMethod: \"getCollections\",\n    path: \"collections\",\n    params: {\n      page: options?.page,\n      pageSize: options?.pageSize,\n    },\n  });\n  return data;\n}\n\n/**\n * Batch get collections by IDs\n *\n * @param args.endlessConfig The config for the Endless SDK\n * @param args.ids The IDs of the collections to retrieve\n * @returns The collections\n */\nexport async function batchGetCollections(args: {\n  endlessConfig: EndlessConfig;\n  ids: AccountAddressInput[];\n}): Promise<CollectionResponse[]> {\n  const { endlessConfig, ids } = args;\n  const { data } = await postEndlessIndexer<{}, CollectionResponse[]>({\n    endlessConfig,\n    originMethod: \"batchGetCollections\",\n    path: \"collections\",\n    body: ids.map((id) => AccountAddress.from(id).toString()),\n  });\n  return data;\n}\n\n/**\n * Get a collection by ID\n *\n * @param args.endlessConfig The config for the Endless SDK\n * @param args.id The ID of the collection to retrieve\n * @returns The collection\n */\nexport async function getCollection(args: {\n  endlessConfig: EndlessConfig;\n  id: AccountAddressInput;\n}): Promise<CollectionResponse> {\n  const { endlessConfig, id } = args;\n  const { data } = await getEndlessIndexer<{}, CollectionResponse>({\n    endlessConfig,\n    originMethod: \"getCollection\",\n    path: `collections/${AccountAddress.from(id).toString()}`,\n  });\n  return data;\n}\n\n/**\n * Get collection history by ID\n *\n * @param args.endlessConfig The config for the Endless SDK\n * @param args.id The ID of the collection to retrieve history for\n * @param args.options.page The page number to retrieve\n * @param args.options.pageSize The number of items to retrieve per page\n * @returns The collection history\n */\nexport async function getCollectionHistory(args: {\n  endlessConfig: EndlessConfig;\n  id: AccountAddressInput;\n  options?: PaginationArgsOfIndexer;\n}): Promise<PageableNftCollectionHistoryRecord> {\n  const { endlessConfig, id, options } = args;\n  const { data } = await getEndlessIndexer<{}, PageableNftCollectionHistoryRecord>({\n    endlessConfig,\n    originMethod: \"getCollectionHistory\",\n    path: `collections/${AccountAddress.from(id).toString()}/history`,\n    params: {\n      page: options?.page,\n      pageSize: options?.pageSize,\n    },\n  });\n  return data;\n}\n\n/**\n * Get collection holders by ID\n *\n * @param args.endlessConfig The config for the Endless SDK\n * @param args.id The ID of the collection to retrieve holders for\n * @param args.options.page The page number to retrieve\n * @param args.options.pageSize The number of items to retrieve per page\n * @returns The collection holders\n */\nexport async function getCollectionHolders(args: {\n  endlessConfig: EndlessConfig;\n  id: AccountAddressInput;\n  options?: PaginationArgsOfIndexer;\n}): Promise<PageableHoldersItem> {\n  const { endlessConfig, id, options } = args;\n  const { data } = await getEndlessIndexer<{}, PageableHoldersItem>({\n    endlessConfig,\n    originMethod: \"getCollectionHolders\",\n    path: `collections/${AccountAddress.from(id).toString()}/holders`,\n    params: {\n      page: options?.page,\n      pageSize: options?.pageSize,\n    },\n  });\n  return data;\n}\n\n/**\n * Get collection tokens by ID\n *\n * @param args.endlessConfig The config for the Endless SDK\n * @param args.id The ID of the collection to retrieve tokens for\n * @param args.options.page The page number to retrieve\n * @param args.options.pageSize The number of items to retrieve per page\n * @returns The collection tokens\n */\nexport async function getCollectionTokens(args: {\n  endlessConfig: EndlessConfig;\n  id: AccountAddressInput;\n  options?: PaginationArgsOfIndexer;\n}): Promise<PageableNftTokenResponse> {\n  const { endlessConfig, id, options } = args;\n  const { data } = await getEndlessIndexer<{}, PageableNftTokenResponse>({\n    endlessConfig,\n    originMethod: \"getCollectionTokens\",\n    path: `collections/${AccountAddress.from(id).toString()}/tokens`,\n    params: {\n      page: options?.page,\n      pageSize: options?.pageSize,\n    },\n  });\n  return data;\n}\n\n/**\n * Get an NFT by ID\n *\n * @param args.endlessConfig The config for the Endless SDK\n * @param args.id The ID of the NFT to retrieve\n * @returns The NFT\n */\nexport async function getNft(args: {\n  endlessConfig: EndlessConfig;\n  id: AccountAddressInput;\n}): Promise<NftTokenResponse> {\n  const { endlessConfig, id } = args;\n  const { data } = await getEndlessIndexer<{}, NftTokenResponse>({\n    endlessConfig,\n    originMethod: \"getNft\",\n    path: `nfts/${AccountAddress.from(id).toString()}`,\n  });\n  return data;\n}\n\n/**\n * Get NFT history by ID\n *\n * @param args.endlessConfig The config for the Endless SDK\n * @param args.id The ID of the NFT to retrieve history for\n * @param args.options.page The page number to retrieve\n * @param args.options.pageSize The number of items to retrieve per page\n * @returns The NFT history\n */\nexport async function getNftHistory(args: {\n  endlessConfig: EndlessConfig;\n  id: AccountAddressInput;\n  options?: PaginationArgsOfIndexer;\n}): Promise<PageableNftTokenHistoryRecord> {\n  const { endlessConfig, id, options } = args;\n  const { data } = await getEndlessIndexer<{}, PageableNftTokenHistoryRecord>({\n    endlessConfig,\n    originMethod: \"getNftHistory\",\n    path: `nfts/${AccountAddress.from(id).toString()}/history`,\n    params: {\n      page: options?.page,\n      pageSize: options?.pageSize,\n    },\n  });\n  return data;\n}\n\n/**\n * Get NFT metrics\n *\n * @param args.endlessConfig The config for the Endless SDK\n * @returns The NFT metrics\n */\nexport async function getNftMetrics(args: {\n  endlessConfig: EndlessConfig;\n}): Promise<NftMetrics> {\n  const { endlessConfig } = args;\n  const { data } = await getEndlessIndexer<{}, NftMetrics>({\n    endlessConfig,\n    originMethod: \"getNftMetrics\",\n    path: \"status/nfts\",\n  });\n  return data;\n}\n"],"mappings":"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","names":["getCollections","args","endlessConfig","options","data","getEndlessIndexer","batchGetCollections","ids","postEndlessIndexer","id","AccountAddress","getCollection","getCollectionHistory","getCollectionHolders","getCollectionTokens","getNft","getNftHistory","getNftMetrics"]}