diff --git a/Client/httpInterface.js b/Client/httpInterface.js index bcd81c02d..d4615cb18 100644 --- a/Client/httpInterface.js +++ b/Client/httpInterface.js @@ -773,7 +773,8 @@ exports.newHttpInterface = function newHttpInterface(WEB_SERVER, DATA_FILE_SERVE console.log('[ERROR] httpInterface -> App -> Contribute -> err.stack = ' + err.stack) console.log('[ERROR] httpInterface -> App -> Contribute -> commitMessage = ' + commitMessage) console.log('[ERROR] httpInterface -> App -> Contribute -> username = ' + username) - console.log('[ERROR] httpInterface -> App -> Contribute -> token = ' + token) + console.log('[ERROR] httpInterface -> App -> Contribute -> token starts with = ' + token.substring(0, 10) + '...') + console.log('[ERROR] httpInterface -> App -> Contribute -> token ends with = ' + '...' + token.substring(token.length - 10)) console.log('[ERROR] httpInterface -> App -> Contribute -> currentBranch = ' + currentBranch) console.log('[ERROR] httpInterface -> App -> Contribute -> contributionsBranch = ' + contributionsBranch) @@ -1018,6 +1019,151 @@ exports.newHttpInterface = function newHttpInterface(WEB_SERVER, DATA_FILE_SERVE } break + case 'Gov': { + switch (requestParameters[2]) { // switch by command + case 'getRepoInfo': { + try { + const GITHUB_API_WAITING_TIME = 1000 + const repository = unescape(requestParameters[3]) + const username = unescape(requestParameters[4]) + const token = unescape(requestParameters[5]) + let error + let starsListArray = [] + + + getRepoInfo() + + async function getRepoInfo() { + + await doGithub() + if (error !== undefined) { + + let docs = { + project: 'Governance', + category: 'Topic', + type: 'Gov Error - Get Repository Information', + anchor: undefined, + placeholder: {} + } + + respondWithDocsObject(docs, error) + return + } + respondWithContent(JSON.stringify(starsListArray), httpResponse) + } + + async function doGithub() { + + const { Octokit } = require("@octokit/rest") + + const octokit = new Octokit({ + auth: token, + userAgent: 'Superalgos Beta 10' + }) + + const repo = repository + const owner = 'Superalgos' + const per_page = 100 // Max + let page = 0 + let lastPage = false + + while (lastPage === false) { + try { + page++ + await sleep(GITHUB_API_WAITING_TIME) + let starsListResponse = await octokit.activity.listStargazersForRepo({ + owner, + repo, + per_page, + page + }); + + if (starsListResponse.data.length < 100) { + lastPage = true + } + + for (let i = 0; i < starsListResponse.data.length; i++) { + let star = starsListResponse.data[i] + starsListArray.push(star.login) + } + + console.log('[INFO] httpInterface -> Gov -> getRepoInfo -> doGithub -> Stars Page = ' + page) + console.log('[INFO] httpInterface -> Gov -> getRepoInfo -> doGithub -> Stars Received = ' + starsListResponse.data.length) + + } catch (err) { + console.log(err) + + if (err.stack.indexOf('last page') >= 0) { + return + } else { + console.log('[ERROR] httpInterface -> Gov -> getRepoInfo -> doGithub -> Method call produced an error.') + console.log('[ERROR] httpInterface -> Gov -> getRepoInfo -> doGithub -> err.stack = ' + err.stack) + console.log('[ERROR] httpInterface -> Gov -> getRepoInfo -> doGithub -> commitMessage = ' + repository) + console.log('[ERROR] httpInterface -> Gov -> getRepoInfo -> doGithub -> username = ' + username) + console.log('[ERROR] httpInterface -> Gov -> getRepoInfo -> doGithub -> token starts with = ' + token.substring(0, 10) + '...') + console.log('[ERROR] httpInterface -> Gov -> getRepoInfo -> doGithub -> token ends with = ' + '...' + token.substring(token.length - 10)) + error = err + } + } + } + } + + } catch (err) { + console.log('[ERROR] httpInterface -> Gov -> getRepoInfo -> Method call produced an error.') + console.log('[ERROR] httpInterface -> Gov -> getRepoInfo -> err.stack = ' + err.stack) + console.log('[ERROR] httpInterface -> Gov -> getRepoInfo -> repository = ' + repository) + console.log('[ERROR] httpInterface -> Gov -> getRepoInfo -> username = ' + username) + console.log('[ERROR] httpInterface -> Gov -> getRepoInfo -> token starts with = ' + token.substring(0, 10) + '...') + console.log('[ERROR] httpInterface -> Gov -> getRepoInfo -> token ends with = ' + '...' + token.substring(token.length - 10)) + + let error = { + result: 'Fail Because', + message: err.message, + stack: err.stack + } + respondWithContent(JSON.stringify(error), httpResponse) + } + break + } + } + + function respondWithDocsObject(docs, error) { + + if (error.message !== undefined) { + docs.placeholder.errorMessage = { + style: 'Error', + text: error.message + } + } + if (error.stack !== undefined) { + docs.placeholder.errorStack = { + style: 'Javascript', + text: error.stack + } + } + if (error.code !== undefined) { + docs.placeholder.errorCode = { + style: 'Json', + text: error.code + } + } + + docs.placeholder.errorDetails = { + style: 'Json', + text: JSON.stringify(error, undefined, 4) + } + + let customResponse = { + result: global.CUSTOM_FAIL_RESPONSE.result, + docs: docs + } + + respondWithContent(JSON.stringify(customResponse), httpResponse) + + } + } + break + case 'LegacyPlotter.js': { respondWithFile(global.env.PATH_TO_CLIENT + 'WebServer/LegacyPlotter.js', httpResponse) @@ -1962,4 +2108,10 @@ exports.newHttpInterface = function newHttpInterface(WEB_SERVER, DATA_FILE_SERVE return files.reduce((a, f) => a.concat(f), []); } } + + function sleep(ms) { + return new Promise((resolve) => { + setTimeout(resolve, ms) + }) + } } diff --git a/Projects/Governance/Icons/Programs/github-program.png b/Projects/Governance/Icons/Programs/github-program.png new file mode 100644 index 000000000..ef69b801e Binary files /dev/null and b/Projects/Governance/Icons/Programs/github-program.png differ diff --git a/Projects/Governance/Plugins/Pools/Superalgos.json b/Projects/Governance/Plugins/Pools/Superalgos.json index 4123d4e83..10e790cac 100644 --- a/Projects/Governance/Plugins/Pools/Superalgos.json +++ b/Projects/Governance/Plugins/Pools/Superalgos.json @@ -27,12 +27,12 @@ "id": "2e9dff69-e407-4ccb-9a42-e4a476e28d7c", "savedPayload": { "position": { - "x": 25404.12955404221, - "y": 30290.214224224663 + "x": 25378.919432488667, + "y": 30284.045346726893 }, "targetPosition": { - "x": 25364.971696376197, - "y": 30587.647682636805 + "x": 25352.77270966437, + "y": 30582.903756154417 }, "floatingObject": { "isPinned": false, @@ -57,12 +57,12 @@ "id": "af1984a3-465b-48ed-9944-c101a8ed376c", "savedPayload": { "position": { - "x": 25514.971696376197, - "y": 30327.840061501473 + "x": 25491.297293634878, + "y": 30316.80050620095 }, "targetPosition": { - "x": 25364.971696376197, - "y": 30587.647682636805 + "x": 25352.77270966437, + "y": 30582.903756154417 }, "floatingObject": { "isPinned": false, @@ -81,8 +81,8 @@ "id": "9f94d0e0-ddf7-4e04-8a3c-9485c09e079d", "savedPayload": { "position": { - "x": 25364.971696376197, - "y": 30587.647682636805 + "x": 25352.77270966437, + "y": 30582.903756154417 }, "targetPosition": { "x": 25250.166666666668, @@ -118,12 +118,12 @@ "id": "c41497c5-7440-4ebd-aabb-fbc3d022136b", "savedPayload": { "position": { - "x": 25612.29870102263, - "y": 30392.871886898894 + "x": 25569.788428094842, + "y": 30363.105873343502 }, "targetPosition": { - "x": 25462.29870102263, - "y": 30652.679508034227 + "x": 25443.00294957263, + "y": 30634.998209454498 }, "floatingObject": { "isPinned": false, @@ -148,12 +148,12 @@ "id": "6625953a-6026-4686-9091-2796fd08b9a7", "savedPayload": { "position": { - "x": 25700.304703110003, - "y": 30470.05107933161 + "x": 25664.186150615667, + "y": 30432.321147169798 }, "targetPosition": { - "x": 25462.29870102263, - "y": 30652.679508034227 + "x": 25443.00294957263, + "y": 30634.998209454498 }, "floatingObject": { "isPinned": false, @@ -172,8 +172,8 @@ "id": "174e7d3b-fe3c-4fb1-825c-4ea488d82171", "savedPayload": { "position": { - "x": 25462.29870102263, - "y": 30652.679508034227 + "x": 25443.00294957263, + "y": 30634.998209454498 }, "targetPosition": { "x": 25250.166666666668, @@ -209,12 +209,12 @@ "id": "53ddcc36-f693-4193-8284-999a88f1c944", "savedPayload": { "position": { - "x": 25765.336528507425, - "y": 30567.37808397805 + "x": 25722.106322157964, + "y": 30502.679508034227 }, "targetPosition": { - "x": 25527.330526420054, - "y": 30750.006512680666 + "x": 25509.974287802, + "y": 30714.81154239019 }, "floatingObject": { "isPinned": false, @@ -239,12 +239,12 @@ "id": "ff1e4a84-3363-4348-ad15-31a34898fa82", "savedPayload": { "position": { - "x": 25817.108274306775, - "y": 30672.36079914991 + "x": 25787.138147555386, + "y": 30600.006512680666 }, "targetPosition": { - "x": 25527.330526420054, - "y": 30750.006512680666 + "x": 25509.974287802, + "y": 30714.81154239019 }, "floatingObject": { "isPinned": false, @@ -263,8 +263,8 @@ "id": "8b3714a0-3bf2-491e-8ffc-9c4286446382", "savedPayload": { "position": { - "x": 25527.330526420054, - "y": 30750.006512680666 + "x": 25509.974287802, + "y": 30714.81154239019 }, "targetPosition": { "x": 25250.166666666668, @@ -293,8 +293,8 @@ "id": "5bd09ac2-6c9f-4a7d-a547-c05a8a1e98e2", "savedPayload": { "position": { - "x": 25550.166666666668, - "y": 30864.81154239019 + "x": 25545.60899257033, + "y": 30812.71708909011 }, "targetPosition": { "x": 25250.166666666668, @@ -330,12 +330,12 @@ "id": "9eb846a4-effb-4380-9487-1a82011b0488", "savedPayload": { "position": { - "x": 25804.49438617344, - "y": 31094.42160180924 + "x": 25841.051318473994, + "y": 30969.00044899035 }, "targetPosition": { - "x": 25527.330526420054, - "y": 30979.616572099716 + "x": 25545.60899257033, + "y": 30916.90599569027 }, "floatingObject": { "isPinned": false, @@ -354,8 +354,8 @@ "id": "80d4f08f-bb7f-48a2-9cef-be12befcac2e", "savedPayload": { "position": { - "x": 25527.330526420054, - "y": 30979.616572099716 + "x": 25545.60899257033, + "y": 30916.90599569027 }, "targetPosition": { "x": 25250.166666666668, @@ -391,12 +391,12 @@ "id": "d2cf4c65-b4bd-4fa8-b0da-f73a38b8419a", "savedPayload": { "position": { - "x": 25674.430735378595, - "y": 31289.07561110212 + "x": 25769.781908937333, + "y": 31164.81154239019 }, "targetPosition": { - "x": 25462.29870102263, - "y": 31076.943576746155 + "x": 25509.974287802, + "y": 31014.81154239019 }, "floatingObject": { "isPinned": false, @@ -415,8 +415,8 @@ "id": "68e3f570-4156-4be6-8881-c526a06f85d0", "savedPayload": { "position": { - "x": 25462.29870102263, - "y": 31076.943576746155 + "x": 25509.974287802, + "y": 31014.81154239019 }, "targetPosition": { "x": 25250.166666666668, @@ -452,12 +452,12 @@ "id": "24e62dd3-4d7b-4eba-b401-493c155d85d0", "savedPayload": { "position": { - "x": 25479.776726085725, - "y": 31419.139261896962 + "x": 25635.839232478593, + "y": 31324.438208261578 }, "targetPosition": { - "x": 25364.971696376197, - "y": 31141.975402143577 + "x": 25443.00294957263, + "y": 31094.624875325884 }, "floatingObject": { "isPinned": false, @@ -476,8 +476,69 @@ "id": "f09429a2-3f6c-4210-bb73-0c8efd254c82", "savedPayload": { "position": { - "x": 25364.971696376197, - "y": 31141.975402143577 + "x": 25443.00294957263, + "y": 31094.624875325884 + }, + "targetPosition": { + "x": 25250.166666666668, + "y": 30864.81154239019 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + { + "type": "Pool Class", + "name": "Github Prgoram", + "config": "{}", + "project": "Governance", + "poolClasses": [], + "pools": [ + { + "type": "Pool", + "name": "Github Rewards", + "config": "{\n \"codeName\": \"Github-Rewards\"\n}", + "project": "Governance", + "poolClasses": [], + "pools": [], + "id": "8829c80f-028b-4315-85a1-82ad502f0687", + "savedPayload": { + "position": { + "x": 25455.37875266207, + "y": 31428.627114861738 + }, + "targetPosition": { + "x": 25352.77270966437, + "y": 31146.719328625964 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + } + ], + "id": "e4daed5d-1c83-4f64-a504-3aef7d73e688", + "savedPayload": { + "position": { + "x": 25352.77270966437, + "y": 31146.719328625964 }, "targetPosition": { "x": 25250.166666666668, @@ -511,7 +572,7 @@ "floatingObject": { "isPinned": false, "isFrozen": false, - "isCollapsed": true, + "isCollapsed": false, "angleToParent": 1, "distanceToParent": 3, "arrangementStyle": 0 @@ -1649,7 +1710,7 @@ "floatingObject": { "isPinned": false, "isFrozen": false, - "isCollapsed": false, + "isCollapsed": true, "angleToParent": 1, "distanceToParent": 3, "arrangementStyle": 0 diff --git a/Projects/Governance/Plugins/User-Profiles/Luis-Fernando-Molina.json b/Projects/Governance/Plugins/User-Profiles/Luis-Fernando-Molina.json index b7c47e1df..19cbbb6c5 100644 --- a/Projects/Governance/Plugins/User-Profiles/Luis-Fernando-Molina.json +++ b/Projects/Governance/Plugins/User-Profiles/Luis-Fernando-Molina.json @@ -112,12 +112,12 @@ "id": "43a24543-03cf-4511-b670-63566159dbd7", "savedPayload": { "position": { - "x": 30850.416074431785, - "y": 23646.369184844512 + "x": 30873.241079547475, + "y": 23589.15785766601 }, "targetPosition": { - "x": 30558.705098312483, - "y": 23576.33557568774 + "x": 30575.807621135333, + "y": 23549.999999999996 }, "floatingObject": { "isPinned": false, @@ -229,12 +229,12 @@ "id": "91d82012-4362-4fe0-b02b-0eb3b394ace5", "savedPayload": { "position": { - "x": 30801.410196624965, - "y": 23752.67115137548 + "x": 30835.615242270665, + "y": 23699.999999999996 }, "targetPosition": { - "x": 30558.705098312483, - "y": 23576.33557568774 + "x": 30575.807621135333, + "y": 23549.999999999996 }, "floatingObject": { "isPinned": false, @@ -379,12 +379,12 @@ "id": "8af4af68-62bf-4ad2-bf84-f1124cba0abf", "savedPayload": { "position": { - "x": 30715.454667727266, - "y": 23832.127624993966 + "x": 30758.43604983795, + "y": 23788.006002087368 }, "targetPosition": { - "x": 30558.705098312483, - "y": 23576.33557568774 + "x": 30575.807621135333, + "y": 23549.999999999996 }, "floatingObject": { "isPinned": false, @@ -402,8 +402,8 @@ "id": "a2803c2e-5b20-42a5-b498-2b613a1dd783", "savedPayload": { "position": { - "x": 30558.705098312483, - "y": 23576.33557568774 + "x": 30575.807621135333, + "y": 23549.999999999996 }, "targetPosition": { "x": 30316, @@ -677,12 +677,12 @@ "id": "796dd30f-c90d-4b8d-a63d-89867347407b", "savedPayload": { "position": { - "x": 30572.09680881699, - "y": 23936.91812527217 + "x": 30678.132034355964, + "y": 23871.939655491293 }, "targetPosition": { - "x": 30408.705098312483, - "y": 23685.31695488854 + "x": 30466, + "y": 23659.80762113533 }, "floatingObject": { "isPinned": false, @@ -727,12 +727,12 @@ "id": "4381f059-44c8-4843-9cac-8a7cf41fa14c", "savedPayload": { "position": { - "x": 30906.77981249596, - "y": 24726.466349563474 + "x": 31169.6577177055, + "y": 24574.649847562618 }, "targetPosition": { - "x": 30711.945397996904, - "y": 24498.344559883466 + "x": 30931.65171561813, + "y": 24392.02141886 }, "floatingObject": { "isPinned": false, @@ -756,12 +756,12 @@ "id": "d69739f9-958e-480e-95e3-a72bb5f6ceab", "savedPayload": { "position": { - "x": 30711.945397996904, - "y": 24498.344559883466 + "x": 30931.65171561813, + "y": 24392.02141886 }, "targetPosition": { - "x": 30517.11098349785, - "y": 24270.222770203458 + "x": 30693.645713530757, + "y": 24209.392990157383 }, "floatingObject": { "isPinned": false, @@ -792,7 +792,7 @@ "weightVotesSwitch": [ { "type": "Weight Votes Switch", - "name": "Software Projects Pool Class", + "name": "Superalgos Software Projects Pool Class", "config": "{}", "project": "Governance", "weightVotesSwitch": [], @@ -805,12 +805,12 @@ "id": "e175d788-58bf-4e7e-b241-219e642626c1", "savedPayload": { "position": { - "x": 29469.71415514045, - "y": 24175.87089878627 + "x": 31092.391122300305, + "y": 24323.982025024008 }, "targetPosition": { - "x": 29204.479537089068, - "y": 24035.69031030435 + "x": 31085.251813036473, + "y": 24623.89706343195 }, "floatingObject": { "isPinned": false, @@ -838,12 +838,12 @@ "id": "9e731819-36c2-493e-a181-1bce1066ab02", "savedPayload": { "position": { - "x": 29364.08916004367, - "y": 24289.70757007284 + "x": 31241.392155428395, + "y": 24367.732675825606 }, "targetPosition": { - "x": 29204.479537089068, - "y": 24035.69031030435 + "x": 31085.251813036473, + "y": 24623.89706343195 }, "floatingObject": { "isPinned": false, @@ -871,12 +871,12 @@ "id": "b9b698ad-89cf-495b-a205-bd1d699ef615", "savedPayload": { "position": { - "x": 29215.696895371966, - "y": 24335.480521740872 + "x": 31348.55550990665, + "y": 24480.12236741593 }, "targetPosition": { - "x": 29204.479537089068, - "y": 24035.69031030435 + "x": 31085.251813036473, + "y": 24623.89706343195 }, "floatingObject": { "isPinned": false, @@ -904,12 +904,12 @@ "id": "47153990-e35f-4abb-a41f-507253e2532b", "savedPayload": { "position": { - "x": 29064.29894860715, - "y": 24300.924928355733 + "x": 31385.166851444414, + "y": 24631.03637269578 }, "targetPosition": { - "x": 29204.479537089068, - "y": 24035.69031030435 + "x": 31085.251813036473, + "y": 24623.89706343195 }, "floatingObject": { "isPinned": false, @@ -937,12 +937,12 @@ "id": "406251f2-f7ac-49c0-b320-10ae252c688f", "savedPayload": { "position": { - "x": 28950.46227732058, - "y": 24195.299933258953 + "x": 31341.416200642816, + "y": 24780.03740582387 }, "targetPosition": { - "x": 29204.479537089068, - "y": 24035.69031030435 + "x": 31085.251813036473, + "y": 24623.89706343195 }, "floatingObject": { "isPinned": false, @@ -969,12 +969,12 @@ "id": "70444a5d-5ca6-4c62-a308-94bb37b9c100", "savedPayload": { "position": { - "x": 29204.479537089068, - "y": 24035.69031030435 + "x": 31085.251813036473, + "y": 24623.89706343195 }, "targetPosition": { - "x": 29193.26217880617, - "y": 23735.90009886783 + "x": 30821.948116166295, + "y": 24767.671759447967 }, "floatingObject": { "isPinned": false, @@ -1015,12 +1015,12 @@ "id": "1bebdae3-186d-4120-825b-8cb43f85921f", "savedPayload": { "position": { - "x": 29285.029970013293, - "y": 24550.361772526794 + "x": 31291.558995941446, + "y": 24151.86591097782 }, "targetPosition": { - "x": 29106.88391434124, - "y": 24308.982438596795 + "x": 31277.284421194323, + "y": 24451.52611273272 }, "floatingObject": { "isPinned": false, @@ -1048,12 +1048,12 @@ "id": "6d543b8e-4011-4ba9-a1f1-31bb60e66e9e", "savedPayload": { "position": { - "x": 28986.916307045318, - "y": 24583.951115357788 + "x": 31543.9350557908, + "y": 24314.058156214498 }, "targetPosition": { - "x": 29106.88391434124, - "y": 24308.982438596795 + "x": 31277.284421194323, + "y": 24451.52611273272 }, "floatingObject": { "isPinned": false, @@ -1068,7 +1068,7 @@ }, "referenceParent": { "type": "Pool", - "name": "10K Stars on Github", + "name": "10K Github on Github", "id": "5bbe5a09-fe32-4802-8e14-d06615a24510" } } @@ -1080,12 +1080,12 @@ "id": "23e1ffb3-84e1-4032-acca-a310168c48d1", "savedPayload": { "position": { - "x": 29106.88391434124, - "y": 24308.982438596795 + "x": 31277.284421194323, + "y": 24451.52611273272 }, "targetPosition": { - "x": 29073.294571510247, - "y": 24010.868775628824 + "x": 31115.092175957645, + "y": 24703.902172582075 }, "floatingObject": { "isPinned": false, @@ -1120,12 +1120,12 @@ "id": "a5603f0b-e1e6-4295-ad37-17000fc5c399", "savedPayload": { "position": { - "x": 28590.53590365025, - "y": 24367.160886972928 + "x": 31701.380295540337, + "y": 24576.36299885029 }, "targetPosition": { - "x": 28831.915237580248, - "y": 24189.014831300876 + "x": 31408.23623574899, + "y": 24640.132585716183 }, "floatingObject": { "isPinned": false, @@ -1152,12 +1152,12 @@ "id": "4609f39f-5099-49b5-a57d-3b49ef849df7", "savedPayload": { "position": { - "x": 28831.915237580248, - "y": 24189.014831300876 + "x": 31408.23623574899, + "y": 24640.132585716183 }, "targetPosition": { - "x": 29073.294571510247, - "y": 24010.868775628824 + "x": 31115.092175957645, + "y": 24703.902172582075 }, "floatingObject": { "isPinned": false, @@ -1178,19 +1178,53 @@ } } ], - "poolWeightVotes": [], + "poolWeightVotes": [ + { + "type": "Pool Weight Vote", + "name": "Marketing Assets Pool", + "config": "{}", + "project": "Governance", + "id": "441c9ee4-524c-401c-a9fe-3da440124dba", + "savedPayload": { + "position": { + "x": 31367.468235807, + "y": 24866.094417818753 + }, + "targetPosition": { + "x": 31115.092175957645, + "y": 24703.902172582075 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Pool", + "name": "Marketing Assets", + "id": "c1b99af4-d8ab-446e-b8c4-76d01c2f2766" + } + } + } + ], "assetWeightVotes": [], "featureWeightVotes": [], "positionWeightVotes": [], "id": "afe57422-eb5c-454c-9df0-02b19b5c6d98", "savedPayload": { "position": { - "x": 29073.294571510247, - "y": 24010.868775628824 + "x": 31115.092175957645, + "y": 24703.902172582075 }, "targetPosition": { - "x": 29193.26217880617, - "y": 23735.90009886783 + "x": 30821.948116166295, + "y": 24767.671759447967 }, "floatingObject": { "isPinned": false, @@ -1237,12 +1271,12 @@ "id": "408ed8b9-8c23-45c1-8a03-1425472d82fb", "savedPayload": { "position": { - "x": 29193.8171481856, - "y": 24637.66099312892 + "x": 31457.023948406266, + "y": 24127.47514455979 }, "targetPosition": { - "x": 28922.560425424857, - "y": 24509.521263313763 + "x": 31559.18256979482, + "y": 24409.54537708352 }, "floatingObject": { "isPinned": false, @@ -1270,12 +1304,12 @@ "id": "39184eb1-7092-4966-b918-e5f773f10fe6", "savedPayload": { "position": { - "x": 29066.69308055866, - "y": 24772.629183612793 + "x": 31642.331231757722, + "y": 24121.298434317807 }, "targetPosition": { - "x": 28922.560425424857, - "y": 24509.521263313763 + "x": 31559.18256979482, + "y": 24409.54537708352 }, "floatingObject": { "isPinned": false, @@ -1303,12 +1337,12 @@ "id": "4ad2fcb8-1e45-4355-821b-c26017171253", "savedPayload": { "position": { - "x": 28884.51523755937, - "y": 24807.099091251734 + "x": 31795.878552358423, + "y": 24225.222259059083 }, "targetPosition": { - "x": 28922.560425424857, - "y": 24509.521263313763 + "x": 31559.18256979482, + "y": 24409.54537708352 }, "floatingObject": { "isPinned": false, @@ -1336,12 +1370,12 @@ "id": "299c8fda-52e7-492f-9fdc-6f60c117ba59", "savedPayload": { "position": { - "x": 28716.869363216327, - "y": 24727.90438291674 + "x": 31859.01605262038, + "y": 24399.551249973334 }, "targetPosition": { - "x": 28922.560425424857, - "y": 24509.521263313763 + "x": 31559.18256979482, + "y": 24409.54537708352 }, "floatingObject": { "isPinned": false, @@ -1368,12 +1402,12 @@ "id": "11213396-1e11-49dd-a2fd-4bc5dcf6079c", "savedPayload": { "position": { - "x": 28922.560425424857, - "y": 24509.521263313763 + "x": 31559.18256979482, + "y": 24409.54537708352 }, "targetPosition": { - "x": 28866.786943275984, - "y": 24214.751321343778 + "x": 31391.03028912255, + "y": 24657.99016069693 }, "floatingObject": { "isPinned": false, @@ -1408,12 +1442,12 @@ "id": "e849933c-e1c3-43fd-ab4c-6ba5163b1ff0", "savedPayload": { "position": { - "x": 28616.976398256418, - "y": 24709.59868388157 + "x": 31916.990795811904, + "y": 24482.933695473115 }, "targetPosition": { - "x": 28639.395426332347, - "y": 24410.437544727214 + "x": 31690.265923505627, + "y": 24679.3919156567 }, "floatingObject": { "isPinned": false, @@ -1441,12 +1475,12 @@ "id": "cbba8d41-0e18-49c4-81a6-aaa35db061e7", "savedPayload": { "position": { - "x": 28412.00390938871, - "y": 24606.12376811065 + "x": 31989.501557888703, + "y": 24700.79367061647 }, "targetPosition": { - "x": 28639.395426332347, - "y": 24410.437544727214 + "x": 31690.265923505627, + "y": 24679.3919156567 }, "floatingObject": { "isPinned": false, @@ -1474,12 +1508,12 @@ "id": "81916bb9-0cc1-4e45-a3c7-dd61dbb45857", "savedPayload": { "position": { - "x": 28340.23428717799, - "y": 24388.018516651286 + "x": 31886.72414368921, + "y": 24906.116787962976 }, "targetPosition": { - "x": 28639.395426332347, - "y": 24410.437544727214 + "x": 31690.265923505627, + "y": 24679.3919156567 }, "floatingObject": { "isPinned": false, @@ -1506,12 +1540,12 @@ "id": "03177864-a507-4b91-8983-0c367ff90ec2", "savedPayload": { "position": { - "x": 28639.395426332347, - "y": 24410.437544727214 + "x": 31690.265923505627, + "y": 24679.3919156567 }, "targetPosition": { - "x": 28866.786943275984, - "y": 24214.751321343778 + "x": 31391.03028912255, + "y": 24657.99016069693 }, "floatingObject": { "isPinned": false, @@ -1539,12 +1573,12 @@ "id": "52b35a1e-b412-46b0-b959-96481f6819ea", "savedPayload": { "position": { - "x": 28866.786943275984, - "y": 24214.751321343778 + "x": 31391.03028912255, + "y": 24657.99016069693 }, "targetPosition": { - "x": 28965.870661862533, - "y": 23931.586322251267 + "x": 31121.18375054937, + "y": 24789.073514407737 }, "floatingObject": { "isPinned": false, @@ -1579,12 +1613,12 @@ "id": "1a477b35-cc49-4851-8db8-167c63a014fb", "savedPayload": { "position": { - "x": 28443.70920294891, - "y": 24183.046027783577 + "x": 31668.864168545857, + "y": 24978.627550039775 }, "targetPosition": { - "x": 28671.100719892547, - "y": 23987.35980440014 + "x": 31369.62853416278, + "y": 24957.225795080005 }, "floatingObject": { "isPinned": false, @@ -1612,12 +1646,12 @@ "id": "43a07b0b-b854-4d43-a489-351b012f7905", "savedPayload": { "position": { - "x": 28387.935720800037, - "y": 23888.27608581359 + "x": 31500.71188787359, + "y": 25227.072333653185 }, "targetPosition": { - "x": 28671.100719892547, - "y": 23987.35980440014 + "x": 31369.62853416278, + "y": 24957.225795080005 }, "floatingObject": { "isPinned": false, @@ -1644,12 +1678,12 @@ "id": "1b5667a6-9668-46a8-9a3e-fa6c9fafc085", "savedPayload": { "position": { - "x": 28671.100719892547, - "y": 23987.35980440014 + "x": 31369.62853416278, + "y": 24957.225795080005 }, "targetPosition": { - "x": 28965.870661862533, - "y": 23931.586322251267 + "x": 31121.18375054937, + "y": 24789.073514407737 }, "floatingObject": { "isPinned": false, @@ -1677,12 +1711,12 @@ "id": "6897de02-12f0-4af6-8adb-971661a08952", "savedPayload": { "position": { - "x": 28965.870661862533, - "y": 23931.586322251267 + "x": 31121.18375054937, + "y": 24789.073514407737 }, "targetPosition": { - "x": 29193.26217880617, - "y": 23735.90009886783 + "x": 30821.948116166295, + "y": 24767.671759447967 }, "floatingObject": { "isPinned": false, @@ -1704,7 +1738,7 @@ }, { "type": "Weight Votes Switch", - "name": "Management Pool Class", + "name": "Project Positions Pool Class", "config": "{}", "project": "Governance", "weightVotesSwitch": [], @@ -1717,12 +1751,12 @@ "id": "945dec69-2bfa-460a-be36-708e643880cd", "savedPayload": { "position": { - "x": 28613.706683032728, - "y": 23891.191525929346 + "x": 31384.11795116615, + "y": 24977.35026720743 }, "targetPosition": { - "x": 28903.48443091945, - "y": 23813.545812398588 + "x": 31103.033033666223, + "y": 24872.511013327698 }, "floatingObject": { "isPinned": false, @@ -1749,12 +1783,12 @@ "id": "2763bc74-2d10-4d24-b244-61c5ba3e3b6c", "savedPayload": { "position": { - "x": 28903.48443091945, - "y": 23813.545812398588 + "x": 31103.033033666223, + "y": 24872.511013327698 }, "targetPosition": { - "x": 29193.26217880617, - "y": 23735.90009886783 + "x": 30821.948116166295, + "y": 24767.671759447967 }, "floatingObject": { "isPinned": false, @@ -1789,12 +1823,12 @@ "id": "90e540c0-5853-46cb-b582-13c7084f6ab4", "savedPayload": { "position": { - "x": 28603.7222948662, - "y": 23624.353134570083 + "x": 31302.27286072091, + "y": 25127.238359354775 }, "targetPosition": { - "x": 28898.492236836184, - "y": 23680.126616718957 + "x": 31062.110488443603, + "y": 24947.45505940137 }, "floatingObject": { "isPinned": false, @@ -1821,12 +1855,12 @@ "id": "826c6b37-abe3-4753-8811-51a609886513", "savedPayload": { "position": { - "x": 28898.492236836184, - "y": 23680.126616718957 + "x": 31062.110488443603, + "y": 24947.45505940137 }, "targetPosition": { - "x": 29193.26217880617, - "y": 23735.90009886783 + "x": 30821.948116166295, + "y": 24767.671759447967 }, "floatingObject": { "isPinned": false, @@ -1848,7 +1882,7 @@ }, { "type": "Weight Votes Switch", - "name": "Programs Pool Class", + "name": "Governance Programs Pool Class", "config": "{}", "project": "Governance", "weightVotesSwitch": [ @@ -1867,12 +1901,12 @@ "id": "f619a49b-098f-4625-b240-194da7810d93", "savedPayload": { "position": { - "x": 28549.809812101244, - "y": 23975.15295191066 + "x": 31494.19445894539, + "y": 24702.277714459884 }, "targetPosition": { - "x": 28694.925478232817, - "y": 23712.585925338033 + "x": 31288.89973515675, + "y": 24921.033460406237 }, "floatingObject": { "isPinned": false, @@ -1900,12 +1934,12 @@ "id": "069a16f4-d8af-4170-bf3f-46aff6448644", "savedPayload": { "position": { - "x": 28394.977929958994, - "y": 23718.195585267305 + "x": 31580.995130264426, + "y": 24989.446033496934 }, "targetPosition": { - "x": 28694.925478232817, - "y": 23712.585925338033 + "x": 31288.89973515675, + "y": 24921.033460406237 }, "floatingObject": { "isPinned": false, @@ -1932,12 +1966,12 @@ "id": "649912b1-ae33-4c79-a33b-16eeeeda5f7e", "savedPayload": { "position": { - "x": 28694.925478232817, - "y": 23712.585925338033 + "x": 31288.89973515675, + "y": 24921.033460406237 }, "targetPosition": { - "x": 28951.88284487617, - "y": 23557.754043195782 + "x": 31001.7314161197, + "y": 25007.834131725274 }, "floatingObject": { "isPinned": false, @@ -1972,12 +2006,12 @@ "id": "1b751462-8459-4db8-a923-7e8290f530a5", "savedPayload": { "position": { - "x": 28420.684152268223, - "y": 23789.513663606256 + "x": 31569.00175309996, + "y": 24889.137301677045 }, "targetPosition": { - "x": 28655.23359700863, - "y": 23602.466723048634 + "x": 31301.26894448761, + "y": 25024.485531043156 }, "floatingObject": { "isPinned": false, @@ -2005,12 +2039,12 @@ "id": "4edb4e47-0596-4a25-8910-ce36f70d849e", "savedPayload": { "position": { - "x": 28375.97147241537, - "y": 23492.864415738717 + "x": 31552.35035378208, + "y": 25188.674830044954 }, "targetPosition": { - "x": 28655.23359700863, - "y": 23602.466723048634 + "x": 31301.26894448761, + "y": 25024.485531043156 }, "floatingObject": { "isPinned": false, @@ -2037,12 +2071,12 @@ "id": "a9da1c01-210d-4ae7-a8ae-0dde216427c9", "savedPayload": { "position": { - "x": 28655.23359700863, - "y": 23602.466723048634 + "x": 31301.26894448761, + "y": 25024.485531043156 }, "targetPosition": { - "x": 28951.88284487617, - "y": 23557.754043195782 + "x": 31001.7314161197, + "y": 25007.834131725274 }, "floatingObject": { "isPinned": false, @@ -2077,12 +2111,12 @@ "id": "e0c475b3-af55-41b2-b8ab-89207ef51d81", "savedPayload": { "position": { - "x": 28372.42867805662, - "y": 23568.591074000546 + "x": 31575.387872596184, + "y": 25090.313478376665 }, "targetPosition": { - "x": 28660.703874640152, - "y": 23485.540420573092 + "x": 31277.509507194198, + "y": 25125.929197173857 }, "floatingObject": { "isPinned": false, @@ -2110,12 +2144,12 @@ "id": "22240ff2-7098-4013-8c7a-d158527ba0d0", "savedPayload": { "position": { - "x": 28444.642300679312, - "y": 23277.41210376453 + "x": 31457.2928071476, + "y": 25366.091569451164 }, "targetPosition": { - "x": 28660.703874640152, - "y": 23485.540420573092 + "x": 31277.509507194198, + "y": 25125.929197173857 }, "floatingObject": { "isPinned": false, @@ -2142,12 +2176,12 @@ "id": "778b0d8f-b0b3-4295-b53b-b69e74abba5d", "savedPayload": { "position": { - "x": 28660.703874640152, - "y": 23485.540420573092 + "x": 31277.509507194198, + "y": 25125.929197173857 }, "targetPosition": { - "x": 28951.88284487617, - "y": 23557.754043195782 + "x": 31001.7314161197, + "y": 25007.834131725274 }, "floatingObject": { "isPinned": false, @@ -2180,12 +2214,12 @@ "id": "824f1346-b49f-47c7-9d01-2e6f0cc403a3", "savedPayload": { "position": { - "x": 28710.50351094617, - "y": 23379.607987523734 + "x": 31220.487162066052, + "y": 25213.128855513914 }, "targetPosition": { - "x": 28951.88284487617, - "y": 23557.754043195782 + "x": 31001.7314161197, + "y": 25007.834131725274 }, "floatingObject": { "isPinned": false, @@ -2220,12 +2254,12 @@ "id": "b582bead-c9bb-41e2-9dd1-bd6d6ce99f26", "savedPayload": { "position": { - "x": 28642.21908059167, - "y": 23043.839309909075 + "x": 31272.42787485192, + "y": 25543.29974894998 }, "targetPosition": { - "x": 28797.05096273392, - "y": 23300.79667655243 + "x": 31137.07964548581, + "y": 25275.566940337627 }, "floatingObject": { "isPinned": false, @@ -2252,12 +2286,12 @@ "id": "e402422d-6fe6-4655-97a1-3b4c1579d442", "savedPayload": { "position": { - "x": 28797.05096273392, - "y": 23300.79667655243 + "x": 31137.07964548581, + "y": 25275.566940337627 }, "targetPosition": { - "x": 28951.88284487617, - "y": 23557.754043195782 + "x": 31001.7314161197, + "y": 25007.834131725274 }, "floatingObject": { "isPinned": false, @@ -2292,12 +2326,12 @@ "id": "9a5d6e82-f4e8-45e4-bc53-f656a6ecc3ad", "savedPayload": { "position": { - "x": 28862.457485170467, - "y": 22964.455547460704 + "x": 31072.96285371408, + "y": 25603.590862529247 }, "targetPosition": { - "x": 28907.17016502332, - "y": 23261.104795328243 + "x": 31037.34713491689, + "y": 25305.71249712726 }, "floatingObject": { "isPinned": false, @@ -2324,12 +2358,12 @@ "id": "00b389bd-d693-4278-bd1f-254d6c924d23", "savedPayload": { "position": { - "x": 28907.17016502332, - "y": 23261.104795328243 + "x": 31037.34713491689, + "y": 25305.71249712726 }, "targetPosition": { - "x": 28951.88284487617, - "y": 23557.754043195782 + "x": 31001.7314161197, + "y": 25007.834131725274 }, "floatingObject": { "isPinned": false, @@ -2364,12 +2398,12 @@ "id": "c1ea3da7-aaa2-475c-ae29-51212262ea38", "savedPayload": { "position": { - "x": 29096.31009012155, - "y": 22975.396102723746 + "x": 30864.906269938307, + "y": 25592.02492194063 }, "targetPosition": { - "x": 29024.09646749886, - "y": 23266.575072959764 + "x": 30933.318843029003, + "y": 25299.92952683295 }, "floatingObject": { "isPinned": false, @@ -2396,12 +2430,12 @@ "id": "e589c4b6-e752-433c-abc7-c1ff97ffcb86", "savedPayload": { "position": { - "x": 29024.09646749886, - "y": 23266.575072959764 + "x": 30933.318843029003, + "y": 25299.92952683295 }, "targetPosition": { - "x": 28951.88284487617, - "y": 23557.754043195782 + "x": 31001.7314161197, + "y": 25007.834131725274 }, "floatingObject": { "isPinned": false, @@ -2420,6 +2454,78 @@ "id": "68e3f570-4156-4be6-8881-c526a06f85d0" } } + }, + { + "type": "Weight Votes Switch", + "name": "Github Prgoram Pool Class", + "config": "{}", + "project": "Governance", + "weightVotesSwitch": [], + "poolWeightVotes": [ + { + "type": "Pool Weight Vote", + "name": "Github Rewards Pool", + "config": "{}", + "project": "Governance", + "id": "c1a37736-8f96-4f65-940f-b6eea136d528", + "savedPayload": { + "position": { + "x": 30673.352818116102, + "y": 25509.996950314217 + }, + "targetPosition": { + "x": 30837.5421171179, + "y": 25258.915541019745 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Pool", + "name": "Github Rewards", + "id": "8829c80f-028b-4315-85a1-82ad502f0687" + } + } + } + ], + "assetWeightVotes": [], + "featureWeightVotes": [], + "positionWeightVotes": [], + "id": "5a485837-019e-4b06-b86e-73a2857e1558", + "savedPayload": { + "position": { + "x": 30837.5421171179, + "y": 25258.915541019745 + }, + "targetPosition": { + "x": 31001.7314161197, + "y": 25007.834131725274 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Pool Class", + "name": "Github Prgoram", + "id": "e4daed5d-1c83-4f64-a504-3aef7d73e688" + } + } } ], "poolWeightVotes": [], @@ -2429,12 +2535,12 @@ "id": "398a7fe7-1e5c-40dc-b60e-1d9ad7019f83", "savedPayload": { "position": { - "x": 28951.88284487617, - "y": 23557.754043195782 + "x": 31001.7314161197, + "y": 25007.834131725274 }, "targetPosition": { - "x": 29193.26217880617, - "y": 23735.90009886783 + "x": 30821.948116166295, + "y": 24767.671759447967 }, "floatingObject": { "isPinned": false, @@ -2453,6 +2559,924 @@ "id": "4fbb05ee-d7a0-43a7-9983-9fae7a7e4848" } } + }, + { + "type": "Weight Votes Switch", + "name": "Trading Intelligence Pool Class", + "config": "{}", + "project": "Governance", + "weightVotesSwitch": [], + "poolWeightVotes": [ + { + "type": "Pool Weight Vote", + "name": "Trading Intelligence Pool", + "config": "{}", + "project": "Governance", + "id": "41e5d7ff-c057-449f-94d7-aebe5c42b1b3", + "savedPayload": { + "position": { + "x": 31031.626623925757, + "y": 25329.841594447822 + }, + "targetPosition": { + "x": 30926.787370046026, + "y": 25048.756676947894 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Pool", + "name": "Trading Intelligence", + "id": "7f18003d-f622-46d4-b243-e681d78b0503" + } + } + } + ], + "assetWeightVotes": [], + "featureWeightVotes": [], + "positionWeightVotes": [], + "id": "98b0333d-4ba8-4b2c-b462-d425f65ce8b4", + "savedPayload": { + "position": { + "x": 30926.787370046026, + "y": 25048.756676947894 + }, + "targetPosition": { + "x": 30821.948116166295, + "y": 24767.671759447967 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Pool Class", + "name": "Trading Intelligence", + "id": "797462ec-4b62-4fef-a7a7-134598715519" + } + } + }, + { + "type": "Weight Votes Switch", + "name": "Education Pool Class", + "config": "{}", + "project": "Governance", + "weightVotesSwitch": [], + "poolWeightVotes": [ + { + "type": "Pool Weight Vote", + "name": "Foundations Project Pool", + "config": "{}", + "project": "Governance", + "id": "f6bcaf32-2e4e-4218-9f63-654664f8c570", + "savedPayload": { + "position": { + "x": 31113.196409699245, + "y": 25197.99074754185 + }, + "targetPosition": { + "x": 30843.349871126065, + "y": 25066.907393831043 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Pool", + "name": "Foundations Project", + "id": "4d0ddf20-6ff5-4817-9ac1-17a247b50776" + } + } + }, + { + "type": "Pool Weight Vote", + "name": "Tensor Flow Project Pool", + "config": "{}", + "project": "Governance", + "id": "f186c72f-10b2-4a5b-97d2-da57ed5f792b", + "savedPayload": { + "position": { + "x": 31011.502151798333, + "y": 25315.352177444453 + }, + "targetPosition": { + "x": 30843.349871126065, + "y": 25066.907393831043 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Pool", + "name": "Tensor Flow Project", + "id": "f6bdf0ec-e467-4d2f-aa9e-f4c2dd5eda50" + } + } + }, + { + "type": "Pool Weight Vote", + "name": "Governance Project Pool", + "config": "{}", + "project": "Governance", + "id": "1bb2e605-146b-441d-ab4e-92cc742c0f72", + "savedPayload": { + "position": { + "x": 30864.751626085836, + "y": 25366.14302821412 + }, + "targetPosition": { + "x": 30843.349871126065, + "y": 25066.907393831043 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Pool", + "name": "Governance Project", + "id": "e56590f0-e91f-4041-af03-e1219075f47f" + } + } + }, + { + "type": "Pool Weight Vote", + "name": "Education Project Pool", + "config": "{}", + "project": "Governance", + "id": "6dbb33db-1366-4972-9d01-16bd99894c37", + "savedPayload": { + "position": { + "x": 30712.266517415257, + "y": 25336.753932404223 + }, + "targetPosition": { + "x": 30843.349871126065, + "y": 25066.907393831043 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Pool", + "name": "Education Project", + "id": "df0b920e-bac5-4ac7-9954-45960f453556" + } + } + }, + { + "type": "Pool Weight Vote", + "name": "Ethereum Project Pool", + "config": "{}", + "project": "Governance", + "id": "9f4f632f-dc91-4f81-a24e-149d368c7a8d", + "savedPayload": { + "position": { + "x": 30594.905087512656, + "y": 25235.05967450331 + }, + "targetPosition": { + "x": 30843.349871126065, + "y": 25066.907393831043 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Pool", + "name": "Ethereum Project", + "id": "ea3f169f-8fff-4501-ae75-c850158baff3" + } + } + } + ], + "assetWeightVotes": [], + "featureWeightVotes": [], + "positionWeightVotes": [], + "id": "3b4e1498-fda8-44a4-8a5b-b74ca637b269", + "savedPayload": { + "position": { + "x": 30843.349871126065, + "y": 25066.907393831043 + }, + "targetPosition": { + "x": 30821.948116166295, + "y": 24767.671759447967 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Pool Class", + "name": "Education", + "id": "fe6ac3ba-f6db-4b71-858a-e594d6bbf314" + } + } + }, + { + "type": "Weight Votes Switch", + "name": "Business Development Pool Class", + "config": "{}", + "project": "Governance", + "weightVotesSwitch": [ + { + "type": "Weight Votes Switch", + "name": "Partnerships Pool Class", + "config": "{}", + "project": "Governance", + "weightVotesSwitch": [ + { + "type": "Weight Votes Switch", + "name": "Exchanges Pool Class", + "config": "{}", + "project": "Governance", + "weightVotesSwitch": [], + "poolWeightVotes": [ + { + "type": "Pool Weight Vote", + "name": "User Benefits Pool", + "config": "{}", + "project": "Governance", + "id": "ef528bda-b068-4e48-aa08-ff8c61f853ee", + "savedPayload": { + "position": { + "x": 31007.74029943035, + "y": 25841.5129873218 + }, + "targetPosition": { + "x": 30785.754890115484, + "y": 25639.714875211423 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Pool", + "name": "User Benefits", + "id": "5b93525d-63e5-4dee-b276-8a87c53669dc" + } + } + }, + { + "type": "Pool Weight Vote", + "name": "Promotion Pool", + "config": "{}", + "project": "Governance", + "id": "823a90e7-94b3-46d8-84ac-b86586fc60ef", + "savedPayload": { + "position": { + "x": 30721.985303249592, + "y": 25932.85893500277 + }, + "targetPosition": { + "x": 30785.754890115484, + "y": 25639.714875211423 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Pool", + "name": "Promotion", + "id": "6d22af30-c333-4f82-b8de-2d744924844f" + } + } + } + ], + "assetWeightVotes": [], + "featureWeightVotes": [], + "positionWeightVotes": [], + "id": "7aa0958d-9ab2-45eb-983e-899481e44e89", + "savedPayload": { + "position": { + "x": 30785.754890115484, + "y": 25639.714875211423 + }, + "targetPosition": { + "x": 30694.40894243451, + "y": 25353.959879030663 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Pool Class", + "name": "Exchanges", + "id": "eacd4207-69aa-4475-8d5a-19a1cd4f58d8" + } + } + }, + { + "type": "Weight Votes Switch", + "name": "Data APIs Pool Class", + "config": "{}", + "project": "Governance", + "weightVotesSwitch": [], + "poolWeightVotes": [ + { + "type": "Pool Weight Vote", + "name": "User Benefits Pool", + "config": "{}", + "project": "Governance", + "id": "936943b7-225f-4851-8b04-cd98e15bd8b8", + "savedPayload": { + "position": { + "x": 30428.841243458242, + "y": 25869.089348136877 + }, + "targetPosition": { + "x": 30492.610830324134, + "y": 25575.945288345527 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Pool", + "name": "User Benefits", + "id": "4083b97e-fdc4-43ec-bb40-c165d98290cc" + } + } + }, + { + "type": "Pool Weight Vote", + "name": "Promotion Pool", + "config": "{}", + "project": "Governance", + "id": "aef375e2-defd-4d9e-bb05-153f05f8aadb", + "savedPayload": { + "position": { + "x": 30206.855834143375, + "y": 25667.2912360265 + }, + "targetPosition": { + "x": 30492.610830324134, + "y": 25575.945288345527 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Pool", + "name": "Promotion", + "id": "7fc28f21-fc73-49a7-925e-0609a9104b34" + } + } + } + ], + "assetWeightVotes": [], + "featureWeightVotes": [], + "positionWeightVotes": [], + "id": "9699d485-af2e-4b5d-ac0d-346ff3c83e76", + "savedPayload": { + "position": { + "x": 30492.610830324134, + "y": 25575.945288345527 + }, + "targetPosition": { + "x": 30694.40894243451, + "y": 25353.959879030663 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Pool Class", + "name": "Data APIs", + "id": "979bc0da-13bd-4d04-bdb9-264d3b69beb0" + } + } + } + ], + "poolWeightVotes": [], + "assetWeightVotes": [], + "featureWeightVotes": [], + "positionWeightVotes": [], + "id": "815a5b4d-da75-493d-9d15-45bd5df772b3", + "savedPayload": { + "position": { + "x": 30694.40894243451, + "y": 25353.959879030663 + }, + "targetPosition": { + "x": 30758.178529300403, + "y": 25060.815819239317 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Pool Class", + "name": "Partnerships", + "id": "eb9a0189-35ce-456b-ab7f-8eb62888215e" + } + } + } + ], + "poolWeightVotes": [], + "assetWeightVotes": [], + "featureWeightVotes": [], + "positionWeightVotes": [], + "id": "850106f4-4692-4924-b2bf-e14ca2f2e533", + "savedPayload": { + "position": { + "x": 30758.178529300403, + "y": 25060.815819239317 + }, + "targetPosition": { + "x": 30821.948116166295, + "y": 24767.671759447967 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Pool Class", + "name": "Business Development", + "id": "32eb1f2e-d640-4c29-af0f-3d44e12e8206" + } + } + }, + { + "type": "Weight Votes Switch", + "name": "Exchange Listings Pool Class", + "config": "{}", + "project": "Governance", + "weightVotesSwitch": [ + { + "type": "Weight Votes Switch", + "name": "Fisrt SA Token Listing Pool Class", + "config": "{}", + "project": "Governance", + "weightVotesSwitch": [], + "poolWeightVotes": [ + { + "type": "Pool Weight Vote", + "name": "For The Exchange Pool", + "config": "{}", + "project": "Governance", + "id": "d085803e-c853-4273-8546-67ad0d51e2b9", + "savedPayload": { + "position": { + "x": 30979.813398634225, + "y": 25525.847051847126 + }, + "targetPosition": { + "x": 30762.693187202705, + "y": 25318.823348402493 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Pool", + "name": "For The Exchange", + "id": "018f1bfc-c56a-4c25-8624-5822809449a2" + } + } + }, + { + "type": "Pool Weight Vote", + "name": "For Facilitators Pool", + "config": "{}", + "project": "Governance", + "id": "d84056ec-893d-4f7b-b272-1ff6fb567cdc", + "savedPayload": { + "position": { + "x": 30691.965506549877, + "y": 25610.366818899554 + }, + "targetPosition": { + "x": 30762.693187202705, + "y": 25318.823348402493 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Pool", + "name": "For Facilitators", + "id": "607b4bee-2d75-4842-a5de-1eacc7dc0150" + } + } + } + ], + "assetWeightVotes": [], + "featureWeightVotes": [], + "positionWeightVotes": [], + "id": "3ffd68cd-df63-4c14-a3f8-3f5b78a359e9", + "savedPayload": { + "position": { + "x": 30762.693187202705, + "y": 25318.823348402493 + }, + "targetPosition": { + "x": 30678.173420150277, + "y": 25030.975456318145 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Pool Class", + "name": "Fisrt SA Token Listing", + "id": "3c035245-67cc-4657-9c32-626ea88c0423" + } + } + }, + { + "type": "Weight Votes Switch", + "name": "Second SA Token Listing Pool Class", + "config": "{}", + "project": "Governance", + "weightVotesSwitch": [], + "poolWeightVotes": [ + { + "type": "Pool Weight Vote", + "name": "For The Exchange Pool", + "config": "{}", + "project": "Governance", + "id": "96d9b093-468c-4611-9a48-aeaa119cc54f", + "savedPayload": { + "position": { + "x": 30541.53803339809, + "y": 25594.194191596263 + }, + "targetPosition": { + "x": 30534.39872413426, + "y": 25294.279153188323 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Pool", + "name": "For The Exchange", + "id": "668d3f18-41dd-4c13-b057-a7916316c19a" + } + } + }, + { + "type": "Pool Weight Vote", + "name": "For Facilitators Pool", + "config": "{}", + "project": "Governance", + "id": "11c9c670-1500-4a91-88d2-d16ffba897aa", + "savedPayload": { + "position": { + "x": 30278.234336527916, + "y": 25450.419495580245 + }, + "targetPosition": { + "x": 30534.39872413426, + "y": 25294.279153188323 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Pool", + "name": "For Facilitators", + "id": "aa157869-196c-48a9-beef-439a859e3438" + } + } + } + ], + "assetWeightVotes": [], + "featureWeightVotes": [], + "positionWeightVotes": [], + "id": "ffa23f9d-1dc2-4bb8-ac19-fb5c81d39ec0", + "savedPayload": { + "position": { + "x": 30534.39872413426, + "y": 25294.279153188323 + }, + "targetPosition": { + "x": 30678.173420150277, + "y": 25030.975456318145 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Pool Class", + "name": "Second SA Token Listing", + "id": "738ea920-0ca8-4e64-b460-0b2fc9b9f9e7" + } + } + }, + { + "type": "Weight Votes Switch", + "name": "Third SA Token Listing Pool Class", + "config": "{}", + "project": "Governance", + "weightVotesSwitch": [], + "poolWeightVotes": [ + { + "type": "Pool Weight Vote", + "name": "For The Exchange Pool", + "config": "{}", + "project": "Governance", + "id": "51372ca9-be08-4065-ba85-6a04aa2ba575", + "savedPayload": { + "position": { + "x": 30183.301824621296, + "y": 25332.615434802094 + }, + "targetPosition": { + "x": 30390.32552806593, + "y": 25115.495223370574 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Pool", + "name": "For The Exchange", + "id": "53e2bf54-b312-417a-9a32-ca6b21046a87" + } + } + }, + { + "type": "Pool Weight Vote", + "name": "For Facilitators Pool", + "config": "{}", + "project": "Governance", + "id": "5ea04216-5471-4092-8f51-a3d554030e7e", + "savedPayload": { + "position": { + "x": 30098.782057568867, + "y": 25044.767542717746 + }, + "targetPosition": { + "x": 30390.32552806593, + "y": 25115.495223370574 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Pool", + "name": "For Facilitators", + "id": "68658a7c-2f2e-4157-9897-0e07b5757e21" + } + } + } + ], + "assetWeightVotes": [], + "featureWeightVotes": [], + "positionWeightVotes": [], + "id": "c763fe29-1461-49bb-bc7e-36d7d9ea216d", + "savedPayload": { + "position": { + "x": 30390.32552806593, + "y": 25115.495223370574 + }, + "targetPosition": { + "x": 30678.173420150277, + "y": 25030.975456318145 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Pool Class", + "name": "Third SA Token Listing", + "id": "e363d7d2-9c3b-49ce-aca4-f2f4c606f035" + } + } + } + ], + "poolWeightVotes": [], + "assetWeightVotes": [], + "featureWeightVotes": [], + "positionWeightVotes": [], + "id": "e63d25e0-6263-44b1-a37b-33e58eb77db0", + "savedPayload": { + "position": { + "x": 30678.173420150277, + "y": 25030.975456318145 + }, + "targetPosition": { + "x": 30821.948116166295, + "y": 24767.671759447967 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Pool Class", + "name": "Exchange Listings", + "id": "b6d7a4fe-8990-47a2-a7ce-f5fd90384b53" + } + } } ], "poolWeightVotes": [], @@ -2462,12 +3486,12 @@ "id": "e059f5c4-9132-4d76-9f3e-1060658fa704", "savedPayload": { "position": { - "x": 30821.948116166295, - "y": 24767.671759447967 + "x": 31095.246883914384, + "y": 24632.592321797223 }, "targetPosition": { - "x": 30609.81608181033, - "y": 24555.539725092003 + "x": 30843.645713530757, + "y": 24469.200611292716 }, "floatingObject": { "isPinned": false, @@ -3544,12 +4568,12 @@ "id": "a974ed8d-787f-4965-aa84-171534847e18", "savedPayload": { "position": { - "x": 30746.013231732195, - "y": 24822.841682348513 + "x": 31032.44183084571, + "y": 24702.344399729805 }, "targetPosition": { - "x": 30609.81608181033, - "y": 24555.539725092003 + "x": 30843.645713530757, + "y": 24469.200611292716 }, "floatingObject": { "isPinned": false, @@ -3898,17 +4922,17 @@ "id": "58949e1e-3502-4317-ae8e-b4c56350902e", "savedPayload": { "position": { - "x": 30656.7464213224, - "y": 24851.846227270544 + "x": 30951.15609839435, + "y": 24749.274739241875 }, "targetPosition": { - "x": 30609.81608181033, - "y": 24555.539725092003 + "x": 30843.645713530757, + "y": 24469.200611292716 }, "floatingObject": { "isPinned": false, "isFrozen": false, - "isCollapsed": false, + "isCollapsed": true, "angleToParent": 3, "distanceToParent": 3, "arrangementStyle": 0 @@ -3935,12 +4959,12 @@ "id": "7607658c-f3ad-42de-a316-35dd052e0477", "savedPayload": { "position": { - "x": 30562.885742298262, - "y": 24851.846227270544 + "x": 30859.34650040364, + "y": 24768.789471719087 }, "targetPosition": { - "x": 30609.81608181033, - "y": 24555.539725092003 + "x": 30843.645713530757, + "y": 24469.200611292716 }, "floatingObject": { "isPinned": false, @@ -3965,12 +4989,12 @@ "id": "1d398124-3f36-40a1-8b3b-6c77ad489b92", "savedPayload": { "position": { - "x": 30609.81608181033, - "y": 24555.539725092003 + "x": 30843.645713530757, + "y": 24469.200611292716 }, "targetPosition": { - "x": 30517.11098349785, - "y": 24270.222770203458 + "x": 30693.645713530757, + "y": 24209.392990157383 }, "floatingObject": { "isPinned": false, @@ -4031,12 +5055,12 @@ "id": "67805814-d2e1-4f8e-bdeb-6a46cc29ceff", "savedPayload": { "position": { - "x": 30493.573254779494, - "y": 24569.297970323398 + "x": 30732.80357119677, + "y": 24506.826448569525 }, "targetPosition": { - "x": 30517.11098349785, - "y": 24270.222770203458 + "x": 30693.645713530757, + "y": 24209.392990157383 }, "floatingObject": { "isPinned": false, @@ -4055,12 +5079,12 @@ "id": "2b8d3ce7-515c-44ad-8d80-3c2be6d7736f", "savedPayload": { "position": { - "x": 30517.11098349785, - "y": 24270.222770203458 + "x": 30693.645713530757, + "y": 24209.392990157383 }, "targetPosition": { - "x": 30424.405885185366, - "y": 23984.905815314913 + "x": 30543.645713530757, + "y": 23949.58536902205 }, "floatingObject": { "isPinned": false, @@ -4083,12 +5107,12 @@ "id": "e9c0e495-7985-4381-bf75-865d87289038", "savedPayload": { "position": { - "x": 30362.03237794004, - "y": 24278.350095535054 + "x": 30543.645713530757, + "y": 24249.58536902205 }, "targetPosition": { - "x": 30424.405885185366, - "y": 23984.905815314913 + "x": 30543.645713530757, + "y": 23949.58536902205 }, "floatingObject": { "isPinned": false, @@ -4106,12 +5130,12 @@ "id": "d5ed432e-78bf-432e-be3b-8649932f7a65", "savedPayload": { "position": { - "x": 30424.405885185366, - "y": 23984.905815314913 + "x": 30543.645713530757, + "y": 23949.58536902205 }, "targetPosition": { - "x": 30408.705098312483, - "y": 23685.31695488854 + "x": 30466, + "y": 23659.80762113533 }, "floatingObject": { "isPinned": false, @@ -4129,8 +5153,8 @@ "id": "91013892-d9c9-4ca4-8404-7ceb90dfcf1b", "savedPayload": { "position": { - "x": 30408.705098312483, - "y": 23685.31695488854 + "x": 30466, + "y": 23659.80762113533 }, "targetPosition": { "x": 30316, @@ -4200,7 +5224,7 @@ "floatingObject": { "isPinned": false, "isFrozen": false, - "isCollapsed": true, + "isCollapsed": false, "angleToParent": 1, "distanceToParent": 3, "arrangementStyle": 0 @@ -4213,8 +5237,8 @@ "id": "e5337d8d-f495-4bc5-a42a-08e6c8b96b4b", "savedPayload": { "position": { - "x": 30223.294901687517, - "y": 23685.31695488854 + "x": 30316, + "y": 23699.999999999996 }, "targetPosition": { "x": 30316, @@ -4223,7 +5247,7 @@ "floatingObject": { "isPinned": false, "isFrozen": false, - "isCollapsed": false, + "isCollapsed": true, "angleToParent": 2, "distanceToParent": 3, "arrangementStyle": 0 @@ -4261,12 +5285,12 @@ "id": "b78715ee-cbcf-4fce-914a-d3efa55d7849", "savedPayload": { "position": { - "x": 29739.927349432593, - "y": 24325.091357278743 + "x": 30166, + "y": 24479.422863405995 }, "targetPosition": { - "x": 29708.568810452296, - "y": 24026.734788668262 + "x": 30016, + "y": 24219.615242270662 }, "floatingObject": { "isPinned": false, @@ -4296,12 +5320,12 @@ "id": "d684a95b-fc8a-4545-8db5-601128a924cf", "savedPayload": { "position": { - "x": 29343.842719217075, - "y": 24477.134001648785 + "x": 29866, + "y": 24779.422863405995 }, "targetPosition": { - "x": 29465.863712139813, - "y": 24203.070364356005 + "x": 29866, + "y": 24479.422863405995 }, "floatingObject": { "isPinned": false, @@ -4324,12 +5348,12 @@ "id": "bfb493fb-ac94-4be4-9433-38c24bb5f254", "savedPayload": { "position": { - "x": 29167.507143529332, - "y": 24234.428903336302 + "x": 29606.192378864667, + "y": 24629.422863405995 }, "targetPosition": { - "x": 29465.863712139813, - "y": 24203.070364356005 + "x": 29866, + "y": 24479.422863405995 }, "floatingObject": { "isPinned": false, @@ -4348,12 +5372,12 @@ "id": "477c0363-96ff-464c-bdda-ed40fa20df12", "savedPayload": { "position": { - "x": 29465.863712139813, - "y": 24203.070364356005 + "x": 29866, + "y": 24479.422863405995 }, "targetPosition": { - "x": 29708.568810452296, - "y": 24026.734788668262 + "x": 30016, + "y": 24219.615242270662 }, "floatingObject": { "isPinned": false, @@ -4373,12 +5397,12 @@ "id": "681ff42a-d5af-4fed-971e-935398dac2aa", "savedPayload": { "position": { - "x": 29708.568810452296, - "y": 24026.734788668262 + "x": 30016, + "y": 24219.615242270662 }, "targetPosition": { - "x": 29830.589803375035, - "y": 23752.67115137548 + "x": 30016, + "y": 23919.615242270662 }, "floatingObject": { "isPinned": false, @@ -4401,12 +5425,12 @@ "id": "e4be3ce4-3569-4d97-8d54-95bb4cfcb0c5", "savedPayload": { "position": { - "x": 29532.233234764553, - "y": 23784.02969035578 + "x": 29756.192378864667, + "y": 24069.615242270662 }, "targetPosition": { - "x": 29830.589803375035, - "y": 23752.67115137548 + "x": 30016, + "y": 23919.615242270662 }, "floatingObject": { "isPinned": false, @@ -4424,17 +5448,17 @@ "id": "3ff7f410-911d-4cb8-9094-d816dee4dccb", "savedPayload": { "position": { - "x": 29830.589803375035, - "y": 23752.67115137548 + "x": 30016, + "y": 23919.615242270662 }, "targetPosition": { - "x": 30073.294901687517, - "y": 23576.33557568774 + "x": 30166, + "y": 23659.80762113533 }, "floatingObject": { "isPinned": false, "isFrozen": false, - "isCollapsed": true, + "isCollapsed": false, "angleToParent": 1, "distanceToParent": 3, "arrangementStyle": 0 @@ -4447,8 +5471,92 @@ "id": "a1dc7a1b-dd1a-47dc-b274-a3d00712f711", "savedPayload": { "position": { - "x": 30073.294901687517, - "y": 23576.33557568774 + "x": 30166, + "y": 23659.80762113533 + }, + "targetPosition": { + "x": 30316, + "y": 23399.999999999996 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": true, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + { + "type": "Token Power Switch", + "name": "Github", + "config": "{}", + "project": "Governance", + "tokenPowerSwitch": [], + "githubProgram": { + "type": "Github Program", + "name": "New Github Program", + "config": "{}", + "project": "Governance", + "tokensAwarded": { + "type": "Tokens Awarded", + "name": "New Tokens Awarded", + "project": "Governance", + "id": "b4b3388d-79d1-4f1f-b989-1731137bbfb4", + "savedPayload": { + "position": { + "x": 29536.577136594, + "y": 23849.999999999996 + }, + "targetPosition": { + "x": 29796.384757729335, + "y": 23699.999999999996 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "id": "478a6eb4-2428-4060-8204-51be7eba66f2", + "savedPayload": { + "position": { + "x": 29796.384757729335, + "y": 23699.999999999996 + }, + "targetPosition": { + "x": 30056.192378864667, + "y": 23549.999999999996 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "id": "de5be1f8-6151-4a0e-bb08-8962420d66e9", + "savedPayload": { + "position": { + "x": 30056.192378864667, + "y": 23549.999999999996 }, "targetPosition": { "x": 30316, diff --git a/Projects/Governance/Schemas/App-Schema/github-program.json b/Projects/Governance/Schemas/App-Schema/github-program.json new file mode 100644 index 000000000..02848cbe4 --- /dev/null +++ b/Projects/Governance/Schemas/App-Schema/github-program.json @@ -0,0 +1,51 @@ +{ + "type": "Github Program", + "menuItems": [ + { + "action": "Configure", + "actionFunction": "uiObject.configEditor.activate", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration" + }, + { + "action": "Add UI Object", + "actionProject": "Foundations", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "tokensAwarded", + "actionFunction": "payload.executeAction", + "label": "Add Tokens Awarded", + "relatedUiObject": "Tokens Awarded" + }, + { + "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": "{}" + }, + "attachingRules": { + "compatibleTypes": "->Token Power Switch->" + }, + "addLeftIcons": true, + "level": 1, + "propertyNameAtParent": "githubProgram", + "childrenNodesProperties": [ + { + "name": "tokensAwarded", + "type": "node", + "childType": "Tokens Awarded", + "autoAdd": true + } + ] +} \ No newline at end of file diff --git a/Projects/Governance/Schemas/App-Schema/token-power-switch.json b/Projects/Governance/Schemas/App-Schema/token-power-switch.json index 966f72788..f45aa674e 100644 --- a/Projects/Governance/Schemas/App-Schema/token-power-switch.json +++ b/Projects/Governance/Schemas/App-Schema/token-power-switch.json @@ -78,6 +78,15 @@ "label": "Add Delegation Program", "relatedUiObject": "Delegation Program" }, + { + "action": "Add UI Object", + "actionProject": "Foundations", + "actionFunction": "payload.executeAction", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "githubProgram", + "label": "Add Github Program", + "relatedUiObject": "Github Program" + }, { "action": "Delete UI Object", "actionProject": "Foundations", @@ -149,6 +158,12 @@ "type": "node", "childType": "Delegation Program", "autoAdd": false + }, + { + "name": "githubProgram", + "type": "node", + "childType": "Github Program", + "autoAdd": false } ] } \ No newline at end of file diff --git a/Projects/Governance/Schemas/App-Schema/tokens-awarded.json b/Projects/Governance/Schemas/App-Schema/tokens-awarded.json index 997aa3a30..f5dfc3bb4 100644 --- a/Projects/Governance/Schemas/App-Schema/tokens-awarded.json +++ b/Projects/Governance/Schemas/App-Schema/tokens-awarded.json @@ -15,7 +15,7 @@ "addLeftIcons": true, "level": 2, "attachingRules": { - "compatibleTypes": "->Referral Program->Mentorship Program->Support Program->Claims Program->Staking Program->" + "compatibleTypes": "->Referral Program->Mentorship Program->Support Program->Claims Program->Staking Program->Github Program->" }, "propertyNameAtParent": "tokensAwarded" } \ No newline at end of file diff --git a/Projects/Governance/UI/Function-Libraries/DistributionProcess.js b/Projects/Governance/UI/Function-Libraries/DistributionProcess.js index a48a320bc..ddb06403d 100644 --- a/Projects/Governance/UI/Function-Libraries/DistributionProcess.js +++ b/Projects/Governance/UI/Function-Libraries/DistributionProcess.js @@ -98,11 +98,18 @@ function newGovernanceFunctionLibraryDistributionProcess() { userProfiles ) /* + Run the Github Program + */ + UI.projects.governance.functionLibraries.githubProgram.calculate( + pools, + userProfiles + ) + /* After all the programs were ran, we can calculate the tokens mining calculation each profile. */ UI.projects.governance.functionLibraries.tokenMining.calculate( - userProfiles - ) + userProfiles + ) } } \ No newline at end of file diff --git a/Projects/Governance/UI/Function-Libraries/GithubProgram.js b/Projects/Governance/UI/Function-Libraries/GithubProgram.js new file mode 100644 index 000000000..69aec925d --- /dev/null +++ b/Projects/Governance/UI/Function-Libraries/GithubProgram.js @@ -0,0 +1,191 @@ +function newGovernanceFunctionLibraryGithubProgram() { + let thisObject = { + calculate: calculate + } + + return thisObject + + function calculate( + pools, + userProfiles + ) { + let programPoolTokenReward + /* + In order to be able to calculate the share of the Program Pool for each User Profile, + we need to accumulate all the Github Power that each User Profile at their Program + node has, because with that Power is that each Program node gets a share of the pool. + */ + let accumulatedProgramPower = 0 + + /* Scan Pools Until finding the Mentoship-Program Pool */ + for (let i = 0; i < pools.length; i++) { + let poolsNode = pools[i] + programPoolTokenReward = UI.projects.governance.utilities.pools.findPool(poolsNode, "Github-Rewards") + } + if (programPoolTokenReward === undefined || programPoolTokenReward === 0) { return } + + for (let i = 0; i < userProfiles.length; i++) { + let userProfile = userProfiles[i] + + if (userProfile.tokenPowerSwitch === undefined) { continue } + let program = UI.projects.governance.utilities.validations.onlyOneProgram(userProfile, "Github Program") + if (program === undefined) { continue } + if (program.payload === undefined) { continue } + + resetProgram(program) + } + for (let i = 0; i < userProfiles.length; i++) { + let userProfile = userProfiles[i] + + if (userProfile.tokenPowerSwitch === undefined) { continue } + let program = UI.projects.governance.utilities.validations.onlyOneProgram(userProfile, "Github Program") + if (program === undefined) { continue } + if (program.payload === undefined) { continue } + + validateProgram(program, userProfile) + } + for (let i = 0; i < userProfiles.length; i++) { + let userProfile = userProfiles[i] + + if (userProfile.tokenPowerSwitch === undefined) { continue } + let program = UI.projects.governance.utilities.validations.onlyOneProgram(userProfile, "Github Program") + if (program === undefined) { continue } + if (program.payload === undefined) { continue } + if (program.payload.githubProgram.isActive === false) { continue } + + distributeProgram(program) + } + for (let i = 0; i < userProfiles.length; i++) { + let userProfile = userProfiles[i] + + if (userProfile.tokenPowerSwitch === undefined) { continue } + let program = UI.projects.governance.utilities.validations.onlyOneProgram(userProfile, "Github Program") + if (program === undefined) { continue } + if (program.payload === undefined) { continue } + if (program.payload.githubProgram.isActive === false) { continue } + + calculateProgram(program) + } + + function resetProgram(node) { + if (node === undefined) { return } + if (node.payload === undefined) { return } + if (node.payload.githubProgram === undefined) { + node.payload.githubProgram = { + count: 0, + percentage: 0, + outgoingPower: 0, + ownPower: 0, + incomingPower: 0, + awarded: { + tokens: 0, + percentage: 0 + } + } + } else { + node.payload.githubProgram.count = 0 + node.payload.githubProgram.percentage = 0 + node.payload.githubProgram.outgoingPower = 0 + node.payload.githubProgram.ownPower = 0 + node.payload.githubProgram.incomingPower = 0 + node.payload.githubProgram.awarded = { + tokens: 0, + percentage: 0 + } + } + } + + function validateProgram(node, userProfile) { + /* + This program is not going to run unless the Profile has Tokens, and for + that users needs to execute the setup procedure of signing their Github + username with their private key. + */ + if ( + userProfile.payload.blockchainTokens === undefined + ) { + node.payload.githubProgram.isActive = false + userProfile.payload.uiObject.setErrorMessage("You need to setup this profile with the Profile Constructor, to access the Token Power of your account at the Blockchain.") + return + } + /* + Next thing to do is to validate if the github user profile has a star at the Superalgos repository. + */ + let profileSignature = UI.projects.foundations.utilities.nodeConfig.loadConfigProperty(userProfile.payload, 'signature') + if ( + profileSignature === undefined + ) { + node.payload.githubProgram.isActive = false + userProfile.payload.uiObject.setErrorMessage("You need to setup this profile with the Profile Constructor, and produce a signature of your Github Username.") + return + } + let githubUsername = profileSignature.message + node.payload.githubProgram.hasStar = UI.projects.governance.spaces.userProfileSpace.githubStars.get(githubUsername) + + if (node.payload.githubProgram.hasStar === true) { + node.payload.githubProgram.isActive = true + } else { + node.payload.githubProgram.isActive = false + } + } + + function distributeProgram(programNode) { + if (programNode === undefined || programNode.payload === undefined) { return } + /* + Here we will convert Token Power into Github Power. + As per system rules Github Powar = tokensPower + */ + let programPower = programNode.payload.tokenPower + programNode.payload.githubProgram.ownPower = programPower + + accumulatedProgramPower = accumulatedProgramPower + programPower + } + + function calculateProgram(programNode) { + /* + Here we will calculate which share of the Program Pool this user will get in tokens. + To do that, we use the ownPower, to see which proportion of the accumulatedProgramPower + represents. + */ + if (programNode.payload === undefined) { return } + /* + If the accumulatedProgramPower is not grater the amount of tokens at the Program Pool, then + this user will get the exact amount of tokens from the pool as incomingPower he has. + + If the accumulatedProgramPower is grater the amount of tokens at the Program Pool, then + the amount ot tokens to be received is a proportional to the share of incomingPower in accumulatedProgramPower. + */ + let totalPowerRewardRatio = accumulatedProgramPower / programPoolTokenReward + if (totalPowerRewardRatio < 1) { totalPowerRewardRatio = 1 } + + if (programNode.tokensAwarded === undefined || programNode.tokensAwarded.payload === undefined) { + programNode.payload.uiObject.setErrorMessage("Tokens Awarded Node is needed in order for this Program to get Tokens from the Program Pool.") + return + } + programNode.payload.githubProgram.awarded.tokens = programNode.payload.githubProgram.ownPower / totalPowerRewardRatio + + drawProgram(programNode) + } + + function drawProgram(node) { + if (node.payload !== undefined) { + + const ownPowerText = parseFloat(node.payload.githubProgram.ownPower.toFixed(0)).toLocaleString('en') + + node.payload.uiObject.statusAngleOffset = 0 + node.payload.uiObject.statusAtAngle = false + + node.payload.uiObject.setStatus(ownPowerText + ' Github Power') + } + if (node.tokensAwarded !== undefined && node.tokensAwarded.payload !== undefined) { + + const tokensAwardedText = parseFloat(node.payload.githubProgram.awarded.tokens.toFixed(0)).toLocaleString('en') + + node.tokensAwarded.payload.uiObject.valueAngleOffset = 0 + node.tokensAwarded.payload.uiObject.valueAtAngle = false + + node.tokensAwarded.payload.uiObject.setValue(tokensAwardedText + ' SA Tokens') + } + } + } +} \ No newline at end of file diff --git a/Projects/Governance/UI/Function-Libraries/TokenMining.js b/Projects/Governance/UI/Function-Libraries/TokenMining.js index 7c980d3d7..3c767f30e 100644 --- a/Projects/Governance/UI/Function-Libraries/TokenMining.js +++ b/Projects/Governance/UI/Function-Libraries/TokenMining.js @@ -83,6 +83,16 @@ function newGovernanceFunctionLibraryTokenMining() { calculateProgram(userProfile, program, "delegationProgram") } + for (let i = 0; i < userProfiles.length; i++) { + let userProfile = userProfiles[i] + + if (userProfile.tokenPowerSwitch === undefined) { continue } + let program = UI.projects.governance.utilities.validations.onlyOneProgram(userProfile, "Github Program") + if (program === undefined) { continue } + if (program.payload === undefined) { continue } + + calculateProgram(userProfile, program, "githubProgram") + } for (let i = 0; i < userProfiles.length; i++) { let userProfile = userProfiles[i] diff --git a/Projects/Governance/UI/Function-Libraries/TokenPower.js b/Projects/Governance/UI/Function-Libraries/TokenPower.js index 05c6da779..4299a19a0 100644 --- a/Projects/Governance/UI/Function-Libraries/TokenPower.js +++ b/Projects/Governance/UI/Function-Libraries/TokenPower.js @@ -49,7 +49,8 @@ function newGovernanceFunctionLibraryTokenPower() { node.type === 'Voting Program' || node.type === 'Claims Program' || node.type === 'Staking Program' || - node.type === 'Delegation Program' + node.type === 'Delegation Program' || + node.type === 'Github Program' ) { return } /* We will reset token power of children. @@ -149,7 +150,8 @@ function newGovernanceFunctionLibraryTokenPower() { node.type === 'Voting Program' || node.type === 'Claims Program' || node.type === 'Staking Program' || - node.type === 'Delegation Program' + node.type === 'Delegation Program' || + node.type === 'Github Program' ) { return } /* We will redistribute token power among children. diff --git a/Projects/Governance/UI/Spaces/User-Profile-Space/UserProfile.js b/Projects/Governance/UI/Spaces/User-Profile-Space/UserProfile.js index f146f594a..9a34c3cb7 100644 --- a/Projects/Governance/UI/Spaces/User-Profile-Space/UserProfile.js +++ b/Projects/Governance/UI/Spaces/User-Profile-Space/UserProfile.js @@ -2,6 +2,7 @@ function newGovernanceUserProfileSpace() { const MODULE_NAME = 'User Profile Space' let thisObject = { + githubStars: undefined, container: undefined, physics: physics, draw: draw, @@ -17,13 +18,66 @@ function newGovernanceUserProfileSpace() { let waitingForResponses = 0 let timer = 0 + thisObject.githubStars = new Map() + return thisObject function 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 + at the Github Program. + */ + /* Find the Username and Password */ + let apisNode = UI.projects.foundations.spaces.designSpace.workspace.getHierarchyHeadByNodeType('APIs') + if (apisNode === undefined) { + UI.projects.education.spaces.docsSpace.navigateTo('Foundations', 'Topic', 'App Error - Github Credentials Missing', 'Anchor Github Credentials Missing') + UI.projects.education.spaces.docsSpace.sidePanelTab.open() + return + } + if (apisNode.githubAPI === undefined) { + UI.projects.education.spaces.docsSpace.navigateTo('Foundations', 'Topic', 'App Error - Github Credentials Missing', 'Anchor Github Credentials Missing') + UI.projects.education.spaces.docsSpace.sidePanelTab.open() + return + } + + let config = JSON.parse(apisNode.githubAPI.config) + if (config.username === undefined || config.username === "") { + UI.projects.education.spaces.docsSpace.navigateTo('Foundations', 'Topic', 'App Error - Github Credentials Missing', 'Anchor Github Credentials Missing') + UI.projects.education.spaces.docsSpace.sidePanelTab.open() + return + } + if (config.token === undefined || config.token === "") { + UI.projects.education.spaces.docsSpace.navigateTo('Foundations', 'Topic', 'App Error - Github Credentials Missing', 'Anchor Github Credentials Missing') + UI.projects.education.spaces.docsSpace.sidePanelTab.open() + return + } + + httpRequest( + undefined, + 'Gov/getRepoInfo/' + + 'Superalgos' + '/' + + config.username + '/' + + config.token + , onGithubStarsResponse) + + return + + function onGithubStarsResponse(err, githubStarsArray) { + /* Lets check the result of the call through the http interface */ + githubStarsArray = JSON.parse(githubStarsArray) + + for (let i = 0; i < githubStarsArray.length; i++) { + githubUsername = githubStarsArray[i] + thisObject.githubStars.set(githubUsername, true) + } + } } function finalize() { + thisObject.githubStars = undefined + thisObject.container.finalize() thisObject.container = undefined } diff --git a/Projects/ProjectsSchema.json b/Projects/ProjectsSchema.json index 18b8a465a..c774e951c 100644 --- a/Projects/ProjectsSchema.json +++ b/Projects/ProjectsSchema.json @@ -1051,6 +1051,11 @@ "name": "Profile Constructor", "propertyName": "profileConstructor", "functionName": "newGovernanceFunctionLibraryProfileConstructor" + }, + { + "name": "Github Program", + "propertyName": "githubProgram", + "functionName": "newGovernanceFunctionLibraryGithubProgram" } ], "utilities": [