UNPKG

tronbox

Version:

TronBox - Simple development framework for Tron

1 lines 1.83 kB
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _typeof2=_interopRequireDefault(require("@babel/runtime/helpers/typeof"));var TronWrap=require("../../../TronWrap");var _require=require("../../../TronWrap"),dlog=_require.dlog;var Contract=require("../../../Contract");var provision=require("../../../Provisioner");module.exports=function(contract,args,deployer){return function(){var should_deploy=true;var trufflePlugin=deployer.trufflePlugin||false;if(!contract.initTronWeb){var abstraction=Contract(contract._json);provision(abstraction,deployer.options);contract=abstraction}return Promise.all(args).then(function(new_args){if(new_args.length>0){var last_arg=new_args[new_args.length-1];if((0,_typeof2["default"])(last_arg)==="object"&&last_arg.overwrite===false&&contract.isDeployed()){should_deploy=false}delete last_arg.overwrite}if(should_deploy===true){var prefix="Deploying ";if(contract.isDeployed()){prefix="Replacing "}deployer.logger.log(prefix+contract.contract_name+"...");dlog(new_args);return contract["new"].apply(contract,new_args)}else{return contract.deployed()}}).then(function(instance){var tronWrap=TronWrap();if(should_deploy===true){if(tronWrap._web3){deployer.logger.log(contract.contract_name+":\n (hex) "+instance.address)}else{deployer.logger.log(contract.contract_name+":\n (base58) "+tronWrap.address.fromHex(instance.address)+"\n (hex) "+instance.address)}}else{deployer.logger.log("Didn't deploy "+contract.contract_name+"; using "+instance.address)}instance.address=trufflePlugin?instance.address.replace(/^41/,"0x"):instance.address;contract.address=instance.address;contract.transactionHash=instance.transactionHash;dlog("Instance name:",instance&&instance.constructor?instance.constructor.contractName:null);return instance})}};