@graphprotocol/graph-cli
Version:
CLI for building for and deploying to The Graph
39 lines (38 loc) • 1.54 kB
TypeScript
import immutable from 'immutable';
import Subgraph from '../subgraph';
import { ContractCtor } from './contract';
import { SubgraphOptions } from './subgraph';
export default class Protocol {
static fromDataSources(dataSourcesAndTemplates: any): Protocol;
name: ProtocolName;
config: ProtocolConfig;
constructor(datasource: any);
static availableProtocols(): immutable.Collection<ProtocolName, string[]>;
static availableNetworks(): immutable.Map<"ethereum" | "arweave" | "near" | "cosmos" | "substreams" | "substreams/triggers", immutable.List<string>>;
static normalizeName(name: ProtocolName): ProtocolName;
displayName(): string;
isValidKindName(kind: string): boolean;
hasABIs(): boolean;
hasContract(): boolean;
hasEvents(): boolean;
hasTemplates(): boolean;
hasDataSourceMappingFile(): boolean;
getTypeGenerator(options: any): any;
getTemplateCodeGen(template: any): any;
getABI(): any;
getSubgraph(options: SubgraphOptions): Subgraph;
getContract(): ContractCtor | undefined;
getManifestScaffold(): any;
getMappingScaffold(): any;
}
export type ProtocolName = 'arweave' | 'ethereum' | 'near' | 'cosmos' | 'substreams' | 'substreams/triggers';
export interface ProtocolConfig {
displayName: string;
abi?: any;
contract?: ContractCtor;
getTemplateCodeGen?: (template: any) => any;
getTypeGenerator?: (options: any) => any;
getSubgraph(options: SubgraphOptions): Subgraph;
manifestScaffold: any;
mappingScaffold: any;
}