alchemy-sdk
Version:
Extended Ethers.js SDK for Alchemy APIs
234 lines (233 loc) • 6.34 kB
TypeScript
/**
* This file contains the raw HTTP responses returned by the Alchemy endpoints.
* These types are not exposed to the end user and are instead used internally
* by the SDK to construct the SDK's returned types.
*/
/** Information on the time at which an NFT was last acquired. */
export interface RawAcquiredAt {
/** Timestamp of the block at which an NFT was last acquired. */
blockTimestamp?: string;
/** Block number of the block at which an NFT was last acquired. */
blockNumber?: number;
}
export interface RawNftData {
tokenUri: string | null;
metadata: Record<string, any>;
error: string | null;
}
export interface RawNftMint {
mintAddress?: string;
blockNumber?: number;
timestamp?: string;
transactionHash?: string;
}
export interface RawNftContract {
address: string;
tokenType: string;
name: string | null;
symbol: string | null;
totalSupply: string | null;
contractDeployer: string | null;
deployedBlockNumber: number | null;
openSeaMetadata: RawOpenSeaCollectionMetadata;
}
export interface RawGetFloorPriceResponse {
openSea: RawFloorPriceSuccess | RawFloorPriceFailure;
looksRare: RawFloorPriceSuccess | RawFloorPriceFailure;
}
export interface RawFloorPriceSuccess {
floorPrice: number;
priceCurrency: string;
collectionUrl: string;
retrievedAt: string;
error: null;
}
export interface RawFloorPriceFailure {
floorPrice: null;
priceCurrency: null;
collectionUrl: null;
retrievedAt: null;
error: string;
}
export interface RawNftCollectionFloorPrice {
marketplace: string | null;
floorPrice: number | null;
priceCurrency: string | null;
}
export interface RawBaseNftCollection {
name: string;
slug: string | null;
externalUrl: string | null;
bannerImageUrl: string | null;
}
/** OpenSea's full metadata for an NFT collection. */
export interface RawOpenSeaCollectionMetadata {
floorPrice: number | null;
collectionName: string | null;
collectionSlug: string | null;
safelistRequestStatus: string | null;
imageUrl: string | null;
bannerImageUrl: string | null;
description: string | null;
externalUrl: string | null;
twitterUsername: string | null;
discordUrl: string | null;
lastIngestedAt: string;
}
export interface RawNftsForOwnerValidAt {
blockNumber: number | null;
blockHash: string;
blockTimestamp: string | null;
}
export interface RawGetOwnersForContractWithTokenBalancesResponse {
owners: RawOwnerAddress[];
pageKey: string | null;
}
export interface RawOwnerAddress {
ownerAddress: string;
tokenBalances: RawTokenBalances[];
}
export interface RawTokenBalances {
tokenId: string;
balance: string;
}
export interface RawReingestContractResponse {
contractAddress: string;
reingestionState: string;
progress: string | null;
}
export interface RawWebhook {
id: string;
network: string;
webhook_type: string;
webhook_url: string;
is_active: boolean;
time_created: number;
signing_key: string;
version: string;
app_id?: string;
}
export interface RawWebhookPagination {
cursors: {
after?: string;
};
total_count: number;
}
export interface RawGetAllWebhooksResponse {
data: RawWebhook[];
}
export interface RawAddressActivityResponse {
data: string[];
pagination: RawWebhookPagination;
}
export interface RawCustomGraphqlWebhookConfig {
data: {
webhook_id: string;
graphql_query: string;
};
}
export interface RawNftFilter {
contract_address: string;
token_id: string;
}
export interface RawNftFiltersResponse {
data: RawNftFilter[];
pagination: RawWebhookPagination;
}
export interface RawCreateWebhookResponse {
data: RawWebhook;
}
export interface RawNftFilterParam {
contract_address: string;
token_id?: string;
}
export interface RawSearchContractMetadataResponse {
contracts: RawNftContract[];
}
export interface RawComputeRarityResponse {
rarities: RawNftAttributeRarity[];
}
export interface RawNftAttributeRarity {
value: string;
traitType: string;
prevalence: number;
}
export interface RawNftAttributesResponse {
summary: Record<string, Record<string, number>>;
totalSupply: string;
contractAddress: string;
}
export interface RawGetNftSalesResponse {
nftSales: RawNftSale[];
validAt: RawNftSaleValidAt;
pageKey: string | null;
}
export interface RawNftSale {
marketplace: string;
marketplaceAddress: string;
contractAddress: string;
tokenId: string;
quantity: string;
buyerAddress: string;
sellerAddress: string;
taker: string;
sellerFee: RawNftSaleFeeData;
protocolFee: RawNftSaleFeeData;
royaltyFee: RawNftSaleFeeData;
blockNumber: number;
logIndex: number;
bundleIndex: number;
transactionHash: string;
}
export interface RawNftSaleValidAt {
blockNumber: number;
blockHash: string | null;
blockTimestamp: string | null;
}
export interface RawNftSaleFeeData {
amount: string | null;
tokenAddress: string | null;
symbol: string | null;
decimals: number | null;
}
export interface RawGetContractsForOwnerResponse {
contracts: RawNftContractForOwner[];
pageKey: string | null;
totalCount: number;
}
export interface RawNftContractForOwner extends RawNftContract, RawNftContractOwnershipInfo {
displayNft: RawDisplayNftForContract;
image: RawNftImage;
}
export interface RawGetNftMetadataBatchResponse {
nfts: Array<RawNft>;
}
export interface RawGetContractMetadataBatchResponse {
contracts: RawNftContract[];
}
export interface RawIsSpamContractResponse {
isSpamContract: boolean;
}
export interface RawGetSpamContractsResponse {
contractAddresses: string[];
}
export interface RawIsAirdropNftResponse {
isAirdrop: boolean;
}
export interface RawDisplayNftForContract {
tokenId: string;
name: string | null;
}
export interface RawNftImage {
cachedUrl: string | null;
thumbnailUrl: string | null;
pngUrl: string | null;
contentType: string | null;
size: number | null;
originalUrl: string | null;
}
export interface RawNftContractOwnershipInfo {
totalBalance: string;
numDistinctTokensOwned: string;
isSpam: boolean;
}