@basementdev/sdk
Version:
Basement SDK
467 lines (466 loc) • 14.7 kB
TypeScript
import { DocumentNode } from "graphql";
import { AddressQuery, NonFungibleTokenRefreshMutationVariables, TokenQuery, TokensQuery, TransactionQuery } from "./sdk";
import { AddressQueryOptions, Erc20BalancesQueryOptions, Erc20TransfersQueryOptions, Erc721TransfersQueryOptions, TokenQueryOptions, TokensQueryOptions, TransactionLogsQueryOptions, TransactionQueryOptions, TransactionsQueryOptions } from "./types";
export declare const DEFAULT_ENDPOINT = "https://beta.basement.dev/v2/graphql";
declare type SDKOptions = {
endpoint?: string;
apiKey?: string;
};
export declare class BasementSDK {
private apiKey?;
private client;
private opts;
private sdk;
constructor(opts?: SDKOptions);
private withWrapper;
/**
* Queries information about a specific token
*/
token({ contract, tokenId, include, }: TokenQueryOptions): Promise<TokenQuery["token"]>;
/**
* Query tokens that satisfy the given filter(s)
*/
tokens(params?: TokensQueryOptions): Promise<TokensQuery["tokens"]>;
/**
* Queries information about an address
*/
address({ address, include, }: AddressQueryOptions): Promise<AddressQuery["address"]>;
/**
* Queries information about a transaction
*/
transaction({ hash, include, }: TransactionQueryOptions): Promise<TransactionQuery["transaction"]>;
/**
* Query transactions that satisfy the given filter(s)
*/
transactions(params?: TransactionsQueryOptions): Promise<{
totalCount?: number;
cursors: {
before: string;
after: string;
};
transactions: {
blockNumber: number;
blockTimestamp: any;
effectiveGasPrice: any;
gas: number;
gasPaid: any;
gasUsed: number;
gasPrice: any;
hash: string;
id: string;
index: number;
input: string;
value: any;
methodId: string;
status: boolean;
events?: ({
transactionHash: string;
} | {
transactionHash: string;
} | {
transactionHash: string;
})[];
from?: {
address: any;
reverseProfile: {
name: string;
avatar: string;
};
};
to?: {
address: any;
reverseProfile: {
name: string;
avatar: string;
};
};
logs?: {
data: string;
logIndex: number;
removed: boolean;
topics: string[];
}[];
}[];
}>;
/**
* Query transaction logs that satisfy the given filter(s)
*/
transactionLogs(params?: TransactionLogsQueryOptions): Promise<{
totalCount?: number;
cursors: {
before: string;
after: string;
};
transactionLogs: {
blockHash?: string;
data: string;
logIndex: number;
removed: boolean;
topics: string[];
transactionHash: string;
blockNumber: number;
address: {
address: any;
reverseProfile?: {
name: string;
avatar: string;
};
};
transaction?: {
blockNumber: number;
blockTimestamp: any;
effectiveGasPrice: any;
gas: number;
gasPaid: any;
gasUsed: number;
gasPrice: any;
hash: string;
id: string;
index: number;
input: string;
value: any;
methodId: string;
status: boolean;
events?: ({
transactionHash: string;
} | {
transactionHash: string;
} | {
transactionHash: string;
})[];
from?: {
address: any;
reverseProfile: {
name: string;
avatar: string;
};
};
to?: {
address: any;
reverseProfile: {
name: string;
avatar: string;
};
};
logs?: {
data: string;
logIndex: number;
removed: boolean;
topics: string[];
}[];
};
}[];
}>;
/**
* Refreshes metadata of a specific NFT
*/
nonFungibleTokenRefresh({ contract, tokenId, }: NonFungibleTokenRefreshMutationVariables): Promise<string>;
/**
* Query ERC721 transfers that satisfy the given filter(s)
*/
erc721Transfers(params?: Erc721TransfersQueryOptions): Promise<{
totalCount?: number;
cursors: {
before: string;
after: string;
};
erc721Transfers: {
blockNumber: number;
blockHash?: string;
isAirdrop: boolean;
logIndex: number;
contract?: {
address: any;
reverseProfile?: {
name: string;
avatar: string;
};
};
sale?: {
eventIndex: number;
logIndex: number;
marketplace: import("./sdk").Marketplace;
price: any;
maker?: {
address: any;
reverseProfile?: {
name: string;
avatar: string;
};
};
taker?: {
address: any;
reverseProfile?: {
name: string;
avatar: string;
};
};
currencyContract: {
address: any;
};
marketplaceContract: {
address: any;
};
};
transaction?: {
blockNumber: number;
blockTimestamp: any;
effectiveGasPrice: any;
gas: number;
gasPaid: any;
gasUsed: number;
gasPrice: any;
hash: string;
id: string;
index: number;
input: string;
value: any;
methodId: string;
status: boolean;
events?: ({
transactionHash: string;
} | {
transactionHash: string;
} | {
transactionHash: string;
})[];
from?: {
address: any;
reverseProfile: {
name: string;
avatar: string;
};
};
to?: {
address: any;
reverseProfile: {
name: string;
avatar: string;
};
};
logs?: {
data: string;
logIndex: number;
removed: boolean;
topics: string[];
}[];
};
from?: {
address: any;
reverseProfile?: {
name: string;
avatar: string;
};
};
to?: {
address: any;
reverseProfile?: {
name: string;
avatar: string;
};
};
token?: {
tokenUri?: any;
contract: string;
description: string;
name: string;
tokenId: string;
externalUrl: string;
imageStorageType: import("./sdk").TokenStorageType;
backgroundColor: string;
youtubeUrl: string;
mintPrice: any;
sales?: {
eventIndex: number;
logIndex: number;
marketplace: import("./sdk").Marketplace;
price: any;
maker?: {
address: any;
reverseProfile?: {
name: string;
avatar: string;
};
};
taker?: {
address: any;
reverseProfile?: {
name: string;
avatar: string;
};
};
currencyContract: {
address: any;
};
marketplaceContract: {
address: any;
};
}[];
attributes: {
displayType: string;
traitType: string;
value: string;
}[];
animation: {
blurhash: string;
checksum: string;
height: number;
width: number;
url: string;
smallUrl: string;
thumbnailUrl: string;
largeUrl: string;
mimeType: string;
};
image: {
blurhash: string;
checksum: string;
height: number;
width: number;
url: string;
smallUrl: string;
thumbnailUrl: string;
largeUrl: string;
mimeType: string;
};
mintTransaction: {
blockNumber: number;
blockTimestamp: any;
effectiveGasPrice: any;
gas: number;
gasPaid: any;
gasUsed: number;
gasPrice: any;
hash: string;
id: string;
index: number;
input: string;
value: any;
methodId: string;
status: boolean;
events?: ({
transactionHash: string;
} | {
transactionHash: string;
} | {
transactionHash: string;
})[];
from?: {
address: any;
reverseProfile: {
name: string;
avatar: string;
};
};
to?: {
address: any;
reverseProfile: {
name: string;
avatar: string;
};
};
logs?: {
data: string;
logIndex: number;
removed: boolean;
topics: string[];
}[];
};
};
}[];
}>;
/**
* Query ERC20 transfers that satisfy the given filter(s)
*/
erc20Transfers(params?: Erc20TransfersQueryOptions): Promise<{
totalCount?: number;
cursors: {
before: string;
after: string;
};
erc20Transfers: {
blockNumber: number;
contractAddress: any;
logIndex: number;
from?: {
address: any;
reverseProfile?: {
name: string;
avatar: string;
};
};
to?: {
address: any;
reverseProfile?: {
name: string;
avatar: string;
};
};
transaction?: {
blockNumber: number;
blockTimestamp: any;
effectiveGasPrice: any;
gas: number;
gasPaid: any;
gasUsed: number;
gasPrice: any;
hash: string;
id: string;
index: number;
input: string;
value: any;
methodId: string;
status: boolean;
events?: ({
transactionHash: string;
} | {
transactionHash: string;
} | {
transactionHash: string;
})[];
from?: {
address: any;
reverseProfile: {
name: string;
avatar: string;
};
};
to?: {
address: any;
reverseProfile: {
name: string;
avatar: string;
};
};
logs?: {
data: string;
logIndex: number;
removed: boolean;
topics: string[];
}[];
};
}[];
}>;
/**
* Query ERC20 balances from a given address
*/
erc20Balances({ filter, include }: Erc20BalancesQueryOptions): Promise<{
amount: any;
contract: {
address: any;
};
owner?: {
address: any;
profile?: {
name: string;
avatar: string;
};
reverseProfile?: {
name: string;
avatar: string;
};
};
}[]>;
request(query: DocumentNode, variables?: Record<string, any>): Promise<any>;
}
export {};