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

@@ -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)
}
}