Merge branch 'Superalgos:develop' into develop
This commit is contained in:
36 files changed
+1734
-683
No files matched your search
@@ -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>
|
||||
@@ -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 {
|
||||
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
+19
-7
@@ -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
|
||||
},
|
||||
{
|
||||
|
||||
+19
-7
@@ -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->"
|
||||
|
||||
+19
-7
@@ -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
-1
@@ -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
-1
@@ -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
-1
@@ -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
@@ -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) {
|
||||
|
||||
Reference in new issue
Block a user