Claims, Votes, Staking and Delegation Reports Implemented
This commit is contained in:
1 parent
0f93ec2b24
commit
81538898b2
17 files changed
+588
-46
No files matched your search
@@ -880,7 +880,11 @@
|
||||
#governance-tab5:checked ~ .governance-search-result-content #content5,
|
||||
#governance-tab6:checked ~ .governance-search-result-content #content6,
|
||||
#governance-tab7:checked ~ .governance-search-result-content #content7,
|
||||
#governance-tab8:checked ~ .governance-search-result-content #content8 {
|
||||
#governance-tab8:checked ~ .governance-search-result-content #content8,
|
||||
#governance-tab9:checked ~ .governance-search-result-content #content9,
|
||||
#governance-tab10:checked ~ .governance-search-result-content #content10,
|
||||
#governance-tab11:checked ~ .governance-search-result-content #content11,
|
||||
#governance-tab12:checked ~ .governance-search-result-content #content12 {
|
||||
display: block;
|
||||
}
|
||||
|
||||
|
||||
@@ -1089,7 +1089,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"stackingProgram": {
|
||||
"stakingProgram": {
|
||||
"type": "Staking Program",
|
||||
"name": "New Staking Program",
|
||||
"config": "{}",
|
||||
|
||||
@@ -3797,11 +3797,11 @@
|
||||
},
|
||||
{
|
||||
"type": "Token Power Switch",
|
||||
"name": "Stacking",
|
||||
"name": "Staking",
|
||||
"config": "{}",
|
||||
"project": "Governance",
|
||||
"tokenPowerSwitch": [],
|
||||
"stackingProgram": {
|
||||
"stakingProgram": {
|
||||
"type": "Staking Program",
|
||||
"name": "New Staking Program",
|
||||
"config": "{}",
|
||||
|
||||
@@ -851,7 +851,7 @@
|
||||
"config": "{\n \"percentage\": 10\n}",
|
||||
"project": "Governance",
|
||||
"tokenPowerSwitch": [],
|
||||
"stackingProgram": {
|
||||
"stakingProgram": {
|
||||
"type": "Staking Program",
|
||||
"name": "New Staking Program",
|
||||
"config": "{}",
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
},
|
||||
"addLeftIcons": true,
|
||||
"level": 1,
|
||||
"propertyNameAtParent": "stackingProgram",
|
||||
"propertyNameAtParent": "stakingProgram",
|
||||
"childrenNodesProperties": [
|
||||
{
|
||||
"name": "tokensAwarded",
|
||||
|
||||
@@ -65,7 +65,7 @@
|
||||
"actionProject": "Foundations",
|
||||
"actionFunction": "payload.executeAction",
|
||||
"disableIfPropertyIsDefined": true,
|
||||
"propertyToCheckFor": "stackingProgram",
|
||||
"propertyToCheckFor": "stakingProgram",
|
||||
"label": "Add Staking Program",
|
||||
"relatedUiObject": "Staking Program"
|
||||
},
|
||||
@@ -139,7 +139,7 @@
|
||||
"autoAdd": false
|
||||
},
|
||||
{
|
||||
"name": "stackingProgram",
|
||||
"name": "stakingProgram",
|
||||
"type": "node",
|
||||
"childType": "Staking Program",
|
||||
"autoAdd": false
|
||||
|
||||
@@ -47,9 +47,14 @@ function newGovernanceFunctionLibraryDelegationProgram() {
|
||||
function resetProgram(node) {
|
||||
if (node === undefined) { return }
|
||||
if (node.payload === undefined) { return }
|
||||
node.payload.delegationProgram = {
|
||||
programPower: 0,
|
||||
ownPower: 0
|
||||
if (node.payload.delegationProgram === undefined) {
|
||||
node.payload.delegationProgram = {
|
||||
programPower: 0,
|
||||
ownPower: 0
|
||||
}
|
||||
} else {
|
||||
node.payload.delegationProgram.programPower = 0
|
||||
node.payload.delegationProgram.ownPower = 0
|
||||
}
|
||||
|
||||
if (node.type === 'User Profile') {
|
||||
|
||||
@@ -69,7 +69,7 @@ function newGovernanceFunctionLibraryDistributionProcess() {
|
||||
userProfiles
|
||||
)
|
||||
|
||||
UI.projects.governance.functionLibraries.stackingProgram.calculate(
|
||||
UI.projects.governance.functionLibraries.stakingProgram.calculate(
|
||||
pools,
|
||||
userProfiles
|
||||
)
|
||||
|
||||
+31
-19
@@ -1,4 +1,4 @@
|
||||
function newGovernanceFunctionLibraryStackingProgram() {
|
||||
function newGovernanceFunctionLibraryStakingProgram() {
|
||||
let thisObject = {
|
||||
calculate: calculate
|
||||
}
|
||||
@@ -12,7 +12,7 @@ function newGovernanceFunctionLibraryStackingProgram() {
|
||||
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 Stacking Power that each User Profile at their Program
|
||||
we need to accumulate all the Staking 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
|
||||
@@ -51,7 +51,7 @@ function newGovernanceFunctionLibraryStackingProgram() {
|
||||
let program = UI.projects.governance.utilities.validations.onlyOneProgram(userProfile, "Staking Program")
|
||||
if (program === undefined) { continue }
|
||||
if (program.payload === undefined) { continue }
|
||||
if (program.payload.stackingProgram.isActive === false) { continue }
|
||||
if (program.payload.stakingProgram.isActive === false) { continue }
|
||||
|
||||
distributeProgram(program)
|
||||
}
|
||||
@@ -62,7 +62,7 @@ function newGovernanceFunctionLibraryStackingProgram() {
|
||||
let program = UI.projects.governance.utilities.validations.onlyOneProgram(userProfile, "Staking Program")
|
||||
if (program === undefined) { continue }
|
||||
if (program.payload === undefined) { continue }
|
||||
if (program.payload.stackingProgram.isActive === false) { continue }
|
||||
if (program.payload.stakingProgram.isActive === false) { continue }
|
||||
|
||||
calculateProgram(program)
|
||||
}
|
||||
@@ -70,13 +70,25 @@ function newGovernanceFunctionLibraryStackingProgram() {
|
||||
function resetProgram(node) {
|
||||
if (node === undefined) { return }
|
||||
if (node.payload === undefined) { return }
|
||||
node.payload.stackingProgram = {
|
||||
count: 0,
|
||||
percentage: 0,
|
||||
outgoingPower: 0,
|
||||
ownPower: 0,
|
||||
incomingPower: 0,
|
||||
awarded: {
|
||||
if (node.payload.stakingProgram === undefined) {
|
||||
node.payload.stakingProgram = {
|
||||
count: 0,
|
||||
percentage: 0,
|
||||
outgoingPower: 0,
|
||||
ownPower: 0,
|
||||
incomingPower: 0,
|
||||
awarded: {
|
||||
tokens: 0,
|
||||
percentage: 0
|
||||
}
|
||||
}
|
||||
} else {
|
||||
node.payload.stakingProgram.count = 0
|
||||
node.payload.stakingProgram.percentage = 0
|
||||
node.payload.stakingProgram.outgoingPower = 0
|
||||
node.payload.stakingProgram.ownPower = 0
|
||||
node.payload.stakingProgram.incomingPower = 0
|
||||
node.payload.stakingProgram.awarded = {
|
||||
tokens: 0,
|
||||
percentage: 0
|
||||
}
|
||||
@@ -92,21 +104,21 @@ function newGovernanceFunctionLibraryStackingProgram() {
|
||||
if (
|
||||
userProfile.payload.blockchainTokens === undefined
|
||||
) {
|
||||
node.payload.stackingProgram.isActive = false
|
||||
node.payload.stakingProgram.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
|
||||
}
|
||||
node.payload.stackingProgram.isActive = true
|
||||
node.payload.stakingProgram.isActive = true
|
||||
}
|
||||
|
||||
function distributeProgram(programNode) {
|
||||
if (programNode === undefined || programNode.payload === undefined) { return }
|
||||
/*
|
||||
Here we will convert Token Power into Stacking Power.
|
||||
As per system rules Stacking Powar = tokensPower
|
||||
Here we will convert Token Power into Staking Power.
|
||||
As per system rules Staking Powar = tokensPower
|
||||
*/
|
||||
let programPower = programNode.payload.tokenPower
|
||||
programNode.payload.stackingProgram.ownPower = programPower
|
||||
programNode.payload.stakingProgram.ownPower = programPower
|
||||
|
||||
accumulatedProgramPower = accumulatedProgramPower + programPower
|
||||
}
|
||||
@@ -132,7 +144,7 @@ function newGovernanceFunctionLibraryStackingProgram() {
|
||||
programNode.payload.uiObject.setErrorMessage("Tokens Awarded Node is needed in order for this Program to get Tokens from the Program Pool.")
|
||||
return
|
||||
}
|
||||
programNode.payload.stackingProgram.awarded.tokens = programNode.payload.stackingProgram.ownPower * totalPowerRewardRatio
|
||||
programNode.payload.stakingProgram.awarded.tokens = programNode.payload.stakingProgram.ownPower * totalPowerRewardRatio
|
||||
|
||||
drawProgram(programNode)
|
||||
}
|
||||
@@ -140,7 +152,7 @@ function newGovernanceFunctionLibraryStackingProgram() {
|
||||
function drawProgram(node) {
|
||||
if (node.payload !== undefined) {
|
||||
|
||||
const ownPowerText = parseFloat(node.payload.stackingProgram.ownPower.toFixed(2)).toLocaleString('en')
|
||||
const ownPowerText = parseFloat(node.payload.stakingProgram.ownPower.toFixed(2)).toLocaleString('en')
|
||||
|
||||
node.payload.uiObject.statusAngleOffset = 0
|
||||
node.payload.uiObject.statusAtAngle = false
|
||||
@@ -149,7 +161,7 @@ function newGovernanceFunctionLibraryStackingProgram() {
|
||||
}
|
||||
if (node.tokensAwarded !== undefined && node.tokensAwarded.payload !== undefined) {
|
||||
|
||||
const tokensAwardedText = parseFloat(node.payload.stackingProgram.awarded.tokens.toFixed(2)).toLocaleString('en')
|
||||
const tokensAwardedText = parseFloat(node.payload.stakingProgram.awarded.tokens.toFixed(2)).toLocaleString('en')
|
||||
|
||||
node.tokensAwarded.payload.uiObject.valueAngleOffset = 0
|
||||
node.tokensAwarded.payload.uiObject.valueAtAngle = false
|
||||
@@ -73,11 +73,18 @@ function newGovernanceFunctionLibraryVotingProgram() {
|
||||
function resetVotes(node) {
|
||||
if (node === undefined) { return }
|
||||
if (node.payload === undefined) { return }
|
||||
node.payload.votingProgram = {
|
||||
votes: 0,
|
||||
ownPower: 0,
|
||||
incomingPower: 0
|
||||
if (node.payload.votingProgram === undefined) {
|
||||
node.payload.votingProgram = {
|
||||
votes: 0,
|
||||
ownPower: 0,
|
||||
incomingPower: 0
|
||||
}
|
||||
} else {
|
||||
node.payload.votingProgram.votes = 0
|
||||
node.payload.votingProgram.ownPower = 0
|
||||
node.payload.votingProgram.incomingPower = 0
|
||||
}
|
||||
|
||||
/*
|
||||
When we reach certain node types, we will halt the distribution, because these are targets for
|
||||
voting power.
|
||||
|
||||
@@ -0,0 +1,112 @@
|
||||
function newGovernanceReportsClaims() {
|
||||
let thisObject = {
|
||||
addHTML: addHTML,
|
||||
initialize: initialize,
|
||||
finalize: finalize
|
||||
}
|
||||
|
||||
return thisObject
|
||||
|
||||
function initialize() {
|
||||
|
||||
}
|
||||
|
||||
function finalize() {
|
||||
|
||||
}
|
||||
|
||||
function addHTML(tabIndex, filters) {
|
||||
/*
|
||||
Parameters
|
||||
*/
|
||||
let table = 'claims'
|
||||
let programName = 'Claims Program'
|
||||
let programPropertyName = 'claimsProgram'
|
||||
/*
|
||||
Setup Filters
|
||||
*/
|
||||
let filtersObject
|
||||
if (filters !== undefined) {
|
||||
try {
|
||||
filtersObject = JSON.parse(filters)
|
||||
} catch (err) { }
|
||||
}
|
||||
/*
|
||||
Other Variables
|
||||
*/
|
||||
let tableRecords = []
|
||||
let tableRecordDefinition = {
|
||||
"properties": [
|
||||
{
|
||||
"name": "name",
|
||||
"label": "User Profile",
|
||||
"type": "string",
|
||||
"order": "ascending",
|
||||
"textAlign": "left"
|
||||
},
|
||||
{
|
||||
"name": "ownPower",
|
||||
"label": "Claims Power",
|
||||
"type": "number",
|
||||
"order": "descending",
|
||||
"textAlign": "center",
|
||||
"format": "2 decimals"
|
||||
},
|
||||
{
|
||||
"name": "tokensAwarded",
|
||||
"label": "Awarded",
|
||||
"type": "number",
|
||||
"order": "descending",
|
||||
"textAlign": "center",
|
||||
"format": "2 decimals"
|
||||
}
|
||||
]
|
||||
}
|
||||
/*
|
||||
Here we get from the workspace all User Profiles.
|
||||
*/
|
||||
let userProfiles = UI.projects.foundations.spaces.designSpace.workspace.getHierarchyHeadsByNodeType('User Profile')
|
||||
/*
|
||||
Transform the result array into table records.
|
||||
*/
|
||||
for (let j = 0; j < userProfiles.length; j++) {
|
||||
let userProfile = userProfiles[j]
|
||||
|
||||
if (userProfile.tokenPowerSwitch === undefined) { continue }
|
||||
let program = UI.projects.governance.utilities.validations.onlyOneProgram(userProfile, programName)
|
||||
if (program === undefined) { continue }
|
||||
if (program.payload === undefined) { continue }
|
||||
|
||||
let tableRecord = {
|
||||
"name": userProfile.name,
|
||||
"ownPower": program.payload[programPropertyName].ownPower | 0,
|
||||
"tokensAwarded": program.payload[programPropertyName].awarded.tokens | 0
|
||||
}
|
||||
|
||||
if (UI.projects.governance.utilities.filters.applyFilters(filters, filtersObject, tableRecord) === true) {
|
||||
tableRecords.push(tableRecord)
|
||||
}
|
||||
}
|
||||
/*
|
||||
Get the sorting order for this table.
|
||||
*/
|
||||
let sortingOrder = UI.projects.governance.spaces.reportsSpace.tablesSortingOrders[table]
|
||||
/*
|
||||
Set the default sorting order for this table.
|
||||
*/
|
||||
if (sortingOrder === undefined) {
|
||||
UI.projects.governance.spaces.reportsSpace.tablesSortingOrders[table] = {
|
||||
property: 'tokensAwarded',
|
||||
order: 'descending'
|
||||
}
|
||||
sortingOrder = UI.projects.governance.spaces.reportsSpace.tablesSortingOrders[table]
|
||||
}
|
||||
return UI.projects.governance.utilities.tables.addHTML(
|
||||
table,
|
||||
tableRecords,
|
||||
tableRecordDefinition,
|
||||
sortingOrder,
|
||||
tabIndex
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,112 @@
|
||||
function newGovernanceReportsDelegation() {
|
||||
let thisObject = {
|
||||
addHTML: addHTML,
|
||||
initialize: initialize,
|
||||
finalize: finalize
|
||||
}
|
||||
|
||||
return thisObject
|
||||
|
||||
function initialize() {
|
||||
|
||||
}
|
||||
|
||||
function finalize() {
|
||||
|
||||
}
|
||||
|
||||
function addHTML(tabIndex, filters) {
|
||||
/*
|
||||
Parameters
|
||||
*/
|
||||
let table = 'delegation'
|
||||
let programName = 'Delegation Program'
|
||||
let programPropertyName = 'delegationProgram'
|
||||
/*
|
||||
Setup Filters
|
||||
*/
|
||||
let filtersObject
|
||||
if (filters !== undefined) {
|
||||
try {
|
||||
filtersObject = JSON.parse(filters)
|
||||
} catch (err) { }
|
||||
}
|
||||
/*
|
||||
Other Variables
|
||||
*/
|
||||
let tableRecords = []
|
||||
let tableRecordDefinition = {
|
||||
"properties": [
|
||||
{
|
||||
"name": "name",
|
||||
"label": "User Profile",
|
||||
"type": "string",
|
||||
"order": "ascending",
|
||||
"textAlign": "left"
|
||||
},
|
||||
{
|
||||
"name": "ownPower",
|
||||
"label": "Delegate Power",
|
||||
"type": "number",
|
||||
"order": "descending",
|
||||
"textAlign": "center",
|
||||
"format": "2 decimals"
|
||||
},
|
||||
{
|
||||
"name": "tokensBonus",
|
||||
"label": "Bonus",
|
||||
"type": "number",
|
||||
"order": "descending",
|
||||
"textAlign": "center",
|
||||
"format": "2 decimals"
|
||||
}
|
||||
]
|
||||
}
|
||||
/*
|
||||
Here we get from the workspace all User Profiles.
|
||||
*/
|
||||
let userProfiles = UI.projects.foundations.spaces.designSpace.workspace.getHierarchyHeadsByNodeType('User Profile')
|
||||
/*
|
||||
Transform the result array into table records.
|
||||
*/
|
||||
for (let j = 0; j < userProfiles.length; j++) {
|
||||
let userProfile = userProfiles[j]
|
||||
|
||||
if (userProfile.tokenPowerSwitch === undefined) { continue }
|
||||
let program = UI.projects.governance.utilities.validations.onlyOneProgram(userProfile, programName)
|
||||
if (program === undefined) { continue }
|
||||
if (program.payload === undefined) { continue }
|
||||
|
||||
let tableRecord = {
|
||||
"name": userProfile.name,
|
||||
"ownPower": program.payload[programPropertyName].ownPower | 0,
|
||||
"tokensBonus": program.payload[programPropertyName].bonus.tokens | 0
|
||||
}
|
||||
|
||||
if (UI.projects.governance.utilities.filters.applyFilters(filters, filtersObject, tableRecord) === true) {
|
||||
tableRecords.push(tableRecord)
|
||||
}
|
||||
}
|
||||
/*
|
||||
Get the sorting order for this table.
|
||||
*/
|
||||
let sortingOrder = UI.projects.governance.spaces.reportsSpace.tablesSortingOrders[table]
|
||||
/*
|
||||
Set the default sorting order for this table.
|
||||
*/
|
||||
if (sortingOrder === undefined) {
|
||||
UI.projects.governance.spaces.reportsSpace.tablesSortingOrders[table] = {
|
||||
property: 'tokensBonus',
|
||||
order: 'descending'
|
||||
}
|
||||
sortingOrder = UI.projects.governance.spaces.reportsSpace.tablesSortingOrders[table]
|
||||
}
|
||||
return UI.projects.governance.utilities.tables.addHTML(
|
||||
table,
|
||||
tableRecords,
|
||||
tableRecordDefinition,
|
||||
sortingOrder,
|
||||
tabIndex
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -5,7 +5,7 @@ function newGovernanceReportsReportsPage() {
|
||||
finalize: finalize
|
||||
}
|
||||
|
||||
let lastTabIndex
|
||||
let lastTabIndex
|
||||
return thisObject
|
||||
|
||||
function initialize() {
|
||||
@@ -17,20 +17,20 @@ function newGovernanceReportsReportsPage() {
|
||||
}
|
||||
|
||||
function render(tabIndex, filters) {
|
||||
|
||||
|
||||
/* Setup tabIndex */
|
||||
if (tabIndex === undefined) {
|
||||
tabIndex = lastTabIndex
|
||||
} else {
|
||||
lastTabIndex = tabIndex
|
||||
}
|
||||
|
||||
|
||||
let resultsArary = []
|
||||
let initialTime = new Date()
|
||||
buildHTML()
|
||||
|
||||
function buildHTML() {
|
||||
const tabs = ['Profiles', 'Referrals', 'Supporters', 'Mentors', 'Pools', 'Assets', 'Features', 'Positions']
|
||||
const tabs = ['Profiles', 'Referrals', 'Supporters', 'Mentors', 'Claims', 'Votes', 'Staking', 'Delegation', 'Pools', 'Assets', 'Features', 'Positions']
|
||||
let HTML = ''
|
||||
HTML = HTML + '<section id="governance-report-page-div" class="governance-search-page-container">'
|
||||
HTML = HTML + UI.projects.governance.spaces.reportsSpace.filtersHeader.addFilterHeader()
|
||||
@@ -80,26 +80,50 @@ function newGovernanceReportsReportsPage() {
|
||||
resultCounter = response.resultCounter
|
||||
break
|
||||
}
|
||||
case 'Claims': {
|
||||
let response = UI.projects.governance.spaces.reportsSpace.claims.addHTML(5, filters)
|
||||
HTML = HTML + response.HTML
|
||||
resultCounter = response.resultCounter
|
||||
break
|
||||
}
|
||||
case 'Votes': {
|
||||
let response = UI.projects.governance.spaces.reportsSpace.votes.addHTML(6, filters)
|
||||
HTML = HTML + response.HTML
|
||||
resultCounter = response.resultCounter
|
||||
break
|
||||
}
|
||||
case 'Staking': {
|
||||
let response = UI.projects.governance.spaces.reportsSpace.staking.addHTML(7, filters)
|
||||
HTML = HTML + response.HTML
|
||||
resultCounter = response.resultCounter
|
||||
break
|
||||
}
|
||||
case 'Delegation': {
|
||||
let response = UI.projects.governance.spaces.reportsSpace.delegation.addHTML(8, filters)
|
||||
HTML = HTML + response.HTML
|
||||
resultCounter = response.resultCounter
|
||||
break
|
||||
}
|
||||
case 'Pools': {
|
||||
let response = UI.projects.governance.spaces.reportsSpace.pools.addHTML(5, filters)
|
||||
let response = UI.projects.governance.spaces.reportsSpace.pools.addHTML(9, filters)
|
||||
HTML = HTML + response.HTML
|
||||
resultCounter = response.resultCounter
|
||||
break
|
||||
}
|
||||
case 'Assets': {
|
||||
let response = UI.projects.governance.spaces.reportsSpace.assets.addHTML(6, filters)
|
||||
let response = UI.projects.governance.spaces.reportsSpace.assets.addHTML(10, filters)
|
||||
HTML = HTML + response.HTML
|
||||
resultCounter = response.resultCounter
|
||||
break
|
||||
}
|
||||
case 'Features': {
|
||||
let response = UI.projects.governance.spaces.reportsSpace.features.addHTML(7, filters)
|
||||
let response = UI.projects.governance.spaces.reportsSpace.features.addHTML(11, filters)
|
||||
HTML = HTML + response.HTML
|
||||
resultCounter = response.resultCounter
|
||||
break
|
||||
}
|
||||
case 'Positions': {
|
||||
let response = UI.projects.governance.spaces.reportsSpace.positions.addHTML(8, filters)
|
||||
let response = UI.projects.governance.spaces.reportsSpace.positions.addHTML(12, filters)
|
||||
HTML = HTML + response.HTML
|
||||
resultCounter = response.resultCounter
|
||||
break
|
||||
|
||||
@@ -11,6 +11,10 @@ function newGobernanceReportsSpace() {
|
||||
referrals: undefined,
|
||||
supports: undefined,
|
||||
mentors: undefined,
|
||||
claims: undefined,
|
||||
votes: undefined,
|
||||
staking: undefined,
|
||||
delegations: undefined,
|
||||
pools: undefined,
|
||||
assets: undefined,
|
||||
features: undefined,
|
||||
@@ -68,6 +72,18 @@ function newGobernanceReportsSpace() {
|
||||
thisObject.mentors.finalize()
|
||||
thisObject.mentors = undefined
|
||||
|
||||
thisObject.claims.finalize()
|
||||
thisObject.claims = undefined
|
||||
|
||||
thisObject.votes.finalize()
|
||||
thisObject.votes = undefined
|
||||
|
||||
thisObject.staking.finalize()
|
||||
thisObject.staking = undefined
|
||||
|
||||
thisObject.delegation.finalize()
|
||||
thisObject.delegation = undefined
|
||||
|
||||
thisObject.pools.finalize()
|
||||
thisObject.pools = undefined
|
||||
|
||||
@@ -104,6 +120,10 @@ function newGobernanceReportsSpace() {
|
||||
thisObject.referrals = newGovernanceReportsReferrals()
|
||||
thisObject.supports = newGovernanceReportsSupports()
|
||||
thisObject.mentors = newGovernanceReportsMentors()
|
||||
thisObject.claims = newGovernanceReportsClaims()
|
||||
thisObject.votes = newGovernanceReportsVotes()
|
||||
thisObject.staking = newGovernanceReportsStaking()
|
||||
thisObject.delegation = newGovernanceReportsDelegation()
|
||||
thisObject.pools = newGovernanceReportsPools()
|
||||
thisObject.assets = newGovernanceReportsAssets()
|
||||
thisObject.features = newGovernanceReportsFeatures()
|
||||
@@ -115,6 +135,10 @@ function newGobernanceReportsSpace() {
|
||||
thisObject.userProfiles.initialize()
|
||||
thisObject.referrals.initialize()
|
||||
thisObject.mentors.initialize()
|
||||
thisObject.claims.initialize()
|
||||
thisObject.votes.initialize()
|
||||
thisObject.staking.initialize()
|
||||
thisObject.delegation.initialize()
|
||||
thisObject.pools.initialize()
|
||||
thisObject.assets.initialize()
|
||||
thisObject.features.initialize()
|
||||
|
||||
@@ -0,0 +1,121 @@
|
||||
function newGovernanceReportsStaking() {
|
||||
let thisObject = {
|
||||
addHTML: addHTML,
|
||||
initialize: initialize,
|
||||
finalize: finalize
|
||||
}
|
||||
|
||||
return thisObject
|
||||
|
||||
function initialize() {
|
||||
|
||||
}
|
||||
|
||||
function finalize() {
|
||||
|
||||
}
|
||||
|
||||
function addHTML(tabIndex, filters) {
|
||||
/*
|
||||
Parameters
|
||||
*/
|
||||
let table = 'staking'
|
||||
let programName = 'Staking Program'
|
||||
let programPropertyName = 'stakingProgram'
|
||||
/*
|
||||
Setup Filters
|
||||
*/
|
||||
let filtersObject
|
||||
if (filters !== undefined) {
|
||||
try {
|
||||
filtersObject = JSON.parse(filters)
|
||||
} catch (err) { }
|
||||
}
|
||||
/*
|
||||
Other Variables
|
||||
*/
|
||||
let tableRecords = []
|
||||
let tableRecordDefinition = {
|
||||
"properties": [
|
||||
{
|
||||
"name": "name",
|
||||
"label": "User Profile",
|
||||
"type": "string",
|
||||
"order": "ascending",
|
||||
"textAlign": "left"
|
||||
},
|
||||
{
|
||||
"name": "ownPower",
|
||||
"label": "Own Power",
|
||||
"type": "number",
|
||||
"order": "descending",
|
||||
"textAlign": "center",
|
||||
"format": "2 decimals"
|
||||
},
|
||||
{
|
||||
"name": "incoming",
|
||||
"label": "Incoming",
|
||||
"type": "number",
|
||||
"order": "descending",
|
||||
"textAlign": "center",
|
||||
"format": "2 decimals"
|
||||
},
|
||||
{
|
||||
"name": "tokensAwarded",
|
||||
"label": "Awarded",
|
||||
"type": "number",
|
||||
"order": "descending",
|
||||
"textAlign": "center",
|
||||
"format": "2 decimals"
|
||||
}
|
||||
]
|
||||
}
|
||||
/*
|
||||
Here we get from the workspace all User Profiles.
|
||||
*/
|
||||
let userProfiles = UI.projects.foundations.spaces.designSpace.workspace.getHierarchyHeadsByNodeType('User Profile')
|
||||
/*
|
||||
Transform the result array into table records.
|
||||
*/
|
||||
for (let j = 0; j < userProfiles.length; j++) {
|
||||
let userProfile = userProfiles[j]
|
||||
|
||||
if (userProfile.tokenPowerSwitch === undefined) { continue }
|
||||
let program = UI.projects.governance.utilities.validations.onlyOneProgram(userProfile, programName)
|
||||
if (program === undefined) { continue }
|
||||
if (program.payload === undefined) { continue }
|
||||
|
||||
let tableRecord = {
|
||||
"name": userProfile.name,
|
||||
"ownPower": program.payload[programPropertyName].ownPower | 0,
|
||||
"incoming": program.payload[programPropertyName].incomingPower | 0,
|
||||
"tokensAwarded": program.payload[programPropertyName].awarded.tokens | 0
|
||||
}
|
||||
|
||||
if (UI.projects.governance.utilities.filters.applyFilters(filters, filtersObject, tableRecord) === true) {
|
||||
tableRecords.push(tableRecord)
|
||||
}
|
||||
}
|
||||
/*
|
||||
Get the sorting order for this table.
|
||||
*/
|
||||
let sortingOrder = UI.projects.governance.spaces.reportsSpace.tablesSortingOrders[table]
|
||||
/*
|
||||
Set the default sorting order for this table.
|
||||
*/
|
||||
if (sortingOrder === undefined) {
|
||||
UI.projects.governance.spaces.reportsSpace.tablesSortingOrders[table] = {
|
||||
property: 'tokensAwarded',
|
||||
order: 'descending'
|
||||
}
|
||||
sortingOrder = UI.projects.governance.spaces.reportsSpace.tablesSortingOrders[table]
|
||||
}
|
||||
return UI.projects.governance.utilities.tables.addHTML(
|
||||
table,
|
||||
tableRecords,
|
||||
tableRecordDefinition,
|
||||
sortingOrder,
|
||||
tabIndex
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,121 @@
|
||||
function newGovernanceReportsVotes() {
|
||||
let thisObject = {
|
||||
addHTML: addHTML,
|
||||
initialize: initialize,
|
||||
finalize: finalize
|
||||
}
|
||||
|
||||
return thisObject
|
||||
|
||||
function initialize() {
|
||||
|
||||
}
|
||||
|
||||
function finalize() {
|
||||
|
||||
}
|
||||
|
||||
function addHTML(tabIndex, filters) {
|
||||
/*
|
||||
Parameters
|
||||
*/
|
||||
let table = 'votes'
|
||||
let programName = 'Voting Program'
|
||||
let programPropertyName = 'votingProgram'
|
||||
/*
|
||||
Setup Filters
|
||||
*/
|
||||
let filtersObject
|
||||
if (filters !== undefined) {
|
||||
try {
|
||||
filtersObject = JSON.parse(filters)
|
||||
} catch (err) { }
|
||||
}
|
||||
/*
|
||||
Other Variables
|
||||
*/
|
||||
let tableRecords = []
|
||||
let tableRecordDefinition = {
|
||||
"properties": [
|
||||
{
|
||||
"name": "name",
|
||||
"label": "User Profile",
|
||||
"type": "string",
|
||||
"order": "ascending",
|
||||
"textAlign": "left"
|
||||
},
|
||||
{
|
||||
"name": "ownPower",
|
||||
"label": "Own Power",
|
||||
"type": "number",
|
||||
"order": "descending",
|
||||
"textAlign": "center",
|
||||
"format": "2 decimals"
|
||||
},
|
||||
{
|
||||
"name": "incoming",
|
||||
"label": "Incoming",
|
||||
"type": "number",
|
||||
"order": "descending",
|
||||
"textAlign": "center",
|
||||
"format": "2 decimals"
|
||||
},
|
||||
{
|
||||
"name": "tokensBonus",
|
||||
"label": "Bonus",
|
||||
"type": "number",
|
||||
"order": "descending",
|
||||
"textAlign": "center",
|
||||
"format": "2 decimals"
|
||||
}
|
||||
]
|
||||
}
|
||||
/*
|
||||
Here we get from the workspace all User Profiles.
|
||||
*/
|
||||
let userProfiles = UI.projects.foundations.spaces.designSpace.workspace.getHierarchyHeadsByNodeType('User Profile')
|
||||
/*
|
||||
Transform the result array into table records.
|
||||
*/
|
||||
for (let j = 0; j < userProfiles.length; j++) {
|
||||
let userProfile = userProfiles[j]
|
||||
|
||||
if (userProfile.tokenPowerSwitch === undefined) { continue }
|
||||
let program = UI.projects.governance.utilities.validations.onlyOneProgram(userProfile, programName)
|
||||
if (program === undefined) { continue }
|
||||
if (program.payload === undefined) { continue }
|
||||
|
||||
let tableRecord = {
|
||||
"name": userProfile.name,
|
||||
"ownPower": program.payload[programPropertyName].ownPower | 0,
|
||||
"incoming": program.payload[programPropertyName].incomingPower | 0,
|
||||
"tokensBonus": program.payload[programPropertyName].bonus.tokens | 0
|
||||
}
|
||||
|
||||
if (UI.projects.governance.utilities.filters.applyFilters(filters, filtersObject, tableRecord) === true) {
|
||||
tableRecords.push(tableRecord)
|
||||
}
|
||||
}
|
||||
/*
|
||||
Get the sorting order for this table.
|
||||
*/
|
||||
let sortingOrder = UI.projects.governance.spaces.reportsSpace.tablesSortingOrders[table]
|
||||
/*
|
||||
Set the default sorting order for this table.
|
||||
*/
|
||||
if (sortingOrder === undefined) {
|
||||
UI.projects.governance.spaces.reportsSpace.tablesSortingOrders[table] = {
|
||||
property: 'tokensBonus',
|
||||
order: 'descending'
|
||||
}
|
||||
sortingOrder = UI.projects.governance.spaces.reportsSpace.tablesSortingOrders[table]
|
||||
}
|
||||
return UI.projects.governance.utilities.tables.addHTML(
|
||||
table,
|
||||
tableRecords,
|
||||
tableRecordDefinition,
|
||||
sortingOrder,
|
||||
tabIndex
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -1038,9 +1038,9 @@
|
||||
"functionName": "newGovernanceFunctionLibraryMentorshipProgram"
|
||||
},
|
||||
{
|
||||
"name": "Stacking Program",
|
||||
"propertyName": "stackingProgram",
|
||||
"functionName": "newGovernanceFunctionLibraryStackingProgram"
|
||||
"name": "Staking Program",
|
||||
"propertyName": "stakingProgram",
|
||||
"functionName": "newGovernanceFunctionLibraryStakingProgram"
|
||||
},
|
||||
{
|
||||
"name": "Profile Constructor",
|
||||
|
||||
Reference in new issue
Block a user