function deployTimeLock(address validatorEthAddress, string validatorName, string validatorPublicKey, uint256 amount, uint256 duration) public {
        
        TokenTimelock timelock = new TokenTimelock(loom, validatorEthAddress, block.timestamp + duration);

        
        require(address(timelock) != address(0x0));

        
        loom.transferFrom(msg.sender, address(timelock), amount);

        emit LoomTimeLockCreated(validatorEthAddress, address(timelock), validatorName, validatorPublicKey, amount, block.timestamp + duration);
    }