Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop
This commit is contained in:
commit
dfd4e4d54d
6 files changed
+123
-29
No files matched your search
@@ -20,7 +20,7 @@ exports.newHttpInterface = function newHttpInterface() {
|
||||
webhook = undefined
|
||||
}
|
||||
|
||||
function initialize() {
|
||||
function initialize(initialWorkspace) {
|
||||
/*
|
||||
We will create an HTTP Server and leave it running forever.
|
||||
*/
|
||||
@@ -29,7 +29,11 @@ exports.newHttpInterface = function newHttpInterface() {
|
||||
if (process.argv.includes("noBrowser")) {
|
||||
//Running Client only with no UI.
|
||||
} else {
|
||||
SA.nodeModules.open('http://localhost:' + global.env.CLIENT_HTTP_INTERFACE_PORT)
|
||||
let queryString = ''
|
||||
if (initialWorkspace.name !== undefined) {
|
||||
queryString = '/?initialWorkspaceName=' + initialWorkspace.name + '&initialWorkspaceProject=' + initialWorkspace.project + '&initialWorkspaceType=' + initialWorkspace.type
|
||||
}
|
||||
SA.nodeModules.open('http://localhost:' + global.env.CLIENT_HTTP_INTERFACE_PORT + queryString)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -637,7 +641,7 @@ exports.newHttpInterface = function newHttpInterface() {
|
||||
break
|
||||
}
|
||||
switch (requestPath[2]) { // switch by command
|
||||
|
||||
|
||||
case 'Contribute': {
|
||||
try {
|
||||
let commitMessage = unescape(requestPath[3])
|
||||
@@ -655,7 +659,7 @@ exports.newHttpInterface = function newHttpInterface() {
|
||||
|
||||
contribute()
|
||||
|
||||
async function contribute() {
|
||||
async function contribute() {
|
||||
const { lookpath } = SA.nodeModules.lookpath
|
||||
const gitpath = await lookpath('git')
|
||||
if (gitpath === undefined) {
|
||||
@@ -898,11 +902,11 @@ exports.newHttpInterface = function newHttpInterface() {
|
||||
const git = simpleGit(options)
|
||||
try {
|
||||
await git.checkout(currentBranch)
|
||||
|
||||
|
||||
// Check to see it main repo has been set as upstream
|
||||
let remotes = await git.getRemotes();
|
||||
let isUpstreamSet
|
||||
for(let remote in remotes) {
|
||||
for (let remote in remotes) {
|
||||
if (remotes[remote].name === 'upstream') {
|
||||
isUpstreamSet = true
|
||||
} else {
|
||||
@@ -910,7 +914,7 @@ exports.newHttpInterface = function newHttpInterface() {
|
||||
}
|
||||
}
|
||||
// If upstream has not been set. Set it now
|
||||
if (isUpstreamSet === false){
|
||||
if (isUpstreamSet === false) {
|
||||
await git.addRemote('upstream', 'https://github.com/Superalgos/Superalgos');
|
||||
}
|
||||
// Pull branch from main repo
|
||||
@@ -918,7 +922,7 @@ exports.newHttpInterface = function newHttpInterface() {
|
||||
// Reset branch to match main repo
|
||||
let upstreamLocation = `upstream/${currentBranch}`
|
||||
await git.reset('hard', [upstreamLocation])
|
||||
|
||||
|
||||
} catch (err) {
|
||||
console.log('[ERROR] Error changing current branch to ' + currentBranch)
|
||||
console.log(err.stack)
|
||||
@@ -926,19 +930,19 @@ exports.newHttpInterface = function newHttpInterface() {
|
||||
}
|
||||
}
|
||||
|
||||
async function runNodeSetup () {
|
||||
console.log( "Running Node setup to adjust for new Branch" )
|
||||
async function runNodeSetup() {
|
||||
console.log("Running Node setup to adjust for new Branch")
|
||||
const process = SA.nodeModules.process
|
||||
const childProcess = SA.nodeModules.childProcess
|
||||
|
||||
let dir = process.cwd()
|
||||
let command = "node setup noShortcuts";
|
||||
let stdout = childProcess.execSync( command,
|
||||
{
|
||||
cwd: dir
|
||||
}).toString();
|
||||
|
||||
console.log("Node Setup has completed with the following result:", stdout)
|
||||
let stdout = childProcess.execSync(command,
|
||||
{
|
||||
cwd: dir
|
||||
}).toString();
|
||||
|
||||
console.log("Node Setup has completed with the following result:", stdout)
|
||||
}
|
||||
|
||||
} catch (err) {
|
||||
|
||||
@@ -6,7 +6,7 @@ exports.newPlatformApp = function newPlatformApp() {
|
||||
|
||||
return thisObject
|
||||
|
||||
async function run() {
|
||||
async function run(initialWorkspace) {
|
||||
|
||||
process.on('uncaughtException', function (err) {
|
||||
if (err.message && err.message.indexOf("EADDRINUSE") > 0) {
|
||||
@@ -133,13 +133,12 @@ exports.newPlatformApp = function newPlatformApp() {
|
||||
console.log('')
|
||||
console.log('SUPERALGOS PLATFORM CLIENT INTERFACES:')
|
||||
console.log('')
|
||||
|
||||
WEB_SOCKETS_INTERFACE = WEB_SOCKETS_INTERFACE.newWebSocketsInterface()
|
||||
WEB_SOCKETS_INTERFACE.initialize()
|
||||
console.log('Web Sockets Interface ....................................... Listening at port ' + global.env.CLIENT_WEB_SOCKETS_INTERFACE_PORT)
|
||||
|
||||
HTTP_INTERFACE = HTTP_INTERFACE.newHttpInterface()
|
||||
HTTP_INTERFACE.initialize()
|
||||
HTTP_INTERFACE.initialize(initialWorkspace)
|
||||
console.log('Http Interface .............................................. Listening at port ' + global.env.CLIENT_HTTP_INTERFACE_PORT)
|
||||
|
||||
console.log('')
|
||||
|
||||
+27
-3
@@ -52,11 +52,35 @@ SA.nodeModules = {
|
||||
process: require('process'),
|
||||
childProcess: require('child_process')
|
||||
}
|
||||
/*
|
||||
Check if we are starting from a particular workspace.
|
||||
*/
|
||||
let initialWorkspace = {}
|
||||
|
||||
run()
|
||||
for (let i = 0; i < process.argv.length; i++) {
|
||||
let arg = process.argv[i]
|
||||
|
||||
async function run() {
|
||||
if (arg === 'noBrowser') { continue }
|
||||
if (arg === 'minMemo') { continue }
|
||||
if (arg.indexOf(':') >= 0) { continue }
|
||||
|
||||
if (initialWorkspace.project === undefined) {
|
||||
if (arg !== 'My-Workspaces') {
|
||||
initialWorkspace.type = 'Plugin'
|
||||
initialWorkspace.project = arg
|
||||
} else {
|
||||
initialWorkspace.type = 'My-Workspaces'
|
||||
initialWorkspace.project = ''
|
||||
}
|
||||
} else {
|
||||
initialWorkspace.name = arg
|
||||
}
|
||||
}
|
||||
|
||||
run(initialWorkspace)
|
||||
|
||||
async function run(initialWorkspace) {
|
||||
PL.app = require('./Platform/PlatformApp.js').newPlatformApp()
|
||||
await PL.app.run()
|
||||
await PL.app.run(initialWorkspace)
|
||||
console.log('Superalgos Platform App is Running!')
|
||||
}
|
||||
@@ -76,17 +76,40 @@ function newWorkspace() {
|
||||
}
|
||||
}
|
||||
|
||||
/* Check which was the last workspace. */
|
||||
const browserURL = new URLSearchParams(window.location.search);
|
||||
const queryString = Object.fromEntries(browserURL.entries());
|
||||
/*
|
||||
By default, we will laod the last used workspace.
|
||||
*/
|
||||
let lastUsedWorkspace = window.localStorage.getItem('Last Used Workspace')
|
||||
|
||||
if (lastUsedWorkspace !== 'undefined' && lastUsedWorkspace !== null && lastUsedWorkspace !== undefined) {
|
||||
if (
|
||||
(lastUsedWorkspace !== 'undefined' && lastUsedWorkspace !== null && lastUsedWorkspace !== undefined) ||
|
||||
(queryString.initialWorkspaceName !== undefined)
|
||||
) {
|
||||
let webCommand
|
||||
if (queryString.initialWorkspaceType !== undefined) {
|
||||
/*
|
||||
We get here when the workspace to lead comes at the URL
|
||||
*/
|
||||
UI.projects.foundations.utilities.statusBar.changeStatus("Loading Workspace " + queryString.initialWorkspaceName + "...")
|
||||
if (queryString.initialWorkspaceType !== 'My-Workspaces') {
|
||||
webCommand = 'LoadPlugin' + '/' + queryString.initialWorkspaceProject + '/' + 'Workspaces' + '/' + queryString.initialWorkspaceName + '.json'
|
||||
} else {
|
||||
webCommand = 'LoadMyWorkspace' + '/' + queryString.initialWorkspaceName
|
||||
}
|
||||
} else {
|
||||
/*
|
||||
We get here when the workspace to lead is the last saved workspace.
|
||||
*/
|
||||
UI.projects.foundations.utilities.statusBar.changeStatus("Loading Workspace " + lastUsedWorkspace + "...")
|
||||
webCommand = 'LoadMyWorkspace' + '/' + lastUsedWorkspace
|
||||
}
|
||||
|
||||
UI.projects.foundations.utilities.statusBar.changeStatus("Loading Workspace " + lastUsedWorkspace + "...")
|
||||
|
||||
httpRequest(undefined, 'LoadMyWorkspace' + '/' + lastUsedWorkspace, onFileReceived)
|
||||
httpRequest(undefined, webCommand, onFileReceived)
|
||||
function onFileReceived(err, text, response) {
|
||||
if (err && err.result !== GLOBAL.DEFAULT_OK_RESPONSE.result) {
|
||||
UI.projects.foundations.spaces.cockpitSpace.setStatus('Could not load the last Workspace used, called "' + lastUsedWorkspace + '". Will switch to the default Workspace instead.', 500, UI.projects.foundations.spaces.cockpitSpace.statusTypes.WARNING)
|
||||
UI.projects.foundations.spaces.cockpitSpace.setStatus('Could not load the Workspace called "' + lastUsedWorkspace + '". Will switch to the default Workspace instead.', 500, UI.projects.foundations.spaces.cockpitSpace.statusTypes.WARNING)
|
||||
thisObject.workspaceNode = getWorkspace() // This is the default workspace that comes with the system.
|
||||
thisObject.workspaceNode.project = 'Foundations'
|
||||
recreateWorkspace()
|
||||
|
||||
@@ -4415,7 +4415,7 @@
|
||||
"floatingObject": {
|
||||
"isPinned": false,
|
||||
"isFrozen": false,
|
||||
"isCollapsed": false,
|
||||
"isCollapsed": true,
|
||||
"angleToParent": 1,
|
||||
"distanceToParent": 3,
|
||||
"arrangementStyle": 0
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
|
||||
Total RAM istalled in this system is ........................ 15.85 GB
|
||||
Total RAM available for Superalgos is ....................... 13.47 GB
|
||||
|
||||
If you would like to enable less RAM than that, use the minMemo flag. Note: RAM will be allocated only if needed.
|
||||
|
||||
OPTIONS ACCEPTED:
|
||||
|
||||
none ........................................................ Running without any command line options.
|
||||
|
||||
|
||||
SUPERALGOS PLATFORM CLIENT SERVERS:
|
||||
|
||||
Web Server .................................................. Started
|
||||
UI File Server .............................................. Started
|
||||
Project File Server ......................................... Started
|
||||
Plugin Server ............................................... Started
|
||||
Data File Server ............................................ Started
|
||||
Events Server ............................................... Started
|
||||
Task Manager Server ......................................... Started
|
||||
CCXT Server ................................................. Started
|
||||
WEB3 Server ................................................. Started
|
||||
Github Server ............................................... Started
|
||||
|
||||
SUPERALGOS PLATFORM CLIENT INTERFACES:
|
||||
|
||||
Web Sockets Interface ....................................... Listening at port 18041
|
||||
Http Interface .............................................. Listening at port 34248
|
||||
|
||||
You are running Superalgos Beta 12
|
||||
|
||||
What's new? These are the main new features in this version:
|
||||
|
||||
Governance System ........................................... Automates the distribution of SA Tokens and allow users to vote on the direction of the project.
|
||||
TensorFlow Integration ...................................... Allows creating and training ML models and use them in trading strategies.
|
||||
|
||||
What's next? This is the current development pipeline:
|
||||
|
||||
Superalgos P2P Network ...................................... Will allow algo-traders to share trading signals with Superalgos users consuming these signals via a mobile app.
|
||||
Real-time Trading Signals ................................... Will allow users to emit trading signals and be rewarded with SA Tokens.
|
||||
Superalgos Mobile ........................................... Will allow users to consume trading signals for free and autonomously execute trades from their mobile phones.
|
||||
Ethereum Integration ........................................ Will allow mining data from an Ethereum network node, and bring it into the Superalgos workflow. [Looking for an Ethereum dev that would like to continue this line of development.]
|
||||
|
||||
Superalgos Platform App is Running!
|
||||
Reference in new issue
Block a user