UNPKG

locklift-deploy-artifacts

Version:

Locklift plugin that enables you to store build artifacts across contract migration scripts.

43 lines (42 loc) 1.64 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DeploymentHandler = void 0; const everscale_inpage_provider_1 = require("everscale-inpage-provider"); const artifacts_1 = require("./artifacts"); const ARTIFACTS_HISTORY_FILE = "./artifacts/journal.json"; class DeploymentHandler { constructor(locklift) { this.artifacts = new artifacts_1.Artifacts(ARTIFACTS_HISTORY_FILE); this.locklift = locklift; } getArtifacts() { return this.artifacts.getDataObj(); } getContract(ver) { const contract = new this.locklift.provider.Contract(ver.abi, new everscale_inpage_provider_1.Address(ver.address)); return contract; } async deployContract(alias, version, args, deployFn) { const locklift = this.locklift; const { tvc, abi, codeHash, code } = locklift.factory.getContractArtifacts(args.contract); const network = locklift.context.network.name; const contractName = args.contract.toString(); const fn = deployFn || locklift.factory.deployContract; const { contract, tx } = await fn(args); this.artifacts.addContract(network, contractName, alias, version, { address: contract.address.toString(), codeHash: codeHash, initParams: args.initParams, constructorParams: args.constructorParams, publicKey: args.publicKey, abi: abi, tvc: tvc, code: code, }); return { contract, tx }; } reset() { this.artifacts.reset(); } } exports.DeploymentHandler = DeploymentHandler;