dop-stick
Version:
Source control tooling for versionable-upgradeable smart contracts
106 lines • 2.79 kB
TypeScript
import { EventFragment, FunctionFragment } from '@ethersproject/abi';
export interface FunctionInfo {
name: string;
signature: string;
fragment: FunctionFragment;
}
export interface ContractInfo {
name: string;
abi: any;
selectors: Set<string>;
functions: Map<string, FunctionInfo>;
events: Map<string, EventFragment>;
}
export interface FunctionMetadata {
name: string;
selector: string;
signature: string;
fragment: FunctionFragment;
params: {
name: string;
type: string;
indexed?: boolean;
}[];
returns: {
type: string;
name?: string;
}[];
stateMutability: 'pure' | 'view' | 'nonpayable' | 'payable';
visibility: 'external' | 'public' | 'internal' | 'private';
facetAddress: string;
}
export interface FunctionParameter {
name: string;
type: string;
indexed?: boolean;
components?: FunctionParameter[];
}
export interface EnhancedFunctionInfo extends FunctionInfo {
fullName: string;
selector: string;
inputs: FunctionParameter[];
outputs: FunctionParameter[];
mutability: 'pure' | 'view' | 'nonpayable' | 'payable';
visibility: 'external' | 'public' | 'internal' | 'private';
}
export interface FacetEvent {
name: string;
signature: string;
inputs: FunctionParameter[];
anonymous: boolean;
fragment: EventFragment;
}
export interface FacetInfo extends ContractInfo {
path: string;
enhancedFunctions: Map<string, EnhancedFunctionInfo>;
enhancedEvents: Map<string, FacetEvent>;
}
export interface ProcessedContract {
facetInfo: FacetInfo;
timestamp: number;
metadata: {
lastProcessed: Date;
version: string;
functionCount: number;
eventCount: number;
};
}
export declare class TypechainProcessorError extends Error {
readonly code: string;
constructor(message: string, code: string);
}
export interface TypechainContractInfo {
name: string;
path: string;
functions: {
[selector: string]: EnhancedFunctionInfo;
};
}
export interface CacheEntry {
data: FacetInfo;
timestamp: number;
version: string;
}
export interface CacheMetadata {
lastUpdate: Date;
version: string;
entries: number;
}
export interface SelectorMapping {
facetName: string;
functionInfo: EnhancedFunctionInfo;
}
export interface OptimizedLookup {
selectorToFacet: Map<string, SelectorMapping>;
facetToSelectors: Map<string, Set<string>>;
metadata: CacheMetadata;
}
export interface FunctionSelectorInfo {
facetName: string;
functionInfo: EnhancedFunctionInfo;
}
export type MapToObject<T> = {
[key: string]: T;
};
export type ObjectToMap<T> = Map<string, T>;
//# sourceMappingURL=types.d.ts.map