Merge branch 'Superalgos:develop' into develop

This commit is contained in:
B Harrell authored and GitHub committed 2021-06-19 14:57:49 -05:00
commit d760d301cb
36 files changed
+1734 -683

No files matched your search

+60 -8
View File
@@ -32,7 +32,8 @@
} catch (e) { console.error('CJ protection', e) }
try {
loadSuperalgos();
drawSplashText()
loadSuperalgos()
} catch (err) {
console.log("[ERROR] UI can not be started. Please check that WebServer is running.", err);
}
@@ -48,21 +49,72 @@
console.log('Error Resizing. ' + err.stack)
}
}
function drawSplashText() {
const splashTextArray = [
{
"splashTextLine1Html": 'Superalgos is <span class="credits-red">open source</span>, <span class="credits-red">forever free</span> for <span class="credits-red">everyone</span>, and is <spanclass="credits-red">constantly improving</span> thanks to the involvement of contributors:'
,
"splashTextLine2Html": 'Luis Fernando Molina, Julian Molina, Andreja Cobeljic, Ira Miller, matbenitez, bearcanrun, nikolabjelo, 9808us, pmmax, suttridge, Basalt09, Mhnramin, 0xperez, infin1t3, benitezme, whtv, cozed-gh, Eduardo678-dotcom, Smidy13, teehanming, 64bittuning, joenij, apronotti, Noeljarillo, ssplatt, rico4dev, DougJCook, mane, Cordo-van-Saviour, CarnivalBen, Sil3ntLight, pisukesoramame, Edodi, harrellbm, CaptainJeff, Jeff Braun, Francisco J. Santillán, Norman, Viktoria B., Guillermo V., Daniel J., Javier A., Gustavo J., Romina GS, Pedro P., Thais M., Andrey M., Loui M., Natalia, M., Bashar A., Carlos V., Diego M., Sebastian E., Bogdan P., Marko V., Igor S., Niksa K., Rodrigo M., Nicanor M., Mateo H., Lan T., Leon A., Uroš R., Filip M., Vladimir J. and Pavle B.'
,
"splashTextLine3Html": 'Please, <span class="credits-red">give a star to the Superalgos repo at GitHub.com...</span> It helps other devs find the project!'
},
{
"splashTextLine1Html": 'Superalgos is a Community of <span class="credits-red">Algo-Traders</span>, sharing knoleadge, experience and tools between each other.'
,
"splashTextLine2Html": 'The Superalgos Community is capable of collective bargaining with Crypto Exchanges to get better trading fees for all members.'
,
"splashTextLine3Html": 'Become part of the <span class="credits-red">Superalgos Community</span> by making a small contribution to the open source project!'
},
{
"splashTextLine1Html": 'Superalgos is built on <span class="credits-red">Core Values</span> that we are never going to change.'
,
"splashTextLine2Html": 'Superalgos software <span class="credits-red">does not include Ads</span> of any kind, and it will never do it. Superalgos software <span class="credits-red">does not collect user information</span> of any kind, and it will never do it. Superalgos software <span class="credits-red">is Free of Charge</span> for all community members, and it will allways be. We value <span class="credits-red">Education</span> that is why we build into the software educational tools and content.'
,
"splashTextLine3Html": 'We build this together and it belongs to us. Become part of the <span class="credits-red">Superalgos Community</span> by making a small contribution to the open source project!'
},
{
"splashTextLine1Html": 'Superalgos is <span class="credits-red">Permissionless</span>. Don\'t like the UI? Don\'t like the icons used? Don\'t like the Charting System? Don\'t like the Visual Designer? Don\'t like the Visual Debugger? Don\'t like the Docs? Don\'t like the Trading Bot? Don\'t like the Indicators? Don\'t like the Plotters? Don\'t like any other part of the system?'
,
"splashTextLine2Html": 'No problem, code or integrate libraries with your own version of any component and we promise we will merge your work and provide it as an alternative to users. We believe in <span class="credits-red">Permissionless Innovation</span> and that users, not team members, are the final judges and the ones who decide what they prefer to use. You are free to create an alternative for any part of the system that you believe that should work or should have been done in a different way. We will help you integrate your vision into the next release and enable a way for users to choose between different implementations of the same functionality. You will also be granted the title of maintainer of the functionality you provide and have decision power on how it evolves in the future.'
,
"splashTextLine3Html": 'We are strong belieavers in <span class="credits-red">Permissionless Innovation</span>. You don\'t need to ask for permission to become one of us. Make a small contribution to the open source project and you will become a member of the <span class="credits-red">Superalgos Community</span>'
},
{
"splashTextLine1Html": 'Would you like to join the <span class="credits-red">Superalgos\'s Developer Team</span>?.'
,
"splashTextLine2Html": 'Just look around, find something that is missing and start coding it. If you need help ask at the chat groups. If the feature you want to add is big or difficult to integrate, look for a mentor to help you out.'
,
"splashTextLine3Html": 'If Bitcoin\'s motto is <span class="credits-red">Don\'t trust. Verify.</span>, ours is: <span class="credits-red">Just code it.</span>'
}
]
let arrayIndex = Math.trunc(Math.random() * splashTextArray.length)
let splashTextElement
splashTextElement = document.getElementById('splash-text-line-1')
splashTextElement.innerHTML = splashTextArray[arrayIndex].splashTextLine1Html
splashTextElement = document.getElementById('splash-text-line-2')
splashTextElement.innerHTML = splashTextArray[arrayIndex].splashTextLine2Html
splashTextElement = document.getElementById('splash-text-line-3')
splashTextElement.innerHTML = splashTextArray[arrayIndex].splashTextLine3Html
}
</script>
</head>
<body id="body" onload="loadCanvas()"
style="overflow:hidden; background: url(Images/superalgos-platform.jpg); background-size: cover;"
onresize="onResize()">
<div id="contributors" class="credits">
<p style="font-size: 120%;">Superalgos is <span class="credits-red">open source</span>, <span class="credits-red">forever free</span> for <span class="credits-red">everyone</span>, and is <span class="credits-red">constantly improving</span> thanks to the involvement of contributors:</p>
<p style="font-size: 100%;">Luis Fernando Molina, Julian Molina, Andreja Cobeljic, Ira Miller, matbenitez, bearcanrun, nikolabjelo, 9808us, pmmax, suttridge, Basalt09, Mhnramin, 0xperez, infin1t3, benitezme, whtv, cozed-gh, Eduardo678-dotcom, Smidy13, teehanming, 64bittuning, joenij, apronotti, Noeljarillo, ssplatt, rico4dev, DougJCook, mane, Cordo-van-Saviour, CarnivalBen, Sil3ntLight, pisukesoramame, Edodi, harrellbm, CaptainJeff, Jeff Braun, Francisco J. Santillán, Norman, Viktoria B., Guillermo V., Daniel J., Javier A., Gustavo J., Romina GS, Pedro P., Thais M., Andrey M., Loui M., Natalia M., Bashar A., Carlos V., Diego M., Sebastian E., Bogdan P., Marko V., Igor S., Niksa K., Rodrigo M., Nicanor M., Mateo H., Lan T., Leon A., Uroš R., Filip M., Vladimir J. and Pavle B.</p>
<p style="font-size: 120%;">Please, <span class="credits-red">give a star to the Superalgos repo at GitHub.com...</span> It helps other devs find the project!</p>
<p id="credits-page-status-paragraph" class="credits-yellow">The UI is loading...</p>
<div id="splash-text" class="credits">
<p id="splash-text-line-1" style="font-size: 120%;"></p>
<p id="splash-text-line-2" style="font-size: 120%;"></p>
<p id="splash-text-line-3" style="font-size: 120%;"></p>
<p id="splash-text-status-paragraph" class="credits-yellow">The UI is loading...</p>
</div>
<div id="masterApp"></div>
<div id="canvasApp"></div>
<div id="docs-space-div" class="docs-page" style="position:fixed; top:100000px; left:100000px"><div id="docs-content-div"></div></div>
<div id="docs-space-div" class="docs-page" style="position:fixed; top:100000px; left:100000px">
<div id="docs-content-div"></div>
</div>
<div id="chatApp" style="position:fixed; top:100000px; left:100000px">
<iframe id="chatIFrame" style="border:none; " height="2000" width="900"></iframe>
</div>
@@ -196,4 +248,4 @@
</body>
</html>
</html>
-3
View File
@@ -223,10 +223,7 @@ exports.newWeb3Server = function newWeb3Server() {
async function recoverAddress(signature) {
try {
console.log("STRING:", signature)
let signatureObject = JSON.parse(signature)
console.log("OBJECT:", signatureObject)
let web3 = new Web3()
let address = web3.eth.accounts.recover(signatureObject)
@@ -0,0 +1,241 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
viewBox="0 0 512.00001 511.99998"
version="1.1"
id="svg36"
sodipodi:docname="okex.svg"
width="512"
height="512"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)"
inkscape:export-filename="E:\Superalgos\Projects\Foundations\Icons-SVG-Sources\exchanges\okex.png"
inkscape:export-xdpi="100"
inkscape:export-ydpi="100">
<metadata
id="metadata42">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs40" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1017"
id="namedview38"
showgrid="false"
lock-margins="true"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:zoom="0.53036163"
inkscape:cx="-196.62891"
inkscape:cy="370.07333"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="svg36"
inkscape:document-rotation="0" />
<path
d="M 0,512 V 0"
fill="#dbd9d9"
id="path2"
style="stroke-width:1.2779" />
<path
d="m 228.45498,228.44296 a 115.89518,115.88909 0 0 0 55.12976,0 116.08688,116.08077 0 0 1 85.0077,-85.00322 115.89518,115.88909 0 1 0 -225.15793,0 116.04853,116.04243 0 0 1 85.02047,85.00322 z"
fill="#7abdf7"
id="path4"
style="stroke-width:1.2779" />
<path
d="m 283.58474,283.54426 a 115.89518,115.88909 0 0 0 -55.12976,0 116.08688,116.08077 0 0 1 -85.00769,85.00323 115.89518,115.88909 0 1 0 225.15792,0 116.04853,116.04243 0 0 1 -85.02047,-85.00323 z"
fill="#0d74f5"
id="path6"
style="stroke-width:1.2779" />
<path
d="m 396.15732,140.10452 a 115.76739,115.7613 0 0 0 -27.55211,3.32244 116.02298,116.01687 0 0 1 -84.99491,84.99044 115.89518,115.88909 0 0 0 0,55.12686 116.04853,116.04243 0 0 1 84.99491,85.00323 115.89518,115.88909 0 1 0 27.55211,-228.46852 z"
fill="#4494f7"
id="path8"
style="stroke-width:1.2779" />
<path
d="m 228.45498,283.54426 a 115.89518,115.88909 0 0 0 0,-55.12686 116.04853,116.04243 0 0 1 -85.00769,-84.99044 115.89518,115.88909 0 1 0 0,225.14608 116.06132,116.05521 0 0 1 85.00769,-85.02878 z"
fill="#005cf4"
id="path10"
style="stroke-width:1.2779" />
<path
d="m 283.58474,228.44296 a 116.08688,116.08077 0 0 0 85.0077,-85.00322 116.08688,116.08077 0 0 0 -85.0077,85.00322 z"
fill="#186ef9"
id="path12"
style="stroke-width:1.2779" />
<path
d="m 283.58474,283.54426 a 116.04853,116.04243 0 0 0 85.0077,85.00323 116.08688,116.08077 0 0 0 -85.0077,-85.00323 z"
fill="#0246f2"
id="path14"
style="stroke-width:1.2779" />
<path
d="m 228.45498,228.44296 a 116.08688,116.08077 0 0 0 -85.00769,-85.00322 116.08688,116.08077 0 0 0 85.00769,85.00322 z"
fill="#0046f8"
id="path16"
style="stroke-width:1.2779" />
<path
d="m 228.45498,283.54426 a 116.08688,116.08077 0 0 0 -85.00769,85.00323 116.08688,116.08077 0 0 0 85.00769,-85.00323 z"
fill="#0729f1"
id="path18"
style="stroke-width:1.2779" />
<path
d="m 228.45498,228.44296 a 115.89518,115.88909 0 0 0 55.12976,0 116.08688,116.08077 0 0 1 85.0077,-85.00322 115.89518,115.88909 0 1 0 -225.15793,0 116.04853,116.04243 0 0 1 85.02047,85.00322 z"
fill="#7abdf7"
id="path20"
style="stroke-width:1.2779" />
<path
d="m 283.58474,283.54426 a 115.89518,115.88909 0 0 0 -55.12976,0 116.08688,116.08077 0 0 1 -85.00769,85.00323 115.89518,115.88909 0 1 0 225.15792,0 116.04853,116.04243 0 0 1 -85.02047,-85.00323 z"
fill="#0d74f5"
id="path22"
style="stroke-width:1.2779" />
<path
d="m 396.15732,140.10452 a 115.76739,115.7613 0 0 0 -27.55211,3.32244 116.02298,116.01687 0 0 1 -84.99491,84.99044 115.89518,115.88909 0 0 0 0,55.12686 116.04853,116.04243 0 0 1 84.99491,85.00323 115.89518,115.88909 0 1 0 27.55211,-228.46852 z"
fill="#4494f7"
id="path24"
style="stroke-width:1.2779" />
<path
d="m 228.45498,283.54426 a 115.89518,115.88909 0 0 0 0,-55.12686 116.04853,116.04243 0 0 1 -85.00769,-84.99044 115.89518,115.88909 0 1 0 0,225.14608 116.06132,116.05521 0 0 1 85.00769,-85.02878 z"
fill="#005cf4"
id="path26"
style="stroke-width:1.2779" />
<path
d="m 283.58474,228.44296 a 116.08688,116.08077 0 0 0 85.0077,-85.00322 116.08688,116.08077 0 0 0 -85.0077,85.00322 z"
fill="#186ef9"
id="path28"
style="stroke-width:1.2779" />
<path
d="m 283.58474,283.54426 a 116.04853,116.04243 0 0 0 85.0077,85.00323 116.08688,116.08077 0 0 0 -85.0077,-85.00323 z"
fill="#0246f2"
id="path30"
style="stroke-width:1.2779" />
<path
d="m 228.45498,228.44296 a 116.08688,116.08077 0 0 0 -85.00769,-85.00322 116.08688,116.08077 0 0 0 85.00769,85.00322 z"
fill="#0046f8"
id="path32"
style="stroke-width:1.2779" />
<path
d="m 228.45498,283.54426 a 116.08688,116.08077 0 0 0 -85.00769,85.00323 116.08688,116.08077 0 0 0 85.00769,-85.00323 z"
fill="#0729f1"
id="path34"
style="stroke-width:1.2779" />
<rect
x="-600"
y="0"
class="st3"
width="128"
height="128"
id="rect18"
style="fill:#f0353d" />
<rect
x="-472"
y="0"
class="st4"
width="128"
height="128"
id="rect20"
style="fill:#fd6a33" />
<rect
x="-344"
y="0"
class="st5"
width="128"
height="128"
id="rect22"
style="fill:#ff8c29" />
<rect
x="-215.99994"
y="0"
class="st6"
width="128"
height="128"
id="rect24"
style="fill:#ffd1a9" />
<rect
x="-600"
y="128.00002"
class="st1"
width="128"
height="128"
id="rect26"
style="fill:#365558" />
<rect
x="-472"
y="128.00002"
class="st0"
width="128"
height="128"
id="rect28"
style="fill:#0295aa" />
<rect
x="-344"
y="128.00002"
class="st7"
width="128"
height="128"
id="rect30"
style="fill:#4acfd9" />
<rect
x="-600"
y="256"
class="st8"
width="128"
height="128"
id="rect32"
style="fill:#9baaab" />
<rect
x="-472"
y="256"
class="st9"
width="128"
height="128"
id="rect34"
style="fill:#cdd4d5" />
<rect
x="-344"
y="256"
class="st10"
width="128"
height="128"
id="rect36"
style="fill:#e6eaea" />
<rect
x="-215.99994"
y="256"
class="st11"
width="128"
height="128"
id="rect38"
style="fill:#ffffff" />
<rect
x="-600"
y="384"
class="st12"
width="128"
height="128"
id="rect40"
style="fill:#bcd643" />
</svg>

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

@@ -119,6 +119,10 @@
{
"codeName": "luno",
"iconName": "luno"
},
{
"codeName": "okex",
"iconName": "okex"
}
]
}
@@ -197,7 +197,8 @@ exports.newFoundationsBotModulesSnapshots = function (processIndex) {
if (nodeWithCode.code === undefined) { return }
try {
let instructionsArray = nodeWithCode.code.split(' ')
const code = nodeWithCode.code
let instructionsArray = code.split(' ')
for (let i = 0; i < instructionsArray.length; i++) {
let instruction = instructionsArray[i]
instruction = instruction.replace('(', '')
@@ -28,11 +28,11 @@ function newUiObject() {
hasError: undefined,
hasWarning: undefined,
hasInfo: undefined,
valueAtAngle: true,
valueAtAngle: false,
valueAngleOffset: 0,
percentageAtAngle: true,
percentageAtAngle: false,
percentageAngleOffset: 0,
statusAtAngle: true,
statusAtAngle: false,
statusAngleOffset: 0,
run: run,
stop: stop,
@@ -6,7 +6,7 @@ function newFoundationsUtilitiesStatusBar() {
return thisObject
function changeStatus(newStatus) {
let statusParagraph = document.getElementById('credits-page-status-paragraph')
let statusParagraph = document.getElementById('splash-text-status-paragraph')
statusParagraph.lastChild.data = newStatus
try {
@@ -1 +1,212 @@
{"type":"Features","name":"Superalgos","project":"Governance","featureClasses":[{"type":"Feature Class","name":"Superalgos","config":"{\n \"description\": \"\", \"relativeWeight\": 0 \n}","project":"Governance","featureClasses":[{"type":"Feature Class","name":"Visual Designer","config":"{\n \"description\": \"\", \"relativeWeight\": 0 \n}","project":"Governance","featureClasses":[],"features":[],"id":"18584f3f-6e48-4a68-89f1-0268185156e9","savedPayload":{"position":{"x":35870.70509831249,"y":38274.83557568774},"targetPosition":{"x":35628,"y":38098.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Feature Class","name":"Visual Debugger","config":"{\n \"description\": \"\", \"relativeWeight\": 0 \n}","project":"Governance","featureClasses":[],"features":[],"id":"0e329071-a542-405f-ae8c-2933098759c1","savedPayload":{"position":{"x":35720.70509831249,"y":38383.81695488855},"targetPosition":{"x":35628,"y":38098.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Feature Class","name":"Charting System","config":"{\n \"description\": \"\", \"relativeWeight\": 0 \n}","project":"Governance","featureClasses":[],"features":[],"id":"7edc83c0-74fc-4427-816d-4db5d840577f","savedPayload":{"position":{"x":35535.29490168751,"y":38383.81695488855},"targetPosition":{"x":35628,"y":38098.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Feature Class","name":"Data Mining","config":"{\n \"description\": \"\", \"relativeWeight\": 0 \n}","project":"Governance","featureClasses":[],"features":[],"id":"025c0e15-ad8d-49ae-b501-577bb82c207d","savedPayload":{"position":{"x":35385.29490168751,"y":38274.83557568774},"targetPosition":{"x":35628,"y":38098.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"features":[],"id":"136b6e7a-f042-441b-84be-395b56b65b70","savedPayload":{"position":{"x":35628,"y":38098.5},"targetPosition":{"x":35628,"y":37798.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"features":[],"id":"1d2c1985-c762-4ece-b350-15bd893bd1f4","savedPayload":{"position":{"x":35628,"y":37798.5},"targetPosition":{"x":35628,"y":37798.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}
{
"type": "Features",
"name": "Superalgos",
"project": "Governance",
"featureClasses": [
{
"type": "Feature Class",
"name": "Superalgos",
"config": "{\n \"description\": \"\", \"relativeWeight\": 0 \n}",
"project": "Governance",
"featureClasses": [
{
"type": "Feature Class",
"name": "Visual Designer",
"config": "{\n \"description\": \"\", \"relativeWeight\": 0 \n}",
"project": "Governance",
"featureClasses": [],
"features": [],
"id": "18584f3f-6e48-4a68-89f1-0268185156e9",
"savedPayload": {
"position": {
"x": 35870.70509831249,
"y": 38274.83557568774
},
"targetPosition": {
"x": 35628,
"y": 38098.5
},
"floatingObject": {
"isPinned": false,
"isFrozen": false,
"isCollapsed": false,
"angleToParent": 2,
"distanceToParent": 3,
"arrangementStyle": 0
},
"uiObject": {
"isRunning": false
}
}
},
{
"type": "Feature Class",
"name": "Visual Debugger",
"config": "{\n \"description\": \"\", \"relativeWeight\": 0 \n}",
"project": "Governance",
"featureClasses": [],
"features": [],
"id": "0e329071-a542-405f-ae8c-2933098759c1",
"savedPayload": {
"position": {
"x": 35720.70509831249,
"y": 38383.81695488855
},
"targetPosition": {
"x": 35628,
"y": 38098.5
},
"floatingObject": {
"isPinned": false,
"isFrozen": false,
"isCollapsed": false,
"angleToParent": 2,
"distanceToParent": 3,
"arrangementStyle": 0
},
"uiObject": {
"isRunning": false
}
}
},
{
"type": "Feature Class",
"name": "Charting System",
"config": "{\n \"description\": \"\", \"relativeWeight\": 0 \n}",
"project": "Governance",
"featureClasses": [],
"features": [],
"id": "7edc83c0-74fc-4427-816d-4db5d840577f",
"savedPayload": {
"position": {
"x": 35535.29490168751,
"y": 38383.81695488855
},
"targetPosition": {
"x": 35628,
"y": 38098.5
},
"floatingObject": {
"isPinned": false,
"isFrozen": false,
"isCollapsed": false,
"angleToParent": 2,
"distanceToParent": 3,
"arrangementStyle": 0
},
"uiObject": {
"isRunning": false
}
}
},
{
"type": "Feature Class",
"name": "Data Mining",
"config": "{\n \"description\": \"\", \"relativeWeight\": 0 \n}",
"project": "Governance",
"featureClasses": [],
"features": [
{
"type": "Feature",
"name": "Feature X",
"config": "{}",
"project": "Governance",
"featureClasses": [],
"features": [],
"id": "1b9dd977-f388-4434-a3f9-2e7a10726848",
"savedPayload": {
"position": {
"x": 35142.58980337503,
"y": 38451.171151375485
},
"targetPosition": {
"x": 35385.29490168751,
"y": 38274.83557568774
},
"floatingObject": {
"isPinned": false,
"isFrozen": false,
"isCollapsed": false,
"angleToParent": 2,
"distanceToParent": 3,
"arrangementStyle": 0
},
"uiObject": {
"isRunning": false
}
}
}
],
"id": "025c0e15-ad8d-49ae-b501-577bb82c207d",
"savedPayload": {
"position": {
"x": 35385.29490168751,
"y": 38274.83557568774
},
"targetPosition": {
"x": 35628,
"y": 38098.5
},
"floatingObject": {
"isPinned": false,
"isFrozen": false,
"isCollapsed": false,
"angleToParent": 2,
"distanceToParent": 3,
"arrangementStyle": 0
},
"uiObject": {
"isRunning": false
}
}
}
],
"features": [],
"id": "136b6e7a-f042-441b-84be-395b56b65b70",
"savedPayload": {
"position": {
"x": 35628,
"y": 38098.5
},
"targetPosition": {
"x": 35628,
"y": 37798.5
},
"floatingObject": {
"isPinned": false,
"isFrozen": false,
"isCollapsed": false,
"angleToParent": 2,
"distanceToParent": 3,
"arrangementStyle": 0
},
"uiObject": {
"isRunning": false
}
}
}
],
"features": [],
"id": "1d2c1985-c762-4ece-b350-15bd893bd1f4",
"savedPayload": {
"position": {
"x": 35628,
"y": 37798.5
},
"targetPosition": {
"x": 35628,
"y": 37798.5
},
"floatingObject": {
"isPinned": false,
"isFrozen": false,
"isCollapsed": false,
"angleToParent": 1,
"distanceToParent": 3,
"arrangementStyle": 0
},
"uiObject": {
"isRunning": false
}
}
}
+132 -66
View File
@@ -6,7 +6,7 @@
"poolClasses": [
{
"type": "Pool Class",
"name": "Software",
"name": "Software Projects",
"config": "{\n \"description\": \"\"\n}",
"project": "Governance",
"poolClasses": [],
@@ -180,7 +180,7 @@
"floatingObject": {
"isPinned": false,
"isFrozen": false,
"isCollapsed": false,
"isCollapsed": true,
"angleToParent": 1,
"distanceToParent": 3,
"arrangementStyle": 0
@@ -213,12 +213,12 @@
"id": "6a456247-13b7-41f2-80b3-957c1af55009",
"savedPayload": {
"position": {
"x": 25599.401355365237,
"y": 30867.356170711148
"x": 25700.116150324728,
"y": 30728.73414780495
},
"targetPosition": {
"x": 25305.957075145096,
"y": 30804.98266346582
"x": 25400.116150324728,
"y": 30728.73414780495
},
"floatingObject": {
"isPinned": false,
@@ -243,12 +243,12 @@
"id": "5bbe5a09-fe32-4802-8e14-d06615a24510",
"savedPayload": {
"position": {
"x": 25398.66217345758,
"y": 31090.299618354366
"x": 25550.116150324728,
"y": 30988.541768940282
},
"targetPosition": {
"x": 25305.957075145096,
"y": 30804.98266346582
"x": 25400.116150324728,
"y": 30728.73414780495
},
"floatingObject": {
"isPinned": false,
@@ -267,12 +267,12 @@
"id": "95431b88-cbff-459c-a707-fd3518e79c73",
"savedPayload": {
"position": {
"x": 25305.957075145096,
"y": 30804.98266346582
"x": 25400.116150324728,
"y": 30728.73414780495
},
"targetPosition": {
"x": 25083.013627501878,
"y": 30604.243481558162
"x": 25140.308529189395,
"y": 30578.73414780495
},
"floatingObject": {
"isPinned": false,
@@ -304,12 +304,12 @@
"id": "6b4bee15-622d-4df6-9662-4d7b8d44f198",
"savedPayload": {
"position": {
"x": 24958.266613011223,
"y": 31191.132041998444
"x": 25140.308529189395,
"y": 31178.73414780495
},
"targetPosition": {
"x": 25020.64012025655,
"y": 30897.687761778303
"x": 25140.308529189395,
"y": 30878.73414780495
},
"floatingObject": {
"isPinned": false,
@@ -333,12 +333,12 @@
"id": "ab43c779-d6d6-451d-a444-cfb8b68df07e",
"savedPayload": {
"position": {
"x": 25020.64012025655,
"y": 30897.687761778303
"x": 25140.308529189395,
"y": 30878.73414780495
},
"targetPosition": {
"x": 25083.013627501878,
"y": 30604.243481558162
"x": 25140.308529189395,
"y": 30578.73414780495
},
"floatingObject": {
"isPinned": false,
@@ -358,8 +358,8 @@
"id": "85dbdcb9-5b59-432e-86a0-fab37e20a55d",
"savedPayload": {
"position": {
"x": 25083.013627501878,
"y": 30604.243481558162
"x": 25140.308529189395,
"y": 30578.73414780495
},
"targetPosition": {
"x": 24990.308529189395,
@@ -368,7 +368,7 @@
"floatingObject": {
"isPinned": false,
"isFrozen": false,
"isCollapsed": false,
"isCollapsed": true,
"angleToParent": 1,
"distanceToParent": 3,
"arrangementStyle": 0
@@ -401,12 +401,12 @@
"id": "60712b3c-ee76-40ba-8de2-e03aa61f6dde",
"savedPayload": {
"position": {
"x": 24808.183476228434,
"y": 31071.64273248506
"x": 25130.086277076116,
"y": 31080.643930047634
},
"targetPosition": {
"x": 24700.673091364843,
"y": 30791.5686045359
"x": 24917.954242720152,
"y": 30868.51189569167
},
"floatingObject": {
"isPinned": false,
@@ -431,12 +431,12 @@
"id": "639a6504-a0d0-4d7e-ad99-80ba5115ac72",
"savedPayload": {
"position": {
"x": 24511.87697404989,
"y": 31024.71239297299
"x": 24840.308529189395,
"y": 31158.28964357839
},
"targetPosition": {
"x": 24700.673091364843,
"y": 30791.5686045359
"x": 24917.954242720152,
"y": 30868.51189569167
},
"floatingObject": {
"isPinned": false,
@@ -455,12 +455,12 @@
"id": "9b6c24b9-e21d-458b-b509-1828d40b4239",
"savedPayload": {
"position": {
"x": 24700.673091364843,
"y": 30791.5686045359
"x": 24917.954242720152,
"y": 30868.51189569167
},
"targetPosition": {
"x": 24747.603430876912,
"y": 30495.26210235736
"x": 24840.308529189395,
"y": 30578.73414780495
},
"floatingObject": {
"isPinned": false,
@@ -492,12 +492,12 @@
"id": "6b11cf29-2957-417d-a268-3569178eca9e",
"savedPayload": {
"position": {
"x": 24262.193234251947,
"y": 30847.933253732845
"x": 24540.308529189395,
"y": 31098.349390075615
},
"targetPosition": {
"x": 24504.89833256443,
"y": 30671.597678045102
"x": 24690.308529189395,
"y": 30838.541768940282
},
"floatingObject": {
"isPinned": false,
@@ -516,12 +516,12 @@
"id": "e2113b73-9a38-4c59-8fbe-95a7539379c5",
"savedPayload": {
"position": {
"x": 24504.89833256443,
"y": 30671.597678045102
"x": 24690.308529189395,
"y": 30838.541768940282
},
"targetPosition": {
"x": 24747.603430876912,
"y": 30495.26210235736
"x": 24840.308529189395,
"y": 30578.73414780495
},
"floatingObject": {
"isPinned": false,
@@ -553,12 +553,12 @@
"id": "ea79efd3-c3d9-4c80-a1d0-1cab106e0242",
"savedPayload": {
"position": {
"x": 24154.99042651983,
"y": 30401.40142333322
"x": 24260.753033415953,
"y": 30734.025574866464
},
"targetPosition": {
"x": 24451.29692869837,
"y": 30448.33176284529
"x": 24550.530781302674,
"y": 30656.379861335707
},
"floatingObject": {
"isPinned": false,
@@ -577,12 +577,12 @@
"id": "c7cd91a3-96b0-4115-aaaa-fddae1c1b246",
"savedPayload": {
"position": {
"x": 24451.29692869837,
"y": 30448.33176284529
"x": 24550.530781302674,
"y": 30656.379861335707
},
"targetPosition": {
"x": 24747.603430876912,
"y": 30495.26210235736
"x": 24840.308529189395,
"y": 30578.73414780495
},
"floatingObject": {
"isPinned": false,
@@ -602,8 +602,8 @@
"id": "ae18dd6f-80f7-4fa0-a386-7ffd75e45063",
"savedPayload": {
"position": {
"x": 24747.603430876912,
"y": 30495.26210235736
"x": 24840.308529189395,
"y": 30578.73414780495
},
"targetPosition": {
"x": 24990.308529189395,
@@ -612,7 +612,7 @@
"floatingObject": {
"isPinned": false,
"isFrozen": false,
"isCollapsed": false,
"isCollapsed": true,
"angleToParent": 1,
"distanceToParent": 3,
"arrangementStyle": 0
@@ -1047,8 +1047,8 @@
"id": "86787666-908c-4b27-8265-cd460732030f",
"savedPayload": {
"position": {
"x": 24747.603430876912,
"y": 30142.590950981874
"x": 24690.308529189395,
"y": 30318.926526669617
},
"targetPosition": {
"x": 24990.308529189395,
@@ -1057,7 +1057,7 @@
"floatingObject": {
"isPinned": false,
"isFrozen": false,
"isCollapsed": false,
"isCollapsed": true,
"angleToParent": 1,
"distanceToParent": 3,
"arrangementStyle": 0
@@ -1084,12 +1084,12 @@
"id": "5d878af1-e32c-4458-8fb7-98df55f1e54a",
"savedPayload": {
"position": {
"x": 25175.71872581436,
"y": 29748.292616892526
"x": 24690.308529189395,
"y": 29799.31128439895
},
"targetPosition": {
"x": 25083.013627501878,
"y": 30033.60957178107
"x": 24840.308529189395,
"y": 30059.118905534284
},
"floatingObject": {
"isPinned": false,
@@ -1113,8 +1113,74 @@
"id": "a2acb2b1-c88f-47f2-b31b-b0cde52801ac",
"savedPayload": {
"position": {
"x": 25083.013627501878,
"y": 30033.60957178107
"x": 24840.308529189395,
"y": 30059.118905534284
},
"targetPosition": {
"x": 24990.308529189395,
"y": 30318.926526669617
},
"floatingObject": {
"isPinned": false,
"isFrozen": false,
"isCollapsed": true,
"angleToParent": 1,
"distanceToParent": 3,
"arrangementStyle": 0
},
"uiObject": {
"isRunning": false
}
}
},
{
"type": "Pool Class",
"name": "Features",
"config": "{}",
"project": "Governance",
"poolClasses": [],
"pools": [
{
"type": "Pool",
"name": "Features",
"config": "{}",
"project": "Governance",
"poolClasses": [],
"pools": [],
"id": "2d34ec1b-e281-4163-a44b-6ac33a54e002",
"savedPayload": {
"position": {
"x": 25290.308529189395,
"y": 29799.31128439895
},
"targetPosition": {
"x": 25140.308529189395,
"y": 30059.118905534284
},
"floatingObject": {
"isPinned": false,
"isFrozen": false,
"isCollapsed": false,
"angleToParent": 1,
"distanceToParent": 3,
"arrangementStyle": 0
},
"uiObject": {
"isRunning": false
},
"referenceParent": {
"type": "Features",
"name": "Superalgos",
"id": "1d2c1985-c762-4ece-b350-15bd893bd1f4"
}
}
}
],
"id": "8c3175a1-17aa-4e27-bcbe-063468ecc87e",
"savedPayload": {
"position": {
"x": 25140.308529189395,
"y": 30059.118905534284
},
"targetPosition": {
"x": 24990.308529189395,
@@ -1148,7 +1214,7 @@
"floatingObject": {
"isPinned": false,
"isFrozen": false,
"isCollapsed": true,
"isCollapsed": false,
"angleToParent": 1,
"distanceToParent": 3,
"arrangementStyle": 0
@@ -184,9 +184,9 @@
"name": "New Claims Program",
"config": "{}",
"project": "Governance",
"assetContributionsFolder": [],
"featureContributionsFolder": [],
"positionContributionsFolder": [],
"assetClaimsFolders": [],
"featureClaimsFolders": [],
"positionClaimsFolders": [],
"id": "bec9399a-9f85-4cb5-bff4-9938a3bc7ac4",
"savedPayload": {
"position": {
File diff suppressed because it is too large. Load diff
@@ -1,5 +1,5 @@
{
"type": "Asset Contributions Folder",
"type": "Asset Claims Folder",
"menuItems": [
{
"action": "Configure",
@@ -8,12 +8,21 @@
"iconPathOn": "configuration",
"iconPathOff": "configuration"
},
{
"action": "Install Missing Claims",
"actionProject": "Governance",
"actionFunction": "payload.executeAction",
"label": "Install Missing Claims",
"relatedUiObject": "Asset Contribution Claim",
"askConfirmation": true,
"confirmationLabel": "Confirm to Install"
},
{
"action": "Add UI Object",
"actionProject": "Foundations",
"actionFunction": "payload.executeAction",
"label": "Add Asset Contributions Folder",
"relatedUiObject": "Asset Contributions Folder"
"label": "Add Asset Claims Folder",
"relatedUiObject": "Asset Claims Folder"
},
{
"action": "Add UI Object",
@@ -42,14 +51,17 @@
"addLeftIcons": true,
"level": 2,
"attachingRules": {
"compatibleTypes": "->Claims Program->Asset Contributions Folder->"
"compatibleTypes": "->Claims Program->Asset Claims Folder->"
},
"propertyNameAtParent": "assetContributionsFolder",
"referencingRules": {
"compatibleTypes": "->Asset Class->"
},
"propertyNameAtParent": "assetClaimsFolders",
"childrenNodesProperties": [
{
"name": "assetContributionsFolder",
"name": "assetClaimsFolders",
"type": "array",
"childType": "Asset Contributions Folder",
"childType": "Asset Claims Folder",
"autoAdd": false
},
{
@@ -9,9 +9,9 @@
"iconPathOff": "configuration"
},
{
"action": "Install Assets",
"action": "Install Missing Assets",
"actionProject": "Governance",
"label": "Install Assets",
"label": "Install Missing Assets",
"askConfirmation": true,
"confirmationLabel": "Confirm to Proceed",
"workDoneLabel": "Done",
@@ -33,7 +33,7 @@
"addLeftIcons": true,
"level": 2,
"attachingRules": {
"compatibleTypes": "->Asset Contributions Folder->"
"compatibleTypes": "->Asset Claims Folder->"
},
"referencingRules": {
"compatibleTypes": "->Asset->"
@@ -9,9 +9,9 @@
"iconPathOff": "configuration"
},
{
"action": "Install Assets",
"action": "Install Missing Assets",
"actionProject": "Governance",
"label": "Install Assets",
"label": "Install Missing Assets",
"askConfirmation": true,
"confirmationLabel": "Confirm to Proceed",
"workDoneLabel": "Done",
@@ -9,10 +9,10 @@
"iconPathOff": "configuration"
},
{
"action": "Install Votes",
"action": "Install Missing Votes",
"actionProject": "Governance",
"actionFunction": "payload.executeAction",
"label": "Install Votes",
"label": "Install Missing Votes",
"relatedUiObject": "Weight Votes Switch",
"askConfirmation": true,
"confirmationLabel": "Confirm to Install"
@@ -11,23 +11,23 @@
{
"action": "Add UI Object",
"actionProject": "Foundations",
"label": "Add Asset Contributions Folder",
"relatedUiObject": "Asset Contributions Folder",
"label": "Add Asset Claims Folder",
"relatedUiObject": "Asset Claims Folder",
"actionFunction": "payload.executeAction"
},
{
"action": "Add UI Object",
"actionProject": "Foundations",
"actionFunction": "payload.executeAction",
"label": "Add Feature Contributions Folder",
"relatedUiObject": "Feature Contributions Folder"
"label": "Add Feature Claims Folder",
"relatedUiObject": "Feature Claims Folder"
},
{
"action": "Add UI Object",
"actionProject": "Foundations",
"actionFunction": "payload.executeAction",
"label": "Add Position Contributions Folder",
"relatedUiObject": "Position Contributions Folder"
"label": "Add Position Claims Folder",
"relatedUiObject": "Position Claims Folder"
},
{
"action": "Add UI Object",
@@ -63,21 +63,21 @@
"propertyNameAtParent": "claimsProgram",
"childrenNodesProperties": [
{
"name": "assetContributionsFolder",
"name": "assetClaimsFolders",
"type": "array",
"childType": "Asset Contributions Folder",
"childType": "Asset Claims Folder",
"autoAdd": false
},
{
"name": "featureContributionsFolder",
"name": "featureClaimsFolders",
"type": "array",
"childType": "Feature Contributions Folder",
"childType": "Feature Claims Folder",
"autoAdd": false
},
{
"name": "positionContributionsFolder",
"name": "positionClaimsFolders",
"type": "array",
"childType": "Position Contributions Folder",
"childType": "Position Claims Folder",
"autoAdd": false
},
{
@@ -1,5 +1,5 @@
{
"type": "Feature Contributions Folder",
"type": "Feature Claims Folder",
"menuItems": [
{
"action": "Configure",
@@ -8,12 +8,21 @@
"iconPathOn": "configuration",
"iconPathOff": "configuration"
},
{
"action": "Install Missing Claims",
"actionProject": "Governance",
"actionFunction": "payload.executeAction",
"label": "Install Missing Claims",
"relatedUiObject": "Feature Contribution Claim",
"askConfirmation": true,
"confirmationLabel": "Confirm to Install"
},
{
"action": "Add UI Object",
"actionProject": "Foundations",
"actionFunction": "payload.executeAction",
"label": "Add Feature Contributions Folder",
"relatedUiObject": "Feature Contributions Folder"
"label": "Add Feature Claims Folder",
"relatedUiObject": "Feature Claims Folder"
},
{
"action": "Add UI Object",
@@ -42,14 +51,17 @@
"addLeftIcons": true,
"level": 2,
"attachingRules": {
"compatibleTypes": "->Claims Program->Feature Contributions Folder->"
"compatibleTypes": "->Claims Program->Feature Claims Folder->"
},
"propertyNameAtParent": "featureContributionsFolder",
"referencingRules": {
"compatibleTypes": "->Feature Class->"
},
"propertyNameAtParent": "featureClaimsFolders",
"childrenNodesProperties": [
{
"name": "featureContributionsFolder",
"name": "featureClaimsFolders",
"type": "array",
"childType": "Feature Contributions Folder",
"childType": "Feature Claims Folder",
"autoAdd": false
},
{
@@ -32,7 +32,7 @@
"addLeftIcons": true,
"level": 2,
"attachingRules": {
"compatibleTypes": "->Feature Contributions Folder->"
"compatibleTypes": "->Feature Claims Folder->"
},
"referencingRules": {
"compatibleTypes": "->Feature->"
@@ -1,5 +1,5 @@
{
"type": "Position Contributions Folder",
"type": "Position Claims Folder",
"menuItems": [
{
"action": "Configure",
@@ -8,12 +8,21 @@
"iconPathOn": "configuration",
"iconPathOff": "configuration"
},
{
"action": "Install Missing Claims",
"actionProject": "Governance",
"actionFunction": "payload.executeAction",
"label": "Install Missing Claims",
"relatedUiObject": "Position Contribution Claim",
"askConfirmation": true,
"confirmationLabel": "Confirm to Install"
},
{
"action": "Add UI Object",
"actionProject": "Foundations",
"actionFunction": "payload.executeAction",
"label": "Add Position Contributions Folder",
"relatedUiObject": "Position Contributions Folder"
"label": "Add Position Claims Folder",
"relatedUiObject": "Position Claims Folder"
},
{
"action": "Add UI Object",
@@ -42,14 +51,17 @@
"addLeftIcons": true,
"level": 2,
"attachingRules": {
"compatibleTypes": "->Claims Program->Position Contributions Folder->"
"compatibleTypes": "->Claims Program->Position Claims Folder->"
},
"propertyNameAtParent": "positionContributionsFolder",
"referencingRules": {
"compatibleTypes": "->Position Class->"
},
"propertyNameAtParent": "positionClaimsFolders",
"childrenNodesProperties": [
{
"name": "positionContributionsFolder",
"name": "positionClaimsFolders",
"type": "array",
"childType": "Position Contributions Folder",
"childType": "Position Claims Folder",
"autoAdd": false
},
{
@@ -32,7 +32,7 @@
"addLeftIcons": true,
"level": 2,
"attachingRules": {
"compatibleTypes": "->Position Contributions Folder->"
"compatibleTypes": "->Position Claims Folder->"
},
"referencingRules": {
"compatibleTypes": "->Position->"
@@ -9,10 +9,10 @@
"iconPathOff": "configuration"
},
{
"action": "Install Votes",
"action": "Install Missing Votes",
"actionProject": "Governance",
"actionFunction": "payload.executeAction",
"label": "Install Votes",
"label": "Install Missing Votes",
"relatedUiObject": "Weight Votes Switch",
"askConfirmation": true,
"confirmationLabel": "Confirm to Install"
@@ -9,10 +9,10 @@
"iconPathOff": "configuration"
},
{
"action": "Install Votes",
"action": "Install Missing Votes",
"actionProject": "Governance",
"actionFunction": "payload.executeAction",
"label": "Install Votes",
"label": "Install Missing Votes",
"relatedUiObject": "Weight Votes Switch",
"askConfirmation": true,
"confirmationLabel": "Confirm to Install"
@@ -9,10 +9,10 @@
"iconPathOff": "configuration"
},
{
"action": "Install Votes",
"action": "Install Missing Votes",
"actionProject": "Governance",
"actionFunction": "payload.executeAction",
"label": "Install Votes",
"label": "Install Missing Votes",
"relatedUiObject": "Weight Votes Switch",
"askConfirmation": true,
"confirmationLabel": "Confirm to Install"
@@ -1,5 +1,5 @@
{
"type": "Asset Contributions Folder",
"type": "Asset Claims Folder",
"definition": {
"text": "This folder type of node, help users organize their Asset contributions claims.",
"updated": 1622989520560
@@ -1,5 +1,5 @@
{
"type": "Feature Contributions Folder",
"type": "Feature Claims Folder",
"definition": {
"text": "This folder type of node, help users organize their Feature contributions claims.",
"updated": 1622989537182
@@ -1,5 +1,5 @@
{
"type": "Position Contributions Folder",
"type": "Position Claims Folder",
"definition": {
"text": "This folder type of node, help users organize their Position contributions claims.",
"updated": 1622989549721
@@ -18,14 +18,19 @@ function newGovernanceActionSwitch() {
async function executeAction(action) {
switch (action.name) {
case 'Install Assets':
case 'Install Missing Assets':
{
UI.projects.governance.functionLibraries.assets.installAssets(action.node, action.rootNodes)
UI.projects.governance.functionLibraries.assets.installMissingAssets(action.node, action.rootNodes)
break
}
case 'Install Votes':
case 'Install Missing Votes':
{
UI.projects.governance.functionLibraries.votes.installVotes(action.node, action.rootNodes)
UI.projects.governance.functionLibraries.votes.installMissingVotes(action.node, action.rootNodes)
break
}
case 'Install Missing Claims':
{
UI.projects.governance.functionLibraries.claims.installMissingClaims(action.node, action.rootNodes)
break
}
case 'Build Profile':
@@ -1,11 +1,11 @@
function newGovernanceFunctionLibraryAssets() {
let thisObject = {
installAssets: installAssets
installMissingAssets: installMissingAssets
}
return thisObject
function installAssets(
function installMissingAssets(
node,
rootNodes
) {
@@ -1,6 +1,7 @@
function newGovernanceFunctionLibraryClaims() {
let thisObject = {
calculate: calculate
calculate: calculate,
installMissingClaims: installMissingClaims
}
return thisObject
@@ -48,211 +49,309 @@ function newGovernanceFunctionLibraryClaims() {
let userProfilesNode = userProfiles[i]
calculateForNode(userProfilesNode.claimsProgram, userProfilesNode)
}
}
function resetClaims(node) {
if (node === undefined) { return }
if (node.payload === undefined) { return }
function resetClaims(node) {
if (node === undefined) { return }
if (node.payload === undefined) { return }
if (
node.type !== 'Asset Class' &&
node.type !== 'Feature Class' &&
node.type !== 'Position Class'
) {
if (node.payload.votes !== undefined) {
node.payload.claims = {
count: 0,
votes: 0
}
}
}
let schemaDocument = getSchemaDocument(node)
if (schemaDocument === undefined) { return }
if (schemaDocument.childrenNodesProperties !== undefined) {
for (let i = 0; i < schemaDocument.childrenNodesProperties.length; i++) {
let property = schemaDocument.childrenNodesProperties[i]
switch (property.type) {
case 'node': {
let childNode = node[property.name]
resetClaims(childNode)
}
break
case 'array': {
let propertyArray = node[property.name]
if (propertyArray !== undefined) {
for (let m = 0; m < propertyArray.length; m++) {
let childNode = propertyArray[m]
resetClaims(childNode)
}
}
break
}
}
}
}
}
function countForNode(node) {
if (node === undefined) { return }
if (node.payload === undefined) { return }
if (
node.type !== 'Asset Contributions Folder' &&
node.type !== 'Feature Contributions Folder' &&
node.type !== 'Position Contributions Folder' &&
node.type !== 'Claims Program'
) {
if (node.payload.claims === undefined) {
node.payload.claims = {
count: 0,
awarded: {
tokens: 0,
percentage: 0
},
share: {
if (
node.type !== 'Asset Class' &&
node.type !== 'Feature Class' &&
node.type !== 'Position Class'
) {
if (node.payload.votes !== undefined) {
node.payload.claims = {
count: 0,
percentage: 0
votes: 0
}
}
}
if (
node.payload.votes !== undefined &&
node.payload.votes > 0 &&
node.payload.referenceParent !== undefined &&
node.payload.referenceParent.payload !== undefined &&
node.payload.referenceParent.payload.votes !== undefined &&
node.payload.referenceParent.payload.votes > 0 &&
node.payload.referenceParent.payload.weight !== undefined &&
node.payload.referenceParent.payload.weight > 0 &&
node.payload.referenceParent.payload.claims.count !== undefined &&
node.payload.referenceParent.payload.claims.votes !== undefined
) {
node.payload.referenceParent.payload.claims.count++
node.payload.referenceParent.payload.claims.votes = node.payload.referenceParent.payload.claims.votes + node.payload.votes
let schemaDocument = getSchemaDocument(node)
if (schemaDocument === undefined) { return }
if (schemaDocument.childrenNodesProperties !== undefined) {
for (let i = 0; i < schemaDocument.childrenNodesProperties.length; i++) {
let property = schemaDocument.childrenNodesProperties[i]
switch (property.type) {
case 'node': {
let childNode = node[property.name]
resetClaims(childNode)
}
break
case 'array': {
let propertyArray = node[property.name]
if (propertyArray !== undefined) {
for (let m = 0; m < propertyArray.length; m++) {
let childNode = propertyArray[m]
resetClaims(childNode)
}
}
break
}
}
}
}
}
let schemaDocument = getSchemaDocument(node)
if (schemaDocument === undefined) { return }
function countForNode(node) {
if (node === undefined) { return }
if (node.payload === undefined) { return }
if (schemaDocument.childrenNodesProperties !== undefined) {
for (let i = 0; i < schemaDocument.childrenNodesProperties.length; i++) {
let property = schemaDocument.childrenNodesProperties[i]
switch (property.type) {
case 'node': {
let childNode = node[property.name]
countForNode(childNode)
if (
node.type !== 'Asset Claims Folder' &&
node.type !== 'Feature Claims Folder' &&
node.type !== 'Position Claims Folder' &&
node.type !== 'Claims Program'
) {
if (node.payload.claims === undefined) {
node.payload.claims = {
count: 0,
awarded: {
tokens: 0,
percentage: 0
},
share: {
count: 0,
percentage: 0
}
}
break
case 'array': {
let propertyArray = node[property.name]
if (propertyArray !== undefined) {
for (let m = 0; m < propertyArray.length; m++) {
let childNode = propertyArray[m]
countForNode(childNode)
}
if (
node.payload.votes !== undefined &&
node.payload.votes > 0 &&
node.payload.referenceParent !== undefined &&
node.payload.referenceParent.payload !== undefined &&
node.payload.referenceParent.payload.votes !== undefined &&
node.payload.referenceParent.payload.votes > 0 &&
node.payload.referenceParent.payload.weight !== undefined &&
node.payload.referenceParent.payload.weight > 0 &&
node.payload.referenceParent.payload.claims.count !== undefined &&
node.payload.referenceParent.payload.claims.votes !== undefined
) {
node.payload.referenceParent.payload.claims.count++
node.payload.referenceParent.payload.claims.votes = node.payload.referenceParent.payload.claims.votes + node.payload.votes
}
}
let schemaDocument = getSchemaDocument(node)
if (schemaDocument === undefined) { return }
if (schemaDocument.childrenNodesProperties !== undefined) {
for (let i = 0; i < schemaDocument.childrenNodesProperties.length; i++) {
let property = schemaDocument.childrenNodesProperties[i]
switch (property.type) {
case 'node': {
let childNode = node[property.name]
countForNode(childNode)
}
break
case 'array': {
let propertyArray = node[property.name]
if (propertyArray !== undefined) {
for (let m = 0; m < propertyArray.length; m++) {
let childNode = propertyArray[m]
countForNode(childNode)
}
}
break
}
break
}
}
}
}
function calculateForNode(node, userProfilesNode) {
if (node === undefined) { return }
if (node.payload === undefined) { return }
if (
node.type !== 'Asset Claims Folder' &&
node.type !== 'Feature Claims Folder' &&
node.type !== 'Position Claims Folder' &&
node.type !== 'Claims Program'
) {
if (
node.payload.claims !== undefined &&
node.payload.votes !== undefined &&
node.payload.votes > 0 &&
node.payload.referenceParent !== undefined &&
node.payload.referenceParent.payload !== undefined &&
node.payload.referenceParent.payload.votes !== undefined &&
node.payload.referenceParent.payload.votes > 0 &&
node.payload.referenceParent.payload.weight !== undefined &&
node.payload.referenceParent.payload.weight > 0 &&
node.payload.referenceParent.payload.claims.count !== undefined &&
node.payload.referenceParent.payload.claims.votes !== undefined
) {
/*
We will use the concept of Vote Reward Claims Ratio for the situation in which the
total votes in claims exeeds the amount of votes of the reward. When this happens
the Votes Rewards Claims Ratio will be used to redude the amount of tokens awarded
proportionally to how much was exeeded.
*/
let votesRatio = node.payload.referenceParent.payload.votes / node.payload.referenceParent.payload.claims.votes
if (votesRatio > 1) { votesRatio = 1 }
/*
Share Count means the amount to claims pointing to the same potential tokens reward.
*/
node.payload.claims.share.count = node.payload.referenceParent.payload.claims.count
node.payload.claims.share.percentage = node.payload.votes * 100 / node.payload.referenceParent.payload.claims.votes
node.payload.claims.awarded.tokens =
Math.min(
node.payload.votes / node.payload.referenceParent.payload.votes * node.payload.referenceParent.payload.tokens * votesRatio,
node.payload.votes
)
node.payload.claims.awarded.percentage = node.payload.claims.awarded.tokens / node.payload.referenceParent.payload.tokens * 100
userProfilesNode.payload.claims.awarded.tokens = userProfilesNode.payload.claims.awarded.tokens + node.payload.claims.awarded.tokens
userProfilesNode.payload.claims.count++
drawClaims(node, userProfilesNode)
}
}
let schemaDocument = getSchemaDocument(node)
if (schemaDocument === undefined) { return }
if (schemaDocument.childrenNodesProperties !== undefined) {
for (let i = 0; i < schemaDocument.childrenNodesProperties.length; i++) {
let property = schemaDocument.childrenNodesProperties[i]
switch (property.type) {
case 'node': {
let childNode = node[property.name]
calculateForNode(childNode, userProfilesNode)
}
break
case 'array': {
let propertyArray = node[property.name]
if (propertyArray !== undefined) {
for (let m = 0; m < propertyArray.length; m++) {
let childNode = propertyArray[m]
calculateForNode(childNode, userProfilesNode)
}
}
break
}
}
}
}
}
function drawClaims(node, userProfilesNode) {
let satatus =
new Intl.NumberFormat().format(node.payload.claims.awarded.tokens) +
' ' + 'SA Tokens Awarded' + ' - ' +
'From Reward: ' + node.payload.claims.awarded.percentage.toFixed(2) + '%' + ' - ' +
'Shared Between: ' + node.payload.claims.share.count + ' claims' + ' - ' +
'Share of Claims: ' + node.payload.claims.share.percentage.toFixed(2) + '%'
node.payload.uiObject.setStatus(satatus)
satatus = new Intl.NumberFormat().format(userProfilesNode.payload.claims.awarded.tokens) +
' ' + 'SA Tokens Awarded' +
' from ' + userProfilesNode.payload.claims.count + ' Claims'
userProfilesNode.payload.uiObject.setValue(satatus)
}
}
function calculateForNode(node, userProfilesNode) {
if (node === undefined) { return }
function installMissingClaims(node, rootNodes) {
if (node.payload === undefined) { return }
if (
node.type !== 'Asset Contributions Folder' &&
node.type !== 'Feature Contributions Folder' &&
node.type !== 'Position Contributions Folder' &&
node.type !== 'Claims Program'
) {
if (
node.payload.claims !== undefined &&
node.payload.votes !== undefined &&
node.payload.votes > 0 &&
node.payload.referenceParent !== undefined &&
node.payload.referenceParent.payload !== undefined &&
node.payload.referenceParent.payload.votes !== undefined &&
node.payload.referenceParent.payload.votes > 0 &&
node.payload.referenceParent.payload.weight !== undefined &&
node.payload.referenceParent.payload.weight > 0 &&
node.payload.referenceParent.payload.claims.count !== undefined &&
node.payload.referenceParent.payload.claims.votes !== undefined
) {
/*
We will use the concept of Vote Reward Claims Ratio for the situation in which the
total votes in claims exeeds the amount of votes of the reward. When this happens
the Votes Rewards Claims Ratio will be used to redude the amount of tokens awarded
proportionally to how much was exeeded.
*/
let votesRatio = node.payload.referenceParent.payload.votes / node.payload.referenceParent.payload.claims.votes
if (votesRatio > 1) { votesRatio = 1 }
/*
Share Count means the amount to claims pointing to the same potential tokens reward.
*/
node.payload.claims.share.count = node.payload.referenceParent.payload.claims.count
node.payload.claims.share.percentage = node.payload.votes * 100 / node.payload.referenceParent.payload.claims.votes
node.payload.claims.awarded.tokens =
Math.min(
node.payload.votes / node.payload.referenceParent.payload.votes * node.payload.referenceParent.payload.tokens * votesRatio,
node.payload.votes
)
node.payload.claims.awarded.percentage = node.payload.claims.awarded.tokens / node.payload.referenceParent.payload.tokens * 100
userProfilesNode.payload.claims.awarded.tokens = userProfilesNode.payload.claims.awarded.tokens + node.payload.claims.awarded.tokens
userProfilesNode.payload.claims.count++
drawClaims(node, userProfilesNode)
}
if (node.payload.referenceParent === undefined) {
node.payload.uiObject.setErrorMessage('To Install Missing Claims you need a Reference Parent')
return
}
scanNodeBranch(node, node.payload.referenceParent)
let schemaDocument = getSchemaDocument(node)
if (schemaDocument === undefined) { return }
function scanNodeBranch(originNode, destinationNode) {
if (
destinationNode.type === 'Asset' ||
destinationNode.type === 'Feature' ||
destinationNode.type === 'Position'
) {
originNode.name = destinationNode.name + ' ' + destinationNode.type + ' ' + ' Claim'
} else {
originNode.name = destinationNode.name + ' ' + destinationNode.type
}
if (schemaDocument.childrenNodesProperties !== undefined) {
for (let i = 0; i < schemaDocument.childrenNodesProperties.length; i++) {
let property = schemaDocument.childrenNodesProperties[i]
switch (property.type) {
case 'node': {
let childNode = node[property.name]
calculateForNode(childNode, userProfilesNode)
}
break
case 'array': {
let propertyArray = node[property.name]
if (propertyArray !== undefined) {
for (let m = 0; m < propertyArray.length; m++) {
let childNode = propertyArray[m]
calculateForNode(childNode, userProfilesNode)
let schemaDocument = getSchemaDocument(destinationNode)
if (schemaDocument === undefined) { return }
if (schemaDocument.childrenNodesProperties !== undefined) {
for (let i = 0; i < schemaDocument.childrenNodesProperties.length; i++) {
let property = schemaDocument.childrenNodesProperties[i]
switch (property.type) {
case 'node': {
let destinationNodeChild = destinationNode[property.name]
let originNodeChildType = getOriginNodeChildType(destinationNodeChild)
let originNodeChild = UI.projects.foundations.utilities.children.findChildReferencingThisNode(originNode, destinationNodeChild)
if (originNodeChild === undefined) {
originNodeChild = UI.projects.foundations.functionLibraries.uiObjectsFromNodes.addUIObject(originNode, originNodeChildType)
}
originNodeChild.payload.referenceParent = destinationNodeChild
scanNodeBranch(originNodeChild, destinationNodeChild)
}
break
case 'array': {
let propertyArray = destinationNode[property.name]
if (propertyArray !== undefined) {
for (let m = 0; m < propertyArray.length; m++) {
let destinationNodeChild = propertyArray[m]
let originNodeChildType = getOriginNodeChildType(destinationNodeChild)
let originNodeChild = UI.projects.foundations.utilities.children.findChildReferencingThisNode(originNode, destinationNodeChild)
if (originNodeChild === undefined) {
originNodeChild = UI.projects.foundations.functionLibraries.uiObjectsFromNodes.addUIObject(originNode, originNodeChildType)
}
originNodeChild.payload.referenceParent = destinationNodeChild
scanNodeBranch(originNodeChild, destinationNodeChild)
}
}
break
}
break
}
}
}
}
}
function drawClaims(node, userProfilesNode) {
let satatus =
new Intl.NumberFormat().format(node.payload.claims.awarded.tokens) +
' ' + 'SA Tokens Awarded' + ' - ' +
'From Reward: ' + node.payload.claims.awarded.percentage.toFixed(2) + '%' + ' - ' +
'Shared Between: ' + node.payload.claims.share.count + ' claims' + ' - ' +
'Share of Claims: ' + node.payload.claims.share.percentage.toFixed(2) + '%'
function getOriginNodeChildType(destinationNode) {
let originNodeType
node.payload.uiObject.setStatus(satatus)
satatus = new Intl.NumberFormat().format(userProfilesNode.payload.claims.awarded.tokens) +
' ' + 'SA Tokens Awarded' +
' from ' + userProfilesNode.payload.claims.count + ' Claims'
userProfilesNode.payload.uiObject.setValue(satatus)
switch (destinationNode.type) {
case 'Asset Class': {
originNodeType = 'Asset Claims Folder'
break
}
case 'Feature Class': {
originNodeType = 'Feature Claims Folder'
break
}
case 'Position Class': {
originNodeType = 'Position Claims Folder'
break
}
case 'Asset': {
originNodeType = 'Asset Contribution Claim'
break
}
case 'Feature': {
originNodeType = 'Feature Contribution Claim'
break
}
case 'Position': {
originNodeType = 'Position Contribution Claim'
break
}
}
return originNodeType
}
}
}
@@ -1,7 +1,7 @@
function newGovernanceFunctionLibraryVotes() {
let thisObject = {
calculate: calculate,
installVotes: installVotes
installMissingVotes: installMissingVotes
}
return thisObject
@@ -313,7 +313,7 @@ function newGovernanceFunctionLibraryVotes() {
}
}
function installVotes(node, rootNodes) {
function installMissingVotes(node, rootNodes) {
if (node.payload === undefined) { return }
if (node.payload.referenceParent === undefined) {
node.payload.uiObject.setErrorMessage('To install votes you need a Reference Parent')
@@ -346,17 +346,12 @@ function newGovernanceFunctionLibraryVotes() {
let destinationNodeChild = destinationNode[property.name]
let originNodeChildType = getOriginNodeChildType(destinationNodeChild)
let originNodeChild = UI.projects.foundations.functionLibraries.uiObjectsFromNodes.addUIObject(originNode, originNodeChildType)
let originNodeChild = UI.projects.foundations.utilities.children.findChildReferencingThisNode(originNode, destinationNodeChild)
if (
destinationNodeChild.type === 'Pool' ||
destinationNodeChild.type === 'Asset' ||
destinationNodeChild.type === 'Feature' ||
destinationNodeChild.type === 'Position'
) {
originNodeChild.payload.referenceParent = destinationNodeChild
if (originNodeChild === undefined) {
originNodeChild = UI.projects.foundations.functionLibraries.uiObjectsFromNodes.addUIObject(originNode, originNodeChildType)
}
originNodeChild.payload.referenceParent = destinationNodeChild
scanNodeBranch(originNodeChild, destinationNodeChild)
}
break
@@ -368,17 +363,12 @@ function newGovernanceFunctionLibraryVotes() {
let destinationNodeChild = propertyArray[m]
let originNodeChildType = getOriginNodeChildType(destinationNodeChild)
let originNodeChild = UI.projects.foundations.functionLibraries.uiObjectsFromNodes.addUIObject(originNode, originNodeChildType)
let originNodeChild = UI.projects.foundations.utilities.children.findChildReferencingThisNode(originNode, destinationNodeChild)
if (
destinationNodeChild.type === 'Pool' ||
destinationNodeChild.type === 'Asset' ||
destinationNodeChild.type === 'Feature' ||
destinationNodeChild.type === 'Position'
) {
originNodeChild.payload.referenceParent = destinationNodeChild
if (originNodeChild === undefined) {
originNodeChild = UI.projects.foundations.functionLibraries.uiObjectsFromNodes.addUIObject(originNode, originNodeChildType)
}
originNodeChild.payload.referenceParent = destinationNodeChild
scanNodeBranch(originNodeChild, destinationNodeChild)
}
}
+1 -1
View File
@@ -393,7 +393,7 @@ function newCanvas() {
UI.projects.foundations.spaces.chartingSpace.onKeyPressed(event)
/* Shourcuts to Menu Items */
/* Shortcuts to Menu Items */
if ((event.keyCode >= 48 && event.keyCode <= 57)) {
let number = event.key
if (MENU_ITEM_ON_FOCUS !== undefined) {