From aa7912b714b1b4e682bec5d62573747a878ba465 Mon Sep 17 00:00:00 2001 From: Luis Fernando Molina Date: Sun, 25 Jul 2021 19:01:40 +0200 Subject: [PATCH 1/3] Update Luis-Fernando-Molina.json --- .../User-Profiles/Luis-Fernando-Molina.json | 598 +++++++++--------- 1 file changed, 299 insertions(+), 299 deletions(-) diff --git a/Projects/Governance/Plugins/User-Profiles/Luis-Fernando-Molina.json b/Projects/Governance/Plugins/User-Profiles/Luis-Fernando-Molina.json index f34643c69..b5ae9b288 100644 --- a/Projects/Governance/Plugins/User-Profiles/Luis-Fernando-Molina.json +++ b/Projects/Governance/Plugins/User-Profiles/Luis-Fernando-Molina.json @@ -29,12 +29,12 @@ "id": "fb0a076c-b0a8-4f16-9a47-10a3f3489a0a", "savedPayload": { "position": { - "x": 30761.051833528763, - "y": 22740.917744311064 + "x": 31146.722576610326, + "y": 23599.438845332443 }, "targetPosition": { - "x": 30737.51410481041, - "y": 23039.992944431004 + "x": 30850.416074431785, + "y": 23646.369184844512 }, "floatingObject": { "isPinned": false, @@ -62,12 +62,12 @@ "id": "56ac3eb9-2d72-4a8d-99bc-3221819ce995", "savedPayload": { "position": { - "x": 30873.711254732272, - "y": 22772.690987174494 + "x": 31142.127050551087, + "y": 23716.402794001286 }, "targetPosition": { - "x": 30737.51410481041, - "y": 23039.992944431004 + "x": 30850.416074431785, + "y": 23646.369184844512 }, "floatingObject": { "isPinned": false, @@ -89,12 +89,12 @@ "id": "2d205ae2-9158-4b36-a8cb-f9d5c5061342", "savedPayload": { "position": { - "x": 30965.635894490417, - "y": 22845.15852993195 + "x": 31093.121172744268, + "y": 23822.704760532255 }, "targetPosition": { - "x": 30737.51410481041, - "y": 23039.992944431004 + "x": 30850.416074431785, + "y": 23646.369184844512 }, "floatingObject": { "isPinned": false, @@ -112,18 +112,18 @@ "id": "43a24543-03cf-4511-b670-63566159dbd7", "savedPayload": { "position": { - "x": 30737.51410481041, - "y": 23039.992944431004 + "x": 30850.416074431785, + "y": 23646.369184844512 }, "targetPosition": { - "x": 30601.316954888545, - "y": 23307.294901687514 + "x": 30558.705098312483, + "y": 23576.33557568774 }, "floatingObject": { "isPinned": false, "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, + "isCollapsed": true, + "angleToParent": 3, "distanceToParent": 3, "arrangementStyle": 0 }, @@ -146,12 +146,12 @@ "id": "2a038796-fccd-4a5a-b943-116ccca91b1d", "savedPayload": { "position": { - "x": 31114.7556994571, - "y": 23019.755388875976 + "x": 31093.121172744268, + "y": 23822.704760532255 }, "targetPosition": { - "x": 30886.63390977709, - "y": 23214.58980337503 + "x": 30801.410196624965, + "y": 23752.67115137548 }, "floatingObject": { "isPinned": false, @@ -179,12 +179,12 @@ "id": "c6367a1d-4bc7-4348-8309-a3e6f3fcdd50", "savedPayload": { "position": { - "x": 31171.950864665636, - "y": 23121.884705062548 + "x": 31044.11529493745, + "y": 23929.006727063224 }, "targetPosition": { - "x": 30886.63390977709, - "y": 23214.58980337503 + "x": 30801.410196624965, + "y": 23752.67115137548 }, "floatingObject": { "isPinned": false, @@ -206,12 +206,12 @@ "id": "3d5e14b8-8187-4f3b-8142-8daa540977a7", "savedPayload": { "position": { - "x": 31185.70910989703, - "y": 23238.127532093386 + "x": 30958.15976603975, + "y": 24008.46320068171 }, "targetPosition": { - "x": 30886.63390977709, - "y": 23214.58980337503 + "x": 30801.410196624965, + "y": 23752.67115137548 }, "floatingObject": { "isPinned": false, @@ -229,18 +229,18 @@ "id": "91d82012-4362-4fe0-b02b-0eb3b394ace5", "savedPayload": { "position": { - "x": 30886.63390977709, - "y": 23214.58980337503 + "x": 30801.410196624965, + "y": 23752.67115137548 }, "targetPosition": { - "x": 30601.316954888545, - "y": 23307.294901687514 + "x": 30558.705098312483, + "y": 23576.33557568774 }, "floatingObject": { "isPinned": false, "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, + "isCollapsed": true, + "angleToParent": 3, "distanceToParent": 3, "arrangementStyle": 0 }, @@ -263,12 +263,12 @@ "id": "97483d0f-35ec-4471-a981-0d22565e0d63", "savedPayload": { "position": { - "x": 31168.618912145055, - "y": 23443.492051609377 + "x": 30781.971013512295, + "y": 24115.347176178762 }, "targetPosition": { - "x": 30868.618912145055, - "y": 23443.492051609377 + "x": 30605.635437824552, + "y": 23872.64207786628 }, "floatingObject": { "isPinned": false, @@ -296,12 +296,12 @@ "id": "8adecfda-c803-400c-acde-c34bda09e39b", "savedPayload": { "position": { - "x": 31153.9358670336, - "y": 23536.19714992186 + "x": 30698.340536137035, + "y": 24157.959032754825 }, "targetPosition": { - "x": 30868.618912145055, - "y": 23443.492051609377 + "x": 30605.635437824552, + "y": 23872.64207786628 }, "floatingObject": { "isPinned": false, @@ -329,12 +329,12 @@ "id": "09648f99-1bf8-4d53-9d20-f15cc8c71508", "savedPayload": { "position": { - "x": 31111.324010457538, - "y": 23619.82762729712 + "x": 30605.635437824552, + "y": 24172.64207786628 }, "targetPosition": { - "x": 30868.618912145055, - "y": 23443.492051609377 + "x": 30605.635437824552, + "y": 23872.64207786628 }, "floatingObject": { "isPinned": false, @@ -356,12 +356,12 @@ "id": "4113b77f-b7f4-41d2-8603-3784b2b65412", "savedPayload": { "position": { - "x": 31044.954487832798, - "y": 23686.19714992186 + "x": 30512.93033951207, + "y": 24157.959032754825 }, "targetPosition": { - "x": 30868.618912145055, - "y": 23443.492051609377 + "x": 30605.635437824552, + "y": 23872.64207786628 }, "floatingObject": { "isPinned": false, @@ -379,18 +379,18 @@ "id": "8af4af68-62bf-4ad2-bf84-f1124cba0abf", "savedPayload": { "position": { - "x": 30868.618912145055, - "y": 23443.492051609377 + "x": 30715.454667727266, + "y": 23832.127624993966 }, "targetPosition": { - "x": 30601.316954888545, - "y": 23307.294901687514 + "x": 30558.705098312483, + "y": 23576.33557568774 }, "floatingObject": { "isPinned": false, "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, + "isCollapsed": true, + "angleToParent": 3, "distanceToParent": 3, "arrangementStyle": 0 }, @@ -402,8 +402,8 @@ "id": "a2803c2e-5b20-42a5-b498-2b613a1dd783", "savedPayload": { "position": { - "x": 30601.316954888545, - "y": 23307.294901687514 + "x": 30558.705098312483, + "y": 23576.33557568774 }, "targetPosition": { "x": 30316, @@ -413,7 +413,7 @@ "isPinned": false, "isFrozen": false, "isCollapsed": false, - "angleToParent": 1, + "angleToParent": 2, "distanceToParent": 3, "arrangementStyle": 0 }, @@ -456,12 +456,12 @@ "id": "edf1a5c9-7802-4856-918c-3cd5a7a9caf7", "savedPayload": { "position": { - "x": 31598.720722270355, - "y": 23922.120634804403 + "x": 31374.59575223365, + "y": 24292.94873424134 }, "targetPosition": { - "x": 31299.131861843984, - "y": 23937.821421677287 + "x": 31084.81800434693, + "y": 24215.303020710584 }, "floatingObject": { "isPinned": false, @@ -485,12 +485,12 @@ "id": "ebad23ed-1a02-4edf-a9d7-fc4b2fd0dacb", "savedPayload": { "position": { - "x": 31299.131861843984, - "y": 23937.821421677287 + "x": 31084.81800434693, + "y": 24215.303020710584 }, "targetPosition": { - "x": 30999.543001417613, - "y": 23953.52220855017 + "x": 30795.04025646021, + "y": 24137.657307179827 }, "floatingObject": { "isPinned": false, @@ -520,12 +520,12 @@ "id": "e745f3cd-4cd9-421b-b9ab-f62650fb56f8", "savedPayload": { "position": { - "x": 31289.320749304334, - "y": 24031.167922080927 + "x": 31046.641426843835, + "y": 24301.049017684334 }, "targetPosition": { - "x": 30999.543001417613, - "y": 23953.52220855017 + "x": 30795.04025646021, + "y": 24137.657307179827 }, "floatingObject": { "isPinned": false, @@ -555,12 +555,12 @@ "id": "3ae7f0f9-be37-4e6c-b3b1-4343e51f80a9", "savedPayload": { "position": { - "x": 31251.14417180124, - "y": 24116.913919054678 + "x": 30983.83637377516, + "y": 24370.801095616916 }, "targetPosition": { - "x": 30999.543001417613, - "y": 23953.52220855017 + "x": 30795.04025646021, + "y": 24137.657307179827 }, "floatingObject": { "isPinned": false, @@ -590,12 +590,12 @@ "id": "d8ab7844-f98f-4ce1-a634-c0ff98af28ca", "savedPayload": { "position": { - "x": 31188.339118732565, - "y": 24186.66599698726 + "x": 30902.5506413238, + "y": 24417.731435128986 }, "targetPosition": { - "x": 30999.543001417613, - "y": 23953.52220855017 + "x": 30795.04025646021, + "y": 24137.657307179827 }, "floatingObject": { "isPinned": false, @@ -620,12 +620,12 @@ "id": "f8a482c4-dee0-475a-831b-7514fd255ba6", "savedPayload": { "position": { - "x": 30999.543001417613, - "y": 23953.52220855017 + "x": 30795.04025646021, + "y": 24137.657307179827 }, "targetPosition": { - "x": 30725.479364124833, - "y": 23831.50121562743 + "x": 30572.09680881699, + "y": 23936.91812527217 }, "floatingObject": { "isPinned": false, @@ -654,12 +654,12 @@ "id": "5011109c-3f87-471a-b786-5fd371f53853", "savedPayload": { "position": { - "x": 30901.814939812575, - "y": 24074.206313939914 + "x": 30664.801907129473, + "y": 24222.235080160714 }, "targetPosition": { - "x": 30725.479364124833, - "y": 23831.50121562743 + "x": 30572.09680881699, + "y": 23936.91812527217 }, "floatingObject": { "isPinned": false, @@ -677,17 +677,17 @@ "id": "796dd30f-c90d-4b8d-a63d-89867347407b", "savedPayload": { "position": { - "x": 30725.479364124833, - "y": 23831.50121562743 + "x": 30572.09680881699, + "y": 23936.91812527217 }, "targetPosition": { - "x": 30492.335575687743, - "y": 23642.70509831248 + "x": 30408.705098312483, + "y": 23685.31695488854 }, "floatingObject": { "isPinned": false, "isFrozen": false, - "isCollapsed": false, + "isCollapsed": true, "angleToParent": 3, "distanceToParent": 3, "arrangementStyle": 0 @@ -727,12 +727,12 @@ "id": "4381f059-44c8-4843-9cac-8a7cf41fa14c", "savedPayload": { "position": { - "x": 31287.76563485153, - "y": 24478.98346340369 + "x": 30906.77981249596, + "y": 24726.466349563474 }, "targetPosition": { - "x": 31031.973585545304, - "y": 24322.233893988905 + "x": 30711.945397996904, + "y": 24498.344559883466 }, "floatingObject": { "isPinned": false, @@ -756,12 +756,12 @@ "id": "d69739f9-958e-480e-95e3-a72bb5f6ceab", "savedPayload": { "position": { - "x": 31031.973585545304, - "y": 24322.233893988905 + "x": 30711.945397996904, + "y": 24498.344559883466 }, "targetPosition": { - "x": 30776.181536239077, - "y": 24165.48432457412 + "x": 30517.11098349785, + "y": 24270.222770203458 }, "floatingObject": { "isPinned": false, @@ -2462,12 +2462,12 @@ "id": "e059f5c4-9132-4d76-9f3e-1060658fa704", "savedPayload": { "position": { - "x": 31208.309161233046, - "y": 24564.938992301388 + "x": 30804.650496309387, + "y": 24783.66151477201 }, "targetPosition": { - "x": 30952.51711192682, - "y": 24408.189422886604 + "x": 30609.81608181033, + "y": 24555.539725092003 }, "floatingObject": { "isPinned": false, @@ -2518,12 +2518,12 @@ "id": "1f125de4-0b59-4c18-9f9c-08386d4ffa4e", "savedPayload": { "position": { - "x": 31990.933803205186, - "y": 24749.81224447712 + "x": 31491.841785142482, + "y": 25201.330740528425 }, "targetPosition": { - "x": 31699.222827085883, - "y": 24819.845853633895 + "x": 31192.766585022542, + "y": 25177.79301181007 }, "floatingObject": { "isPinned": false, @@ -2556,12 +2556,12 @@ "id": "51aaf905-b8b7-4f1f-becf-424db9291655", "savedPayload": { "position": { - "x": 31995.529329264424, - "y": 24866.776193145964 + "x": 31460.068542279052, + "y": 25313.990161731934 }, "targetPosition": { - "x": 31699.222827085883, - "y": 24819.845853633895 + "x": 31192.766585022542, + "y": 25177.79301181007 }, "floatingObject": { "isPinned": false, @@ -2594,12 +2594,12 @@ "id": "873f71c9-8fa6-4328-87b2-f91ffad842c4", "savedPayload": { "position": { - "x": 31955.01487639211, - "y": 24976.59542304868 + "x": 31387.600999521597, + "y": 25405.91480149008 }, "targetPosition": { - "x": 31699.222827085883, - "y": 24819.845853633895 + "x": 31192.766585022542, + "y": 25177.79301181007 }, "floatingObject": { "isPinned": false, @@ -2627,12 +2627,12 @@ "id": "672a29ff-62d7-47d4-b160-0bf820e7774e", "savedPayload": { "position": { - "x": 31699.222827085883, - "y": 24819.845853633895 + "x": 31192.766585022542, + "y": 25177.79301181007 }, "targetPosition": { - "x": 31402.916324907343, - "y": 24772.915514121825 + "x": 30925.464627766032, + "y": 25041.595861888207 }, "floatingObject": { "isPinned": false, @@ -2671,12 +2671,12 @@ "id": "b4d3a3a4-f642-4151-ad3a-613613df6296", "savedPayload": { "position": { - "x": 31923.70603380489, - "y": 25046.916234847955 + "x": 31336.094194857145, + "y": 25463.118903349285 }, "targetPosition": { - "x": 31636.060113344432, - "y": 24961.711631436778 + "x": 31088.85633827054, + "y": 25293.197032271833 }, "floatingObject": { "isPinned": false, @@ -2709,12 +2709,12 @@ "id": "9264f168-5b57-453f-8cab-34f9e9ce6b12", "savedPayload": { "position": { - "x": 31869.203901781522, - "y": 25150.50774875173 + "x": 31252.248048775047, + "y": 25544.79820265546 }, "targetPosition": { - "x": 31636.060113344432, - "y": 24961.711631436778 + "x": 31088.85633827054, + "y": 25293.197032271833 }, "floatingObject": { "isPinned": false, @@ -2747,12 +2747,12 @@ "id": "479da50a-83ba-4849-98e3-a2227767da4c", "savedPayload": { "position": { - "x": 31779.207741422317, - "y": 25225.356765235367 + "x": 31143.526995918182, + "y": 25588.17350454102 }, "targetPosition": { - "x": 31636.060113344432, - "y": 24961.711631436778 + "x": 31088.85633827054, + "y": 25293.197032271833 }, "floatingObject": { "isPinned": false, @@ -2780,12 +2780,12 @@ "id": "c52f2846-474a-49de-9442-38f85fc0afea", "savedPayload": { "position": { - "x": 31636.060113344432, - "y": 24961.711631436778 + "x": 31088.85633827054, + "y": 25293.197032271833 }, "targetPosition": { - "x": 31402.916324907343, - "y": 24772.915514121825 + "x": 30925.464627766032, + "y": 25041.595861888207 }, "floatingObject": { "isPinned": false, @@ -2813,12 +2813,12 @@ "id": "476b5941-7b0f-4e40-acaa-e80b7c2ec948", "savedPayload": { "position": { - "x": 31402.916324907343, - "y": 24772.915514121825 + "x": 30925.464627766032, + "y": 25041.595861888207 }, "targetPosition": { - "x": 31128.852687614562, - "y": 24650.894521199087 + "x": 30702.521180122814, + "y": 24840.85667998055 }, "floatingObject": { "isPinned": false, @@ -2854,12 +2854,12 @@ "id": "b7372fd7-6f7b-4dc7-a9b8-c499c9d66ec9", "savedPayload": { "position": { - "x": 31649.64239651211, - "y": 24924.895241925216 + "x": 31113.150747213927, + "y": 25262.379721441626 }, "targetPosition": { - "x": 31361.996476051652, - "y": 24839.69063851404 + "x": 30865.91289062732, + "y": 25092.457850364175 }, "floatingObject": { "isPinned": false, @@ -2887,12 +2887,12 @@ "id": "d3d7e591-67e0-4bb7-8d8b-a6113561fcdf", "savedPayload": { "position": { - "x": 31595.140264488742, - "y": 25028.48675582899 + "x": 31029.30460113183, + "y": 25344.0590207478 }, "targetPosition": { - "x": 31361.996476051652, - "y": 24839.69063851404 + "x": 30865.91289062732, + "y": 25092.457850364175 }, "floatingObject": { "isPinned": false, @@ -2920,12 +2920,12 @@ "id": "07fc6eed-f794-46d8-9ab1-eb21895a18d6", "savedPayload": { "position": { - "x": 31505.144104129537, - "y": 25103.33577231263 + "x": 30920.583548274964, + "y": 25387.434322633362 }, "targetPosition": { - "x": 31361.996476051652, - "y": 24839.69063851404 + "x": 30865.91289062732, + "y": 25092.457850364175 }, "floatingObject": { "isPinned": false, @@ -2951,12 +2951,12 @@ "id": "79cff390-9e71-4345-81c4-0200f6a69db0", "savedPayload": { "position": { - "x": 31361.996476051652, - "y": 24839.69063851404 + "x": 30865.91289062732, + "y": 25092.457850364175 }, "targetPosition": { - "x": 31128.852687614562, - "y": 24650.894521199087 + "x": 30702.521180122814, + "y": 24840.85667998055 }, "floatingObject": { "isPinned": false, @@ -2992,12 +2992,12 @@ "id": "b3a03655-0d4b-4da8-a250-5214f0157e19", "savedPayload": { "position": { - "x": 31560.98031260853, - "y": 25050.349188926353 + "x": 30990.060692934352, + "y": 25354.295424549102 }, "targetPosition": { - "x": 31305.188263302305, - "y": 24893.59961951157 + "x": 30795.226278435297, + "y": 25126.173634869094 }, "floatingObject": { "isPinned": false, @@ -3025,12 +3025,12 @@ "id": "ae9b1041-8135-48db-b75d-eb0175b888ce", "savedPayload": { "position": { - "x": 31481.523838990048, - "y": 25136.304717824052 + "x": 30887.93137674778, + "y": 25411.49058975764 }, "targetPosition": { - "x": 31305.188263302305, - "y": 24893.59961951157 + "x": 30795.226278435297, + "y": 25126.173634869094 }, "floatingObject": { "isPinned": false, @@ -3058,12 +3058,12 @@ "id": "77ca60ab-6fce-410f-ae3f-1aead62a6ef2", "savedPayload": { "position": { - "x": 31375.22187245908, - "y": 25185.310595630872 + "x": 30771.688549716942, + "y": 25425.248834989034 }, "targetPosition": { - "x": 31305.188263302305, - "y": 24893.59961951157 + "x": 30795.226278435297, + "y": 25126.173634869094 }, "floatingObject": { "isPinned": false, @@ -3089,12 +3089,12 @@ "id": "746a60bb-9eaa-4d22-8e97-10abe64d03c0", "savedPayload": { "position": { - "x": 31305.188263302305, - "y": 24893.59961951157 + "x": 30795.226278435297, + "y": 25126.173634869094 }, "targetPosition": { - "x": 31128.852687614562, - "y": 24650.894521199087 + "x": 30702.521180122814, + "y": 24840.85667998055 }, "floatingObject": { "isPinned": false, @@ -3133,12 +3133,12 @@ "id": "856e8a29-b60a-447d-809b-a93d81a45f3c", "savedPayload": { "position": { - "x": 31442.86944518628, - "y": 25148.58096045193 + "x": 30847.375296038186, + "y": 25411.221125711876 }, "targetPosition": { - "x": 31236.363072478154, - "y": 24930.968649148246 + "x": 30718.221966995698, + "y": 25140.44554040692 }, "floatingObject": { "isPinned": false, @@ -3177,12 +3177,12 @@ "id": "e4b7dce6-7a15-4e5b-815a-693d2e9b9a70", "savedPayload": { "position": { - "x": 31520.20903302949, - "y": 25453.74787540989 + "x": 30826.627852181064, + "y": 25725.351355721836 }, "targetPosition": { - "x": 31343.873457341746, - "y": 25211.042777097406 + "x": 30733.92275386858, + "y": 25440.03440083329 }, "floatingObject": { "isPinned": false, @@ -3215,12 +3215,12 @@ "id": "92b43ece-5531-4c30-8e2f-04dc8bbeaaa0", "savedPayload": { "position": { - "x": 31375.231996322043, - "y": 25509.399345707887 + "x": 30671.549246623254, + "y": 25733.47868105343 }, "targetPosition": { - "x": 31343.873457341746, - "y": 25211.042777097406 + "x": 30733.92275386858, + "y": 25440.03440083329 }, "floatingObject": { "isPinned": false, @@ -3248,12 +3248,12 @@ "id": "e9328c49-8dc5-4a45-a079-838333a44296", "savedPayload": { "position": { - "x": 31343.873457341746, - "y": 25211.042777097406 + "x": 30733.92275386858, + "y": 25440.03440083329 }, "targetPosition": { - "x": 31236.363072478154, - "y": 24930.968649148246 + "x": 30718.221966995698, + "y": 25140.44554040692 }, "floatingObject": { "isPinned": false, @@ -3292,12 +3292,12 @@ "id": "50a02c10-c7b4-4c0f-bfdc-9c87c924a2f1", "savedPayload": { "position": { - "x": 31220.65690349343, - "y": 25530.763044133582 + "x": 30517.937851455434, + "y": 25706.03043506223 }, "targetPosition": { - "x": 31228.50998798579, - "y": 25230.865846640914 + "x": 30618.079909225566, + "y": 25423.237987734574 }, "floatingObject": { "isPinned": false, @@ -3325,12 +3325,12 @@ "id": "7868354a-32ae-487f-a162-2cbee3c4cb8c", "savedPayload": { "position": { - "x": 31228.50998798579, - "y": 25230.865846640914 + "x": 30618.079909225566, + "y": 25423.237987734574 }, "targetPosition": { - "x": 31236.363072478154, - "y": 24930.968649148246 + "x": 30718.221966995698, + "y": 25140.44554040692 }, "floatingObject": { "isPinned": false, @@ -3358,12 +3358,12 @@ "id": "913e7be8-043f-4f6f-ab0d-cee42ca4b822", "savedPayload": { "position": { - "x": 31236.363072478154, - "y": 24930.968649148246 + "x": 30718.221966995698, + "y": 25140.44554040692 }, "targetPosition": { - "x": 31128.852687614562, - "y": 24650.894521199087 + "x": 30702.521180122814, + "y": 24840.85667998055 }, "floatingObject": { "isPinned": false, @@ -3402,12 +3402,12 @@ "id": "2480d382-80fd-4ac4-908a-e4d273be9f7f", "savedPayload": { "position": { - "x": 31303.358854672744, - "y": 25212.896223608157 + "x": 30694.81833052513, + "y": 25429.277432469877 }, "targetPosition": { - "x": 31160.21122659486, - "y": 24949.251089809568 + "x": 30640.147672877487, + "y": 25134.30096020069 }, "floatingObject": { "isPinned": false, @@ -3440,12 +3440,12 @@ "id": "b0202681-aee1-4e7f-854a-54fe35cfe0da", "savedPayload": { "position": { - "x": 31191.569765575157, - "y": 25247.60765842005 + "x": 30577.77416563216, + "y": 25427.74524042083 }, "targetPosition": { - "x": 31160.21122659486, - "y": 24949.251089809568 + "x": 30640.147672877487, + "y": 25134.30096020069 }, "floatingObject": { "isPinned": false, @@ -3478,12 +3478,12 @@ "id": "da8bcf15-2545-4a8e-a76c-aa4c5b892ed9", "savedPayload": { "position": { - "x": 31075.006623183683, - "y": 25236.897010270026 + "x": 30470.225801800036, + "y": 25381.538816787295 }, "targetPosition": { - "x": 31160.21122659486, - "y": 24949.251089809568 + "x": 30640.147672877487, + "y": 25134.30096020069 }, "floatingObject": { "isPinned": false, @@ -3511,12 +3511,12 @@ "id": "17b76699-3479-45b5-b84c-97e36c036ae0", "savedPayload": { "position": { - "x": 31160.21122659486, - "y": 24949.251089809568 + "x": 30640.147672877487, + "y": 25134.30096020069 }, "targetPosition": { - "x": 31128.852687614562, - "y": 24650.894521199087 + "x": 30702.521180122814, + "y": 24840.85667998055 }, "floatingObject": { "isPinned": false, @@ -3544,12 +3544,12 @@ "id": "a974ed8d-787f-4965-aa84-171534847e18", "savedPayload": { "position": { - "x": 31128.852687614562, - "y": 24650.894521199087 + "x": 30702.521180122814, + "y": 24840.85667998055 }, "targetPosition": { - "x": 30952.51711192682, - "y": 24408.189422886604 + "x": 30609.81608181033, + "y": 24555.539725092003 }, "floatingObject": { "isPinned": false, @@ -3581,12 +3581,12 @@ "id": "7607658c-f3ad-42de-a316-35dd052e0477", "savedPayload": { "position": { - "x": 31022.550721083593, - "y": 24699.900399005906 + "x": 30586.278353091977, + "y": 24854.614925211943 }, "targetPosition": { - "x": 30952.51711192682, - "y": 24408.189422886604 + "x": 30609.81608181033, + "y": 24555.539725092003 }, "floatingObject": { "isPinned": false, @@ -3611,12 +3611,12 @@ "id": "1d398124-3f36-40a1-8b3b-6c77ad489b92", "savedPayload": { "position": { - "x": 30952.51711192682, - "y": 24408.189422886604 + "x": 30609.81608181033, + "y": 24555.539725092003 }, "targetPosition": { - "x": 30776.181536239077, - "y": 24165.48432457412 + "x": 30517.11098349785, + "y": 24270.222770203458 }, "floatingObject": { "isPinned": false, @@ -3648,12 +3648,12 @@ "id": "cb86dfcf-6af1-4c53-afbe-442848706b9c", "savedPayload": { "position": { - "x": 30916.248754552624, - "y": 24748.906276812726 + "x": 30470.03552606114, + "y": 24868.373170443338 }, "targetPosition": { - "x": 30846.21514539585, - "y": 24457.195300693424 + "x": 30493.573254779494, + "y": 24569.297970323398 }, "floatingObject": { "isPinned": false, @@ -3677,12 +3677,12 @@ "id": "67805814-d2e1-4f8e-bdeb-6a46cc29ceff", "savedPayload": { "position": { - "x": 30846.21514539585, - "y": 24457.195300693424 + "x": 30493.573254779494, + "y": 24569.297970323398 }, "targetPosition": { - "x": 30776.181536239077, - "y": 24165.48432457412 + "x": 30517.11098349785, + "y": 24270.222770203458 }, "floatingObject": { "isPinned": false, @@ -3701,12 +3701,12 @@ "id": "2b8d3ce7-515c-44ad-8d80-3c2be6d7736f", "savedPayload": { "position": { - "x": 30776.181536239077, - "y": 24165.48432457412 + "x": 30517.11098349785, + "y": 24270.222770203458 }, "targetPosition": { - "x": 30599.845960551334, - "y": 23922.77922626164 + "x": 30424.405885185366, + "y": 23984.905815314913 }, "floatingObject": { "isPinned": false, @@ -3729,12 +3729,12 @@ "id": "e9c0e495-7985-4381-bf75-865d87289038", "savedPayload": { "position": { - "x": 30631.204499531632, - "y": 24221.13579487212 + "x": 30362.03237794004, + "y": 24278.350095535054 }, "targetPosition": { - "x": 30599.845960551334, - "y": 23922.77922626164 + "x": 30424.405885185366, + "y": 23984.905815314913 }, "floatingObject": { "isPinned": false, @@ -3752,17 +3752,17 @@ "id": "d5ed432e-78bf-432e-be3b-8649932f7a65", "savedPayload": { "position": { - "x": 30599.845960551334, - "y": 23922.77922626164 + "x": 30424.405885185366, + "y": 23984.905815314913 }, "targetPosition": { - "x": 30492.335575687743, - "y": 23642.70509831248 + "x": 30408.705098312483, + "y": 23685.31695488854 }, "floatingObject": { "isPinned": false, "isFrozen": false, - "isCollapsed": false, + "isCollapsed": true, "angleToParent": 3, "distanceToParent": 3, "arrangementStyle": 0 @@ -3775,8 +3775,8 @@ "id": "91013892-d9c9-4ca4-8404-7ceb90dfcf1b", "savedPayload": { "position": { - "x": 30492.335575687743, - "y": 23642.70509831248 + "x": 30408.705098312483, + "y": 23685.31695488854 }, "targetPosition": { "x": 30316, @@ -3786,7 +3786,7 @@ "isPinned": false, "isFrozen": false, "isCollapsed": false, - "angleToParent": 1, + "angleToParent": 2, "distanceToParent": 3, "arrangementStyle": 0 }, @@ -3813,12 +3813,12 @@ "id": "928e9ccb-1e90-48a9-af77-b3089225fc4f", "savedPayload": { "position": { - "x": 29786.993272936772, - "y": 24128.115294937445 + "x": 30037.88470506255, + "y": 24255.950864665632 }, "targetPosition": { - "x": 29963.328848624515, - "y": 23885.410196624962 + "x": 30130.589803375035, + "y": 23970.633909777087 }, "floatingObject": { "isPinned": false, @@ -3836,17 +3836,17 @@ "id": "b046f4e4-40b1-4e47-8fed-75a6a5c6029d", "savedPayload": { "position": { - "x": 29963.328848624515, - "y": 23885.410196624962 + "x": 30130.589803375035, + "y": 23970.633909777087 }, "targetPosition": { - "x": 30139.664424312257, - "y": 23642.70509831248 + "x": 30223.294901687517, + "y": 23685.31695488854 }, "floatingObject": { "isPinned": false, "isFrozen": false, - "isCollapsed": false, + "isCollapsed": true, "angleToParent": 1, "distanceToParent": 3, "arrangementStyle": 0 @@ -3859,8 +3859,8 @@ "id": "e5337d8d-f495-4bc5-a42a-08e6c8b96b4b", "savedPayload": { "position": { - "x": 30139.664424312257, - "y": 23642.70509831248 + "x": 30223.294901687517, + "y": 23685.31695488854 }, "targetPosition": { "x": 30316, @@ -3870,7 +3870,7 @@ "isPinned": false, "isFrozen": false, "isCollapsed": false, - "angleToParent": 1, + "angleToParent": 2, "distanceToParent": 3, "arrangementStyle": 0 }, @@ -3907,12 +3907,12 @@ "id": "b78715ee-cbcf-4fce-914a-d3efa55d7849", "savedPayload": { "position": { - "x": 29228.97836235955, - "y": 23477.702492528017 + "x": 29739.927349432593, + "y": 24325.091357278743 }, "targetPosition": { - "x": 29451.92181000277, - "y": 23276.96331062036 + "x": 29708.568810452296, + "y": 24026.734788668262 }, "floatingObject": { "isPinned": false, @@ -3942,12 +3942,12 @@ "id": "d684a95b-fc8a-4545-8db5-601128a924cf", "savedPayload": { "position": { - "x": 28873.160574894082, - "y": 23246.631719553203 + "x": 29343.842719217075, + "y": 24477.134001648785 }, "targetPosition": { - "x": 29166.604855114223, - "y": 23184.258212307876 + "x": 29465.863712139813, + "y": 24203.070364356005 }, "floatingObject": { "isPinned": false, @@ -3970,12 +3970,12 @@ "id": "bfb493fb-ac94-4be4-9433-38c24bb5f254", "savedPayload": { "position": { - "x": 28965.865673206565, - "y": 22961.314764664658 + "x": 29167.507143529332, + "y": 24234.428903336302 }, "targetPosition": { - "x": 29166.604855114223, - "y": 23184.258212307876 + "x": 29465.863712139813, + "y": 24203.070364356005 }, "floatingObject": { "isPinned": false, @@ -3994,12 +3994,12 @@ "id": "477c0363-96ff-464c-bdda-ed40fa20df12", "savedPayload": { "position": { - "x": 29166.604855114223, - "y": 23184.258212307876 + "x": 29465.863712139813, + "y": 24203.070364356005 }, "targetPosition": { - "x": 29451.92181000277, - "y": 23276.96331062036 + "x": 29708.568810452296, + "y": 24026.734788668262 }, "floatingObject": { "isPinned": false, @@ -4019,12 +4019,12 @@ "id": "681ff42a-d5af-4fed-971e-935398dac2aa", "savedPayload": { "position": { - "x": 29451.92181000277, - "y": 23276.96331062036 + "x": 29708.568810452296, + "y": 24026.734788668262 }, "targetPosition": { - "x": 29745.36609022291, - "y": 23214.58980337503 + "x": 29830.589803375035, + "y": 23752.67115137548 }, "floatingObject": { "isPinned": false, @@ -4047,12 +4047,12 @@ "id": "e4be3ce4-3569-4d97-8d54-95bb4cfcb0c5", "savedPayload": { "position": { - "x": 29544.62690831525, - "y": 22991.646355731813 + "x": 29532.233234764553, + "y": 23784.02969035578 }, "targetPosition": { - "x": 29745.36609022291, - "y": 23214.58980337503 + "x": 29830.589803375035, + "y": 23752.67115137548 }, "floatingObject": { "isPinned": false, @@ -4070,17 +4070,17 @@ "id": "3ff7f410-911d-4cb8-9094-d816dee4dccb", "savedPayload": { "position": { - "x": 29745.36609022291, - "y": 23214.58980337503 + "x": 29830.589803375035, + "y": 23752.67115137548 }, "targetPosition": { - "x": 30030.683045111455, - "y": 23307.294901687514 + "x": 30073.294901687517, + "y": 23576.33557568774 }, "floatingObject": { "isPinned": false, "isFrozen": false, - "isCollapsed": false, + "isCollapsed": true, "angleToParent": 1, "distanceToParent": 3, "arrangementStyle": 0 @@ -4093,8 +4093,8 @@ "id": "a1dc7a1b-dd1a-47dc-b274-a3d00712f711", "savedPayload": { "position": { - "x": 30030.683045111455, - "y": 23307.294901687514 + "x": 30073.294901687517, + "y": 23576.33557568774 }, "targetPosition": { "x": 30316, @@ -4104,7 +4104,7 @@ "isPinned": false, "isFrozen": false, "isCollapsed": false, - "angleToParent": 1, + "angleToParent": 2, "distanceToParent": 3, "arrangementStyle": 0 }, @@ -4177,7 +4177,7 @@ "floatingObject": { "isPinned": false, "isFrozen": false, - "isCollapsed": true, + "isCollapsed": false, "angleToParent": 2, "distanceToParent": 3, "arrangementStyle": 0 From 555fa9a28c65580e78c17c3fd791cd6c9d56f07b Mon Sep 17 00:00:00 2001 From: Luis Fernando Molina Date: Sun, 25 Jul 2021 21:32:42 +0200 Subject: [PATCH 2/3] Decendants Bug Fixed, Circular References enables, MAX_GENERATIONS implemented --- .../UI/Utilities/DecendentProgram.js | 146 +++++++++++------- 1 file changed, 91 insertions(+), 55 deletions(-) diff --git a/Projects/Governance/UI/Utilities/DecendentProgram.js b/Projects/Governance/UI/Utilities/DecendentProgram.js index 37c037e24..fb8e512f0 100644 --- a/Projects/Governance/UI/Utilities/DecendentProgram.js +++ b/Projects/Governance/UI/Utilities/DecendentProgram.js @@ -7,6 +7,7 @@ function newGovernanceUtilitiesDecendentProgram() { let thisObject = { run: run } + const MAX_GENERATIONS = 10 return thisObject @@ -87,65 +88,75 @@ function newGovernanceUtilitiesDecendentProgram() { } function resetProgram(node) { - if (node === undefined) { return } - if (node.payload === undefined) { return } - if (node.payload[programPropertyName] === undefined) { - node.payload[programPropertyName] = { - count: 0, - percentage: 0, - outgoingPower: 0, - ownPower: 0, - incomingPower: 0, - usedPower: 0, - awarded: { + resetNode(node, 0) + + function resetNode(node, generation) { + + if (generation >= MAX_GENERATIONS) { + return + } + + if (node === undefined) { return } + if (node.payload === undefined) { return } + if (node.payload[programPropertyName] === undefined) { + node.payload[programPropertyName] = { + count: 0, + percentage: 0, + outgoingPower: 0, + ownPower: 0, + incomingPower: 0, + usedPower: 0, + awarded: { + tokens: 0, + percentage: 0 + } + } + } else { + node.payload[programPropertyName].count = 0 + node.payload[programPropertyName].percentage = 0 + node.payload[programPropertyName].outgoingPower = 0 + node.payload[programPropertyName].ownPower = 0 + node.payload[programPropertyName].incomingPower = 0 + node.payload[programPropertyName].usedPower = 0 + node.payload[programPropertyName].awarded = { tokens: 0, percentage: 0 } } - } else { - node.payload[programPropertyName].count = 0 - node.payload[programPropertyName].percentage = 0 - node.payload[programPropertyName].outgoingPower = 0 - node.payload[programPropertyName].ownPower = 0 - node.payload[programPropertyName].incomingPower = 0 - node.payload[programPropertyName].usedPower = 0 - node.payload[programPropertyName].awarded = { - tokens: 0, - percentage: 0 + if ( + node.type === 'User Profile' && + node.tokenPowerSwitch !== undefined + ) { + resetNode(node.tokenPowerSwitch, generation) + return } - } - if ( - node.type === 'User Profile' && - node.tokenPowerSwitch !== undefined - ) { - resetProgram(node.tokenPowerSwitch) - return - } - if ( - node.type === 'Token Power Switch' && - node[programPropertyName] !== undefined - ) { - resetProgram(node[programPropertyName]) - return - } - if ( - node.type === programNodeType && - node[usersArrayPropertyName] !== undefined - ) { - for (let i = 0; i < node[usersArrayPropertyName].length; i++) { - resetProgram(node[usersArrayPropertyName][i]) + if ( + node.type === 'Token Power Switch' && + node[programPropertyName] !== undefined + ) { + resetNode(node[programPropertyName], generation) + return + } + if ( + node.type === programNodeType && + node[usersArrayPropertyName] !== undefined + ) { + for (let i = 0; i < node[usersArrayPropertyName].length; i++) { + resetNode(node[usersArrayPropertyName][i], generation) + } + return + } + if ( + node.type === userNodeType && + node.payload.referenceParent !== undefined + ) { + resetNode(node.payload.referenceParent, generation + 1) + return } - return - } - if ( - node.type === userNodeType && - node.payload.referenceParent !== undefined - ) { - resetProgram(node.payload.referenceParent) - return } } + function validateProgram(node, userProfile) { /* This program is not going to run unless the Profile has Tokens, and for @@ -185,6 +196,7 @@ function newGovernanceUtilitiesDecendentProgram() { } function distributeProgram(programNode) { + if (programNode === undefined || programNode.payload === undefined) { return } /* Here we will convert Token Power into programPower. @@ -200,15 +212,19 @@ function newGovernanceUtilitiesDecendentProgram() { */ programNode.payload[programPropertyName].ownPower = programPower - distributeProgramPower(programNode, programNode, programPower, count) + distributeProgramPower(programNode, programNode, programPower, count, undefined, 0) function distributeProgramPower( currentProgramNode, node, programPower, count, - percentage + percentage, + generation ) { + if (generation >= MAX_GENERATIONS) { + return + } if (node === undefined) { return } if (node.payload === undefined) { return } if (node.payload[programPropertyName] === undefined) { return } @@ -281,7 +297,14 @@ function newGovernanceUtilitiesDecendentProgram() { if (percentage === undefined || isNaN(percentage) === true) { percentage = defaultPercentage } - distributeProgramPower(currentProgramNode, childNode, programPower * percentage / 100, 0, percentage) + distributeProgramPower( + currentProgramNode, + childNode, + programPower * percentage / 100, + 0, + percentage, + generation + ) } } return @@ -299,7 +322,14 @@ function newGovernanceUtilitiesDecendentProgram() { currentProgramNode.payload[programPropertyName].usedPower = currentProgramNode.payload[programPropertyName].usedPower - previousOutgoing currentProgramNode.payload[programPropertyName].usedPower = currentProgramNode.payload[programPropertyName].usedPower + node.payload[programPropertyName].outgoingPower - distributeProgramPower(currentProgramNode, node.payload.referenceParent, programPower / 10, 0) + distributeProgramPower( + currentProgramNode, + node.payload.referenceParent, + programPower / 10, + 0, + undefined, + generation + 1 + ) } return } @@ -309,7 +339,13 @@ function newGovernanceUtilitiesDecendentProgram() { if (program.payload === undefined) { return } if (program.payload[programPropertyName].isActive === false) { return } - distributeProgramPower(program, program, programPower, 0) + distributeProgramPower( + program, + program, + programPower, + 0, + undefined, + generation) return } } From 313641a2e088824655875a4562bc3316fb0c17b8 Mon Sep 17 00:00:00 2001 From: Luis Fernando Molina Date: Sun, 25 Jul 2021 22:25:55 +0200 Subject: [PATCH 3/3] Delegation Program and Voting Program can have circular references and limited up to 10 generations --- .../Function-Libraries/DelegationProgram.js | 115 +++++---- .../UI/Function-Libraries/VotingProgram.js | 228 +++++++++++------- 2 files changed, 209 insertions(+), 134 deletions(-) diff --git a/Projects/Governance/UI/Function-Libraries/DelegationProgram.js b/Projects/Governance/UI/Function-Libraries/DelegationProgram.js index 9ce5d4072..c61be6ef0 100644 --- a/Projects/Governance/UI/Function-Libraries/DelegationProgram.js +++ b/Projects/Governance/UI/Function-Libraries/DelegationProgram.js @@ -2,6 +2,7 @@ function newGovernanceFunctionLibraryDelegationProgram() { let thisObject = { calculate: calculate } + const MAX_GENERATIONS = 10 return thisObject @@ -45,49 +46,57 @@ function newGovernanceFunctionLibraryDelegationProgram() { ) function resetProgram(node) { - if (node === undefined) { return } - if (node.payload === undefined) { return } - if (node.payload.delegationProgram === undefined) { - node.payload.delegationProgram = { - programPower: 0, - ownPower: 0, - usedPower: 0 + resetNode(node, 0) + + function resetNode(node, generation) { + + if (generation >= MAX_GENERATIONS) { + return + } + if (node === undefined) { return } + if (node.payload === undefined) { return } + if (node.payload.delegationProgram === undefined) { + node.payload.delegationProgram = { + programPower: 0, + ownPower: 0, + usedPower: 0 + } + } else { + node.payload.delegationProgram.programPower = 0 + node.payload.delegationProgram.ownPower = 0 + node.payload.delegationProgram.usedPower = 0 } - } else { - node.payload.delegationProgram.programPower = 0 - node.payload.delegationProgram.ownPower = 0 - node.payload.delegationProgram.usedPower = 0 - } - if (node.type === 'User Profile') { - return - } - if (node.payload.referenceParent !== undefined) { - resetProgram(node.payload.referenceParent) - return - } - let schemaDocument = getSchemaDocument(node) - if (schemaDocument === undefined) { return } + if (node.type === 'User Profile') { + return + } + if (node.payload.referenceParent !== undefined) { + resetNode(node.payload.referenceParent, generation + 1) + return + } + 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] + 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] - resetProgram(childNode) - } - break - case 'array': { - let propertyArray = node[property.name] - if (propertyArray !== undefined) { - for (let m = 0; m < propertyArray.length; m++) { - let childNode = propertyArray[m] - resetProgram(childNode) + switch (property.type) { + case 'node': { + let childNode = node[property.name] + resetNode(childNode, generation) + } + break + case 'array': { + let propertyArray = node[property.name] + if (propertyArray !== undefined) { + for (let m = 0; m < propertyArray.length; m++) { + let childNode = propertyArray[m] + resetNode(childNode, generation) + } } + break } - break } } } @@ -106,14 +115,18 @@ function newGovernanceFunctionLibraryDelegationProgram() { The Own Power is the power generated by the same User Profile tokens, not inherited from others. */ programNode.payload.delegationProgram.ownPower = programPower - distributeProgramPower(programNode, programNode, programPower) + distributeProgramPower(programNode, programNode, programPower, undefined, 0) function distributeProgramPower( currentProgramNode, node, programPower, - percentage + percentage, + generation ) { + if (generation >= MAX_GENERATIONS) { + return + } if (node === undefined) { return } if (node.payload === undefined) { return } if (node.payload.delegationProgram === undefined) { return } @@ -138,7 +151,13 @@ function newGovernanceFunctionLibraryDelegationProgram() { node.type === 'User Delegate' ) { currentProgramNode.payload.delegationProgram.usedPower = currentProgramNode.payload.delegationProgram.usedPower + programPower - distributeProgramPower(currentProgramNode, node.payload.referenceParent, programPower / 10) + distributeProgramPower( + currentProgramNode, + node.payload.referenceParent, + programPower / 10, + undefined, + generation + 1 + ) return } /* @@ -214,7 +233,13 @@ function newGovernanceFunctionLibraryDelegationProgram() { if (percentage === undefined || isNaN(percentage) === true) { percentage = defaultPercentage } - distributeProgramPower(currentProgramNode, childNode, programPower * percentage / 100, percentage) + distributeProgramPower( + currentProgramNode, + childNode, + programPower * percentage / 100, + percentage, + generation + ) } break case 'array': { @@ -228,7 +253,13 @@ function newGovernanceFunctionLibraryDelegationProgram() { if (percentage === undefined || isNaN(percentage) === true) { percentage = defaultPercentage } - distributeProgramPower(currentProgramNode, childNode, programPower * percentage / 100, percentage) + distributeProgramPower( + currentProgramNode, + childNode, + programPower * percentage / 100, + percentage, + generation + ) } } break diff --git a/Projects/Governance/UI/Function-Libraries/VotingProgram.js b/Projects/Governance/UI/Function-Libraries/VotingProgram.js index 3b3f29a40..4ff18ca94 100644 --- a/Projects/Governance/UI/Function-Libraries/VotingProgram.js +++ b/Projects/Governance/UI/Function-Libraries/VotingProgram.js @@ -3,6 +3,7 @@ function newGovernanceFunctionLibraryVotingProgram() { calculate: calculate, installMissingVotes: installMissingVotes } + const MAX_GENERATIONS = 10 return thisObject @@ -71,100 +72,109 @@ function newGovernanceFunctionLibraryVotingProgram() { ) function resetVotes(node) { - if (node === undefined) { return } - if (node.payload === undefined) { return } - if (node.payload.votingProgram === undefined) { - node.payload.votingProgram = { - votes: 0, - ownPower: 0, - incomingPower: 0, - usedPower: 0 - } - } else { - node.payload.votingProgram.votes = 0 - node.payload.votingProgram.ownPower = 0 - node.payload.votingProgram.incomingPower = 0 - node.payload.votingProgram.usedPower = 0 + resetNode(node, 0) - } + function resetNode(node, generation) { - /* - When we reach certain node types, we will halt the distribution, because these are targets for - voting power. - */ - if ( - node.type === 'Position' || - node.type === 'Asset' || - node.type === 'Feature' || - node.type === 'Pool' || - node.type === 'Position Contribution Claim' || - node.type === 'Asset Contribution Claim' || - node.type === 'Feature Contribution Claim' - ) { return } - /* - For Votes to Profiles there is a special treamtment that needs to be done - so that votes can flow from Profiles to the Program without being affected - by Percentages. - */ - switch (node.type) { - case 'User Profile Vote': { - if (node.payload.referenceParent !== undefined) { - resetVotes(node.payload.referenceParent) - } - break - } - case 'User Profile': { - let program = UI.projects.governance.utilities.validations.onlyOneProgram(node, 'Voting Program') - if (program === undefined) { return } - if (program.payload === undefined) { return } - resetVotes(program) + if (generation >= MAX_GENERATIONS) { return } - } - /* - If there is a reference parent defined, this means that the voting power is - transfered to it and not distributed among children. - */ - if ( - node.payload.referenceParent !== undefined && - node.type !== 'Votes Switch' && - node.type !== 'Claim Votes Switch' && - node.type !== 'Weight Votes Switch' - ) { - resetVotes(node.payload.referenceParent) - return - } - /* - Here we are inside the Voting Program, so we will crawl all it's children. - */ - let schemaDocument = getSchemaDocument(node) - if (schemaDocument === undefined) { return } + if (node === undefined) { return } + if (node.payload === undefined) { return } + if (node.payload.votingProgram === undefined) { + node.payload.votingProgram = { + votes: 0, + ownPower: 0, + incomingPower: 0, + usedPower: 0 + } + } else { + node.payload.votingProgram.votes = 0 + node.payload.votingProgram.ownPower = 0 + node.payload.votingProgram.incomingPower = 0 + node.payload.votingProgram.usedPower = 0 - if (schemaDocument.childrenNodesProperties !== undefined) { - for (let i = 0; i < schemaDocument.childrenNodesProperties.length; i++) { - let property = schemaDocument.childrenNodesProperties[i] - - if (node.type === 'User Profile' && property.name !== "votingProgram") { continue } - - switch (property.type) { - case 'node': { - let childNode = node[property.name] - if (childNode === undefined) { continue } - if (childNode.type === 'Tokens Bonus') { continue } - resetVotes(childNode) + } + /* + When we reach certain node types, we will halt the distribution, because these are targets for + voting power. + */ + if ( + node.type === 'Position' || + node.type === 'Asset' || + node.type === 'Feature' || + node.type === 'Pool' || + node.type === 'Position Contribution Claim' || + node.type === 'Asset Contribution Claim' || + node.type === 'Feature Contribution Claim' + ) { return } + /* + For Votes to Profiles there is a special treamtment that needs to be done + so that votes can flow from Profiles to the Program without being affected + by Percentages. + */ + switch (node.type) { + case 'User Profile Vote': { + if (node.payload.referenceParent !== undefined) { + resetNode(node.payload.referenceParent, generation + 1) + return } - break - case 'array': { - let propertyArray = node[property.name] - if (propertyArray !== undefined) { - for (let m = 0; m < propertyArray.length; m++) { - let childNode = propertyArray[m] - if (childNode.type === 'Tokens Bonus') { continue } - resetVotes(childNode) + break + } + case 'User Profile': { + let program = UI.projects.governance.utilities.validations.onlyOneProgram(node, 'Voting Program') + if (program === undefined) { return } + if (program.payload === undefined) { return } + resetNode(program, generation) + return + } + } + /* + If there is a reference parent defined, this means that the voting power is + transfered to it and not distributed among children. + */ + if ( + node.payload.referenceParent !== undefined && + node.type !== 'Votes Switch' && + node.type !== 'Claim Votes Switch' && + node.type !== 'Weight Votes Switch' + ) { + resetNode(node.payload.referenceParent, generation) + return + } + /* + Here we are inside the Voting Program, so we will crawl all it's children. + */ + 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] + + if (node.type === 'User Profile' && property.name !== "votingProgram") { continue } + + switch (property.type) { + case 'node': { + let childNode = node[property.name] + if (childNode === undefined) { continue } + if (childNode.type === 'Tokens Bonus') { continue } + resetNode(childNode, generation) + + } + break + case 'array': { + let propertyArray = node[property.name] + if (propertyArray !== undefined) { + for (let m = 0; m < propertyArray.length; m++) { + let childNode = propertyArray[m] + if (childNode.type === 'Tokens Bonus') { continue } + resetNode(childNode, generation) + } } + break } - break } } } @@ -181,14 +191,18 @@ function newGovernanceFunctionLibraryVotingProgram() { Set this initial votes as own power */ programNode.payload.votingProgram.ownPower = votes - distributeProgramPower(programNode, programNode, votes) + distributeProgramPower(programNode, programNode, votes, undefined, 0) function distributeProgramPower( currentProgramNode, node, votes, - percentage + percentage, + generation ) { + if (generation >= MAX_GENERATIONS) { + return + } if (node === undefined) { return } if (node.payload === undefined) { return } if (node.payload.votingProgram === undefined) { return } @@ -221,7 +235,13 @@ function newGovernanceFunctionLibraryVotingProgram() { case 'User Profile Vote': { if (node.payload.referenceParent !== undefined) { currentProgramNode.payload.votingProgram.usedPower = currentProgramNode.payload.votingProgram.usedPower + votes - distributeProgramPower(currentProgramNode, node.payload.referenceParent, votes / 10) + distributeProgramPower( + currentProgramNode, + node.payload.referenceParent, + votes / 10, + undefined, + generation + 1 + ) } return } @@ -229,7 +249,13 @@ function newGovernanceFunctionLibraryVotingProgram() { let program = UI.projects.governance.utilities.validations.onlyOneProgram(node, 'Voting Program') if (program === undefined) { return } if (program.payload === undefined) { return } - distributeProgramPower(currentProgramNode, program, votes) + distributeProgramPower( + currentProgramNode, + program, + votes, + undefined, + generation + ) return } } @@ -244,7 +270,13 @@ function newGovernanceFunctionLibraryVotingProgram() { node.type !== 'Weight Votes Switch' ) { currentProgramNode.payload.votingProgram.usedPower = currentProgramNode.payload.votingProgram.usedPower + votes - distributeProgramPower(currentProgramNode, node.payload.referenceParent, votes) + distributeProgramPower( + currentProgramNode, + node.payload.referenceParent, + votes, + undefined, + generation + ) return } /* @@ -320,7 +352,13 @@ function newGovernanceFunctionLibraryVotingProgram() { if (percentage === undefined || isNaN(percentage) === true) { percentage = defaultPercentage } - distributeProgramPower(currentProgramNode, childNode, votes * percentage / 100, percentage) + distributeProgramPower( + currentProgramNode, + childNode, + votes * percentage / 100, + percentage, + generation + ) } break case 'array': { @@ -334,7 +372,13 @@ function newGovernanceFunctionLibraryVotingProgram() { if (percentage === undefined || isNaN(percentage) === true) { percentage = defaultPercentage } - distributeProgramPower(currentProgramNode, childNode, votes * percentage / 100, percentage) + distributeProgramPower( + currentProgramNode, + childNode, + votes * percentage / 100, + percentage, + generation + ) } } break