locklift-deploy-artifacts
Version:
Locklift plugin that enables you to store build artifacts across contract migration scripts.
52 lines (51 loc) • 1.69 kB
TypeScript
export type NetworkName = string;
export type ContractName = string;
export type AliasName = string;
export type VersionName = string;
export type Data = Map<NetworkName, Contracts>;
export type Contracts = Map<ContractName, Map<AliasName, Map<VersionName, Version>>>;
export interface Version {
address: string;
codeHash: string;
initParams: any;
constructorParams: any;
publicKey?: string;
updatedAt?: number;
abi: any;
tvc: string;
code: string;
}
export interface ContractVersion<ABI> {
address: string;
codeHash: string;
initParams: any;
constructorParams: any;
publicKey: string;
updatedAt: number;
abi: ABI;
code: string;
tvc: string;
}
export type JournalData = Map<NetworkName, JournalContracts>;
export type JournalContracts = Map<ContractName, Map<AliasName, Map<VersionName, JournalVersion>>>;
export type JournalVersion = Omit<Version, "abi" | "tvc" | "code">;
export declare class Artifacts {
private readonly journalPath;
private data;
private dir;
constructor(journalPath: string);
addContract(network: string, contractName: string, aliasName: string, versionName: string | undefined, version: Version): void;
getDataObj(): Data;
reset(): void;
private load;
private saveJournal;
private saveContractArtifacts;
private saveTypeDefinitions;
private dataToJournalView;
private parseArtifactsData;
private getContractArtifacts;
private getContractNextVersion;
private toObject;
}
export declare function createTypeDefinitions(interfaceName: string, data: Data): string;
export declare function stringifyObj(obj: any, indent: number): string;