From 0514361d300da63eae02e923a14eb156597d3dee Mon Sep 17 00:00:00 2001 From: Luis Fernando Molina Date: Sun, 6 Jun 2021 19:13:52 +0200 Subject: [PATCH] Reorganization into function libraries complete --- .../Function-Libraries/DistributionProcess.js | 24 +++++++++++++ .../UI/Function-Libraries/Tokens.js | 11 ++---- .../Governance/UI/Function-Libraries/Votes.js | 16 ++++----- .../UI/Function-Libraries/Weights.js | 34 ++++++++++++++++++- .../UI/Spaces/Assets-Space/Assets.js | 8 ----- .../UI/Spaces/Features-Space/Features.js | 8 ----- .../Governance/UI/Spaces/Pools-Space/Pools.js | 2 +- .../UI/Spaces/Positions-Space/Positions.js | 8 ----- .../Spaces/User-Profile-Space/UserProfile.js | 2 +- 9 files changed, 70 insertions(+), 43 deletions(-) diff --git a/Projects/Governance/UI/Function-Libraries/DistributionProcess.js b/Projects/Governance/UI/Function-Libraries/DistributionProcess.js index bcdc86280..884ed48b7 100644 --- a/Projects/Governance/UI/Function-Libraries/DistributionProcess.js +++ b/Projects/Governance/UI/Function-Libraries/DistributionProcess.js @@ -7,5 +7,29 @@ function newGovernanceFunctionLibraryDistributionProcess() { function calculate() { + let pools = UI.projects.superalgos.spaces.designSpace.workspace.getHierarchyHeadsByNodeType('Pools') + let features = UI.projects.superalgos.spaces.designSpace.workspace.getHierarchyHeadsByNodeType('Features') + let assets = UI.projects.superalgos.spaces.designSpace.workspace.getHierarchyHeadsByNodeType('Assets') + let positions = UI.projects.superalgos.spaces.designSpace.workspace.getHierarchyHeadsByNodeType('Positions') + let userProfiles = UI.projects.superalgos.spaces.designSpace.workspace.getHierarchyHeadsByNodeType('User Profile') + + UI.projects.governance.functionLibraries.votes.calculate( + pools, + features, + assets, + positions, + userProfiles + ) + + UI.projects.governance.functionLibraries.weights.calculate( + pools, + features, + assets, + positions + ) + + UI.projects.governance.functionLibraries.tokens.calculate( + pools + ) } } \ No newline at end of file diff --git a/Projects/Governance/UI/Function-Libraries/Tokens.js b/Projects/Governance/UI/Function-Libraries/Tokens.js index 0183c7cba..da49c1307 100644 --- a/Projects/Governance/UI/Function-Libraries/Tokens.js +++ b/Projects/Governance/UI/Function-Libraries/Tokens.js @@ -5,14 +5,9 @@ function newGovernanceFunctionLibraryTokens() { return thisObject - function calculate() { - let pools = UI.projects.superalgos.spaces.designSpace.workspace.getHierarchyHeadsByNodeType('Pools') - - /* Weight Calculation Follows */ - for (let i = 0; i < pools.length; i++) { - let poolsNode = pools[i] - UI.projects.governance.functionLibraries.weights.calculate(poolsNode) - } + function calculate( + pools + ) { /* We will reset all the token flows, and then distribute it. */ diff --git a/Projects/Governance/UI/Function-Libraries/Votes.js b/Projects/Governance/UI/Function-Libraries/Votes.js index eb09ce06d..0a3c21cb0 100644 --- a/Projects/Governance/UI/Function-Libraries/Votes.js +++ b/Projects/Governance/UI/Function-Libraries/Votes.js @@ -5,36 +5,36 @@ function newGovernanceFunctionLibraryVotes() { return thisObject - function calculate() { - let pools = UI.projects.superalgos.spaces.designSpace.workspace.getHierarchyHeadsByNodeType('Pools') + function calculate( + pools, + features, + assets, + positions, + userProfiles + ) { /* Reset Votes at Pools */ for (let i = 0; i < pools.length; i++) { let poolsNode = pools[i] resetVotes(poolsNode) } - let features = UI.projects.superalgos.spaces.designSpace.workspace.getHierarchyHeadsByNodeType('Features') /* Reset Votes at Features */ for (let i = 0; i < features.length; i++) { let feature = features[i] resetVotes(feature) } - let assets = UI.projects.superalgos.spaces.designSpace.workspace.getHierarchyHeadsByNodeType('Assets') /* Reset Votes at Features */ for (let i = 0; i < assets.length; i++) { let asset = assets[i] resetVotes(asset) } - let positions = UI.projects.superalgos.spaces.designSpace.workspace.getHierarchyHeadsByNodeType('Positions') /* Reset Votes at Features */ for (let i = 0; i < positions.length; i++) { let position = positions[i] resetVotes(position) } - - let userProfiles = UI.projects.superalgos.spaces.designSpace.workspace.getHierarchyHeadsByNodeType('User Profile') /* We will first reset all the voting power, and then distribute it. */ @@ -129,7 +129,7 @@ function newGovernanceFunctionLibraryVotes() { node.type === 'Pool' || node.type === 'Position Contribution Claim' || node.type === 'Asset Contribution Claim' || - node.type === 'Feature Contribution Claim' + node.type === 'Feature Contribution Claim' ) { return } /* If there is a reference parent defined, this means that the voting power is diff --git a/Projects/Governance/UI/Function-Libraries/Weights.js b/Projects/Governance/UI/Function-Libraries/Weights.js index 671a334a7..c86cb5de2 100644 --- a/Projects/Governance/UI/Function-Libraries/Weights.js +++ b/Projects/Governance/UI/Function-Libraries/Weights.js @@ -5,7 +5,39 @@ function newGovernanceFunctionLibraryWeights() { return thisObject - function calculate(node) { + function calculate( + pools, + features, + assets, + positions + ) { + /* Weight Calculation Follows */ + for (let i = 0; i < assets.length; i++) { + let asset = assets[i] + calculateForNode(asset) + } + + /* Weight Calculation Follows */ + for (let i = 0; i < features.length; i++) { + let feature = features[i] + calculateForNode(feature) + } + + /* Weight Calculation Follows */ + for (let i = 0; i < positions.length; i++) { + let position = positions[i] + calculateForNode(position) + } + + /* Weight Calculation Follows */ + for (let i = 0; i < pools.length; i++) { + let poolsNode = pools[i] + calculateForNode(poolsNode) + } + } + + function calculateForNode(node) { + let totalVotes = 0 countVotesAndResetWeights(node) applyWeightCalculation(node) diff --git a/Projects/Governance/UI/Spaces/Assets-Space/Assets.js b/Projects/Governance/UI/Spaces/Assets-Space/Assets.js index da7d3fcf0..0c89e6858 100644 --- a/Projects/Governance/UI/Spaces/Assets-Space/Assets.js +++ b/Projects/Governance/UI/Spaces/Assets-Space/Assets.js @@ -26,14 +26,6 @@ function newGobernanceAssetsSpace() { function physics() { if (UI.projects.superalgos.spaces.designSpace.workspace === undefined) { return } - - let assets = UI.projects.superalgos.spaces.designSpace.workspace.getHierarchyHeadsByNodeType('Assets') - - /* Weight Calculation Follows */ - for (let i = 0; i < assets.length; i++) { - let asset = assets[i] - UI.projects.governance.functionLibraries.weights.calculate(asset) - } } function getContainer(point) { diff --git a/Projects/Governance/UI/Spaces/Features-Space/Features.js b/Projects/Governance/UI/Spaces/Features-Space/Features.js index b89e531cc..7cc992169 100644 --- a/Projects/Governance/UI/Spaces/Features-Space/Features.js +++ b/Projects/Governance/UI/Spaces/Features-Space/Features.js @@ -26,14 +26,6 @@ function newGovernanceFeaturesSpace() { function physics() { if (UI.projects.superalgos.spaces.designSpace.workspace === undefined) { return } - - let features = UI.projects.superalgos.spaces.designSpace.workspace.getHierarchyHeadsByNodeType('Features') - - /* Weight Calculation Follows */ - for (let i = 0; i < features.length; i++) { - let feature = features[i] - UI.projects.governance.functionLibraries.weights.calculate(feature) - } } function getContainer(point) { diff --git a/Projects/Governance/UI/Spaces/Pools-Space/Pools.js b/Projects/Governance/UI/Spaces/Pools-Space/Pools.js index e88b69fe6..7163bc864 100644 --- a/Projects/Governance/UI/Spaces/Pools-Space/Pools.js +++ b/Projects/Governance/UI/Spaces/Pools-Space/Pools.js @@ -37,7 +37,7 @@ function newGovernancePoolsSpace() { function physics() { if (UI.projects.superalgos.spaces.designSpace.workspace === undefined) { return } - UI.projects.governance.functionLibraries.tokens.calculate() + UI.projects.governance.functionLibraries.distributionProcess.calculate() } function draw() { diff --git a/Projects/Governance/UI/Spaces/Positions-Space/Positions.js b/Projects/Governance/UI/Spaces/Positions-Space/Positions.js index b2c9360b1..2147cc234 100644 --- a/Projects/Governance/UI/Spaces/Positions-Space/Positions.js +++ b/Projects/Governance/UI/Spaces/Positions-Space/Positions.js @@ -28,14 +28,6 @@ function newGovernancePositionsSpace() { function physics() { if (UI.projects.superalgos.spaces.designSpace.workspace === undefined) { return } - - let positions = UI.projects.superalgos.spaces.designSpace.workspace.getHierarchyHeadsByNodeType('Positions') - - /* Weight Calculation Follows */ - for (let i = 0; i < positions.length; i++) { - let position = positions[i] - UI.projects.governance.functionLibraries.weights.calculate(position) - } } function getContainer(point) { diff --git a/Projects/Governance/UI/Spaces/User-Profile-Space/UserProfile.js b/Projects/Governance/UI/Spaces/User-Profile-Space/UserProfile.js index 0b2367533..f9a617027 100644 --- a/Projects/Governance/UI/Spaces/User-Profile-Space/UserProfile.js +++ b/Projects/Governance/UI/Spaces/User-Profile-Space/UserProfile.js @@ -37,7 +37,7 @@ function newGovernanceUserProfileSpace() { function physics() { if (UI.projects.superalgos.spaces.designSpace.workspace === undefined) { return } - UI.projects.governance.functionLibraries.votes.calculate() + } function draw() {