UNPKG

cc-zos

Version:

Command-line interface for the ZeppelinOS smart contract platform

57 lines (42 loc) 2.04 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _Truffle = require('../models/truffle/Truffle'); var _Truffle2 = _interopRequireDefault(_Truffle); var _Session = require('../models/network/Session'); var _Session2 = _interopRequireDefault(_Session); var _ccZosLib = require('cc-zos-lib'); var _lodash = require('lodash'); var _lodash2 = _interopRequireDefault(_lodash); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const DEFAULT_TIMEOUT = 10 * 60; // 10 minutes exports.default = async function runWithTruffle(script, options) { const config = _Truffle2.default.config(); const { networks: networkList } = config; const { network, from, timeout } = _Session2.default.getOptions(options); const txParams = from ? { from: from.toLowerCase() } : {}; if (!network) throw Error('A network name must be provided to execute the requested action.'); if (!networkList[network]) throw Error('Given network is not defined in your truffle-config file'); config.network = network; if (!from && networkList[network].from) networkList[network].from = networkList[network].from.toLowerCase(); _ccZosLib.Contracts.setSyncTimeout((_lodash2.default.isNil(timeout) ? DEFAULT_TIMEOUT : timeout) * 1000); if (options.compile) await _Truffle2.default.compile(config); await initTruffle(config); await script({ network: await _Truffle2.default.getNetworkName(), txParams }); if (!options.dontExitProcess) process.exit(0); }; function initTruffle(config) { return new Promise((resolve, reject) => { const TruffleEnvironment = require('truffle-core/lib/environment'); TruffleEnvironment.detect(config, function (error) { if (error) reject(error); const Web3 = require('web3'); const { provider, resolver } = _Truffle2.default.setNonceTrackerIfNeeded(config); global.web3 = new Web3(provider); global.artifacts = resolver; resolve(); }); }); } module.exports.DEFAULT_TIMEOUT = DEFAULT_TIMEOUT;