diff --git a/Projects/Governance/Icons/Programs/liquidity-program.png b/Projects/Governance/Icons/Programs/liquidity-program.png new file mode 100644 index 000000000..df97739ca Binary files /dev/null and b/Projects/Governance/Icons/Programs/liquidity-program.png differ diff --git a/Projects/Governance/Plugins/Pools/Superalgos.json b/Projects/Governance/Plugins/Pools/Superalgos.json index 265c4632b..4d9dfa541 100644 --- a/Projects/Governance/Plugins/Pools/Superalgos.json +++ b/Projects/Governance/Plugins/Pools/Superalgos.json @@ -295,11 +295,11 @@ "savedPayload": { "position": { "x": 16657.465367689296, - "y": 44560.21626285766 + "y": 44561.21626285766 }, "targetPosition": { "x": 16445.333333333332, - "y": 44772.348297213626 + "y": 44773.348297213626 }, "floatingObject": { "isPinned": false, @@ -448,11 +448,11 @@ "savedPayload": { "position": { "x": 16745.333333333332, - "y": 44772.348297213626 + "y": 44773.348297213626 }, "targetPosition": { "x": 16445.333333333332, - "y": 44772.348297213626 + "y": 44773.348297213626 }, "floatingObject": { "isPinned": false, @@ -483,12 +483,12 @@ "id": "5bd09ac2-6c9f-4a7d-a547-c05a8a1e98e2", "savedPayload": { "position": { - "x": 16953.771869867836, - "y": 44937.549992057524 + "x": 16947.243115576017, + "y": 44907.83461803883 }, "targetPosition": { "x": 16657.465367689296, - "y": 44984.48033156959 + "y": 44985.48033156959 }, "floatingObject": { "isPinned": false, @@ -520,12 +520,12 @@ "id": "9eb846a4-effb-4380-9487-1a82011b0488", "savedPayload": { "position": { - "x": 17192.069282202316, - "y": 45256.87463141332 + "x": 17237.020863462738, + "y": 45140.771758631105 }, "targetPosition": { - "x": 16924.767324945806, - "y": 45120.67748149145 + "x": 16947.243115576017, + "y": 45063.12604510035 }, "floatingObject": { "isPinned": false, @@ -544,12 +544,12 @@ "id": "80d4f08f-bb7f-48a2-9cef-be12befcac2e", "savedPayload": { "position": { - "x": 16924.767324945806, - "y": 45120.67748149145 + "x": 16947.243115576017, + "y": 45063.12604510035 }, "targetPosition": { "x": 16657.465367689296, - "y": 44984.48033156959 + "y": 44985.48033156959 }, "floatingObject": { "isPinned": false, @@ -581,12 +581,12 @@ "id": "d2cf4c65-b4bd-4fa8-b0da-f73a38b8419a", "savedPayload": { "position": { - "x": 16929.859667533023, - "y": 45519.08424608261 + "x": 17081.729436401223, + "y": 45409.74440028152 }, "targetPosition": { - "x": 16793.66251761116, - "y": 45251.7822888261 + "x": 16869.59740204526, + "y": 45197.61236592555 }, "floatingObject": { "isPinned": false, @@ -605,12 +605,73 @@ "id": "68e3f570-4156-4be6-8881-c526a06f85d0", "savedPayload": { "position": { - "x": 16793.66251761116, - "y": 45251.7822888261 + "x": 16869.59740204526, + "y": 45197.61236592555 }, "targetPosition": { "x": 16657.465367689296, - "y": 44984.48033156959 + "y": 44985.48033156959 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + { + "type": "Pool Class", + "name": "Liquidity Program", + "config": "{}", + "project": "Governance", + "poolClasses": [], + "pools": [ + { + "type": "Pool", + "name": "Liquidity Rewards", + "config": "{\n \"codeName\": \"Liquidity-Rewards\"\n}", + "project": "Governance", + "poolClasses": [], + "pools": [], + "id": "a7651e92-ab96-49fc-af9c-f936682dd7a4", + "savedPayload": { + "position": { + "x": 16812.75679475081, + "y": 45565.03582734303 + }, + "targetPosition": { + "x": 16735.111081220053, + "y": 45275.25807945631 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + } + ], + "id": "477faa7a-da4f-4949-9439-a2475ed683de", + "savedPayload": { + "position": { + "x": 16735.111081220053, + "y": 45275.25807945631 + }, + "targetPosition": { + "x": 16657.465367689296, + "y": 44985.48033156959 }, "floatingObject": { "isPinned": false, @@ -642,12 +703,12 @@ "id": "24e62dd3-4d7b-4eba-b401-493c155d85d0", "savedPayload": { "position": { - "x": 16563.604688665157, - "y": 45577.09333592668 + "x": 16502.17394062778, + "y": 45565.03582734303 }, "targetPosition": { - "x": 16610.535028177226, - "y": 45280.786833748134 + "x": 16579.81965415854, + "y": 45275.25807945631 }, "floatingObject": { "isPinned": false, @@ -666,12 +727,12 @@ "id": "f09429a2-3f6c-4210-bb73-0c8efd254c82", "savedPayload": { "position": { - "x": 16610.535028177226, - "y": 45280.786833748134 + "x": 16579.81965415854, + "y": 45275.25807945631 }, "targetPosition": { "x": 16657.465367689296, - "y": 44984.48033156959 + "y": 44985.48033156959 }, "floatingObject": { "isPinned": false, @@ -692,11 +753,11 @@ "savedPayload": { "position": { "x": 16657.465367689296, - "y": 44984.48033156959 + "y": 44985.48033156959 }, "targetPosition": { "x": 16445.333333333332, - "y": 44772.348297213626 + "y": 44773.348297213626 }, "floatingObject": { "isPinned": false, @@ -717,11 +778,11 @@ "savedPayload": { "position": { "x": 16445.333333333332, - "y": 44772.348297213626 + "y": 44773.348297213626 }, "targetPosition": { "x": 16145.333333333332, - "y": 44772.348297213626 + "y": 44773.348297213626 }, "floatingObject": { "isPinned": false, @@ -754,11 +815,11 @@ "savedPayload": { "position": { "x": 15633.201298977368, - "y": 44984.48033156959 + "y": 44985.48033156959 }, "targetPosition": { "x": 15845.333333333332, - "y": 44772.348297213626 + "y": 44773.348297213626 }, "floatingObject": { "isPinned": false, @@ -797,11 +858,11 @@ "savedPayload": { "position": { "x": 15545.333333333332, - "y": 44772.348297213626 + "y": 44773.348297213626 }, "targetPosition": { "x": 15845.333333333332, - "y": 44772.348297213626 + "y": 44773.348297213626 }, "floatingObject": { "isPinned": false, @@ -840,11 +901,11 @@ "savedPayload": { "position": { "x": 15633.201298977368, - "y": 44560.21626285766 + "y": 44561.21626285766 }, "targetPosition": { "x": 15845.333333333332, - "y": 44772.348297213626 + "y": 44773.348297213626 }, "floatingObject": { "isPinned": false, @@ -877,11 +938,11 @@ "savedPayload": { "position": { "x": 15845.333333333332, - "y": 44772.348297213626 + "y": 44773.348297213626 }, "targetPosition": { "x": 16145.333333333332, - "y": 44772.348297213626 + "y": 44773.348297213626 }, "floatingObject": { "isPinned": false, @@ -902,11 +963,11 @@ "savedPayload": { "position": { "x": 16145.333333333332, - "y": 44772.348297213626 + "y": 44773.348297213626 }, "targetPosition": { "x": 16145.333333333332, - "y": 44772.348297213626 + "y": 44773.348297213626 }, "floatingObject": { "isPinned": false, diff --git a/Projects/Governance/Plugins/User-Profiles/Luis-Fernando-Molina.json b/Projects/Governance/Plugins/User-Profiles/Luis-Fernando-Molina.json index 9b35420b7..10080f5e5 100644 --- a/Projects/Governance/Plugins/User-Profiles/Luis-Fernando-Molina.json +++ b/Projects/Governance/Plugins/User-Profiles/Luis-Fernando-Molina.json @@ -127,12 +127,12 @@ "id": "f4d39b02-4324-438d-9f74-2bea2b7272ef", "savedPayload": { "position": { - "x": 29083.560605784536, - "y": 15837.867965644036 + "x": 37976.33557568774, + "y": 18557.294901687517 }, "targetPosition": { - "x": 28871.428571428572, - "y": 16050 + "x": 37800, + "y": 18800 }, "floatingObject": { "isPinned": false, @@ -516,12 +516,12 @@ "id": "b6e3c87d-a11b-4b2a-b6a6-edc96375f5da", "savedPayload": { "position": { - "x": 29171.428571428572, - "y": 16050 + "x": 38085.31695488855, + "y": 18707.294901687517 }, "targetPosition": { - "x": 28871.428571428572, - "y": 16050 + "x": 37800, + "y": 18800 }, "floatingObject": { "isPinned": false, @@ -565,12 +565,12 @@ "id": "2571cea1-2b6d-40f5-9331-8786bf57c184", "savedPayload": { "position": { - "x": 29933.14597480659, - "y": 16189.77774788672 + "x": 38901.29354317829, + "y": 18645.29319603238 }, "targetPosition": { - "x": 29673.338353671257, - "y": 16339.77774788672 + "x": 38678.35009553507, + "y": 18846.03237794004 }, "floatingObject": { "isPinned": false, @@ -596,7 +596,7 @@ "weightVotesSwitch": [ { "type": "Weight Votes Switch", - "name": "Superalgos Pools", + "name": "Superalgos", "config": "{}", "project": "Governance", "weightVotesSwitch": [ @@ -627,12 +627,12 @@ "id": "e282a967-cfe8-49c3-abaa-26ca24204d68", "savedPayload": { "position": { - "x": 29801.92385075597, - "y": 14947.602193320408 + "x": 39009.69942836366, + "y": 18060.387380717464 }, "targetPosition": { - "x": 30101.512711182342, - "y": 14963.302980193292 + "x": 39295.01638325221, + "y": 18153.092479029947 }, "floatingObject": { "isPinned": false, @@ -692,12 +692,12 @@ "id": "a4566415-80fe-49f4-a7dc-4aac4bd8410a", "savedPayload": { "position": { - "x": 29965.31556126048, - "y": 14696.001022936782 + "x": 39232.64287600688, + "y": 17859.648198809806 }, "targetPosition": { - "x": 30101.512711182342, - "y": 14963.302980193292 + "x": 39295.01638325221, + "y": 18153.092479029947 }, "floatingObject": { "isPinned": false, @@ -756,12 +756,12 @@ "id": "8da6770a-27ec-4b6b-93af-0dc7d0667fc4", "savedPayload": { "position": { - "x": 30101.512711182342, - "y": 14963.302980193292 + "x": 39295.01638325221, + "y": 18153.092479029947 }, "targetPosition": { - "x": 30353.11388156597, - "y": 15126.6946906978 + "x": 39495.75556515987, + "y": 18376.035926673165 }, "floatingObject": { "isPinned": false, @@ -822,12 +822,12 @@ "id": "ab430be0-696d-4325-9dc9-bbe166d2193c", "savedPayload": { "position": { - "x": 30090.001192412983, - "y": 14610.30696283444 + "x": 39375.25920211089, + "y": 17809.145108990284 }, "targetPosition": { - "x": 30290.74037432064, - "y": 14833.250410477658 + "x": 39511.45635203275, + "y": 18076.447066246794 }, "floatingObject": { "isPinned": false, @@ -887,12 +887,12 @@ "id": "4fe57296-a7c3-47d2-a6b1-721495aea6dd", "savedPayload": { "position": { - "x": 30383.445472633124, - "y": 14547.933455589113 + "x": 39674.84806253726, + "y": 17824.845895863167 }, "targetPosition": { - "x": 30290.74037432064, - "y": 14833.250410477658 + "x": 39511.45635203275, + "y": 18076.447066246794 }, "floatingObject": { "isPinned": false, @@ -951,12 +951,12 @@ "id": "23feb1dc-3a4a-49a2-9392-d9ba84abd3fd", "savedPayload": { "position": { - "x": 30290.74037432064, - "y": 14833.250410477658 + "x": 39511.45635203275, + "y": 18076.447066246794 }, "targetPosition": { - "x": 30353.11388156597, - "y": 15126.6946906978 + "x": 39495.75556515987, + "y": 18376.035926673165 }, "floatingObject": { "isPinned": false, @@ -1017,12 +1017,12 @@ "id": "37005931-aa7b-460e-9aed-5fcf0152b01e", "savedPayload": { "position": { - "x": 30532.20637894336, - "y": 14575.5046598878 + "x": 39811.404111115575, + "y": 17889.97978987696 }, "targetPosition": { - "x": 30516.505592070476, - "y": 14875.093520314173 + "x": 39718.69901280309, + "y": 18175.296744765506 }, "floatingObject": { "isPinned": false, @@ -1082,12 +1082,12 @@ "id": "25967c06-52be-435d-b10e-39ad71a72a47", "savedPayload": { "position": { - "x": 30783.807549326986, - "y": 14738.89637039231 + "x": 40012.14329302323, + "y": 18112.92323752018 }, "targetPosition": { - "x": 30516.505592070476, - "y": 14875.093520314173 + "x": 39718.69901280309, + "y": 18175.296744765506 }, "floatingObject": { "isPinned": false, @@ -1146,12 +1146,12 @@ "id": "bbc2c486-eda3-483d-82c9-fac2f983592e", "savedPayload": { "position": { - "x": 30516.505592070476, - "y": 14875.093520314173 + "x": 39718.69901280309, + "y": 18175.296744765506 }, "targetPosition": { - "x": 30353.11388156597, - "y": 15126.6946906978 + "x": 39495.75556515987, + "y": 18376.035926673165 }, "floatingObject": { "isPinned": false, @@ -1205,12 +1205,12 @@ "id": "8bcc99aa-7700-4f67-abc3-c9a52692878f", "savedPayload": { "position": { - "x": 30353.11388156597, - "y": 15126.6946906978 + "x": 39495.75556515987, + "y": 18376.035926673165 }, "targetPosition": { - "x": 30415.487388811296, - "y": 15420.13897091794 + "x": 39480.05477828698, + "y": 18675.624787099536 }, "floatingObject": { "isPinned": false, @@ -1271,12 +1271,12 @@ "id": "07f5166e-a2b2-45dc-89b7-1850f09be2e1", "savedPayload": { "position": { - "x": 30610.28067306157, - "y": 14569.360079681568 + "x": 39888.40842255518, + "y": 17904.251695414787 }, "targetPosition": { - "x": 30594.579886188687, - "y": 14868.94894010794 + "x": 39795.70332424269, + "y": 18189.568650303332 }, "floatingObject": { "isPinned": false, @@ -1335,12 +1335,12 @@ "id": "884c3559-1bcf-441d-bc10-477919f38cf3", "savedPayload": { "position": { - "x": 30594.579886188687, - "y": 14868.94894010794 + "x": 39795.70332424269, + "y": 18189.568650303332 }, "targetPosition": { - "x": 30578.879099315804, - "y": 15168.537800534314 + "x": 39702.998225930205, + "y": 18474.885605191877 }, "floatingObject": { "isPinned": false, @@ -1401,12 +1401,12 @@ "id": "8d43c1b9-0855-4fd9-9508-55b94175e264", "savedPayload": { "position": { - "x": 31113.483013828823, - "y": 14896.143500690587 + "x": 40289.886786370495, + "y": 18350.138590701223 }, "targetPosition": { - "x": 30846.181056572314, - "y": 15032.34065061245 + "x": 39996.44250615035, + "y": 18412.51209794655 }, "floatingObject": { "isPinned": false, @@ -1465,12 +1465,12 @@ "id": "790046f1-e146-4d95-8e03-b15667281565", "savedPayload": { "position": { - "x": 30846.181056572314, - "y": 15032.34065061245 + "x": 39996.44250615035, + "y": 18412.51209794655 }, "targetPosition": { - "x": 30578.879099315804, - "y": 15168.537800534314 + "x": 39702.998225930205, + "y": 18474.885605191877 }, "floatingObject": { "isPinned": false, @@ -1524,12 +1524,12 @@ "id": "ea55b1a3-4bae-440b-ba59-3422d06dccd0", "savedPayload": { "position": { - "x": 30578.879099315804, - "y": 15168.537800534314 + "x": 39702.998225930205, + "y": 18474.885605191877 }, "targetPosition": { - "x": 30415.487388811296, - "y": 15420.13897091794 + "x": 39480.05477828698, + "y": 18675.624787099536 }, "floatingObject": { "isPinned": false, @@ -1588,12 +1588,12 @@ "id": "71d7bae4-f6b9-4490-a984-71eb00b0f6b3", "savedPayload": { "position": { - "x": 30830.952661954176, - "y": 15083.701826379833 + "x": 39943.03534921787, + "y": 18439.724403588792 }, "targetPosition": { - "x": 30708.931669031437, - "y": 15357.765463672613 + "x": 39779.64363871336, + "y": 18691.32557397242 }, "floatingObject": { "isPinned": false, @@ -1654,12 +1654,12 @@ "id": "c122965e-2b37-46c4-9ddd-f605c0890ef0", "savedPayload": { "position": { - "x": 31228.546911302103, - "y": 15057.765463672613 + "x": 40314.24755322638, + "y": 18418.931274128692 }, "targetPosition": { - "x": 30968.73929016677, - "y": 15207.765463672613 + "x": 40046.94559596987, + "y": 18555.128424050556 }, "floatingObject": { "isPinned": false, @@ -1718,12 +1718,12 @@ "id": "fa38cfba-ad3c-49aa-9e37-c4aa56bf9f37", "savedPayload": { "position": { - "x": 30968.73929016677, - "y": 15207.765463672613 + "x": 40046.94559596987, + "y": 18555.128424050556 }, "targetPosition": { - "x": 30708.931669031437, - "y": 15357.765463672613 + "x": 39779.64363871336, + "y": 18691.32557397242 }, "floatingObject": { "isPinned": false, @@ -1784,12 +1784,12 @@ "id": "cca191bd-5d90-434f-b88c-ccb9e6f0c868", "savedPayload": { "position": { - "x": 31305.6448062524, - "y": 15420.482541633204 + "x": 40378.82135956611, + "y": 18722.727147718186 }, "targetPosition": { - "x": 31007.28823764192, - "y": 15389.124002652909 + "x": 40079.23249913973, + "y": 18707.026360845302 }, "floatingObject": { "isPinned": false, @@ -1848,12 +1848,12 @@ "id": "6a758dd3-74cf-48af-a4cd-f080d0058d41", "savedPayload": { "position": { - "x": 31007.28823764192, - "y": 15389.124002652909 + "x": 40079.23249913973, + "y": 18707.026360845302 }, "targetPosition": { - "x": 30708.931669031437, - "y": 15357.765463672613 + "x": 39779.64363871336, + "y": 18691.32557397242 }, "floatingObject": { "isPinned": false, @@ -1914,12 +1914,12 @@ "id": "053f3e5a-5c80-46e5-b798-9bb8daa6b679", "savedPayload": { "position": { - "x": 31154.818564317873, - "y": 15759.24382748793 + "x": 40282.84597948061, + "y": 19018.108994981434 }, "targetPosition": { - "x": 30931.875116674655, - "y": 15558.504645580271 + "x": 40031.244809096985, + "y": 18854.717284476927 }, "floatingObject": { "isPinned": false, @@ -1978,12 +1978,12 @@ "id": "d1e0560b-80a2-407a-85c7-e84b0e2b164c", "savedPayload": { "position": { - "x": 30931.875116674655, - "y": 15558.504645580271 + "x": 40031.244809096985, + "y": 18854.717284476927 }, "targetPosition": { - "x": 30708.931669031437, - "y": 15357.765463672613 + "x": 39779.64363871336, + "y": 18691.32557397242 }, "floatingObject": { "isPinned": false, @@ -2028,6 +2028,136 @@ ] ] } + }, + { + "type": "Weight Votes Switch", + "name": "Liquidity Program", + "config": "{}", + "project": "Governance", + "weightVotesSwitch": [], + "poolWeightVotes": [ + { + "type": "Pool Weight Vote", + "name": "Liquidity Rewards Pool", + "config": "{}", + "project": "Governance", + "id": "fcc74a4e-bc01-45e7-a42d-efdca2f03d21", + "savedPayload": { + "position": { + "x": 40052.037938557085, + "y": 19225.92948848544 + }, + "targetPosition": { + "x": 39915.84078863522, + "y": 18958.62753122893 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Pool", + "name": "Liquidity Rewards", + "id": "a7651e92-ab96-49fc-af9c-f936682dd7a4" + }, + "referenceParentCombinedNodePath": [ + [ + "Superalgos", + "Pools", + "Governance", + "6f0aed87-db13-4818-bfe6-68abc463ebec" + ], + [ + "Governance Programs", + "Pool Class", + "Governance", + "4fbb05ee-d7a0-43a7-9983-9fae7a7e4848" + ], + [ + "Other Programs", + "Pool Class", + "Governance", + "64cda2cd-270e-4046-ac3f-5cf9188113c2" + ], + [ + "Liquidity Program", + "Pool Class", + "Governance", + "477faa7a-da4f-4949-9439-a2475ed683de" + ], + [ + "Liquidity Rewards", + "Pool", + "Governance", + "a7651e92-ab96-49fc-af9c-f936682dd7a4" + ] + ] + } + } + ], + "assetWeightVotes": [], + "featureWeightVotes": [], + "positionWeightVotes": [], + "id": "8b903501-ece3-4da3-9124-c15a9f0a1085", + "savedPayload": { + "position": { + "x": 39915.84078863522, + "y": 18958.62753122893 + }, + "targetPosition": { + "x": 39779.64363871336, + "y": 18691.32557397242 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Pool Class", + "name": "Liquidity Program", + "id": "477faa7a-da4f-4949-9439-a2475ed683de" + }, + "referenceParentCombinedNodePath": [ + [ + "Superalgos", + "Pools", + "Governance", + "6f0aed87-db13-4818-bfe6-68abc463ebec" + ], + [ + "Governance Programs", + "Pool Class", + "Governance", + "4fbb05ee-d7a0-43a7-9983-9fae7a7e4848" + ], + [ + "Other Programs", + "Pool Class", + "Governance", + "64cda2cd-270e-4046-ac3f-5cf9188113c2" + ], + [ + "Liquidity Program", + "Pool Class", + "Governance", + "477faa7a-da4f-4949-9439-a2475ed683de" + ] + ] + } } ], "poolWeightVotes": [], @@ -2037,12 +2167,12 @@ "id": "36d0b2a7-7f20-4164-897f-e6bd3d348975", "savedPayload": { "position": { - "x": 30708.931669031437, - "y": 15357.765463672613 + "x": 39779.64363871336, + "y": 18691.32557397242 }, "targetPosition": { - "x": 30415.487388811296, - "y": 15420.13897091794 + "x": 39480.05477828698, + "y": 18675.624787099536 }, "floatingObject": { "isPinned": false, @@ -2090,17 +2220,17 @@ "id": "d928e0c2-5408-443b-9849-f015a6a97485", "savedPayload": { "position": { - "x": 30492.953595941923, - "y": 16639.777747886717 + "x": 39480.05477828698, + "y": 18675.624787099536 }, "targetPosition": { - "x": 30192.953595941923, - "y": 16639.777747886717 + "x": 39257.11133064376, + "y": 18876.363969007194 }, "floatingObject": { "isPinned": false, "isFrozen": false, - "isCollapsed": true, + "isCollapsed": false, "angleToParent": 2, "distanceToParent": 3, "arrangementStyle": 0 @@ -2144,12 +2274,12 @@ "id": "559bb585-4296-4fca-a8cb-b4d5ff1525c5", "savedPayload": { "position": { - "x": 30632.731343828644, - "y": 16977.231082552807 + "x": 39735.486318117684, + "y": 18388.599683061537 }, "targetPosition": { - "x": 30342.953595941923, - "y": 16899.58536902205 + "x": 39512.54287047446, + "y": 18589.338864969195 }, "floatingObject": { "isPinned": false, @@ -2197,12 +2327,12 @@ "id": "2340d520-d787-4291-a809-d89c247ebcbf", "savedPayload": { "position": { - "x": 30492.953595941923, - "y": 17159.392990157383 + "x": 39812.13173090084, + "y": 18605.03965184208 }, "targetPosition": { - "x": 30342.953595941923, - "y": 16899.58536902205 + "x": 39512.54287047446, + "y": 18589.338864969195 }, "floatingObject": { "isPinned": false, @@ -2250,12 +2380,12 @@ "id": "6f616ad7-276f-425b-89ef-c84ee2c1cf2c", "savedPayload": { "position": { - "x": 30265.307882411165, - "y": 17189.36311690877 + "x": 39713.28205238212, + "y": 18812.282312612413 }, "targetPosition": { - "x": 30342.953595941923, - "y": 16899.58536902205 + "x": 39512.54287047446, + "y": 18589.338864969195 }, "floatingObject": { "isPinned": false, @@ -2302,17 +2432,17 @@ "id": "61be79f5-5d3c-4667-9e7a-f4c13b958037", "savedPayload": { "position": { - "x": 30342.953595941923, - "y": 16899.58536902205 + "x": 39542.42828553231, + "y": 18969.069067319677 }, "targetPosition": { - "x": 30192.953595941923, - "y": 16639.777747886717 + "x": 39257.11133064376, + "y": 18876.363969007194 }, "floatingObject": { "isPinned": false, "isFrozen": false, - "isCollapsed": false, + "isCollapsed": true, "angleToParent": 2, "distanceToParent": 3, "arrangementStyle": 0 @@ -2349,17 +2479,17 @@ "id": "800e3388-1ea6-40ee-ace5-1811a3373e39", "savedPayload": { "position": { - "x": 30233.14597480659, - "y": 16489.777747886717 + "x": 39257.11133064376, + "y": 18876.363969007194 }, "targetPosition": { - "x": 29933.14597480659, - "y": 16489.777747886717 + "x": 38963.66705042362, + "y": 18938.73747625252 }, "floatingObject": { "isPinned": false, "isFrozen": false, - "isCollapsed": true, + "isCollapsed": false, "angleToParent": 2, "distanceToParent": 3, "arrangementStyle": 0 @@ -2462,7 +2592,7 @@ "8b29fcb2-3b9a-444f-b3b0-05976da9a18f" ], [ - "Projects", + "Software Projects", "Position Class", "Governance", "864ef810-2d34-4776-946d-2f4bd68b45c5" @@ -2533,7 +2663,7 @@ "8b29fcb2-3b9a-444f-b3b0-05976da9a18f" ], [ - "Projects", + "Software Projects", "Position Class", "Governance", "864ef810-2d34-4776-946d-2f4bd68b45c5" @@ -2604,7 +2734,7 @@ "8b29fcb2-3b9a-444f-b3b0-05976da9a18f" ], [ - "Projects", + "Software Projects", "Position Class", "Governance", "864ef810-2d34-4776-946d-2f4bd68b45c5" @@ -2671,7 +2801,7 @@ "8b29fcb2-3b9a-444f-b3b0-05976da9a18f" ], [ - "Projects", + "Software Projects", "Position Class", "Governance", "864ef810-2d34-4776-946d-2f4bd68b45c5" @@ -2746,7 +2876,7 @@ "8b29fcb2-3b9a-444f-b3b0-05976da9a18f" ], [ - "Projects", + "Software Projects", "Position Class", "Governance", "864ef810-2d34-4776-946d-2f4bd68b45c5" @@ -2817,7 +2947,7 @@ "8b29fcb2-3b9a-444f-b3b0-05976da9a18f" ], [ - "Projects", + "Software Projects", "Position Class", "Governance", "864ef810-2d34-4776-946d-2f4bd68b45c5" @@ -2888,7 +3018,7 @@ "8b29fcb2-3b9a-444f-b3b0-05976da9a18f" ], [ - "Projects", + "Software Projects", "Position Class", "Governance", "864ef810-2d34-4776-946d-2f4bd68b45c5" @@ -2955,7 +3085,7 @@ "8b29fcb2-3b9a-444f-b3b0-05976da9a18f" ], [ - "Projects", + "Software Projects", "Position Class", "Governance", "864ef810-2d34-4776-946d-2f4bd68b45c5" @@ -3030,7 +3160,7 @@ "8b29fcb2-3b9a-444f-b3b0-05976da9a18f" ], [ - "Projects", + "Software Projects", "Position Class", "Governance", "864ef810-2d34-4776-946d-2f4bd68b45c5" @@ -3101,7 +3231,7 @@ "8b29fcb2-3b9a-444f-b3b0-05976da9a18f" ], [ - "Projects", + "Software Projects", "Position Class", "Governance", "864ef810-2d34-4776-946d-2f4bd68b45c5" @@ -3172,7 +3302,7 @@ "8b29fcb2-3b9a-444f-b3b0-05976da9a18f" ], [ - "Projects", + "Software Projects", "Position Class", "Governance", "864ef810-2d34-4776-946d-2f4bd68b45c5" @@ -3239,7 +3369,7 @@ "8b29fcb2-3b9a-444f-b3b0-05976da9a18f" ], [ - "Projects", + "Software Projects", "Position Class", "Governance", "864ef810-2d34-4776-946d-2f4bd68b45c5" @@ -3314,7 +3444,7 @@ "8b29fcb2-3b9a-444f-b3b0-05976da9a18f" ], [ - "Projects", + "Software Projects", "Position Class", "Governance", "864ef810-2d34-4776-946d-2f4bd68b45c5" @@ -3385,7 +3515,7 @@ "8b29fcb2-3b9a-444f-b3b0-05976da9a18f" ], [ - "Projects", + "Software Projects", "Position Class", "Governance", "864ef810-2d34-4776-946d-2f4bd68b45c5" @@ -3456,7 +3586,7 @@ "8b29fcb2-3b9a-444f-b3b0-05976da9a18f" ], [ - "Projects", + "Software Projects", "Position Class", "Governance", "864ef810-2d34-4776-946d-2f4bd68b45c5" @@ -3523,7 +3653,7 @@ "8b29fcb2-3b9a-444f-b3b0-05976da9a18f" ], [ - "Projects", + "Software Projects", "Position Class", "Governance", "864ef810-2d34-4776-946d-2f4bd68b45c5" @@ -3598,7 +3728,7 @@ "8b29fcb2-3b9a-444f-b3b0-05976da9a18f" ], [ - "Projects", + "Software Projects", "Position Class", "Governance", "864ef810-2d34-4776-946d-2f4bd68b45c5" @@ -3669,7 +3799,7 @@ "8b29fcb2-3b9a-444f-b3b0-05976da9a18f" ], [ - "Projects", + "Software Projects", "Position Class", "Governance", "864ef810-2d34-4776-946d-2f4bd68b45c5" @@ -3740,7 +3870,7 @@ "8b29fcb2-3b9a-444f-b3b0-05976da9a18f" ], [ - "Projects", + "Software Projects", "Position Class", "Governance", "864ef810-2d34-4776-946d-2f4bd68b45c5" @@ -3807,7 +3937,7 @@ "8b29fcb2-3b9a-444f-b3b0-05976da9a18f" ], [ - "Projects", + "Software Projects", "Position Class", "Governance", "864ef810-2d34-4776-946d-2f4bd68b45c5" @@ -3882,7 +4012,7 @@ "8b29fcb2-3b9a-444f-b3b0-05976da9a18f" ], [ - "Projects", + "Software Projects", "Position Class", "Governance", "864ef810-2d34-4776-946d-2f4bd68b45c5" @@ -3953,7 +4083,7 @@ "8b29fcb2-3b9a-444f-b3b0-05976da9a18f" ], [ - "Projects", + "Software Projects", "Position Class", "Governance", "864ef810-2d34-4776-946d-2f4bd68b45c5" @@ -4024,7 +4154,7 @@ "8b29fcb2-3b9a-444f-b3b0-05976da9a18f" ], [ - "Projects", + "Software Projects", "Position Class", "Governance", "864ef810-2d34-4776-946d-2f4bd68b45c5" @@ -4091,7 +4221,7 @@ "8b29fcb2-3b9a-444f-b3b0-05976da9a18f" ], [ - "Projects", + "Software Projects", "Position Class", "Governance", "864ef810-2d34-4776-946d-2f4bd68b45c5" @@ -4166,7 +4296,7 @@ "8b29fcb2-3b9a-444f-b3b0-05976da9a18f" ], [ - "Projects", + "Software Projects", "Position Class", "Governance", "864ef810-2d34-4776-946d-2f4bd68b45c5" @@ -4237,7 +4367,7 @@ "8b29fcb2-3b9a-444f-b3b0-05976da9a18f" ], [ - "Projects", + "Software Projects", "Position Class", "Governance", "864ef810-2d34-4776-946d-2f4bd68b45c5" @@ -4308,7 +4438,7 @@ "8b29fcb2-3b9a-444f-b3b0-05976da9a18f" ], [ - "Projects", + "Software Projects", "Position Class", "Governance", "864ef810-2d34-4776-946d-2f4bd68b45c5" @@ -4375,7 +4505,7 @@ "8b29fcb2-3b9a-444f-b3b0-05976da9a18f" ], [ - "Projects", + "Software Projects", "Position Class", "Governance", "864ef810-2d34-4776-946d-2f4bd68b45c5" @@ -4440,7 +4570,7 @@ "8b29fcb2-3b9a-444f-b3b0-05976da9a18f" ], [ - "Projects", + "Software Projects", "Position Class", "Governance", "864ef810-2d34-4776-946d-2f4bd68b45c5" @@ -4515,7 +4645,7 @@ "8b29fcb2-3b9a-444f-b3b0-05976da9a18f" ], [ - "Projects", + "Software Projects", "Position Class", "Governance", "864ef810-2d34-4776-946d-2f4bd68b45c5" @@ -4586,7 +4716,7 @@ "8b29fcb2-3b9a-444f-b3b0-05976da9a18f" ], [ - "Projects", + "Software Projects", "Position Class", "Governance", "864ef810-2d34-4776-946d-2f4bd68b45c5" @@ -4657,7 +4787,7 @@ "8b29fcb2-3b9a-444f-b3b0-05976da9a18f" ], [ - "Projects", + "Software Projects", "Position Class", "Governance", "864ef810-2d34-4776-946d-2f4bd68b45c5" @@ -4724,7 +4854,7 @@ "8b29fcb2-3b9a-444f-b3b0-05976da9a18f" ], [ - "Projects", + "Software Projects", "Position Class", "Governance", "864ef810-2d34-4776-946d-2f4bd68b45c5" @@ -4799,7 +4929,7 @@ "8b29fcb2-3b9a-444f-b3b0-05976da9a18f" ], [ - "Projects", + "Software Projects", "Position Class", "Governance", "864ef810-2d34-4776-946d-2f4bd68b45c5" @@ -4870,7 +5000,7 @@ "8b29fcb2-3b9a-444f-b3b0-05976da9a18f" ], [ - "Projects", + "Software Projects", "Position Class", "Governance", "864ef810-2d34-4776-946d-2f4bd68b45c5" @@ -4941,7 +5071,7 @@ "8b29fcb2-3b9a-444f-b3b0-05976da9a18f" ], [ - "Projects", + "Software Projects", "Position Class", "Governance", "864ef810-2d34-4776-946d-2f4bd68b45c5" @@ -5008,7 +5138,7 @@ "8b29fcb2-3b9a-444f-b3b0-05976da9a18f" ], [ - "Projects", + "Software Projects", "Position Class", "Governance", "864ef810-2d34-4776-946d-2f4bd68b45c5" @@ -5083,7 +5213,7 @@ "8b29fcb2-3b9a-444f-b3b0-05976da9a18f" ], [ - "Projects", + "Software Projects", "Position Class", "Governance", "864ef810-2d34-4776-946d-2f4bd68b45c5" @@ -5154,7 +5284,7 @@ "8b29fcb2-3b9a-444f-b3b0-05976da9a18f" ], [ - "Projects", + "Software Projects", "Position Class", "Governance", "864ef810-2d34-4776-946d-2f4bd68b45c5" @@ -5225,7 +5355,7 @@ "8b29fcb2-3b9a-444f-b3b0-05976da9a18f" ], [ - "Projects", + "Software Projects", "Position Class", "Governance", "864ef810-2d34-4776-946d-2f4bd68b45c5" @@ -5292,7 +5422,7 @@ "8b29fcb2-3b9a-444f-b3b0-05976da9a18f" ], [ - "Projects", + "Software Projects", "Position Class", "Governance", "864ef810-2d34-4776-946d-2f4bd68b45c5" @@ -5357,7 +5487,7 @@ "8b29fcb2-3b9a-444f-b3b0-05976da9a18f" ], [ - "Projects", + "Software Projects", "Position Class", "Governance", "864ef810-2d34-4776-946d-2f4bd68b45c5" @@ -5432,7 +5562,7 @@ "8b29fcb2-3b9a-444f-b3b0-05976da9a18f" ], [ - "Projects", + "Software Projects", "Position Class", "Governance", "864ef810-2d34-4776-946d-2f4bd68b45c5" @@ -5503,7 +5633,7 @@ "8b29fcb2-3b9a-444f-b3b0-05976da9a18f" ], [ - "Projects", + "Software Projects", "Position Class", "Governance", "864ef810-2d34-4776-946d-2f4bd68b45c5" @@ -5574,7 +5704,7 @@ "8b29fcb2-3b9a-444f-b3b0-05976da9a18f" ], [ - "Projects", + "Software Projects", "Position Class", "Governance", "864ef810-2d34-4776-946d-2f4bd68b45c5" @@ -5641,7 +5771,7 @@ "8b29fcb2-3b9a-444f-b3b0-05976da9a18f" ], [ - "Projects", + "Software Projects", "Position Class", "Governance", "864ef810-2d34-4776-946d-2f4bd68b45c5" @@ -5706,7 +5836,7 @@ "8b29fcb2-3b9a-444f-b3b0-05976da9a18f" ], [ - "Projects", + "Software Projects", "Position Class", "Governance", "864ef810-2d34-4776-946d-2f4bd68b45c5" @@ -5781,7 +5911,7 @@ "8b29fcb2-3b9a-444f-b3b0-05976da9a18f" ], [ - "Projects", + "Software Projects", "Position Class", "Governance", "864ef810-2d34-4776-946d-2f4bd68b45c5" @@ -5852,7 +5982,7 @@ "8b29fcb2-3b9a-444f-b3b0-05976da9a18f" ], [ - "Projects", + "Software Projects", "Position Class", "Governance", "864ef810-2d34-4776-946d-2f4bd68b45c5" @@ -5923,7 +6053,7 @@ "8b29fcb2-3b9a-444f-b3b0-05976da9a18f" ], [ - "Projects", + "Software Projects", "Position Class", "Governance", "864ef810-2d34-4776-946d-2f4bd68b45c5" @@ -5990,7 +6120,7 @@ "8b29fcb2-3b9a-444f-b3b0-05976da9a18f" ], [ - "Projects", + "Software Projects", "Position Class", "Governance", "864ef810-2d34-4776-946d-2f4bd68b45c5" @@ -6065,7 +6195,7 @@ "8b29fcb2-3b9a-444f-b3b0-05976da9a18f" ], [ - "Projects", + "Software Projects", "Position Class", "Governance", "864ef810-2d34-4776-946d-2f4bd68b45c5" @@ -6136,7 +6266,7 @@ "8b29fcb2-3b9a-444f-b3b0-05976da9a18f" ], [ - "Projects", + "Software Projects", "Position Class", "Governance", "864ef810-2d34-4776-946d-2f4bd68b45c5" @@ -6207,7 +6337,7 @@ "8b29fcb2-3b9a-444f-b3b0-05976da9a18f" ], [ - "Projects", + "Software Projects", "Position Class", "Governance", "864ef810-2d34-4776-946d-2f4bd68b45c5" @@ -6274,7 +6404,7 @@ "8b29fcb2-3b9a-444f-b3b0-05976da9a18f" ], [ - "Projects", + "Software Projects", "Position Class", "Governance", "864ef810-2d34-4776-946d-2f4bd68b45c5" @@ -6339,7 +6469,7 @@ "8b29fcb2-3b9a-444f-b3b0-05976da9a18f" ], [ - "Projects", + "Software Projects", "Position Class", "Governance", "864ef810-2d34-4776-946d-2f4bd68b45c5" @@ -6381,7 +6511,7 @@ }, "referenceParent": { "type": "Position Class", - "name": "Projects", + "name": "Software Projects", "id": "864ef810-2d34-4776-946d-2f4bd68b45c5" }, "referenceParentCombinedNodePath": [ @@ -6398,7 +6528,7 @@ "8b29fcb2-3b9a-444f-b3b0-05976da9a18f" ], [ - "Projects", + "Software Projects", "Position Class", "Governance", "864ef810-2d34-4776-946d-2f4bd68b45c5" @@ -11105,12 +11235,12 @@ "id": "aa848510-1260-46ed-a855-6c0fb9dca9eb", "savedPayload": { "position": { - "x": 30083.14597480659, - "y": 16749.58536902205 + "x": 39164.406232331276, + "y": 19161.68092389574 }, "targetPosition": { - "x": 29933.14597480659, - "y": 16489.777747886717 + "x": 38963.66705042362, + "y": 18938.73747625252 }, "floatingObject": { "isPinned": false, @@ -11146,12 +11276,12 @@ "id": "1d398124-3f36-40a1-8b3b-6c77ad489b92", "savedPayload": { "position": { - "x": 29933.14597480659, - "y": 16489.777747886717 + "x": 38963.66705042362, + "y": 18938.73747625252 }, "targetPosition": { - "x": 29673.338353671257, - "y": 16339.77774788672 + "x": 38678.35009553507, + "y": 18846.03237794004 }, "floatingObject": { "isPinned": false, @@ -11172,12 +11302,12 @@ "id": "2b8d3ce7-515c-44ad-8d80-3c2be6d7736f", "savedPayload": { "position": { - "x": 29673.338353671257, - "y": 16339.77774788672 + "x": 38678.35009553507, + "y": 18846.03237794004 }, "targetPosition": { - "x": 29373.338353671257, - "y": 16339.77774788672 + "x": 38384.90581531492, + "y": 18908.405885185366 }, "floatingObject": { "isPinned": false, @@ -11200,12 +11330,12 @@ "id": "e9c0e495-7985-4381-bf75-865d87289038", "savedPayload": { "position": { - "x": 29633.14597480659, - "y": 16489.777747886717 + "x": 38670.22277020347, + "y": 19001.11098349785 }, "targetPosition": { - "x": 29373.338353671257, - "y": 16339.77774788672 + "x": 38384.90581531492, + "y": 18908.405885185366 }, "floatingObject": { "isPinned": false, @@ -11223,18 +11353,18 @@ "id": "d5ed432e-78bf-432e-be3b-8649932f7a65", "savedPayload": { "position": { - "x": 29373.338353671257, - "y": 16339.77774788672 + "x": 38384.90581531492, + "y": 18908.405885185366 }, "targetPosition": { - "x": 29083.560605784536, - "y": 16262.132034355964 + "x": 38085.31695488855, + "y": 18892.705098312483 }, "floatingObject": { "isPinned": false, "isFrozen": false, "isCollapsed": false, - "angleToParent": 2, + "angleToParent": 3, "distanceToParent": 3, "arrangementStyle": 0 }, @@ -11261,12 +11391,12 @@ "id": "b09bc246-6593-4061-ac8a-b52670694e8e", "savedPayload": { "position": { - "x": 29311.206319315294, - "y": 16811.717403378017 + "x": 38622.235080160724, + "y": 19148.801907129473 }, "targetPosition": { - "x": 29161.206319315294, - "y": 16551.909782242685 + "x": 38336.918125272176, + "y": 19056.09680881699 }, "floatingObject": { "isPinned": false, @@ -11289,12 +11419,12 @@ "id": "5011109c-3f87-471a-b786-5fd371f53853", "savedPayload": { "position": { - "x": 29161.206319315294, - "y": 16851.909782242685 + "x": 38537.657307179834, + "y": 19279.04025646021 }, "targetPosition": { - "x": 29161.206319315294, - "y": 16551.909782242685 + "x": 38336.918125272176, + "y": 19056.09680881699 }, "floatingObject": { "isPinned": false, @@ -11312,18 +11442,18 @@ "id": "796dd30f-c90d-4b8d-a63d-89867347407b", "savedPayload": { "position": { - "x": 29161.206319315294, - "y": 16551.909782242685 + "x": 38336.918125272176, + "y": 19056.09680881699 }, "targetPosition": { - "x": 29083.560605784536, - "y": 16262.132034355964 + "x": 38085.31695488855, + "y": 18892.705098312483 }, "floatingObject": { "isPinned": false, "isFrozen": false, "isCollapsed": false, - "angleToParent": 2, + "angleToParent": 3, "distanceToParent": 3, "arrangementStyle": 0 }, @@ -11335,12 +11465,150 @@ "id": "bb390957-b8a2-4a8a-9fbf-963ea20f6eaf", "savedPayload": { "position": { - "x": 29083.560605784536, - "y": 16262.132034355964 + "x": 38085.31695488855, + "y": 18892.705098312483 }, "targetPosition": { - "x": 28871.428571428572, - "y": 16050 + "x": 37800, + "y": 18800 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "financialPrograms": { + "type": "Financial Programs", + "name": "New Financial Programs", + "config": "{}", + "project": "Governance", + "stakingProgram": { + "type": "Staking Program", + "name": "New Staking Program", + "config": "{}", + "project": "Governance", + "tokensAwarded": { + "type": "Tokens Awarded", + "name": "New Tokens Awarded", + "project": "Governance", + "id": "23c23b71-1431-4cca-a80e-bb5c7242be9f", + "savedPayload": { + "position": { + "x": 38442.62315256192, + "y": 19420.297332942388 + }, + "targetPosition": { + "x": 38209.47936412483, + "y": 19231.501215627435 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "id": "90659303-924d-4404-9b1d-ea3180add4ef", + "savedPayload": { + "position": { + "x": 38209.47936412483, + "y": 19231.501215627435 + }, + "targetPosition": { + "x": 37976.33557568774, + "y": 19042.705098312483 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 3, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "liquidityProgram": { + "type": "Liquidity Program", + "name": "New Liquidity Program", + "config": "{}", + "project": "Governance", + "tokensAwarded": { + "type": "Tokens Awarded", + "name": "New Tokens Awarded", + "project": "Governance", + "id": "c2eabbab-aa7a-4971-8664-cb306b5cc5fd", + "savedPayload": { + "position": { + "x": 38191.356345414926, + "y": 19602.8533542108 + }, + "targetPosition": { + "x": 38083.845960551334, + "y": 19322.779226261642 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "id": "6f6d522c-ad61-426a-8fbc-7eb19b0c4a3e", + "savedPayload": { + "position": { + "x": 38083.845960551334, + "y": 19322.779226261642 + }, + "targetPosition": { + "x": 37976.33557568774, + "y": 19042.705098312483 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 3, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "id": "ed112539-01ea-4937-85cf-69612ee6115d", + "savedPayload": { + "position": { + "x": 37976.33557568774, + "y": 19042.705098312483 + }, + "targetPosition": { + "x": 37800, + "y": 18800 }, "floatingObject": { "isPinned": false, @@ -11358,12 +11626,12 @@ "id": "f8182a9c-f830-4ec1-a238-ac3a5efd69e6", "savedPayload": { "position": { - "x": 28871.428571428572, - "y": 16050 + "x": 37800, + "y": 18800 }, "targetPosition": { - "x": 28571.428571428572, - "y": 16050 + "x": 37500, + "y": 18800 }, "floatingObject": { "isPinned": false, @@ -11385,12 +11653,12 @@ "id": "9870ca2a-cefc-484b-b7fc-206d62782ebc", "savedPayload": { "position": { - "x": 28421.428571428572, - "y": 16309.807621135331 + "x": 37350, + "y": 19059.807621135333 }, "targetPosition": { - "x": 28571.428571428572, - "y": 16050 + "x": 37500, + "y": 18800 }, "floatingObject": { "isPinned": false, @@ -11694,12 +11962,12 @@ "id": "1aae1fa4-e5cf-48de-a25e-20001523da70", "savedPayload": { "position": { - "x": 28421.428571428572, - "y": 15790.192378864669 + "x": 37350, + "y": 18540.192378864667 }, "targetPosition": { - "x": 28571.428571428572, - "y": 16050 + "x": 37500, + "y": 18800 }, "floatingObject": { "isPinned": false, @@ -11717,11 +11985,11 @@ "id": "a8de78f0-c3e4-4a2a-b7e8-f659073969db", "savedPayload": { "position": { - "x": 4687.5, + "x": 33333.333333333336, "y": 18800 }, "targetPosition": { - "x": 4687.5, + "x": 33333.333333333336, "y": 18800 }, "floatingObject": { diff --git a/Projects/Governance/Schemas/App-Schema/financial-programs.json b/Projects/Governance/Schemas/App-Schema/financial-programs.json index 79ceb6ecb..2e79f7905 100644 --- a/Projects/Governance/Schemas/App-Schema/financial-programs.json +++ b/Projects/Governance/Schemas/App-Schema/financial-programs.json @@ -18,6 +18,16 @@ "relatedUiObject": "Staking Program", "relatedUiObjectProject": "Governance" }, + { + "action": "Add UI Object", + "actionProject": "Visual-Scripting", + "actionFunction": "payload.executeAction", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "stakingProgram", + "label": "Add Liquidity Program", + "relatedUiObject": "Liquidity Program", + "relatedUiObjectProject": "Governance" + }, { "action": "Add UI Object", "actionProject": "Visual-Scripting", @@ -58,6 +68,12 @@ "childType": "Staking Program", "autoAdd": false }, + { + "name": "liquidityProgram", + "type": "node", + "childType": "Liquidity Program", + "autoAdd": false + }, { "name": "delegationProgram", "type": "node", diff --git a/Projects/Governance/Schemas/App-Schema/liquidity-program.json b/Projects/Governance/Schemas/App-Schema/liquidity-program.json new file mode 100644 index 000000000..5486e6bd9 --- /dev/null +++ b/Projects/Governance/Schemas/App-Schema/liquidity-program.json @@ -0,0 +1,52 @@ +{ + "type": "Liquidity Program", + "menuItems": [ + { + "action": "Configure", + "actionFunction": "uiObject.configEditor.activate", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration" + }, + { + "action": "Add UI Object", + "actionProject": "Visual-Scripting", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "tokensAwarded", + "actionFunction": "payload.executeAction", + "label": "Add Tokens Awarded", + "relatedUiObject": "Tokens Awarded", + "relatedUiObjectProject": "Governance" + }, + { + "action": "Delete UI Object", + "actionProject": "Visual-Scripting", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete-entity", + "iconPathOff": "delete-entity", + "actionFunction": "payload.executeAction" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{}" + }, + "attachingRules": { + "compatibleTypes": "->Financial Programs->" + }, + "addLeftIcons": true, + "level": 1, + "propertyNameAtParent": "liquidityProgram", + "childrenNodesProperties": [ + { + "name": "tokensAwarded", + "type": "node", + "childType": "Tokens Awarded", + "autoAdd": true + } + ] +} \ No newline at end of file diff --git a/Projects/Governance/UI/Function-Libraries/DistributionProcess.js b/Projects/Governance/UI/Function-Libraries/DistributionProcess.js index d880e271d..ca1d9a1d1 100644 --- a/Projects/Governance/UI/Function-Libraries/DistributionProcess.js +++ b/Projects/Governance/UI/Function-Libraries/DistributionProcess.js @@ -6,8 +6,8 @@ function newGovernanceFunctionLibraryDistributionProcess() { } const DISTRIBUTION_PROCESS_RECALCULATION_DELAY = 5000 - let loop - + let loop + return thisObject function initialize() { @@ -18,7 +18,7 @@ function newGovernanceFunctionLibraryDistributionProcess() { function finalize() { loop = false } - + function calculate() { let pools = UI.projects.foundations.spaces.designSpace.workspace.getHierarchyHeadsByNodeType('Pools') @@ -110,6 +110,13 @@ function newGovernanceFunctionLibraryDistributionProcess() { userProfiles ) /* + Run the Liquidity Program + */ + UI.projects.governance.functionLibraries.liquidityProgram.calculate( + pools, + userProfiles + ) + /* Run the Claims Program */ UI.projects.governance.functionLibraries.claimsProgram.calculate( diff --git a/Projects/Governance/UI/Function-Libraries/LiquidityProgram.js b/Projects/Governance/UI/Function-Libraries/LiquidityProgram.js new file mode 100644 index 000000000..62de5ac9c --- /dev/null +++ b/Projects/Governance/UI/Function-Libraries/LiquidityProgram.js @@ -0,0 +1,176 @@ +function newGovernanceFunctionLibraryLiquidityProgram() { + let thisObject = { + calculate: calculate + } + + return thisObject + + function calculate( + pools, + userProfiles + ) { + let programPoolTokenReward + /* + In order to be able to calculate the share of the Program Pool for each User Profile, + we need to accumulate all the Liquidity Power that each User Profile at their Program + node has, because with that Power is that each Program node gets a share of the pool. + */ + let accumulatedProgramPower = 0 + + /* Scan Pools Until finding the Pool for this program*/ + for (let i = 0; i < pools.length; i++) { + let poolsNode = pools[i] + programPoolTokenReward = UI.projects.governance.utilities.pools.findPool(poolsNode, "Liquidity-Rewards") + if (programPoolTokenReward !== undefined) { break } + } + if (programPoolTokenReward === undefined || programPoolTokenReward === 0) { return } + + for (let i = 0; i < userProfiles.length; i++) { + let userProfile = userProfiles[i] + + if (userProfile.tokenPowerSwitch === undefined) { continue } + let program = UI.projects.governance.utilities.validations.onlyOneProgram(userProfile, "Liquidity Program") + if (program === undefined) { continue } + if (program.payload === undefined) { continue } + + resetProgram(program) + } + for (let i = 0; i < userProfiles.length; i++) { + let userProfile = userProfiles[i] + + if (userProfile.tokenPowerSwitch === undefined) { continue } + let program = UI.projects.governance.utilities.validations.onlyOneProgram(userProfile, "Liquidity Program") + if (program === undefined) { continue } + if (program.payload === undefined) { continue } + + validateProgram(program, userProfile) + } + for (let i = 0; i < userProfiles.length; i++) { + let userProfile = userProfiles[i] + + if (userProfile.tokenPowerSwitch === undefined) { continue } + let program = UI.projects.governance.utilities.validations.onlyOneProgram(userProfile, "Liquidity Program") + if (program === undefined) { continue } + if (program.payload === undefined) { continue } + if (program.payload.liquidityProgram.isActive === false) { continue } + + distributeProgram(program, userProfile) + } + for (let i = 0; i < userProfiles.length; i++) { + let userProfile = userProfiles[i] + + if (userProfile.tokenPowerSwitch === undefined) { continue } + let program = UI.projects.governance.utilities.validations.onlyOneProgram(userProfile, "Liquidity Program") + if (program === undefined) { continue } + if (program.payload === undefined) { continue } + if (program.payload.liquidityProgram.isActive === false) { continue } + + calculateProgram(program) + } + + function resetProgram(node) { + if (node === undefined) { return } + if (node.payload === undefined) { return } + if (node.payload.liquidityProgram === undefined) { + node.payload.liquidityProgram = { + count: 0, + percentage: 0, + outgoingPower: 0, + ownPower: 0, + incomingPower: 0, + awarded: { + tokens: 0, + percentage: 0 + } + } + } else { + node.payload.liquidityProgram.count = 0 + node.payload.liquidityProgram.percentage = 0 + node.payload.liquidityProgram.outgoingPower = 0 + node.payload.liquidityProgram.ownPower = 0 + node.payload.liquidityProgram.incomingPower = 0 + node.payload.liquidityProgram.awarded = { + tokens: 0, + percentage: 0 + } + } + } + + function validateProgram(node, userProfile) { + /* + This program is not going to run unless the Profile has Liquidity Tokens, and for + that users needs to execute the setup procedure of signing their Github + username with their private key. + */ + if ( + userProfile.payload.liquidityTokens === undefined + ) { + node.payload.liquidityProgram.isActive = false + userProfile.payload.uiObject.setErrorMessage( + "Waiting for liquidity balance. It takes 6 seconds to load the liquidity provided by each profile, bacause you are using a free API provided by BSC Scan.", + UI.projects.governance.globals.designer.SET_ERROR_COUNTER_FACTOR + ) + return + } else { + userProfile.payload.uiObject.resetErrorMessage() + node.payload.liquidityProgram.isActive = true + } + } + + function distributeProgram(programNode, userProfile) { + if (programNode === undefined || programNode.payload === undefined) { return } + /* + Here we will convert Liquidity Tokens into Liquidity Power. + As per system rules Liquidity Powar = userProfile.payload.liquidityTokens + */ + let programPower = userProfile.payload.liquidityTokens + programNode.payload.liquidityProgram.ownPower = programPower + + accumulatedProgramPower = accumulatedProgramPower + programPower + } + + function calculateProgram(programNode) { + + if (programNode.payload === undefined) { return } + if (programNode.tokensAwarded === undefined || programNode.tokensAwarded.payload === undefined) { + programNode.payload.uiObject.setErrorMessage( + "Tokens Awarded Node is needed in order for this Program to get Tokens from the Program Pool.", + UI.projects.governance.globals.designer.SET_ERROR_COUNTER_FACTOR + ) + return + } + /* + Here we will calculate which share of the Program Pool this user will get in tokens. + To do that, we use the ownPower, to see which proportion of the accumulatedProgramPower + represents. + */ + programNode.payload.liquidityProgram.awarded.percentage = programNode.payload.liquidityProgram.ownPower * 100 / accumulatedProgramPower + programNode.payload.liquidityProgram.awarded.tokens = programPoolTokenReward * programNode.payload.liquidityProgram.awarded.percentage / 100 + + drawProgram(programNode) + } + + function drawProgram(node) { + if (node.payload !== undefined) { + + const ownPowerText = parseFloat(node.payload.liquidityProgram.ownPower.toFixed(2)).toLocaleString('en') + const percentageText = parseFloat(node.payload.liquidityProgram.awarded.percentage.toFixed(2)).toLocaleString('en') + + node.payload.uiObject.statusAngleOffset = 0 + node.payload.uiObject.statusAtAngle = false + + node.payload.uiObject.setStatus(ownPowerText + ' Liquidity Power' + ' - ' + percentageText + ' % Pool ', UI.projects.governance.globals.designer.SET_STATUS_COUNTER) + } + if (node.tokensAwarded !== undefined && node.tokensAwarded.payload !== undefined) { + + const tokensAwardedText = parseFloat(node.payload.liquidityProgram.awarded.tokens.toFixed(0)).toLocaleString('en') + const tokensAwardedBTC = ' ≃ ' + UI.projects.governance.utilities.conversions.estimateSATokensInBTC(node.payload.liquidityProgram.awarded.tokens | 0) + ' BTC' + + node.tokensAwarded.payload.uiObject.valueAngleOffset = 0 + node.tokensAwarded.payload.uiObject.valueAtAngle = false + + node.tokensAwarded.payload.uiObject.setValue(tokensAwardedText + ' SA Tokens' + tokensAwardedBTC, UI.projects.governance.globals.designer.SET_VALUE_COUNTER) + } + } + } +} \ No newline at end of file diff --git a/Projects/Governance/UI/Globals/SaToken.js b/Projects/Governance/UI/Globals/SaToken.js index 12c4ef3ee..c26ccdae8 100644 --- a/Projects/Governance/UI/Globals/SaToken.js +++ b/Projects/Governance/UI/Globals/SaToken.js @@ -3,7 +3,8 @@ function newGovernanceGlobalsSaToken() { SA_TOKEN_BSC_CONTRACT_ADDRESS: '0xfb981ed9a92377ca4d75d924b9ca06df163924fd', SA_TOKEN_BSC_CONTRACT_ABI: '[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"},{"name":"amount","type":"uint256"}],"name":"mint","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"listAddress","type":"address"},{"name":"isBlackListed","type":"bool"}],"name":"blackListAddress","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_name","type":"string"},{"name":"_symbol","type":"string"},{"name":"_decimals","type":"uint256"},{"name":"_supply","type":"uint256"},{"name":"tokenOwner","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"burner","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"blackListed","type":"address"},{"indexed":false,"name":"value","type":"bool"}],"name":"Blacklist","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"}]', SA_TOKEN_BSC_TREASURY_ACCOUNT_ADDRESS: '0x8d4d2557ce99f83f658adf61eef3e61e04c2ac2c', - SA_TOKEN_BSC_DECIMAL_FACTOR: 1000000000000000000 + SA_TOKEN_BSC_DECIMAL_FACTOR: 1000000000000000000, + SA_TOKEN_BSC_PANCAKE_LIQUIDITY_POOL_CONTRACT_ADDRESS: '0x7164b91db59c50156b63d0e31da08cd47b031711' } return thisObject } \ No newline at end of file diff --git a/Projects/Governance/UI/Spaces/Reports-Space/Liquidity.js b/Projects/Governance/UI/Spaces/Reports-Space/Liquidity.js new file mode 100644 index 000000000..a8695673a --- /dev/null +++ b/Projects/Governance/UI/Spaces/Reports-Space/Liquidity.js @@ -0,0 +1,122 @@ +function newGovernanceReportsLiquidity() { + let thisObject = { + addHTML: addHTML, + initialize: initialize, + finalize: finalize + } + + return thisObject + + function initialize() { + + } + + function finalize() { + + } + + function addHTML(tabIndex, filters) { + /* + Parameters + */ + let table = 'Liquidity' + let programName = 'Liquidity Program' + let programPropertyName = 'liquidityProgram' + /* + Setup Filters + */ + let filtersObject + if (filters !== undefined) { + try { + filtersObject = JSON.parse(filters) + } catch (err) { } + } + /* + Other Variables + */ + let tableRecords = [] + let tableRecordDefinition = { + "properties": [ + { + "name": "name", + "label": "User Profile", + "type": "string", + "order": "ascending", + "textAlign": "left" + }, + { + "name": "LiquidityPower", + "label": "Liquidity Power", + "type": "number", + "order": "descending", + "textAlign": "center", + "format": "2 decimals" + }, + { + "name": "Percentage", + "label": "Percentage", + "type": "number", + "order": "descending", + "textAlign": "center", + "format": "percentage" + }, + { + "name": "tokensAwarded", + "label": "Awarded", + "type": "number", + "order": "descending", + "textAlign": "center", + "format": "2 decimals" + } + ] + } + /* + Here we get from the workspace all User Profiles. + */ + let userProfiles = UI.projects.foundations.spaces.designSpace.workspace.getHierarchyHeadsByNodeType('User Profile') + /* + Transform the result array into table records. + */ + for (let j = 0; j < userProfiles.length; j++) { + let userProfile = userProfiles[j] + + if (userProfile.tokenPowerSwitch === undefined) { continue } + let program = UI.projects.governance.utilities.validations.onlyOneProgram(userProfile, programName) + if (program === undefined) { continue } + if (program.payload === undefined) { continue } + if (program.payload[programPropertyName] === undefined) { continue } + + let tableRecord = { + "name": userProfile.name, + "LiquidityPower": program.payload[programPropertyName].ownPower, + "percentage": program.payload[programPropertyName].awarded.percentage, + "tokensAwarded": program.payload[programPropertyName].awarded.tokens | 0 + } + + if (UI.projects.governance.utilities.filters.applyFilters(filters, filtersObject, tableRecord) === true) { + tableRecords.push(tableRecord) + } + } + /* + Get the sorting order for this table. + */ + let sortingOrder = UI.projects.governance.spaces.reportsSpace.tablesSortingOrders[table] + /* + Set the default sorting order for this table. + */ + if (sortingOrder === undefined) { + UI.projects.governance.spaces.reportsSpace.tablesSortingOrders[table] = { + property: 'tokensAwarded', + order: 'descending' + } + sortingOrder = UI.projects.governance.spaces.reportsSpace.tablesSortingOrders[table] + } + return UI.projects.governance.utilities.tables.addHTML( + table, + tableRecords, + tableRecordDefinition, + sortingOrder, + tabIndex + ) + } +} \ No newline at end of file diff --git a/Projects/Governance/UI/Spaces/Reports-Space/ReportsPage.js b/Projects/Governance/UI/Spaces/Reports-Space/ReportsPage.js index 8c268429a..20e038493 100644 --- a/Projects/Governance/UI/Spaces/Reports-Space/ReportsPage.js +++ b/Projects/Governance/UI/Spaces/Reports-Space/ReportsPage.js @@ -41,6 +41,7 @@ function newGovernanceReportsReportsPage() { 'Claims', 'Votes', 'Staking', + 'Liquidity', 'Delegation', 'Pools', 'Assets', @@ -133,6 +134,12 @@ function newGovernanceReportsReportsPage() { resultCounter = response.resultCounter break } + case 'Liquidity': { + let response = UI.projects.governance.spaces.reportsSpace.liquidity.addHTML(10, filters) + HTML = HTML + response.HTML + resultCounter = response.resultCounter + break + } case 'Delegation': { let response = UI.projects.governance.spaces.reportsSpace.delegation.addHTML(11, filters) HTML = HTML + response.HTML diff --git a/Projects/Governance/UI/Spaces/Reports-Space/ReportsSpace.js b/Projects/Governance/UI/Spaces/Reports-Space/ReportsSpace.js index 5c0e688b7..55e034451 100644 --- a/Projects/Governance/UI/Spaces/Reports-Space/ReportsSpace.js +++ b/Projects/Governance/UI/Spaces/Reports-Space/ReportsSpace.js @@ -15,6 +15,7 @@ function newGobernanceReportsSpace() { claims: undefined, votes: undefined, staking: undefined, + liquidity: undefined, delegations: undefined, github: undefined, airdrop: undefined, @@ -91,6 +92,9 @@ function newGobernanceReportsSpace() { thisObject.staking.finalize() thisObject.staking = undefined + thisObject.liquidity.finalize() + thisObject.liquidity = undefined + thisObject.delegation.finalize() thisObject.delegation = undefined @@ -150,6 +154,7 @@ function newGobernanceReportsSpace() { thisObject.claims = newGovernanceReportsClaims() thisObject.votes = newGovernanceReportsVotes() thisObject.staking = newGovernanceReportsStaking() + thisObject.liquidity = newGovernanceReportsLiquidity() thisObject.delegation = newGovernanceReportsDelegation() thisObject.github = newGovernanceReportsGithub() thisObject.airdrop = newGovernanceReportsAirdrop() @@ -171,6 +176,7 @@ function newGobernanceReportsSpace() { thisObject.claims.initialize() thisObject.votes.initialize() thisObject.staking.initialize() + thisObject.liquidity.initialize() thisObject.delegation.initialize() thisObject.github.initialize() thisObject.airdrop.initialize() diff --git a/Projects/Governance/UI/Spaces/User-Profile-Space/UserProfile.js b/Projects/Governance/UI/Spaces/User-Profile-Space/UserProfile.js index 89bc3614a..510bfb0bb 100644 --- a/Projects/Governance/UI/Spaces/User-Profile-Space/UserProfile.js +++ b/Projects/Governance/UI/Spaces/User-Profile-Space/UserProfile.js @@ -15,7 +15,7 @@ function newGovernanceUserProfileSpace() { } let waitingForResponses = 0 - const BSC_SCAN_RATE_LIMIT_DELAY = 6000 + const BSC_SCAN_RATE_LIMIT_DELAY = 12000 let reputationByAddress = new Map() return thisObject @@ -422,6 +422,9 @@ function newGovernanceUserProfileSpace() { blockchainAccount !== "" && userProfile.payload.blockchainTokens === undefined ) { + waitingForResponses++ + userProfile.payload.liquidityTokens = 0 // We need to set this value here so that the next call to BSCSCAN is not done more than once. + setTimeout(getBPancakeTokens, BSC_SCAN_RATE_LIMIT_DELAY / 2, userProfile, blockchainAccount) waitingForResponses++ userProfile.payload.blockchainTokens = 0 // We need to set this value here so that the next call to BSCSCAN is not done more than once. setTimeout(getBlockchainTokens, BSC_SCAN_RATE_LIMIT_DELAY, userProfile, blockchainAccount) @@ -459,6 +462,36 @@ function newGovernanceUserProfileSpace() { waitingForResponses-- }); } + + function getBPancakeTokens(userProfile, blockchainAccount) { + console.log('[INFO] Loading Pancake Balance for User Profile: ', userProfile.name, 'blockchainAccount: ', blockchainAccount) + const url = "https://api.bscscan.com/api?module=account&action=tokenbalance&contractaddress=" + UI.projects.governance.globals.saToken.SA_TOKEN_BSC_PANCAKE_LIQUIDITY_POOL_CONTRACT_ADDRESS + "&address=" + blockchainAccount + "&tag=latest&apikey=YourApiKeyToken" + + fetch(url).then(function (response) { + return response.json(); + }).then(function (data) { + //console.log(data) + if (data.result === "Max rate limit reached, please use API Key for higher rate limit") { + userProfile.payload.liquidityTokens = undefined // This enables this profile to query the blockchain again. + } else { + userProfile.payload.uiObject.setInfoMessage('Pancake Balance Succesfully Loaded.', + UI.projects.governance.globals.designer.SET_INFO_COUNTER_FACTOR + ) + userProfile.payload.liquidityTokens = Number(data.result) / 1000000000000000000 + console.log('Liquidity of ' + userProfile.name + ' is ', userProfile.payload.liquidityTokens) + } + waitingForResponses-- + }).catch(function (err) { + const message = err.message + ' - ' + 'Can not access BSC SCAN servers.' + console.log(message) + if (userProfile.payload !== undefined) { + userProfile.payload.uiObject.setErrorMessage(message, + UI.projects.governance.globals.designer.SET_ERROR_COUNTER_FACTOR + ) + } + waitingForResponses-- + }); + } } function draw() { diff --git a/Projects/Governance/UI/Utilities/Tables.js b/Projects/Governance/UI/Utilities/Tables.js index 6dfc48c5d..c281a6745 100644 --- a/Projects/Governance/UI/Utilities/Tables.js +++ b/Projects/Governance/UI/Utilities/Tables.js @@ -135,17 +135,18 @@ function newGovernanceUtilitiesTables() { } } let value = tableRecord[property] + if (value === undefined) { value = 0 } switch (format) { case 'text': { break } case 'integer': { - value = parseFloat(parseFloat(value | 0).toFixed(0)).toLocaleString('en') + value = parseFloat(parseFloat(value).toFixed(0)).toLocaleString('en') break } case '2 decimals': { - value = parseFloat(parseFloat(value | 0).toFixed(2)).toLocaleString('en') + value = parseFloat(parseFloat(value).toFixed(2)).toLocaleString('en') break } case 'percentage': { diff --git a/Projects/ProjectsSchema.json b/Projects/ProjectsSchema.json index b1022fa10..c1d5710cf 100644 --- a/Projects/ProjectsSchema.json +++ b/Projects/ProjectsSchema.json @@ -1239,6 +1239,11 @@ "propertyName": "stakingProgram", "functionName": "newGovernanceFunctionLibraryStakingProgram" }, + { + "name": "Liquidity Program", + "propertyName": "liquidityProgram", + "functionName": "newGovernanceFunctionLibraryLiquidityProgram" + }, { "name": "Profile Constructor", "propertyName": "profileConstructor",