packages/artifactor/utils.ts
import fse from "fs-extra";
import merge from "lodash/merge";
import assign from "lodash/assign";
import type { ContractObject } from "@truffle/contract-schema";
export function writeArtifact(
completeArtifact: ContractObject,
outputPath: string
) {
completeArtifact.updatedAt = new Date().toISOString();
fse.writeFileSync(
outputPath,
JSON.stringify(completeArtifact, null, 2),
"utf8"
);
}
export function finalizeArtifact(
normalizedExistingArtifact: ContractObject,
normalizedNewArtifact: ContractObject
) {
const knownNetworks = merge(
{},
normalizedExistingArtifact.networks,
normalizedNewArtifact.networks
);
const completeArtifact = assign(
{},
normalizedExistingArtifact,
normalizedNewArtifact,
{ networks: knownNetworks }
);
return completeArtifact;
}