Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop
This commit is contained in:
commit
9b7051ec71
12 files changed
+2768
-144
No files matched your search
@@ -56,6 +56,7 @@ function newCanvas() {
|
||||
UI.projects.foundations.spaces.sideSpace.finalize()
|
||||
UI.projects.foundations.spaces.chartingSpace.finalize()
|
||||
UI.projects.foundations.spaces.floatingSpace.finalize()
|
||||
UI.projects.foundations.spaces.codeEditorSpace.finalize()
|
||||
thisObject.shorcutNumbers = undefined
|
||||
|
||||
if (browserCanvas.removeEventListener) {
|
||||
@@ -385,6 +386,11 @@ function newCanvas() {
|
||||
if (UI.projects.education !== undefined && UI.projects.education.spaces.docsSpace.isVisible === true) {
|
||||
return
|
||||
}
|
||||
/* When the Code Editor is Visible, we do not process key down events of the Designer Space. */
|
||||
if (UI.projects.foundations.spaces.codeEditorSpace.isVisible === true) {
|
||||
return
|
||||
}
|
||||
|
||||
thisObject.mouse.event = event
|
||||
thisObject.mouse.action = 'key down'
|
||||
|
||||
|
||||
@@ -140,7 +140,7 @@
|
||||
<div id="governance-reports-space-div" class="governance-page" style="position:fixed; top:100000px; left:100000px">
|
||||
<div id="governance-content-div"></div>
|
||||
</div>
|
||||
<div id="code-editor-space-div" class="governance-page" style="position:fixed; top:100000px; left:100000px">
|
||||
<div id="code-editor-space-div" class="docs-page" style="position:fixed; top:100000px; left:100000px">
|
||||
<div id="code-editor-content-div" class="code-editor-content-div">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
-4
@@ -11,10 +11,6 @@
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The system allows developers great flexibility as all valid JavaScript code is allowed."
|
||||
},
|
||||
{
|
||||
"style": "Important",
|
||||
"text": "Until a robust JavaScript editor is implemented on the UI, it is recommended to write code on an external editor and paste it in the UI code bubble to ensure consistency."
|
||||
}
|
||||
]
|
||||
}
|
||||
-5
@@ -9,11 +9,6 @@
|
||||
"style": "Text",
|
||||
"text": "The system allows developers great flexibility as all valid JavaScript code is allowed.",
|
||||
"updated": 1609789473533
|
||||
},
|
||||
{
|
||||
"style": "Important",
|
||||
"text": "Until a robust JavaScript editor is implemented on the UI, it is recommended to write code on an external editor and paste it in the UI code bubble to ensure consistency.",
|
||||
"updated": 1609789526505
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -5,6 +5,8 @@ function newFoundationsCodeEditorSpace() {
|
||||
sidePanelTab: undefined,
|
||||
container: undefined,
|
||||
editorPage: undefined,
|
||||
isVisible: undefined,
|
||||
reset: reset,
|
||||
openSpaceArea: openSpaceArea,
|
||||
physics: physics,
|
||||
draw: draw,
|
||||
@@ -23,15 +25,24 @@ function newFoundationsCodeEditorSpace() {
|
||||
return thisObject
|
||||
|
||||
function finalize() {
|
||||
thisObject.sidePanelTab = undefined
|
||||
if (isInitialized === false) { return }
|
||||
|
||||
thisObject.container.finalize()
|
||||
thisObject.container = undefined
|
||||
|
||||
|
||||
canvas.eventHandler.stopListening(browserResizedEventSubscriptionId)
|
||||
thisObject.sidePanelTab.container.eventHandler.stopListening(openingEventSubscriptionId)
|
||||
thisObject.sidePanelTab.container.eventHandler.stopListening(closingEventSubscriptionId)
|
||||
UI.projects.foundations.spaces.sideSpace.deleteSidePanelTab('Foundations', 'javascript-code', 'Code', 'right')
|
||||
|
||||
thisObject.editorPage.finalize()
|
||||
thisObject.editorPage = undefined
|
||||
|
||||
isInitialized = false
|
||||
}
|
||||
|
||||
function initialize() {
|
||||
|
||||
thisObject.container = newContainer()
|
||||
thisObject.container.name = MODULE_NAME
|
||||
thisObject.container.initialize()
|
||||
@@ -43,10 +54,7 @@ function newFoundationsCodeEditorSpace() {
|
||||
resize()
|
||||
|
||||
thisObject.editorPage = newFoundationsCodeEditorEditorPage()
|
||||
thisObject.footer = newGovernanceReportsFooter() // Reuse simple footer
|
||||
|
||||
thisObject.editorPage.initialize()
|
||||
thisObject.footer.initialize()
|
||||
|
||||
thisObject.sidePanelTab = UI.projects.foundations.spaces.sideSpace.createSidePanelTab(thisObject.container, 'Foundations', 'javascript-code', 'Code', 'right')
|
||||
|
||||
@@ -66,6 +74,11 @@ function newFoundationsCodeEditorSpace() {
|
||||
thisObject.editorPage.render(originatingNode, codeEditorType)
|
||||
}
|
||||
|
||||
function reset() {
|
||||
finalize()
|
||||
initialize()
|
||||
}
|
||||
|
||||
function physics() {
|
||||
if (isInitialized === false) {
|
||||
return
|
||||
@@ -92,11 +105,11 @@ function newFoundationsCodeEditorSpace() {
|
||||
}
|
||||
|
||||
function onOpening() {
|
||||
|
||||
thisObject.isVisible = true
|
||||
}
|
||||
|
||||
function onClosing() {
|
||||
|
||||
thisObject.isVisible = false
|
||||
}
|
||||
|
||||
function draw() {
|
||||
|
||||
@@ -3,6 +3,7 @@ function newFoundationsCodeEditorEditorPage() {
|
||||
originatingNode: undefined,
|
||||
editorType: undefined,
|
||||
render: render,
|
||||
reset:reset,
|
||||
initialize: initialize,
|
||||
finalize: finalize
|
||||
}
|
||||
@@ -10,9 +11,10 @@ function newFoundationsCodeEditorEditorPage() {
|
||||
let monacoInitialized = false
|
||||
let monacoEditor = undefined
|
||||
let codeString = ''
|
||||
let stringObjects = []
|
||||
let tradingEngineObj = undefined
|
||||
let recordFormulasObj = {}
|
||||
let chartObj = {}
|
||||
let chartMarketExchangeObj = {}
|
||||
|
||||
return thisObject
|
||||
|
||||
@@ -27,13 +29,19 @@ function newFoundationsCodeEditorEditorPage() {
|
||||
monacoInitialized = false
|
||||
monacoEditor = undefined
|
||||
codeString = ''
|
||||
stringObjects = []
|
||||
tradingEngineObj = undefined
|
||||
recordFormulasObj = {}
|
||||
chartMarketExchangeObj = {}
|
||||
thisObject.originatingNode = undefined
|
||||
thisObject.editorType = undefined
|
||||
|
||||
}
|
||||
|
||||
function reset() {
|
||||
finalize()
|
||||
initialize()
|
||||
}
|
||||
|
||||
function render(originatingNode, editorType) {
|
||||
|
||||
@@ -56,7 +64,7 @@ function newFoundationsCodeEditorEditorPage() {
|
||||
function initMonacoEditor() {
|
||||
if (monacoEditor === undefined) {
|
||||
document.getElementById('no-content').remove()
|
||||
document.getElementById('code-path').insertAdjacentHTML('afterend',`<div class="docs-summary"><b>Notes:</b> Changes are saved automatically</div>`)
|
||||
document.getElementById('code-path').insertAdjacentHTML('afterend', `<div class="docs-summary"><b>Notes:</b> Changes are saved automatically</div>`)
|
||||
monacoEditor = monaco.editor.create(document.querySelector('#editor'), {
|
||||
model: null,
|
||||
theme: 'vs-dark',
|
||||
@@ -67,7 +75,7 @@ function newFoundationsCodeEditorEditorPage() {
|
||||
monaco.editor.createModel(codeString, "javascript")
|
||||
createAutocompletionFor(tradingEngineObj)
|
||||
createAutocompletionFor(recordFormulasObj)
|
||||
createAutocompletionFor(chartObj)
|
||||
createAutocompletionFor(chartMarketExchangeObj)
|
||||
|
||||
monaco.languages.typescript.javascriptDefaults.setEagerModelSync(true)
|
||||
monaco.languages.typescript.javascriptDefaults.setCompilerOptions({
|
||||
@@ -116,7 +124,7 @@ function newFoundationsCodeEditorEditorPage() {
|
||||
return (isMember) ? monaco.languages.CompletionItemKind.Method : monaco.languages.CompletionItemKind.Function;
|
||||
|
||||
default:
|
||||
return (isMember) ? monaco.languages.CompletionItemKind.Property : monaco.languages.CompletionItemKind.Variable;
|
||||
return monaco.languages.CompletionItemKind.Variable;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -167,7 +175,6 @@ function newFoundationsCodeEditorEditorPage() {
|
||||
return result[0] = '';
|
||||
}
|
||||
}
|
||||
prefix += '.';
|
||||
}
|
||||
|
||||
// Get all the child properties of the last token
|
||||
@@ -212,13 +219,19 @@ function newFoundationsCodeEditorEditorPage() {
|
||||
/**
|
||||
* The autocomplete models will be based on:
|
||||
* 1. Existing code in the data mines -> we will create models for each code node (it's like opening multiple files in vscode)
|
||||
* 2. Formulas from data mines by creating an object representation of all formulas see implementation below than passing it to the monaco registerCompletionItemProvider
|
||||
* 2. Formulas from data mines by creating an object representation of all formulas see implementation below then passing it to the monaco registerCompletionItemProvider
|
||||
* 2. Trading engine loaded into the workspace - we create an obj. representation using getProtocolNode and we are using monaco registerCompletionItemProvider
|
||||
*
|
||||
*/
|
||||
function buildIntelliSenseModels() {
|
||||
|
||||
|
||||
let chartObjectPrefix = 'chart.'
|
||||
let marketPrefix = 'market.'
|
||||
let exchangePrefix = 'exchange.'
|
||||
let dot = '.'
|
||||
let numberOfPreviousSuffixes = 5
|
||||
|
||||
UI.projects.foundations.spaces.designSpace.workspace.workspaceNode.rootNodes.forEach(node => {
|
||||
if (node.type === 'Data Mine') {
|
||||
// Getting all the Javascript code nodes into one single model
|
||||
@@ -266,19 +279,13 @@ function newFoundationsCodeEditorEditorPage() {
|
||||
let validTimeFrames = UI.projects.visualScripting.utilities.nodeConfig.loadConfigProperty(dataset.payload, 'validTimeFrames')
|
||||
if (validTimeFrames !== undefined) {
|
||||
validTimeFrames.forEach(tf => {
|
||||
let prop = 'chart.at' + tf.replace('-', '') + '.' + productName + '.' + propertyName
|
||||
// This will let us to enhance the autocomplete logic to add as many previous kids as we want to
|
||||
let propWithPrevious = 'chart.at' + tf.replace('-', '') + '.previous.' + productName + '.' + propertyName
|
||||
let propWithTwoPrevious = 'chart.at' + tf.replace('-', '') + '.previous.previous.' + productName + '.' + propertyName
|
||||
let propWithThreePrevious = 'chart.at' + tf.replace('-', '') + '.previous.previous.previous.' + productName + '.' + propertyName
|
||||
let propWithFourPrevious = 'chart.at' + tf.replace('-', '') + '.previous.previous.previous.previous.' + productName + '.' + propertyName
|
||||
let propWithFivePrevious = 'chart.at' + tf.replace('-', '') + '.previous.previous.previous.previous.previous.' + productName + '.' + propertyName
|
||||
objectMerge(chartObj, prop.split('.').reduceRight((o, x) => ({[x]: o}), ""))
|
||||
objectMerge(chartObj, propWithPrevious.split('.').reduceRight((o, x) => ({[x]: o}), ""))
|
||||
objectMerge(chartObj, propWithTwoPrevious.split('.').reduceRight((o, x) => ({[x]: o}), ""))
|
||||
objectMerge(chartObj, propWithThreePrevious.split('.').reduceRight((o, x) => ({[x]: o}), ""))
|
||||
objectMerge(chartObj, propWithFourPrevious.split('.').reduceRight((o, x) => ({[x]: o}), ""))
|
||||
objectMerge(chartObj, propWithFivePrevious.split('.').reduceRight((o, x) => ({[x]: o}), ""))
|
||||
let timeFrame = 'at' + tf.replace('-', '')
|
||||
|
||||
stringObjects.push(chartObjectPrefix + timeFrame + '.' + productName + '.' + propertyName)
|
||||
for (let i = 1; i <= numberOfPreviousSuffixes; i++) {
|
||||
stringObjects.push(chartObjectPrefix + timeFrame + getPreviousSuffixTimes(i) + productName + dot + propertyName)
|
||||
}
|
||||
|
||||
})
|
||||
}
|
||||
})
|
||||
@@ -318,6 +325,36 @@ function newFoundationsCodeEditorEditorPage() {
|
||||
}
|
||||
})
|
||||
|
||||
// Enrich chart data with market and exchange structure
|
||||
UI.projects.foundations.spaces.designSpace.workspace.workspaceNode.rootNodes.forEach(node => {
|
||||
if (node.type === 'Crypto Ecosystem') {
|
||||
node.cryptoExchanges.forEach(cxs => {
|
||||
cxs.exchanges.forEach(exchange => {
|
||||
let exchangeName = UI.projects.visualScripting.utilities.nodeConfig.loadConfigProperty(exchange.payload, 'codeName')
|
||||
exchange.exchangeMarkets.markets.forEach(market => {
|
||||
let marketPair = UI.projects.visualScripting.utilities.nodeConfig.loadConfigProperty(market.payload, 'codeName')
|
||||
let baseAsset = marketPair.split('/')[0]
|
||||
let quotedAsset = marketPair.split('/')[1]
|
||||
stringObjects.forEach(chartObj => {
|
||||
/**
|
||||
* We will provide auto-complete only for assets pair found in Markets
|
||||
* Doing so we will avoid providing completion for assets that are not used in a market
|
||||
*/
|
||||
let market = marketPrefix + baseAsset + dot + quotedAsset + dot + chartObj
|
||||
stringObjects.push(market)
|
||||
stringObjects.push(exchangePrefix + exchangeName + dot + market)
|
||||
})
|
||||
})
|
||||
})
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
//Actually building the objects for chart, market and exchange, no need for multiple objects, as one is enough for the autocomplete to work
|
||||
stringObjects.forEach(stringRepresentation => {
|
||||
objectMerge(chartMarketExchangeObj, stringRepresentation.split('.').reduceRight((o, x) => ({[x]: o}), ""))
|
||||
})
|
||||
|
||||
|
||||
function objectMerge(target, source) {
|
||||
for (const key of Object.keys(source)) {
|
||||
@@ -340,6 +377,20 @@ function newFoundationsCodeEditorEditorPage() {
|
||||
return target;
|
||||
}
|
||||
|
||||
function getPreviousSuffixTimes(number) {
|
||||
let result = ''
|
||||
let previousString = 'previous.'
|
||||
let dotString = '.'
|
||||
for (let i = 0; i < number; i++) {
|
||||
if (i === 0) {
|
||||
result += dotString
|
||||
}
|
||||
result += previousString
|
||||
}
|
||||
|
||||
return result
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function buildEditorHTML() {
|
||||
@@ -363,7 +414,7 @@ function newFoundationsCodeEditorEditorPage() {
|
||||
function footer() {
|
||||
let HTML = ''
|
||||
|
||||
HTML += HTML + '<div id="governance-footer" class="governance-node-html-footer-container">' // Container Starts
|
||||
HTML += '<div id="governance-footer" class="governance-node-html-footer-container">' // Container Starts
|
||||
|
||||
// Buttons Section
|
||||
|
||||
|
||||
@@ -343,6 +343,7 @@ function newWorkspace() {
|
||||
|
||||
UI.projects.education.spaces.docsSpace.sidePanelTab.close()
|
||||
UI.projects.foundations.spaces.workspaceSpace.sidePanelTab.close()
|
||||
UI.projects.foundations.spaces.codeEditorSpace.sidePanelTab.close()
|
||||
UI.projects.foundations.spaces.floatingSpace.inMapMode = true
|
||||
workingAtTask = 2
|
||||
break
|
||||
@@ -446,7 +447,7 @@ function newWorkspace() {
|
||||
|
||||
UI.projects.governance.spaces.reportsSpace.reset()
|
||||
UI.projects.governance.spaces.userProfileSpace.reset()
|
||||
|
||||
UI.projects.foundations.spaces.codeEditorSpace.reset()
|
||||
await UI.projects.education.spaces.docsSpace.reset()
|
||||
await UI.projects.education.spaces.tutorialSpace.reset()
|
||||
|
||||
@@ -704,6 +705,9 @@ function newWorkspace() {
|
||||
executeAction({ node: droppedNode, name: 'Create UI Object', project: 'Visual-Scripting', extraParameter: positionOffset })
|
||||
executeAction({ name: 'Connect Children to Reference Parents', project: 'Visual-Scripting' })
|
||||
|
||||
// Recreate autocomplete models
|
||||
UI.projects.foundations.spaces.codeEditorSpace.editorPage.reset()
|
||||
|
||||
droppedNode = undefined
|
||||
} catch (err) {
|
||||
if (ERROR_LOG === true) { logger.write('[ERROR] spawn -> err = ' + err.stack) }
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
* Entire functionality is provided by CodeEditor Space
|
||||
*/
|
||||
function newCodeEditor() {
|
||||
const MODULE_NAME = 'Code Editor'
|
||||
|
||||
let thisObject = {
|
||||
activate: activate,
|
||||
@@ -14,11 +13,6 @@ function newCodeEditor() {
|
||||
|
||||
return thisObject
|
||||
|
||||
|
||||
function finalize() {
|
||||
|
||||
}
|
||||
|
||||
function initialize() {
|
||||
|
||||
}
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
* Entire functionality is provided by CodeEditor Space
|
||||
*/
|
||||
function newConfigEditor() {
|
||||
const MODULE_NAME = 'Config Editor'
|
||||
|
||||
let thisObject = {
|
||||
activate: activate,
|
||||
@@ -15,10 +14,6 @@ function newConfigEditor() {
|
||||
return thisObject
|
||||
|
||||
|
||||
function finalize() {
|
||||
|
||||
}
|
||||
|
||||
function initialize() {
|
||||
|
||||
}
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
* Entire functionality is provided by CodeEditor Space
|
||||
*/
|
||||
function newFormulaEditor() {
|
||||
const MODULE_NAME = 'Formula Editor'
|
||||
|
||||
let thisObject = {
|
||||
activate: activate,
|
||||
@@ -15,10 +14,6 @@ function newFormulaEditor() {
|
||||
return thisObject
|
||||
|
||||
|
||||
function finalize() {
|
||||
|
||||
}
|
||||
|
||||
function initialize() {
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,619 @@
|
||||
{
|
||||
"type": "User Profile",
|
||||
"name": "JasonDeSouza",
|
||||
"config": "{\"signature\":{\"message\":\"JasonDeSouza\",\"messageHash\":\"0x479f72be9636bd4657cf69e20e7bf9792498402fafe6b6d84fb17624fa00f01b\",\"v\":\"0x1b\",\"r\":\"0x1178553e0ca9e2deabf417ddbfd72bd7b2b24df6b915e59f9a1ec61b8a4dd75c\",\"s\":\"0x7e45104055427252b1fa465a3a66e23cd1bed614eca8ae7047db4785ca6afbc0\",\"signature\":\"0x1178553e0ca9e2deabf417ddbfd72bd7b2b24df6b915e59f9a1ec61b8a4dd75c7e45104055427252b1fa465a3a66e23cd1bed614eca8ae7047db4785ca6afbc01b\"},\"codeName\":\"JasonDeSouza\"}",
|
||||
"project": "Governance",
|
||||
"tokenPowerSwitch": {
|
||||
"type": "Token Power Switch",
|
||||
"name": "New Token Power Switch",
|
||||
"config": "{}",
|
||||
"project": "Governance",
|
||||
"tokenPowerSwitch": [],
|
||||
"onboardingPrograms": {
|
||||
"type": "Onboarding Programs",
|
||||
"name": "New Onboarding Programs",
|
||||
"config": "{\n \"percentage\": 0\n }",
|
||||
"project": "Governance",
|
||||
"airdropProgram": {
|
||||
"type": "Airdrop Program",
|
||||
"name": "New Airdrop Program",
|
||||
"config": "{}",
|
||||
"project": "Governance",
|
||||
"tokensAwarded": {
|
||||
"type": "Tokens Awarded",
|
||||
"name": "New Tokens Awarded",
|
||||
"project": "Governance",
|
||||
"id": "f110c342-61d3-4a6c-867e-cc10a252de5c",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 4497.826086956522,
|
||||
"y": 27620.577136594
|
||||
},
|
||||
"targetPosition": {
|
||||
"x": 4647.826086956522,
|
||||
"y": 27880.384757729335
|
||||
},
|
||||
"floatingObject": {
|
||||
"isPinned": false,
|
||||
"isFrozen": false,
|
||||
"isCollapsed": false,
|
||||
"angleToParent": 1,
|
||||
"distanceToParent": 3,
|
||||
"arrangementStyle": 0
|
||||
},
|
||||
"uiObject": {
|
||||
"isRunning": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"id": "9a58486c-7829-4f71-a9b3-ff944b077d31",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 4647.826086956522,
|
||||
"y": 27880.384757729335
|
||||
},
|
||||
"targetPosition": {
|
||||
"x": 4797.826086956522,
|
||||
"y": 28140.192378864667
|
||||
},
|
||||
"floatingObject": {
|
||||
"isPinned": false,
|
||||
"isFrozen": false,
|
||||
"isCollapsed": false,
|
||||
"angleToParent": 1,
|
||||
"distanceToParent": 3,
|
||||
"arrangementStyle": 0
|
||||
},
|
||||
"uiObject": {
|
||||
"isRunning": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"githubProgram": {
|
||||
"type": "Github Program",
|
||||
"name": "New Github Program",
|
||||
"config": "{}",
|
||||
"project": "Governance",
|
||||
"tokensAwarded": {
|
||||
"type": "Tokens Awarded",
|
||||
"name": "New Tokens Awarded",
|
||||
"project": "Governance",
|
||||
"id": "c0a783e3-b9f4-4da3-a02b-55437190dd49",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 5397.826086956522,
|
||||
"y": 28140.192378864667
|
||||
},
|
||||
"targetPosition": {
|
||||
"x": 5097.826086956522,
|
||||
"y": 28140.192378864667
|
||||
},
|
||||
"floatingObject": {
|
||||
"isPinned": false,
|
||||
"isFrozen": false,
|
||||
"isCollapsed": false,
|
||||
"angleToParent": 1,
|
||||
"distanceToParent": 3,
|
||||
"arrangementStyle": 0
|
||||
},
|
||||
"uiObject": {
|
||||
"isRunning": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"id": "4012d361-f9d1-49c4-89c2-591a508b6392",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 5097.826086956522,
|
||||
"y": 28140.192378864667
|
||||
},
|
||||
"targetPosition": {
|
||||
"x": 4797.826086956522,
|
||||
"y": 28140.192378864667
|
||||
},
|
||||
"floatingObject": {
|
||||
"isPinned": false,
|
||||
"isFrozen": false,
|
||||
"isCollapsed": false,
|
||||
"angleToParent": 1,
|
||||
"distanceToParent": 3,
|
||||
"arrangementStyle": 0
|
||||
},
|
||||
"uiObject": {
|
||||
"isRunning": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"id": "ce0ff7b8-9c7d-44f6-bc44-ed442f702560",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 4797.826086956522,
|
||||
"y": 28140.192378864667
|
||||
},
|
||||
"targetPosition": {
|
||||
"x": 4647.826086956522,
|
||||
"y": 28400
|
||||
},
|
||||
"floatingObject": {
|
||||
"isPinned": false,
|
||||
"isFrozen": false,
|
||||
"isCollapsed": false,
|
||||
"angleToParent": 1,
|
||||
"distanceToParent": 3,
|
||||
"arrangementStyle": 0
|
||||
},
|
||||
"uiObject": {
|
||||
"isRunning": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"communityBuildingPrograms": {
|
||||
"type": "Community Building Programs",
|
||||
"name": "New Community Building Programs",
|
||||
"config": "{}",
|
||||
"project": "Governance",
|
||||
"referralProgram": {
|
||||
"type": "Referral Program",
|
||||
"name": "New Referral Program",
|
||||
"config": "{}",
|
||||
"project": "Governance",
|
||||
"userReferrers": [
|
||||
{
|
||||
"type": "User Referrer",
|
||||
"name": "Raplh2502",
|
||||
"config": "{}",
|
||||
"project": "Governance",
|
||||
"id": "202d991f-be8f-4d44-a29c-079bb0a429dd",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 5135.27942162261,
|
||||
"y": 28220.02987324861
|
||||
},
|
||||
"targetPosition": {
|
||||
"x": 5057.633708091854,
|
||||
"y": 28509.807621135333
|
||||
},
|
||||
"floatingObject": {
|
||||
"isPinned": false,
|
||||
"isFrozen": false,
|
||||
"isCollapsed": false,
|
||||
"angleToParent": 2,
|
||||
"distanceToParent": 3,
|
||||
"arrangementStyle": 0
|
||||
},
|
||||
"uiObject": {
|
||||
"isRunning": false
|
||||
},
|
||||
"referenceParent": {
|
||||
"type": "User Profile",
|
||||
"name": "Raplh2502",
|
||||
"id": "b6d4c2fe-f1ec-4d05-9897-c6bf0571c4f3"
|
||||
},
|
||||
"referenceParentCombinedNodePath": [
|
||||
[
|
||||
"Raplh2502",
|
||||
"User Profile"
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"tokensAwarded": {
|
||||
"type": "Tokens Awarded",
|
||||
"name": "New Tokens Awarded",
|
||||
"project": "Governance",
|
||||
"id": "cfaf8545-2c1d-4663-9c1c-04b898c56e04",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 5317.441329227186,
|
||||
"y": 28359.807621135333
|
||||
},
|
||||
"targetPosition": {
|
||||
"x": 5057.633708091854,
|
||||
"y": 28509.807621135333
|
||||
},
|
||||
"floatingObject": {
|
||||
"isPinned": false,
|
||||
"isFrozen": false,
|
||||
"isCollapsed": false,
|
||||
"angleToParent": 2,
|
||||
"distanceToParent": 3,
|
||||
"arrangementStyle": 0
|
||||
},
|
||||
"uiObject": {
|
||||
"isRunning": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"tokensBonus": {
|
||||
"type": "Tokens Bonus",
|
||||
"name": "New Tokens Bonus",
|
||||
"project": "Governance",
|
||||
"id": "3506b5b8-6930-4c44-a143-2cae7d6cba06",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 5347.411455978574,
|
||||
"y": 28587.45333466609
|
||||
},
|
||||
"targetPosition": {
|
||||
"x": 5057.633708091854,
|
||||
"y": 28509.807621135333
|
||||
},
|
||||
"floatingObject": {
|
||||
"isPinned": false,
|
||||
"isFrozen": false,
|
||||
"isCollapsed": false,
|
||||
"angleToParent": 2,
|
||||
"distanceToParent": 3,
|
||||
"arrangementStyle": 0
|
||||
},
|
||||
"uiObject": {
|
||||
"isRunning": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"id": "9cbd39ea-833a-4451-8994-df8d103ae5b2",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 5057.633708091854,
|
||||
"y": 28509.807621135333
|
||||
},
|
||||
"targetPosition": {
|
||||
"x": 4797.826086956522,
|
||||
"y": 28659.807621135333
|
||||
},
|
||||
"floatingObject": {
|
||||
"isPinned": false,
|
||||
"isFrozen": false,
|
||||
"isCollapsed": false,
|
||||
"angleToParent": 1,
|
||||
"distanceToParent": 3,
|
||||
"arrangementStyle": 0
|
||||
},
|
||||
"uiObject": {
|
||||
"isRunning": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"supportProgram": {
|
||||
"type": "Support Program",
|
||||
"name": "New Support Program",
|
||||
"config": "{}",
|
||||
"project": "Governance",
|
||||
"userSupporters": [
|
||||
{
|
||||
"type": "User Supporter",
|
||||
"name": "Raplh2502",
|
||||
"config": "{}",
|
||||
"project": "Governance",
|
||||
"id": "5063f487-4531-4b92-a776-1065d3a1fbdb",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 5237.603834843242,
|
||||
"y": 28997.260955801423
|
||||
},
|
||||
"targetPosition": {
|
||||
"x": 4947.826086956522,
|
||||
"y": 28919.615242270665
|
||||
},
|
||||
"floatingObject": {
|
||||
"isPinned": false,
|
||||
"isFrozen": false,
|
||||
"isCollapsed": false,
|
||||
"angleToParent": 2,
|
||||
"distanceToParent": 3,
|
||||
"arrangementStyle": 0
|
||||
},
|
||||
"uiObject": {
|
||||
"isRunning": false
|
||||
},
|
||||
"referenceParent": {
|
||||
"type": "User Profile",
|
||||
"name": "Raplh2502",
|
||||
"id": "b6d4c2fe-f1ec-4d05-9897-c6bf0571c4f3"
|
||||
},
|
||||
"referenceParentCombinedNodePath": [
|
||||
[
|
||||
"Raplh2502",
|
||||
"User Profile"
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"tokensAwarded": {
|
||||
"type": "Tokens Awarded",
|
||||
"name": "New Tokens Awarded",
|
||||
"project": "Governance",
|
||||
"id": "5c695947-d5df-4620-b658-a455a6d3f46b",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 5097.826086956522,
|
||||
"y": 29179.422863406
|
||||
},
|
||||
"targetPosition": {
|
||||
"x": 4947.826086956522,
|
||||
"y": 28919.615242270665
|
||||
},
|
||||
"floatingObject": {
|
||||
"isPinned": false,
|
||||
"isFrozen": false,
|
||||
"isCollapsed": false,
|
||||
"angleToParent": 2,
|
||||
"distanceToParent": 3,
|
||||
"arrangementStyle": 0
|
||||
},
|
||||
"uiObject": {
|
||||
"isRunning": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"tokensBonus": {
|
||||
"type": "Tokens Bonus",
|
||||
"name": "New Tokens Bonus",
|
||||
"project": "Governance",
|
||||
"id": "b7b4459c-5ced-4157-818d-653dd24136af",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 4870.1803734257655,
|
||||
"y": 29209.392990157387
|
||||
},
|
||||
"targetPosition": {
|
||||
"x": 4947.826086956522,
|
||||
"y": 28919.615242270665
|
||||
},
|
||||
"floatingObject": {
|
||||
"isPinned": false,
|
||||
"isFrozen": false,
|
||||
"isCollapsed": false,
|
||||
"angleToParent": 2,
|
||||
"distanceToParent": 3,
|
||||
"arrangementStyle": 0
|
||||
},
|
||||
"uiObject": {
|
||||
"isRunning": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"id": "f69bc41a-b13e-46e9-a497-afe5eaf6362f",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 4947.826086956522,
|
||||
"y": 28919.615242270665
|
||||
},
|
||||
"targetPosition": {
|
||||
"x": 4797.826086956522,
|
||||
"y": 28659.807621135333
|
||||
},
|
||||
"floatingObject": {
|
||||
"isPinned": false,
|
||||
"isFrozen": false,
|
||||
"isCollapsed": false,
|
||||
"angleToParent": 2,
|
||||
"distanceToParent": 3,
|
||||
"arrangementStyle": 0
|
||||
},
|
||||
"uiObject": {
|
||||
"isRunning": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"mentorshipProgram": {
|
||||
"type": "Mentorship Program",
|
||||
"name": "New Mentorship Program",
|
||||
"config": "{}",
|
||||
"project": "Governance",
|
||||
"userMentors": [
|
||||
{
|
||||
"type": "User Mentor",
|
||||
"name": "Raplh2502",
|
||||
"config": "{}",
|
||||
"project": "Governance",
|
||||
"id": "c4e606cf-4995-4eec-a946-3ae3930f6c4a",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 4460.372752290434,
|
||||
"y": 29099.585369022054
|
||||
},
|
||||
"targetPosition": {
|
||||
"x": 4538.01846582119,
|
||||
"y": 28809.807621135333
|
||||
},
|
||||
"floatingObject": {
|
||||
"isPinned": false,
|
||||
"isFrozen": false,
|
||||
"isCollapsed": false,
|
||||
"angleToParent": 2,
|
||||
"distanceToParent": 3,
|
||||
"arrangementStyle": 0
|
||||
},
|
||||
"uiObject": {
|
||||
"isRunning": false
|
||||
},
|
||||
"referenceParent": {
|
||||
"type": "User Profile",
|
||||
"name": "Raplh2502",
|
||||
"id": "b6d4c2fe-f1ec-4d05-9897-c6bf0571c4f3"
|
||||
},
|
||||
"referenceParentCombinedNodePath": [
|
||||
[
|
||||
"Raplh2502",
|
||||
"User Profile"
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"tokensAwarded": {
|
||||
"type": "Tokens Awarded",
|
||||
"name": "New Tokens Awarded",
|
||||
"project": "Governance",
|
||||
"id": "866c00f4-4696-499b-966e-e2333cd229f3",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 4278.210844685858,
|
||||
"y": 28959.807621135333
|
||||
},
|
||||
"targetPosition": {
|
||||
"x": 4538.01846582119,
|
||||
"y": 28809.807621135333
|
||||
},
|
||||
"floatingObject": {
|
||||
"isPinned": false,
|
||||
"isFrozen": false,
|
||||
"isCollapsed": false,
|
||||
"angleToParent": 2,
|
||||
"distanceToParent": 3,
|
||||
"arrangementStyle": 0
|
||||
},
|
||||
"uiObject": {
|
||||
"isRunning": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"tokensBonus": {
|
||||
"type": "Tokens Bonus",
|
||||
"name": "New Tokens Bonus",
|
||||
"project": "Governance",
|
||||
"id": "4ab5ad3b-f523-4069-bdbe-73e48a9e455b",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 4248.24071793447,
|
||||
"y": 28732.161907604575
|
||||
},
|
||||
"targetPosition": {
|
||||
"x": 4538.01846582119,
|
||||
"y": 28809.807621135333
|
||||
},
|
||||
"floatingObject": {
|
||||
"isPinned": false,
|
||||
"isFrozen": false,
|
||||
"isCollapsed": false,
|
||||
"angleToParent": 2,
|
||||
"distanceToParent": 3,
|
||||
"arrangementStyle": 0
|
||||
},
|
||||
"uiObject": {
|
||||
"isRunning": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"id": "00aa87c7-97d3-4583-856c-ef54563c0f8d",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 4538.01846582119,
|
||||
"y": 28809.807621135333
|
||||
},
|
||||
"targetPosition": {
|
||||
"x": 4797.826086956522,
|
||||
"y": 28659.807621135333
|
||||
},
|
||||
"floatingObject": {
|
||||
"isPinned": false,
|
||||
"isFrozen": false,
|
||||
"isCollapsed": false,
|
||||
"angleToParent": 1,
|
||||
"distanceToParent": 3,
|
||||
"arrangementStyle": 0
|
||||
},
|
||||
"uiObject": {
|
||||
"isRunning": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"id": "ece481a5-b55b-40e9-85a6-ed152a75a1a2",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 4797.826086956522,
|
||||
"y": 28659.807621135333
|
||||
},
|
||||
"targetPosition": {
|
||||
"x": 4647.826086956522,
|
||||
"y": 28400
|
||||
},
|
||||
"floatingObject": {
|
||||
"isPinned": false,
|
||||
"isFrozen": false,
|
||||
"isCollapsed": false,
|
||||
"angleToParent": 1,
|
||||
"distanceToParent": 3,
|
||||
"arrangementStyle": 0
|
||||
},
|
||||
"uiObject": {
|
||||
"isRunning": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"id": "e2c35622-a37b-40e1-b9f5-d3c0a57903c7",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 4647.826086956522,
|
||||
"y": 28400
|
||||
},
|
||||
"targetPosition": {
|
||||
"x": 4347.826086956522,
|
||||
"y": 28400
|
||||
},
|
||||
"floatingObject": {
|
||||
"isPinned": false,
|
||||
"isFrozen": false,
|
||||
"isCollapsed": false,
|
||||
"angleToParent": 1,
|
||||
"distanceToParent": 3,
|
||||
"arrangementStyle": 0
|
||||
},
|
||||
"uiObject": {
|
||||
"isRunning": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"tokensMined": {
|
||||
"type": "Tokens Mined",
|
||||
"name": "New Tokens Mined",
|
||||
"project": "Governance",
|
||||
"id": "e8914cd2-6e2b-46fd-ad3a-d0633b639194",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 4047.826086956522,
|
||||
"y": 28400
|
||||
},
|
||||
"targetPosition": {
|
||||
"x": 4347.826086956522,
|
||||
"y": 28400
|
||||
},
|
||||
"floatingObject": {
|
||||
"isPinned": false,
|
||||
"isFrozen": false,
|
||||
"isCollapsed": false,
|
||||
"angleToParent": 1,
|
||||
"distanceToParent": 3,
|
||||
"arrangementStyle": 0
|
||||
},
|
||||
"uiObject": {
|
||||
"isRunning": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"id": "642bc2e8-044d-46ca-87a9-200467f5154e",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 4347.826086956522,
|
||||
"y": 28400
|
||||
},
|
||||
"targetPosition": {
|
||||
"x": 4347.826086956522,
|
||||
"y": 28400
|
||||
},
|
||||
"floatingObject": {
|
||||
"isPinned": false,
|
||||
"isFrozen": false,
|
||||
"isCollapsed": false,
|
||||
"angleToParent": 1,
|
||||
"distanceToParent": 3,
|
||||
"arrangementStyle": 0
|
||||
},
|
||||
"uiObject": {
|
||||
"isRunning": false
|
||||
}
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large.
Load diff
Reference in new issue
Block a user