| 61 | } |
| 62 | |
| 63 | async function addPermissionModule() { |
| 64 | let generalPermissionManagerAddress; |
| 65 | let result = await securityToken.methods.getModulesByName(web3.utils.toHex('GeneralPermissionManager')).call(); |
| 66 | if (result.length == 0) { |
| 67 | console.log(chalk.red(`General Permission Manager is not attached.`)); |
| 68 | if (readlineSync.keyInYNStrict('Do you want to add General Permission Manager Module to your Security Token?')) { |
| 69 | let permissionManagerFactoryAddress = await contracts.getModuleFactoryAddressByName(securityToken.options.address, gbl.constants.MODULES_TYPES.PERMISSION, 'GeneralPermissionManager'); |
| 70 | let addModuleAction = securityToken.methods.addModule(permissionManagerFactoryAddress, web3.utils.fromAscii('', 16), 0, 0); |
| 71 | let receipt = await common.sendTransaction(addModuleAction); |
| 72 | let event = common.getEventFromLogs(securityToken._jsonInterface, receipt.logs, 'ModuleAdded'); |
| 73 | console.log(`Module deployed at address: ${event._module}`); |
| 74 | generalPermissionManagerAddress = event._module; |
| 75 | } else { |
| 76 | process.exit(0); |
| 77 | } |
| 78 | } else { |
| 79 | generalPermissionManagerAddress = result[0]; |
| 80 | } |
| 81 | |
| 82 | let generalPermissionManagerABI = abis.generalPermissionManager(); |
| 83 | generalPermissionManager = new web3.eth.Contract(generalPermissionManagerABI, generalPermissionManagerAddress); |
| 84 | generalPermissionManager.setProvider(web3.currentProvider); |
| 85 | } |
| 86 | |
| 87 | async function changePermissionStep() { |
| 88 | console.log('\n\x1b[34m%s\x1b[0m',"Permission Manager - Change Permission"); |