Merge branch 'Superalgos:develop' into develop

This commit is contained in:
Tee Han Ming authored and GitHub committed 2021-09-23 13:22:13 +08:00
commit 7924ac4162
36 files changed
+34884 -1747

No files matched your search

+4 -4
View File
@@ -45,7 +45,7 @@ exports.newDesktopApp = function newDesktopApp() {
*/
queryMessage = {
queryType: SA.projects.socialTrading.globals.queryTypes.USER_PROFILES,
emitterUserProfileId: DK.TEST_NETWORK_CLIENT_USER_PROFILE_ID,
emitterUserProfileId: SA.secrets.map.get('Social Trading Desktop').userProfileId,
initialIndex: 'Last',
amountRequested: 10,
direction: 'Past'
@@ -74,7 +74,7 @@ exports.newDesktopApp = function newDesktopApp() {
let eventMessage = {
eventId: SA.projects.foundations.utilities.miscellaneousFunctions.genereteUniqueId(),
eventType: SA.projects.socialTrading.globals.eventTypes.FOLLOW_USER_PROFILE,
emitterUserProfileId: DK.TEST_NETWORK_CLIENT_USER_PROFILE_ID,
emitterUserProfileId: SA.secrets.map.get('Social Trading Desktop').userProfileId,
targetUserProfileId: profile.userProfileId
}
@@ -99,8 +99,8 @@ exports.newDesktopApp = function newDesktopApp() {
*/
queryMessage = {
queryType: SA.projects.socialTrading.globals.queryTypes.USER_PROFILE_STATS,
emitterUserProfileId: DK.TEST_NETWORK_CLIENT_USER_PROFILE_ID,
targetUserProfileId: DK.TEST_NETWORK_CLIENT_USER_PROFILE_ID
emitterUserProfileId: SA.secrets.map.get('Social Trading Desktop').userProfileId,
targetUserProfileId: SA.secrets.map.get('Social Trading Desktop').userProfileId
}
query = {
+9 -10
View File
@@ -53,17 +53,16 @@ exports.newDesktopRoot = function newDesktopRoot() {
}
/*
We will use this User Profile for Testing Purposes.
{
"githubUsername": "Test-Network-Client-Profile",
"address": "0xA0dCDA81b42C5EBDc45EC2875C72274B67560246",
"privateKey": "0x5fed4817a87431c8a328d0936561e63f45b6db289adac6125b9306ded644dfe9"
}
Setting up Secrets.
*/
DK.TEST_NETWORK_CLIENT_USER_PROFILE_ID = "baa2f02c-2920-4edb-a103-d452fc61d82f"
DK.TEST_NETWORK_CLIENT_USER_PROFILE_HANDLE = "Test-Network-Client-Profile"
DK.TEST_NETWORK_CLIENT_USER_PROFILE_PRIVATE_KEY = "0x5fed4817a87431c8a328d0936561e63f45b6db289adac6125b9306ded644dfe9"
SA.secrets = {
array: require('./My-Secrets/Secrets.json'),
map: new Map()
}
for (let i = 0; i < SA.secrets.array.length; i++) {
let secret = SA.secrets.array[i]
SA.secrets.map.set (secret.codeName, secret)
}
run()
+9 -9
View File
@@ -48,17 +48,17 @@ exports.newNetworkRoot = function newNetworkRoot() {
ws: require('ws'),
simpleGit: require('simple-git')
}
/*
We will use this User Profile for testing purposes.
{
"githubUsername": "Test-Network-Node-Profile",
"address": "0xa153469c57A91F5a59Fc6c45A37aD8dbad85e417",
"privateKey": "0xac498ae59407e6b68429a814f64da2339550f93a767578e28c161ff119159271"
}
Setting up Secrets.
*/
NT.NETWORK_NODE_USER_PROFILE_HANDLE = "Test-Network-Node-Profile"
NT.NETWORK_NODE_USER_PROFILE_PRIVATE_KEY = "0xac498ae59407e6b68429a814f64da2339550f93a767578e28c161ff119159271"
SA.secrets = {
array: require('./My-Secrets/Secrets.json'),
map: new Map()
}
for (let i = 0; i < SA.secrets.array.length; i++) {
let secret = SA.secrets.array[i]
SA.secrets.map.set(secret.codeName, secret)
}
NT.app = require('./Network/NetwokNode.js').newNetworkNode()
NT.app.run()
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
@@ -62,6 +62,11 @@ exports.newFoundationsBotModulesSnapshots = function(processIndex) {
}
function finalize() {
//trigger exits added for extra save moment for datapreserve
if (tradingEngine.tradingCurrent.strategy.begin.value > 0) {
strategyExit()
positionExit()
}
writeSnapshotFiles()
tradingEngine = undefined
tradingSystem = undefined
@@ -220,8 +225,8 @@ exports.newFoundationsBotModulesSnapshots = function(processIndex) {
instruction = instruction.replace(/!==/g, '')
instruction = instruction.replace(/==/g, '')
instruction = instruction.replace(/===/g, '')
instruction = instruction.replace(/{/g, '') //this wrecks something in JS markup?
instruction = instruction.replace(/}/g, '') //this wrecks something in JS markup?
instruction = instruction.replace(/{/g, '')
instruction = instruction.replace(/}/g, '')
if (instruction.indexOf('chart') >= 0) {
let parts = instruction.split('.')
let timeFrame = parts[1]
@@ -243,7 +248,6 @@ exports.newFoundationsBotModulesSnapshots = function(processIndex) {
}
let key = timeFrame + '-' + product + '-' + property
let existingKey
if (addToStrategyValues === true) {
addValues(strategyKeys, strategyValues)
}
@@ -373,15 +377,35 @@ exports.newFoundationsBotModulesSnapshots = function(processIndex) {
function writeOutput(fileContent) {
let separator = '\r\n';
let contentArray = [];
// if we have file content extract rows
if (fileContent != '') {
contentArray = fileContent.split(separator)
}
parseRecord(snapshots.headers)
for (let i = 0; i < snapshotArray.length; i++) {
let record = snapshotArray[i];
parseRecord(record)
if (record.length > 0) {
parseRecord(record)
}
}
function parseRecord(record) {
// if we have undefined values, we need to extract the previous stored values for this trade and append them to the new record for completion
if (record[record.length - 1] === undefined) {
let rowToMutateArray = contentArray[contentArray.length - 1].split(',')
// check if are for sure on the same tradenumber and merge the data and remove previous line incl separator
if (rowToMutateArray[0] == record[0]) {
record.pop()
rowToMutateArray.splice(0, record.length)
record = record.concat(rowToMutateArray)
fileContent = fileContent.replace(contentArray[contentArray.length - 1], '')
fileContent = fileContent.replace(/\r\n$/, '')
}
}
for (let j = 0; j < record.length; j++) {
let property = record[j]
@@ -426,6 +450,9 @@ exports.newFoundationsBotModulesSnapshots = function(processIndex) {
function onFileReceived(err, text) {
if (err.result === TS.projects.foundations.globals.standardResponses.DEFAULT_OK_RESPONSE.result) {
try {
// remove the last linebreak and seperator which is introduced extra during save
text = text.replace(/\n$/, '')
text = text.replace(/\r\n$/, '')
writeOutput(text)
} catch (err) {
TS.projects.foundations.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, '[ERROR] start -> loadExistingFiles -> loopBody -> readExistingFile -> onFileReceived -> fileName = ' + filePath);
Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

@@ -27,8 +27,8 @@
"id": "98b5642a-faba-4a04-bf72-6efec86de56a",
"savedPayload": {
"position": {
"x": 36194.06166692297,
"y": 38420.19411466804
"x": 36192.01160049103,
"y": 38341.90523617568
},
"targetPosition": {
"x": 35895.70509831249,
@@ -57,8 +57,38 @@
"id": "5ac7a46b-f462-4dc4-a627-2c7588a67e7a",
"savedPayload": {
"position": {
"x": 36017.72609123523,
"y": 38662.89921298053
"x": 36138.41019662497,
"y": 38565.171151375485
},
"targetPosition": {
"x": 35895.70509831249,
"y": 38388.83557568774
},
"floatingObject": {
"isPinned": false,
"isFrozen": false,
"isCollapsed": false,
"angleToParent": 2,
"distanceToParent": 3,
"arrangementStyle": 0
},
"uiObject": {
"isRunning": false
}
}
},
{
"type": "Feature",
"name": "Node Menu Tool Tip Feature",
"config": "{}",
"project": "Governance",
"featureClasses": [],
"features": [],
"id": "402b540e-4e1f-4756-9cb8-8445a672b36d",
"savedPayload": {
"position": {
"x": 35942.63543782455,
"y": 38685.14207786629
},
"targetPosition": {
"x": 35895.70509831249,
@@ -1,7 +1,7 @@
{
"type": "User Profile",
"name": "Luis-Fernando-Molina",
"config": "{\n \"signature\": {\n \"message\": \"Luis-Fernando-Molina\",\n \"messageHash\": \"0x443abf3389e332a62d21b84dd12e271cb428d334195d3aeb986ca85ee53cccb9\",\n \"v\": \"0x1c\",\n \"r\": \"0x8645be85fd4b053c9102194be4d007b79d971ca27acd38a7f6abe2588cb2b1a3\",\n \"s\": \"0x55c5bff8b6d0a038ef53287fb5feffca4eb7002f521472091a0a0014dea4d23e\",\n \"signature\": \"0x8645be85fd4b053c9102194be4d007b79d971ca27acd38a7f6abe2588cb2b1a355c5bff8b6d0a038ef53287fb5feffca4eb7002f521472091a0a0014dea4d23e1c\"\n },\n \"codeName\": \"Luis-Fernando-Molina\"\n}",
"config": "{\"signature\":{\"message\":\"Luis-Fernando-Molina\",\"messageHash\":\"0x443abf3389e332a62d21b84dd12e271cb428d334195d3aeb986ca85ee53cccb9\",\"v\":\"0x1c\",\"r\":\"0x8645be85fd4b053c9102194be4d007b79d971ca27acd38a7f6abe2588cb2b1a3\",\"s\":\"0x55c5bff8b6d0a038ef53287fb5feffca4eb7002f521472091a0a0014dea4d23e\",\"signature\":\"0x8645be85fd4b053c9102194be4d007b79d971ca27acd38a7f6abe2588cb2b1a355c5bff8b6d0a038ef53287fb5feffca4eb7002f521472091a0a0014dea4d23e1c\"},\"codeName\":\"Luis-Fernando-Molina\"}",
"project": "Governance",
"tokenPowerSwitch": {
"type": "Token Power Switch",
@@ -127,12 +127,12 @@
"id": "f4d39b02-4324-438d-9f74-2bea2b7272ef",
"savedPayload": {
"position": {
"x": 10503.335575687743,
"y": 23997.294901687517
"x": 10476.335575687743,
"y": 24007.294901687517
},
"targetPosition": {
"x": 10327,
"y": 24240
"x": 10300,
"y": 24250
},
"floatingObject": {
"isPinned": false,
@@ -516,12 +516,12 @@
"id": "b6e3c87d-a11b-4b2a-b6a6-edc96375f5da",
"savedPayload": {
"position": {
"x": 10612.316954888545,
"y": 24147.294901687517
"x": 10585.316954888545,
"y": 24157.294901687517
},
"targetPosition": {
"x": 10327,
"y": 24240
"x": 10300,
"y": 24250
},
"floatingObject": {
"isPinned": false,
@@ -12448,12 +12448,12 @@
"id": "bb390957-b8a2-4a8a-9fbf-963ea20f6eaf",
"savedPayload": {
"position": {
"x": 10612.316954888545,
"y": 24332.705098312483
"x": 10585.316954888545,
"y": 24342.705098312483
},
"targetPosition": {
"x": 10327,
"y": 24240
"x": 10300,
"y": 24250
},
"floatingObject": {
"isPinned": false,
@@ -12508,12 +12508,12 @@
"id": "b046f4e4-40b1-4e47-8fed-75a6a5c6029d",
"savedPayload": {
"position": {
"x": 10777.399212980523,
"y": 24604.72609123522
"x": 10750.399212980523,
"y": 24614.72609123522
},
"targetPosition": {
"x": 10503.335575687743,
"y": 24482.705098312483
"x": 10476.335575687743,
"y": 24492.705098312483
},
"floatingObject": {
"isPinned": false,
@@ -13007,12 +13007,12 @@
"id": "681ff42a-d5af-4fed-971e-935398dac2aa",
"savedPayload": {
"position": {
"x": 10767.83790310513,
"y": 24969.857784237916
"x": 10740.83790310513,
"y": 24979.857784237916
},
"targetPosition": {
"x": 10534.694114668038,
"y": 24781.061666922964
"x": 10507.694114668038,
"y": 24791.061666922964
},
"floatingObject": {
"isPinned": false,
@@ -13042,12 +13042,12 @@
"id": "ff3bc7ad-6051-4246-99fa-1210a3378a29",
"savedPayload": {
"position": {
"x": 10597.41119262863,
"y": 25377.774804143926
"x": 10570.41119262863,
"y": 25387.774804143926
},
"targetPosition": {
"x": 10566.052653648334,
"y": 25079.418235533445
"x": 10539.052653648334,
"y": 25089.418235533445
},
"floatingObject": {
"isPinned": false,
@@ -13066,12 +13066,12 @@
"id": "7f642170-d60b-41bc-85ae-dc64fbfc8b4c",
"savedPayload": {
"position": {
"x": 10566.052653648334,
"y": 25079.418235533445
"x": 10539.052653648334,
"y": 25089.418235533445
},
"targetPosition": {
"x": 10534.694114668038,
"y": 24781.061666922964
"x": 10507.694114668038,
"y": 24791.061666922964
},
"floatingObject": {
"isPinned": false,
@@ -13094,12 +13094,12 @@
"id": "e4be3ce4-3569-4d97-8d54-95bb4cfcb0c5",
"savedPayload": {
"position": {
"x": 10345.897997353088,
"y": 25014.205455360054
"x": 10318.897997353088,
"y": 25024.205455360054
},
"targetPosition": {
"x": 10534.694114668038,
"y": 24781.061666922964
"x": 10507.694114668038,
"y": 24791.061666922964
},
"floatingObject": {
"isPinned": false,
@@ -13117,12 +13117,12 @@
"id": "3ff7f410-911d-4cb8-9094-d816dee4dccb",
"savedPayload": {
"position": {
"x": 10534.694114668038,
"y": 24781.061666922964
"x": 10507.694114668038,
"y": 24791.061666922964
},
"targetPosition": {
"x": 10503.335575687743,
"y": 24482.705098312483
"x": 10476.335575687743,
"y": 24492.705098312483
},
"floatingObject": {
"isPinned": false,
@@ -13140,12 +13140,12 @@
"id": "4f35322c-3e7d-49f8-9706-10bf71f0d420",
"savedPayload": {
"position": {
"x": 10503.335575687743,
"y": 24482.705098312483
"x": 10476.335575687743,
"y": 24492.705098312483
},
"targetPosition": {
"x": 10327,
"y": 24240
"x": 10300,
"y": 24250
},
"floatingObject": {
"isPinned": false,
@@ -13163,12 +13163,12 @@
"id": "f8182a9c-f830-4ec1-a238-ac3a5efd69e6",
"savedPayload": {
"position": {
"x": 10327,
"y": 24240
"x": 10300,
"y": 24250
},
"targetPosition": {
"x": 10027,
"y": 24240
"x": 10000,
"y": 24250
},
"floatingObject": {
"isPinned": false,
@@ -13190,12 +13190,12 @@
"id": "9870ca2a-cefc-484b-b7fc-206d62782ebc",
"savedPayload": {
"position": {
"x": 9877,
"y": 24499.807621135333
"x": 9850,
"y": 24509.807621135333
},
"targetPosition": {
"x": 10027,
"y": 24240
"x": 10000,
"y": 24250
},
"floatingObject": {
"isPinned": false,
@@ -13217,18 +13217,46 @@
"signingAccounts": [
{
"type": "Signing Account",
"name": "Social Trading Desktop",
"name": "My Signing Account",
"config": "{\n \"signature\": {\n \"message\": \"Luis-Fernando-Molina\",\n \"messageHash\": \"0x443abf3389e332a62d21b84dd12e271cb428d334195d3aeb986ca85ee53cccb9\",\n \"v\": \"0x1c\",\n \"r\": \"0x44cba4eeebb7f8bfb0d9fedb8b3c5c34ecd75b69969766435ae641547a8158c4\",\n \"s\": \"0x144b9076038085fa5fa51c381e76377cd2bcc87c835698eeb5195cceefb63ead\",\n \"signature\": \"0x44cba4eeebb7f8bfb0d9fedb8b3c5c34ecd75b69969766435ae641547a8158c4144b9076038085fa5fa51c381e76377cd2bcc87c835698eeb5195cceefb63ead1c\"\n }\n}",
"project": "Governance",
"assignedTo": {
"type": "Social Trading Desktop App",
"name": "New Social Trading Desktop App",
"config": "{}",
"project": "Governance",
"id": "bde87a47-5f7b-40a6-82e9-d4ba528d7894",
"savedPayload": {
"position": {
"x": 9250,
"y": 23990.192378864667
},
"targetPosition": {
"x": 9550,
"y": 23990.192378864667
},
"floatingObject": {
"isPinned": false,
"isFrozen": false,
"isCollapsed": false,
"angleToParent": 2,
"distanceToParent": 3,
"arrangementStyle": 0
},
"uiObject": {
"isRunning": false
}
}
},
"id": "30858b11-5b8d-46c6-97f8-765e3676fc2f",
"savedPayload": {
"position": {
"x": 9577,
"y": 23980.192378864667
"x": 9550,
"y": 23990.192378864667
},
"targetPosition": {
"x": 9877,
"y": 23980.192378864667
"x": 9850,
"y": 23990.192378864667
},
"floatingObject": {
"isPinned": false,
@@ -13245,18 +13273,46 @@
},
{
"type": "Signing Account",
"name": "Social Trading Server",
"name": "My Signing Account",
"config": "{\n \"signature\": {\n \"message\": \"Luis-Fernando-Molina\",\n \"messageHash\": \"0x443abf3389e332a62d21b84dd12e271cb428d334195d3aeb986ca85ee53cccb9\",\n \"v\": \"0x1b\",\n \"r\": \"0xc56bbcd7a99f47e20c5d83b1d4c102e1c7a223267b76f53200ff87fea7964e95\",\n \"s\": \"0x3e730a7d40a13199ef59f7a2a06a9d43da8f918e37afd6f706eceaea1fa8ed2d\",\n \"signature\": \"0xc56bbcd7a99f47e20c5d83b1d4c102e1c7a223267b76f53200ff87fea7964e953e730a7d40a13199ef59f7a2a06a9d43da8f918e37afd6f706eceaea1fa8ed2d1b\"\n }\n}",
"project": "Governance",
"assignedTo": {
"type": "Social Trading Server App",
"name": "New Social Trading Server App",
"config": "{}",
"project": "Governance",
"id": "ba500984-3766-4a95-85ca-67194bf52052",
"savedPayload": {
"position": {
"x": 9330.384757729338,
"y": 23690.192378864667
},
"targetPosition": {
"x": 9590.192378864669,
"y": 23840.192378864667
},
"floatingObject": {
"isPinned": false,
"isFrozen": false,
"isCollapsed": false,
"angleToParent": 2,
"distanceToParent": 3,
"arrangementStyle": 0
},
"uiObject": {
"isRunning": false
}
}
},
"id": "beff2691-f55f-401c-87a7-f6f7e59ebfb0",
"savedPayload": {
"position": {
"x": 9617.192378864669,
"y": 23830.192378864667
"x": 9590.192378864669,
"y": 23840.192378864667
},
"targetPosition": {
"x": 9877,
"y": 23980.192378864667
"x": 9850,
"y": 23990.192378864667
},
"floatingObject": {
"isPinned": false,
@@ -13273,18 +13329,46 @@
},
{
"type": "Signing Account",
"name": "Social Trading Mobile",
"name": "My Signing Account",
"config": "{\n \"signature\": {\n \"message\": \"Luis-Fernando-Molina\",\n \"messageHash\": \"0x443abf3389e332a62d21b84dd12e271cb428d334195d3aeb986ca85ee53cccb9\",\n \"v\": \"0x1c\",\n \"r\": \"0x502693fda93e9331e1eb1f5f6bd2896f6175d86816d11437ab8f4c51bdb95c5c\",\n \"s\": \"0x3c901bdb9f56f97cf558159c0f57c94dcade020a992be74a955a2cddf88047e1\",\n \"signature\": \"0x502693fda93e9331e1eb1f5f6bd2896f6175d86816d11437ab8f4c51bdb95c5c3c901bdb9f56f97cf558159c0f57c94dcade020a992be74a955a2cddf88047e11c\"\n }\n}",
"project": "Governance",
"assignedTo": {
"type": "Social Trading Mobile App",
"name": "New Social Trading Mobile App",
"config": "{}",
"project": "Governance",
"id": "8cb693fc-84a0-48d7-b7d7-a88463b34cd5",
"savedPayload": {
"position": {
"x": 9550,
"y": 23470.577136594
},
"targetPosition": {
"x": 9700,
"y": 23730.384757729335
},
"floatingObject": {
"isPinned": false,
"isFrozen": false,
"isCollapsed": false,
"angleToParent": 2,
"distanceToParent": 3,
"arrangementStyle": 0
},
"uiObject": {
"isRunning": false
}
}
},
"id": "5828093e-65e1-4b18-9cbc-9ff33c98acc1",
"savedPayload": {
"position": {
"x": 9727,
"y": 23720.384757729335
"x": 9700,
"y": 23730.384757729335
},
"targetPosition": {
"x": 9877,
"y": 23980.192378864667
"x": 9850,
"y": 23990.192378864667
},
"floatingObject": {
"isPinned": false,
@@ -13301,18 +13385,46 @@
},
{
"type": "Signing Account",
"name": "Social Trading Platform",
"name": "My Signing Account",
"config": "{\n \"signature\": {\n \"message\": \"Luis-Fernando-Molina\",\n \"messageHash\": \"0x443abf3389e332a62d21b84dd12e271cb428d334195d3aeb986ca85ee53cccb9\",\n \"v\": \"0x1c\",\n \"r\": \"0x363cd2c23617b65f0314a6b1b34c515e0fed9b2da62d53f2cf2609c1bc25e7fb\",\n \"s\": \"0x5e72414fcfe8a1308d7d82f275b3922cfe738374ed74e67086c59cfe7b6c0a24\",\n \"signature\": \"0x363cd2c23617b65f0314a6b1b34c515e0fed9b2da62d53f2cf2609c1bc25e7fb5e72414fcfe8a1308d7d82f275b3922cfe738374ed74e67086c59cfe7b6c0a241c\"\n }\n}",
"project": "Governance",
"assignedTo": {
"type": "Algo Traders Platform",
"name": "New Algo Traders Platform",
"config": "{}",
"project": "Governance",
"id": "27f30390-6f86-4c25-bdc2-7680567a1b4a",
"savedPayload": {
"position": {
"x": 9850,
"y": 23390.192378864667
},
"targetPosition": {
"x": 9850,
"y": 23690.192378864667
},
"floatingObject": {
"isPinned": false,
"isFrozen": false,
"isCollapsed": false,
"angleToParent": 2,
"distanceToParent": 3,
"arrangementStyle": 0
},
"uiObject": {
"isRunning": false
}
}
},
"id": "fa5647f8-42bc-4d7b-8137-401ac8b5433c",
"savedPayload": {
"position": {
"x": 9877,
"y": 23680.192378864667
"x": 9850,
"y": 23690.192378864667
},
"targetPosition": {
"x": 9877,
"y": 23980.192378864667
"x": 9850,
"y": 23990.192378864667
},
"floatingObject": {
"isPinned": false,
@@ -13329,18 +13441,46 @@
},
{
"type": "Signing Account",
"name": "P2P Network Node",
"name": "My Signing Account",
"config": "{\n \"signature\": {\n \"message\": \"Luis-Fernando-Molina\",\n \"messageHash\": \"0x443abf3389e332a62d21b84dd12e271cb428d334195d3aeb986ca85ee53cccb9\",\n \"v\": \"0x1b\",\n \"r\": \"0x1df7b43b26e14a886b0702f3a43bfa7e078a3603a54d5befeb83ae451e423267\",\n \"s\": \"0x19cb2e7ba38cf49e5baa6ea20cbf895e86c9e010217a3f42e4df46b7b4e0bf36\",\n \"signature\": \"0x1df7b43b26e14a886b0702f3a43bfa7e078a3603a54d5befeb83ae451e42326719cb2e7ba38cf49e5baa6ea20cbf895e86c9e010217a3f42e4df46b7b4e0bf361b\"\n }\n}",
"project": "Governance",
"assignedTo": {
"type": "P2P Network Node",
"name": "New P2P Network Node",
"config": "{ \n\"host\": \"localhost\", \n\"webPort\": \"34248\", \n\"webSocketsPort\": \"18041\"\n}",
"project": "Governance",
"id": "10a196ef-b6ba-4edb-b33f-3604de5a3cd0",
"savedPayload": {
"position": {
"x": 10150,
"y": 23470.577136594
},
"targetPosition": {
"x": 10000,
"y": 23730.384757729335
},
"floatingObject": {
"isPinned": false,
"isFrozen": false,
"isCollapsed": false,
"angleToParent": 2,
"distanceToParent": 3,
"arrangementStyle": 0
},
"uiObject": {
"isRunning": false
}
}
},
"id": "e7066d66-9e36-4f38-963e-76b915b38c43",
"savedPayload": {
"position": {
"x": 10027,
"y": 23720.384757729335
"x": 10000,
"y": 23730.384757729335
},
"targetPosition": {
"x": 9877,
"y": 23980.192378864667
"x": 9850,
"y": 23990.192378864667
},
"floatingObject": {
"isPinned": false,
@@ -13359,12 +13499,12 @@
"id": "1aae1fa4-e5cf-48de-a25e-20001523da70",
"savedPayload": {
"position": {
"x": 9877,
"y": 23980.192378864667
"x": 9850,
"y": 23990.192378864667
},
"targetPosition": {
"x": 10027,
"y": 24240
"x": 10000,
"y": 24250
},
"floatingObject": {
"isPinned": false,
@@ -13382,17 +13522,17 @@
"id": "a8de78f0-c3e4-4a2a-b7e8-f659073969db",
"savedPayload": {
"position": {
"x": 10027,
"y": 24240
"x": 10000,
"y": 24250
},
"targetPosition": {
"x": 10027,
"y": 24240
"x": 10000,
"y": 24250
},
"floatingObject": {
"isPinned": false,
"isFrozen": false,
"isCollapsed": true,
"isCollapsed": false,
"angleToParent": 1,
"distanceToParent": 3,
"arrangementStyle": 0
@@ -26,12 +26,12 @@
"id": "deaea400-fa7f-48fd-a3fe-653b1bd18650",
"savedPayload": {
"position": {
"x": 25000,
"y": 20430.384757729335
"x": 18750,
"y": 17430.384757729335
},
"targetPosition": {
"x": 25150,
"y": 20690.192378864667
"x": 18900,
"y": 17690.192378864667
},
"floatingObject": {
"isPinned": false,
@@ -49,12 +49,12 @@
"id": "97ae26ad-542d-4373-806a-593e979e1a1b",
"savedPayload": {
"position": {
"x": 25150,
"y": 20690.192378864667
"x": 18900,
"y": 17690.192378864667
},
"targetPosition": {
"x": 25300,
"y": 20950
"x": 19050,
"y": 17950
},
"floatingObject": {
"isPinned": false,
@@ -81,12 +81,12 @@
"id": "54a2fcd6-e80c-4a30-84c0-d80ae9d197e9",
"savedPayload": {
"position": {
"x": 25600,
"y": 20430.384757729335
"x": 19350,
"y": 17430.384757729335
},
"targetPosition": {
"x": 25450,
"y": 20690.192378864667
"x": 19200,
"y": 17690.192378864667
},
"floatingObject": {
"isPinned": false,
@@ -104,12 +104,12 @@
"id": "786e62d1-6b32-49d9-8046-9c8577dbcd87",
"savedPayload": {
"position": {
"x": 25450,
"y": 20690.192378864667
"x": 19200,
"y": 17690.192378864667
},
"targetPosition": {
"x": 25300,
"y": 20950
"x": 19050,
"y": 17950
},
"floatingObject": {
"isPinned": false,
@@ -127,12 +127,12 @@
"id": "7e7f3e6e-30f4-400d-a1f6-b3611498b7bf",
"savedPayload": {
"position": {
"x": 25300,
"y": 20950
"x": 19050,
"y": 17950
},
"targetPosition": {
"x": 25300,
"y": 21250
"x": 19050,
"y": 18250
},
"floatingObject": {
"isPinned": false,
@@ -528,12 +528,12 @@
"id": "db99bd94-cded-4ef0-bfb2-979cac295f7f",
"savedPayload": {
"position": {
"x": 25900,
"y": 21250
"x": 19650,
"y": 18250
},
"targetPosition": {
"x": 25300,
"y": 21250
"x": 19050,
"y": 18250
},
"floatingObject": {
"isPinned": false,
@@ -583,12 +583,12 @@
"id": "48a23c6d-51fa-4049-bb51-b37c9881a711",
"savedPayload": {
"position": {
"x": 26593.59731237209,
"y": 21172.354286469243
"x": 20281.465278016127,
"y": 18124.678699689874
},
"targetPosition": {
"x": 26381.465278016127,
"y": 21384.486320825206
"x": 20131.465278016127,
"y": 18384.486320825206
},
"floatingObject": {
"isPinned": false,
@@ -609,27 +609,39 @@
"referenceParentCombinedNodePath": [
[
"Tentacule23",
"User Profile"
"User Profile",
"Governance",
"7af21baa-ebc0-436f-94a7-a1746209418e"
],
[
"New Token Power Switch",
"Token Power Switch"
"Token Power Switch",
"Governance",
"5683e2bf-45ca-4dd6-9ade-53b4cad76ed0"
],
[
"New Votes And Claims Programs",
"Votes And Claims Programs"
"Votes And Claims Programs",
"Governance",
"705bfab3-e851-4469-ab70-ac972950de6c"
],
[
"New Claims Program",
"Claims Program"
"Claims Program",
"Governance",
"cce1f59a-bb5d-4700-abf8-ab8d2932ff6a"
],
[
"New Feature Claims Folder",
"Feature Claims Folder"
"Feature Claims Folder",
"Governance",
"eb425c2c-6b7c-460d-a74e-650691f52fc7"
],
[
"Tutorial Tab Feature Visual Designer",
"Feature Contribution Claim"
"Feature Contribution Claim",
"Governance",
"5d6b30bc-4f05-4001-87ba-45cba35fe1ce"
]
]
}
@@ -642,12 +654,12 @@
"id": "6a6f2a21-930b-4403-bcee-80ea71022927",
"savedPayload": {
"position": {
"x": 26671.243025902848,
"y": 21462.132034355964
"x": 20421.243025902848,
"y": 18306.84060729445
},
"targetPosition": {
"x": 26381.465278016127,
"y": 21384.486320825206
"x": 20131.465278016127,
"y": 18384.486320825206
},
"floatingObject": {
"isPinned": false,
@@ -665,6 +677,77 @@
"name": "Quick Position Node Feature Visual Designer",
"id": "d7c5da08-3757-46b4-8175-bc9a7b02359f"
},
"referenceParentCombinedNodePath": [
[
"Tentacule23",
"User Profile",
"Governance",
"7af21baa-ebc0-436f-94a7-a1746209418e"
],
[
"New Token Power Switch",
"Token Power Switch",
"Governance",
"5683e2bf-45ca-4dd6-9ade-53b4cad76ed0"
],
[
"New Votes And Claims Programs",
"Votes And Claims Programs",
"Governance",
"705bfab3-e851-4469-ab70-ac972950de6c"
],
[
"New Claims Program",
"Claims Program",
"Governance",
"cce1f59a-bb5d-4700-abf8-ab8d2932ff6a"
],
[
"New Feature Claims Folder",
"Feature Claims Folder",
"Governance",
"eb425c2c-6b7c-460d-a74e-650691f52fc7"
],
[
"Quick Position Node Feature Visual Designer",
"Feature Contribution Claim",
"Governance",
"d7c5da08-3757-46b4-8175-bc9a7b02359f"
]
]
}
},
{
"type": "Feature Claim Vote",
"name": "Tentacule23 Node Menu Tool Tip Feature Visual Designer",
"config": "{}",
"project": "Governance",
"id": "050787ad-5f04-45c5-8ded-e3c452ab2bee",
"savedPayload": {
"position": {
"x": 20391.27289915146,
"y": 18534.486320825206
},
"targetPosition": {
"x": 20131.465278016127,
"y": 18384.486320825206
},
"floatingObject": {
"isPinned": false,
"isFrozen": false,
"isCollapsed": false,
"angleToParent": 2,
"distanceToParent": 3,
"arrangementStyle": 0
},
"uiObject": {
"isRunning": false
},
"referenceParent": {
"type": "Feature Contribution Claim",
"name": "Node Menu Tool Tip Feature Visual Designer",
"id": "faa99198-6c04-4722-bbc2-f4dd4f9d297f"
},
"referenceParentCombinedNodePath": [
[
"Tentacule23",
@@ -687,7 +770,7 @@
"Feature Claims Folder"
],
[
"Quick Position Node Feature Visual Designer",
"Node Menu Tool Tip Feature Visual Designer",
"Feature Contribution Claim"
]
]
@@ -697,12 +780,12 @@
"id": "008b3b69-cc01-4e09-9122-ec885a882d76",
"savedPayload": {
"position": {
"x": 26381.465278016127,
"y": 21384.486320825206
"x": 20131.465278016127,
"y": 18384.486320825206
},
"targetPosition": {
"x": 26091.687530129406,
"y": 21462.132034355964
"x": 19841.687530129406,
"y": 18462.132034355964
},
"floatingObject": {
"isPinned": false,
@@ -723,12 +806,12 @@
"id": "fb7f7b7e-a2fb-421f-8158-faa5006f4636",
"savedPayload": {
"position": {
"x": 26091.687530129406,
"y": 21462.132034355964
"x": 19841.687530129406,
"y": 18462.132034355964
},
"targetPosition": {
"x": 25801.909782242685,
"y": 21539.77774788672
"x": 19551.909782242685,
"y": 18539.77774788672
},
"floatingObject": {
"isPinned": false,
@@ -751,12 +834,12 @@
"id": "2bc7d2be-bd4a-47b8-966f-349202f799bf",
"savedPayload": {
"position": {
"x": 26014.04181659865,
"y": 21751.909782242685
"x": 19764.04181659865,
"y": 18751.909782242685
},
"targetPosition": {
"x": 25801.909782242685,
"y": 21539.77774788672
"x": 19551.909782242685,
"y": 18539.77774788672
},
"floatingObject": {
"isPinned": false,
@@ -774,12 +857,12 @@
"id": "f16e524c-4e32-4a6e-840b-bfdd6080f20c",
"savedPayload": {
"position": {
"x": 25801.909782242685,
"y": 21539.77774788672
"x": 19551.909782242685,
"y": 18539.77774788672
},
"targetPosition": {
"x": 25512.132034355964,
"y": 21462.132034355964
"x": 19262.132034355964,
"y": 18462.132034355964
},
"floatingObject": {
"isPinned": false,
@@ -816,12 +899,12 @@
"id": "d7c5da08-3757-46b4-8175-bc9a7b02359f",
"savedPayload": {
"position": {
"x": 26091.687530129406,
"y": 22041.687530129406
"x": 19851.909782242685,
"y": 18964.04181659865
},
"targetPosition": {
"x": 25801.909782242685,
"y": 21964.04181659865
"x": 19551.909782242685,
"y": 18964.04181659865
},
"floatingObject": {
"isPinned": false,
@@ -842,19 +925,27 @@
"referenceParentCombinedNodePath": [
[
"Foundations-Project",
"Features"
"Features",
"Governance",
"1d2c1985-c762-4ece-b350-15bd893bd1f4"
],
[
"Foundations Project",
"Feature Class"
"Feature Class",
"Governance",
"136b6e7a-f042-441b-84be-395b56b65b70"
],
[
"Visual Designer",
"Feature Class"
"Feature Class",
"Governance",
"18584f3f-6e48-4a68-89f1-0268185156e9"
],
[
"Quick Position Node Feature",
"Feature"
"Feature",
"Governance",
"98b5642a-faba-4a04-bf72-6efec86de56a"
]
]
}
@@ -867,12 +958,12 @@
"id": "5d6b30bc-4f05-4001-87ba-45cba35fe1ce",
"savedPayload": {
"position": {
"x": 25879.555495773442,
"y": 22253.81956448537
"x": 19764.04181659865,
"y": 19176.173850954612
},
"targetPosition": {
"x": 25801.909782242685,
"y": 21964.04181659865
"x": 19551.909782242685,
"y": 18964.04181659865
},
"floatingObject": {
"isPinned": false,
@@ -890,6 +981,65 @@
"name": "Tutorial Tab Feature",
"id": "5ac7a46b-f462-4dc4-a627-2c7588a67e7a"
},
"referenceParentCombinedNodePath": [
[
"Foundations-Project",
"Features",
"Governance",
"1d2c1985-c762-4ece-b350-15bd893bd1f4"
],
[
"Foundations Project",
"Feature Class",
"Governance",
"136b6e7a-f042-441b-84be-395b56b65b70"
],
[
"Visual Designer",
"Feature Class",
"Governance",
"18584f3f-6e48-4a68-89f1-0268185156e9"
],
[
"Tutorial Tab Feature",
"Feature",
"Governance",
"5ac7a46b-f462-4dc4-a627-2c7588a67e7a"
]
]
}
},
{
"type": "Feature Contribution Claim",
"name": "Node Menu Tool Tip Feature Visual Designer",
"config": "{}",
"project": "Governance",
"id": "faa99198-6c04-4722-bbc2-f4dd4f9d297f",
"savedPayload": {
"position": {
"x": 19551.909782242685,
"y": 19264.04181659865
},
"targetPosition": {
"x": 19551.909782242685,
"y": 18964.04181659865
},
"floatingObject": {
"isPinned": false,
"isFrozen": false,
"isCollapsed": false,
"angleToParent": 2,
"distanceToParent": 3,
"arrangementStyle": 0
},
"uiObject": {
"isRunning": false
},
"referenceParent": {
"type": "Feature",
"name": "Node Menu Tool Tip Feature",
"id": "402b540e-4e1f-4756-9cb8-8445a672b36d"
},
"referenceParentCombinedNodePath": [
[
"Foundations-Project",
@@ -904,7 +1054,7 @@
"Feature Class"
],
[
"Tutorial Tab Feature",
"Node Menu Tool Tip Feature",
"Feature"
]
]
@@ -914,12 +1064,12 @@
"id": "eb425c2c-6b7c-460d-a74e-650691f52fc7",
"savedPayload": {
"position": {
"x": 25801.909782242685,
"y": 21964.04181659865
"x": 19551.909782242685,
"y": 18964.04181659865
},
"targetPosition": {
"x": 25589.77774788672,
"y": 21751.909782242685
"x": 19339.77774788672,
"y": 18751.909782242685
},
"floatingObject": {
"isPinned": false,
@@ -943,12 +1093,12 @@
"id": "9673136d-ac9a-40b7-bd6f-6c8c3fbbb384",
"savedPayload": {
"position": {
"x": 25512.132034355964,
"y": 22041.687530129406
"x": 19262.132034355964,
"y": 19041.687530129406
},
"targetPosition": {
"x": 25589.77774788672,
"y": 21751.909782242685
"x": 19339.77774788672,
"y": 18751.909782242685
},
"floatingObject": {
"isPinned": false,
@@ -966,12 +1116,12 @@
"id": "cce1f59a-bb5d-4700-abf8-ab8d2932ff6a",
"savedPayload": {
"position": {
"x": 25589.77774788672,
"y": 21751.909782242685
"x": 19339.77774788672,
"y": 18751.909782242685
},
"targetPosition": {
"x": 25512.132034355964,
"y": 21462.132034355964
"x": 19262.132034355964,
"y": 18462.132034355964
},
"floatingObject": {
"isPinned": false,
@@ -989,12 +1139,12 @@
"id": "705bfab3-e851-4469-ab70-ac972950de6c",
"savedPayload": {
"position": {
"x": 25512.132034355964,
"y": 21462.132034355964
"x": 19262.132034355964,
"y": 18462.132034355964
},
"targetPosition": {
"x": 25300,
"y": 21250
"x": 19050,
"y": 18250
},
"floatingObject": {
"isPinned": false,
@@ -1012,12 +1162,12 @@
"id": "5683e2bf-45ca-4dd6-9ade-53b4cad76ed0",
"savedPayload": {
"position": {
"x": 25300,
"y": 21250
"x": 19050,
"y": 18250
},
"targetPosition": {
"x": 25000,
"y": 21250
"x": 18750,
"y": 18250
},
"floatingObject": {
"isPinned": false,
@@ -1039,12 +1189,12 @@
"id": "96f1c595-f94e-4207-9828-4199c74c4bfd",
"savedPayload": {
"position": {
"x": 24700,
"y": 21250
"x": 18450,
"y": 18250
},
"targetPosition": {
"x": 25000,
"y": 21250
"x": 18750,
"y": 18250
},
"floatingObject": {
"isPinned": false,
@@ -1062,12 +1212,12 @@
"id": "7af21baa-ebc0-436f-94a7-a1746209418e",
"savedPayload": {
"position": {
"x": 25000,
"y": 21250
"x": 18750,
"y": 18250
},
"targetPosition": {
"x": 25000,
"y": 21250
"x": 18750,
"y": 18250
},
"floatingObject": {
"isPinned": false,
@@ -62,12 +62,12 @@
"id": "baa2f02c-2920-4edb-a103-d452fc61d82f",
"savedPayload": {
"position": {
"x": 30000,
"y": 18250
"x": 40000,
"y": 21250
},
"targetPosition": {
"x": 30000,
"y": 18250
"x": 40000,
"y": 21250
},
"floatingObject": {
"isPinned": false,
@@ -62,12 +62,12 @@
"id": "36c2b050-631f-4291-987c-418adc94317d",
"savedPayload": {
"position": {
"x": 40000,
"y": 21250
"x": 30000,
"y": 18250
},
"targetPosition": {
"x": 40000,
"y": 21250
"x": 30000,
"y": 18250
},
"floatingObject": {
"isPinned": false,
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,84 @@
{
"type": "User Profile",
"name": "elipwns",
"config": "{\n \"signature\": {\n \"message\": \"elipwns\",\n \"messageHash\": \"0x3bd00c8e0bd37dfb3299035ebb44fff3ce3e02394fcec001850f67fa2815cf57\",\n \"v\": \"0x1b\",\n \"r\": \"0xd6bf81ea4e23383cf89ac657353ca22afcfe43c6b1b55d405725d8704d0f2a13\",\n \"s\": \"0x3603f15da062916285612c2b5f701084145e8b0cae39020fe5b6c95e986575a8\",\n \"signature\": \"0xd6bf81ea4e23383cf89ac657353ca22afcfe43c6b1b55d405725d8704d0f2a133603f15da062916285612c2b5f701084145e8b0cae39020fe5b6c95e986575a81b\"\n }\n}",
"project": "Governance",
"tokenPowerSwitch": {
"type": "Token Power Switch",
"name": "New Token Power Switch",
"config": "{}",
"project": "Governance",
"tokenPowerSwitch": [],
"id": "7f620c09-d433-44db-b87f-5e688a0be35e",
"savedPayload": {
"position": {
"x": 12760,
"y": 10354.5
},
"targetPosition": {
"x": 12752,
"y": 10276.5
},
"floatingObject": {
"isPinned": false,
"isFrozen": false,
"isCollapsed": false,
"angleToParent": 1,
"distanceToParent": 3,
"arrangementStyle": 0
},
"uiObject": {
"isRunning": false
}
}
},
"tokensMined": {
"type": "Tokens Mined",
"name": "New Tokens Mined",
"project": "Governance",
"id": "dc2abe61-6a58-4477-95ce-99e8216b30e9",
"savedPayload": {
"position": {
"x": 12805,
"y": 10203.5
},
"targetPosition": {
"x": 12752,
"y": 10276.5
},
"floatingObject": {
"isPinned": false,
"isFrozen": false,
"isCollapsed": false,
"angleToParent": 1,
"distanceToParent": 3,
"arrangementStyle": 0
},
"uiObject": {
"isRunning": false
}
}
},
"id": "863669ed-70e1-4336-a2fd-2957db38d038",
"savedPayload": {
"position": {
"x": 12752,
"y": 10276.5
},
"targetPosition": {
"x": 12700,
"y": 10325.5
},
"floatingObject": {
"isPinned": false,
"isFrozen": false,
"isCollapsed": false,
"angleToParent": 1,
"distanceToParent": 3,
"arrangementStyle": 0
},
"uiObject": {
"isRunning": false
}
}
}
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,38 @@
{
"type": "Algo Traders Platform",
"menuItems": [
{
"action": "Configure",
"actionProject": "Foundations",
"label": "Configure",
"iconPathOn": "configuration",
"iconPathOff": "configuration",
"dontShowAtFullscreen": true,
"actionFunction": "uiObject.configEditor.activate"
},
{
"action": "Delete UI Object",
"actionProject": "Foundations",
"askConfirmation": true,
"confirmationLabel": "Confirm to Delete",
"label": "Delete",
"iconPathOn": "delete-entity",
"iconPathOff": "delete-entity",
"actionFunction": "payload.executeAction"
}
],
"editors": {
"config": true
},
"initialValues": {
"config": "{}"
},
"addLeftIcons": true,
"level": 1,
"attachingRules": {
"compatibleTypes": "->Signing Account->"
},
"childrenNodesProperties": [
],
"propertyNameAtParent": "assignedTo"
}
@@ -0,0 +1,38 @@
{
"type": "P2P Network Node",
"menuItems": [
{
"action": "Configure",
"actionProject": "Foundations",
"label": "Configure",
"iconPathOn": "configuration",
"iconPathOff": "configuration",
"dontShowAtFullscreen": true,
"actionFunction": "uiObject.configEditor.activate"
},
{
"action": "Delete UI Object",
"actionProject": "Foundations",
"askConfirmation": true,
"confirmationLabel": "Confirm to Delete",
"label": "Delete",
"iconPathOn": "delete-entity",
"iconPathOff": "delete-entity",
"actionFunction": "payload.executeAction"
}
],
"editors": {
"config": true
},
"initialValues": {
"config": "{ \n\"host\": \"localhost\", \n\"webPort\": \"34248\", \n\"webSocketsPort\": \"18041\"\n}"
},
"addLeftIcons": true,
"level": 1,
"attachingRules": {
"compatibleTypes": "->Signing Account->"
},
"childrenNodesProperties": [
],
"propertyNameAtParent": "assignedTo"
}
@@ -9,6 +9,51 @@
"iconPathOn": "configuration",
"iconPathOff": "configuration"
},
{
"action": "Add UI Object",
"actionProject": "Foundations",
"disableIfPropertyIsDefined": true,
"propertyToCheckFor": "assignedTo",
"label": "Add P2P Network Node",
"relatedUiObject": "P2P Network Node",
"actionFunction": "payload.executeAction"
},
{
"action": "Add UI Object",
"actionProject": "Foundations",
"disableIfPropertyIsDefined": true,
"propertyToCheckFor": "assignedTo",
"label": "Add Algo Traders Platform",
"relatedUiObject": "Algo Traders Platform",
"actionFunction": "payload.executeAction"
},
{
"action": "Add UI Object",
"actionProject": "Foundations",
"disableIfPropertyIsDefined": true,
"propertyToCheckFor": "assignedTo",
"label": "Add Social Trading Mobile App",
"relatedUiObject": "Social Trading Mobile App",
"actionFunction": "payload.executeAction"
},
{
"action": "Add UI Object",
"actionProject": "Foundations",
"disableIfPropertyIsDefined": true,
"propertyToCheckFor": "assignedTo",
"label": "Add Social Trading Desktop App",
"relatedUiObject": "Social Trading Desktop App",
"actionFunction": "payload.executeAction"
},
{
"action": "Add UI Object",
"actionProject": "Foundations",
"disableIfPropertyIsDefined": true,
"propertyToCheckFor": "assignedTo",
"label": "Add Social Trading Server App",
"relatedUiObject": "Social Trading Server App",
"actionFunction": "payload.executeAction"
},
{
"action": "Delete UI Object",
"actionProject": "Foundations",
@@ -31,5 +76,37 @@
"initialValues": {
"config": "{}"
},
"propertyNameAtParent": "signingAccounts"
"propertyNameAtParent": "signingAccounts",
"childrenNodesProperties": [
{
"name": "assignedTo",
"type": "node",
"childType": "P2P Network Node",
"autoAdd": false
},
{
"name": "assignedTo",
"type": "node",
"childType": "Algo Traders Platform",
"autoAdd": false
},
{
"name": "assignedTo",
"type": "node",
"childType": "Social Trading Mobile App",
"autoAdd": false
},
{
"name": "assignedTo",
"type": "node",
"childType": "Social Trading Desktop App",
"autoAdd": false
},
{
"name": "assignedTo",
"type": "node",
"childType": "Social Trading Server App",
"autoAdd": false
}
]
}
@@ -0,0 +1,38 @@
{
"type": "Social Trading Desktop App",
"menuItems": [
{
"action": "Configure",
"actionProject": "Foundations",
"label": "Configure",
"iconPathOn": "configuration",
"iconPathOff": "configuration",
"dontShowAtFullscreen": true,
"actionFunction": "uiObject.configEditor.activate"
},
{
"action": "Delete UI Object",
"actionProject": "Foundations",
"askConfirmation": true,
"confirmationLabel": "Confirm to Delete",
"label": "Delete",
"iconPathOn": "delete-entity",
"iconPathOff": "delete-entity",
"actionFunction": "payload.executeAction"
}
],
"editors": {
"config": true
},
"initialValues": {
"config": "{}"
},
"addLeftIcons": true,
"level": 1,
"attachingRules": {
"compatibleTypes": "->Signing Account->"
},
"childrenNodesProperties": [
],
"propertyNameAtParent": "assignedTo"
}
@@ -0,0 +1,38 @@
{
"type": "Social Trading Mobile App",
"menuItems": [
{
"action": "Configure",
"actionProject": "Foundations",
"label": "Configure",
"iconPathOn": "configuration",
"iconPathOff": "configuration",
"dontShowAtFullscreen": true,
"actionFunction": "uiObject.configEditor.activate"
},
{
"action": "Delete UI Object",
"actionProject": "Foundations",
"askConfirmation": true,
"confirmationLabel": "Confirm to Delete",
"label": "Delete",
"iconPathOn": "delete-entity",
"iconPathOff": "delete-entity",
"actionFunction": "payload.executeAction"
}
],
"editors": {
"config": true
},
"initialValues": {
"config": "{}"
},
"addLeftIcons": true,
"level": 1,
"attachingRules": {
"compatibleTypes": "->Signing Account->"
},
"childrenNodesProperties": [
],
"propertyNameAtParent": "assignedTo"
}
@@ -0,0 +1,38 @@
{
"type": "Social Trading Server App",
"menuItems": [
{
"action": "Configure",
"actionProject": "Foundations",
"label": "Configure",
"iconPathOn": "configuration",
"iconPathOff": "configuration",
"dontShowAtFullscreen": true,
"actionFunction": "uiObject.configEditor.activate"
},
{
"action": "Delete UI Object",
"actionProject": "Foundations",
"askConfirmation": true,
"confirmationLabel": "Confirm to Delete",
"label": "Delete",
"iconPathOn": "delete-entity",
"iconPathOff": "delete-entity",
"actionFunction": "payload.executeAction"
}
],
"editors": {
"config": true
},
"initialValues": {
"config": "{}"
},
"addLeftIcons": true,
"level": 1,
"attachingRules": {
"compatibleTypes": "->Signing Account->"
},
"childrenNodesProperties": [
],
"propertyNameAtParent": "assignedTo"
}
@@ -2,7 +2,7 @@ function newGovernanceFunctionLibraryDelegationProgram() {
let thisObject = {
calculate: calculate
}
const MAX_GENERATIONS = 10
const MAX_GENERATIONS = 3
return thisObject
@@ -1,10 +1,24 @@
function newGovernanceFunctionLibraryDistributionProcess() {
let thisObject = {
calculate: calculate
calculate: calculate,
finalize: finalize,
initialize: initialize
}
const DISTRIBUTION_PROCESS_RECALCULATION_DELAY = 5000
let loop
return thisObject
function initialize() {
loop = true
calculate()
}
function finalize() {
loop = false
}
function calculate() {
let pools = UI.projects.foundations.spaces.designSpace.workspace.getHierarchyHeadsByNodeType('Pools')
@@ -125,5 +139,9 @@ function newGovernanceFunctionLibraryDistributionProcess() {
UI.projects.governance.functionLibraries.tokenMining.calculate(
userProfiles
)
if (loop === true) {
setTimeout(calculate, DISTRIBUTION_PROCESS_RECALCULATION_DELAY)
}
}
}
@@ -306,11 +306,13 @@ function newGovernanceFunctionLibraryProfileConstructor() {
node.config = "{}"
UI.projects.foundations.utilities.nodeConfig.saveConfigProperty(node.payload, 'nodeName', signingAccount.name)
UI.projects.foundations.utilities.nodeConfig.saveConfigProperty(node.payload, 'codeName', signingAccount.name)
UI.projects.foundations.utilities.nodeConfig.saveConfigProperty(node.payload, 'nodeType', signingAccount.type)
UI.projects.foundations.utilities.nodeConfig.saveConfigProperty(node.payload, 'nodeId', signingAccount.id)
UI.projects.foundations.utilities.nodeConfig.saveConfigProperty(node.payload, 'address', address)
UI.projects.foundations.utilities.nodeConfig.saveConfigProperty(node.payload, 'privateKey', privateKey)
UI.projects.foundations.utilities.nodeConfig.saveConfigProperty(node.payload, 'githubUsername', githubUsername)
UI.projects.foundations.utilities.nodeConfig.saveConfigProperty(node.payload, 'userProfileId', node.payload.referenceParent.id)
/*
Show nice message.
*/
@@ -3,7 +3,7 @@ function newGovernanceFunctionLibraryVotingProgram() {
calculate: calculate,
installMissingVotes: installMissingVotes
}
const MAX_GENERATIONS = 10
const MAX_GENERATIONS = 3
return thisObject
@@ -125,8 +125,8 @@ function newGobernanceReportsSpace() {
/*
If the workspace is not related to governance, then we exit the Intialize Function
*/
let resultsArary = UI.projects.foundations.spaces.designSpace.workspace.getHierarchyHeadsByNodeType('User Profile')
if (resultsArary.length === 0) { return }
let governanceProject = UI.projects.foundations.spaces.designSpace.workspace.getProjectHeadByNodeType('Governance Project')
if (governanceProject === undefined) { return }
thisObject.container = newContainer()
thisObject.container.name = MODULE_NAME
@@ -16,8 +16,6 @@ function newGovernanceUserProfileSpace() {
let waitingForResponses = 0
const BSC_SCAN_RATE_LIMIT_DELAY = 6000
const DISTRIBUTION_PROCESS_RECALCULATION_DELAY = 5000
let intervalId
let reputationByAddress = new Map()
return thisObject
@@ -31,8 +29,7 @@ function newGovernanceUserProfileSpace() {
/*
Here we will run the distribution process, that in turn will run all the programs.
*/
intervalId = setInterval(UI.projects.governance.functionLibraries.distributionProcess.calculate, DISTRIBUTION_PROCESS_RECALCULATION_DELAY)
UI.projects.governance.functionLibraries.distributionProcess.initialize()
/*
Here we will get a list of all github usernames who have a star or fork and are watching the
Superalgos Repository. This will later be used to know which user profiles are participating
@@ -301,15 +298,17 @@ function newGovernanceUserProfileSpace() {
}
function finalize() {
clearInterval(intervalId)
intervalId = undefined
UI.projects.governance.functionLibraries.distributionProcess.finalize()
thisObject.githubStars = undefined
thisObject.githubWatchers = undefined
thisObject.githubForks = undefined
thisObject.container.finalize()
thisObject.container = undefined
if (thisObject.container !== undefined) {
thisObject.container.finalize()
thisObject.container = undefined
}
}
function reset() {
@@ -330,6 +329,7 @@ function newGovernanceUserProfileSpace() {
}
function physics() {
if (UI.projects.foundations.spaces.designSpace.workspace === undefined) { return }
/*
If the workspace is not related to governance, then we exit the Intialize Function
@@ -7,7 +7,7 @@ function newGovernanceUtilitiesDecendentProgram() {
let thisObject = {
run: run
}
const MAX_GENERATIONS = 10
const MAX_GENERATIONS = 3
return thisObject
@@ -242,11 +242,11 @@ exports.newNetworkModulesWebSocketsInterface = function newNetworkModulesWebSock
*/
let signedMessage = {
callerProfileHandle: messageHeader.callerProfileHandle,
calledProfileHandle: NT.NETWORK_NODE_USER_PROFILE_HANDLE,
calledProfileHandle: SA.secrets.map.get('P2P Network Node').githubUsername,
callerTimestamp: messageHeader.callerTimestamp,
calledTimestamp: calledTimestamp
}
let signature = web3.eth.accounts.sign(JSON.stringify(signedMessage), NT.NETWORK_NODE_USER_PROFILE_PRIVATE_KEY)
let signature = web3.eth.accounts.sign(JSON.stringify(signedMessage), SA.secrets.map.get('P2P Network Node').privateKey)
let response = {
result: 'Ok',
@@ -304,12 +304,25 @@ exports.newNetworkModulesWebSocketsInterface = function newNetworkModulesWebSock
caller.socket.send(JSON.stringify(response))
return
}
let signedMessage = JSON.parse(signature.message)
/*
We will verify that the signature belongs to the signature.message.
To do this we will hash the signature.message and see if we get
the same hash of the signature.
*/
let hash = web3.eth.accounts.hashMessage(signature.message)
if (hash !== signature.messageHash) {
let response = {
result: 'Error',
message: 'signature.message Hashed Does Not Match signature.messageHash.'
}
caller.socket.send(JSON.stringify(response))
return
}
/*
The user profile based on the blockchain account, based on the signature,
it is our witness user profile, to validate the caller.
*/
let signedMessage = JSON.parse(signature.message)
if (signedMessage.callerProfileHandle !== witnessUserProfile.userProfileHandle) {
let response = {
result: 'Error',
@@ -322,7 +335,7 @@ exports.newNetworkModulesWebSocketsInterface = function newNetworkModulesWebSock
We will check that the signature includes this Network Node handle, to avoid
man in the middle attackts.
*/
if (signedMessage.calledProfileHandle !== NT.NETWORK_NODE_USER_PROFILE_HANDLE) {
if (signedMessage.calledProfileHandle !== SA.secrets.map.get('P2P Network Node').githubUsername) {
let response = {
result: 'Error',
message: 'calledProfileHandle Does Not Match This Network Node Handle.'
+17 -10
View File
@@ -30,16 +30,13 @@ exports.newNetworkModulesWebSocketsClient = function newNetworkModulesWebSockets
/*
Here we will pick a Network Node from all users profiles available that do have a Network Node running. // TODO
In the meantime, we will assume that we have chosen the following Network Node to connect to.
{
"githubUsername": "Test-Network-Node-Profile",
"address": "0xa153469c57A91F5a59Fc6c45A37aD8dbad85e417"
}
*/
web3 = new SA.nodeModules.web3()
selectedNetworkNode = {
userProfileHandle: "Test-Network-Node-Profile",
blockchainAccount: "0xa153469c57A91F5a59Fc6c45A37aD8dbad85e417",
userProfileHandle: "Luis-Fernando-Molina",
blockchainAccount: "0xeBDCB7a73c4796ca9F025d005630eCe773dd9e54",
ranking: 0,
host: "localhost",
port: global.env.NETWORK_WEB_SOCKETS_INTERFACE_PORT
@@ -90,7 +87,7 @@ exports.newNetworkModulesWebSocketsClient = function newNetworkModulesWebSockets
let message = {
messageType: 'Handshake',
callerRole: 'Network Client',
callerProfileHandle: DK.TEST_NETWORK_CLIENT_USER_PROFILE_HANDLE,
callerProfileHandle: SA.secrets.map.get('Social Trading Desktop').githubUsername,
callerTimestamp: callerTimestamp,
step: 'One'
}
@@ -127,7 +124,17 @@ exports.newNetworkModulesWebSocketsClient = function newNetworkModulesWebSockets
}
let signedMessage = JSON.parse(signature.message)
/*
We will verify that the signature belongs to the signature.message.
To do this we will hash the signature.message and see if we get
the same hash of the signature.
*/
let hash = web3.eth.accounts.hashMessage(signature.message)
if (hash !== signature.messageHash) {
console.log('[ERROR] Web Sockets Client -> stepOneResponse -> signature.message Hashed Does Not Match signature.messageHash.')
reject()
return
}
/*
We will check that the Network Node that responded has the same User Profile Handle
that we have on record, otherwise something is wrong and we should not proceed.
@@ -141,7 +148,7 @@ exports.newNetworkModulesWebSocketsClient = function newNetworkModulesWebSockets
We will check that the profile handle we sent to the Network Node, is returned at the
signed message, to avoid man in the middle attackts.
*/
if (signedMessage.callerProfileHandle !== DK.TEST_NETWORK_CLIENT_USER_PROFILE_HANDLE) {
if (signedMessage.callerProfileHandle !== SA.secrets.map.get('Social Trading Desktop').githubUsername) {
console.log('[ERROR] Web Sockets Client -> stepOneResponse -> The Network Node callerProfileHandle does not match my own userProfileHandle.')
reject()
return
@@ -171,7 +178,7 @@ exports.newNetworkModulesWebSocketsClient = function newNetworkModulesWebSockets
*/
socketClient.onmessage = socketMessage => { stepTwoResponse(socketMessage) }
let signature = web3.eth.accounts.sign(JSON.stringify(signedMessage), DK.TEST_NETWORK_CLIENT_USER_PROFILE_PRIVATE_KEY)
let signature = web3.eth.accounts.sign(JSON.stringify(signedMessage), SA.secrets.map.get('Social Trading Desktop').privateKey)
let message = {
messageType: 'Handshake',
@@ -44,7 +44,7 @@ exports.newSocialTradingModulesWebAppInterface = function newSocialTradingModule
}
return JSON.stringify(response)
}
queryMessage.emitterUserProfileId = DK.TEST_NETWORK_CLIENT_USER_PROFILE_ID
queryMessage.emitterUserProfileId = SA.secrets.map.get('Social Trading Desktop').userProfileId
messageHeader.queryMessage = JSON.stringify(queryMessage)
let response
@@ -123,7 +123,7 @@ exports.newSocialTradingModulesWebAppInterface = function newSocialTradingModule
eventMessage.postText = undefined
}
eventMessage.emitterUserProfileId = DK.TEST_NETWORK_CLIENT_USER_PROFILE_ID
eventMessage.emitterUserProfileId = SA.secrets.map.get('Social Trading Desktop').userProfileId
messageHeader.eventMessage = JSON.stringify(eventMessage)
let response = {
@@ -175,9 +175,6 @@ exports.newSocialTradingModulesWebAppInterface = function newSocialTradingModule
async function getPostText(userProfileHandle, postHash, timestamp) {
let promise = new Promise((resolve, reject) => {
//https://raw.githubusercontent.com/Luis-Fernando-Molina/My-Social-Trading-Data/main/User-Posts/2021/09/17/0608070d8d2aab12e63cf3aa871918a04e237edff4fc0f886d158311811cf7c9.json
const userProfileHandle = "Luis-Fernando-Molina" /// TODO Delete this line
const fileName = postHash + ".json"
const filePath = 'My-Social-Trading-Data/main/User-Posts/' + SA.projects.foundations.utilities.filesAndDirectories.pathFromDate(timestamp)
@@ -52,7 +52,20 @@ exports.newBootstrap = function newBootstrap() {
NT.projects.socialTrading.globals.memory.maps.USER_PROFILES_BY_ID.set(userProfileId, userProfile)
NT.projects.socialTrading.globals.memory.maps.USER_PROFILES_BY_HANDLE.set(userHandle, userProfile)
NT.projects.socialTrading.globals.memory.maps.USER_PROFILES_BY_BLOCHAIN_ACCOUNT.set(blockchainAccount, userProfile)
/*
Each User Profile might have Signing Accounts, meaning
accounts that can be siging on behalf of the User Profile.
*/
if (userProfilePlugin.signingAccounts !== undefined) {
for (let j = 0; j < userProfilePlugin.signingAccounts.signingAccounts.length; j++) {
let signingAccount = userProfilePlugin.signingAccounts.signingAccounts[j]
let config = JSON.parse(signingAccount.config)
let signatureObject = config.signature
let web3 = new SA.nodeModules.web3()
let blockchainAccount = web3.eth.accounts.recover(signatureObject)
NT.projects.socialTrading.globals.memory.maps.USER_PROFILES_BY_BLOCHAIN_ACCOUNT.set(blockchainAccount, userProfile)
}
}
}
}
}