tronbox
Version:
TronBox - Simple development framework for Tron
1 lines • 1.74 kB
JavaScript
var command={command:"migrate",description:"Run migrations to deploy contracts",builder:{reset:{type:"boolean","default":false},"compile-all":{describe:"recompile all contracts",type:"boolean","default":false},f:{describe:"Specify a migration number to run from",type:"number"},to:{describe:"Specify a migration number to run to",type:"number"}},run:function run(options,done){process.env.CURRENT="migrate";var OS=require("os");var Config=require("../../components/Config");var Contracts=require("../../components/WorkflowCompile");var Migrate=require("../../components/Migrate");var Environment=require("../environment");var TronWrap=require("../../components/TronWrap");var _require=require("../../components/TronWrap"),dlog=_require.dlog;var logErrorAndExit=require("../../components/TronWrap").logErrorAndExit;var config=Config.detect(options);if(!config.network&&config.networks.development){config.network="development"}try{TronWrap(config.networks[config.network],{evm:options.evm,verify:true,log:options.log})}catch(err){logErrorAndExit(console,err.message)}function runMigrations(callback){if(options.f){Migrate.runFrom(options.f,config,done)}else{Migrate.needsMigrating(config,function(err,needsMigrating){if(err)return callback(err);if(needsMigrating){dlog("Starting migration");Migrate.run(config,done)}else{config.logger.log("Network up to date.");callback()}})}}Contracts.compile(config,function(err){if(err)return done(err);Environment.detect(config,function(err){if(err)return done(err);var dryRun=options.dryRun===true;var networkMessage="Using network '"+config.network+"'";if(dryRun){networkMessage+=" (dry run)"}config.logger.log(networkMessage+"."+OS.EOL);runMigrations(done)})})}};module.exports=command;
;