trufflesuite/truffle

View on GitHub
packages/artifactor/utils.ts

Summary

Maintainability
A
0 mins
Test Coverage
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;
}