Compare commits

...
Author SHA1 Message Date
Luis Fernando Molina ef5516b288 Merge pull request #2495 from Superalgos/develop
Develop into Master - Beta 12 Release
2021-11-03 13:54:33 -04:00
Luis Fernando Molina f90651c567 Merge pull request #2493 from Superalgos/plugins-docs
Plugins docs into Develop
2021-11-03 13:22:32 -04:00
Luis Fernando Molina ec61f7d65e Merge pull request #2492 from piyanthak/develop
Missing tutorial icons
2021-11-03 13:20:30 -04:00
piyanthak 39283d5118 Add files via upload 2021-11-03 22:38:10 +05:30
piyanthak deac1094d5 Add files via upload 2021-11-03 22:36:49 +05:30
Luis Fernando Molina 9adfc76ae0 Merge pull request #2479 from prepheadrus/develop
Update welcome-to-superalgos-015-tutorial-step
2021-11-03 12:11:31 -04:00
Luis Fernando Molina 62ca592934 Merge pull request #2489 from ssplatt/testing-codeowners
Add trailing slashes to the directory names in CODEOWNERS
2021-11-03 12:11:07 -04:00
Luis Fernando Molina 748ca1e8f3 Merge pull request #2490 from piyanthak/develop
Hello World icon fixes.
2021-11-03 12:10:37 -04:00
piyanthak 66bcc3f5af Merge branch 'develop' of http://github.com/piyanthak/Superalgos into develop 2021-11-03 21:02:51 +05:30
piyanthak 5ece100083 Hello World tutorial icons fix 2021-11-03 21:00:16 +05:30
prepheadrus 034c2438d4 Welcome To Superalgos 2021-11-03 18:29:33 +03:00
prepheadrus eb8c6454f2 Update welcome-to-superalgos-022-tutorial-step-warp-speed-zooming.json 2021-11-03 18:03:50 +03:00
prepheadrus 24100041c2 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-11-03 17:52:11 +03:00
Brett Taylor 665b9276fd add trailing slashes to directories 2021-11-03 10:40:29 -04:00
Brett Taylor 0b3a60ea28 testing codeowners 2021-11-03 10:28:47 -04:00
prepheadrus 9149adcdf8 Update welcome-to-superalgos-014-tutorial-step-welcome-binanceus.json 2021-11-03 17:11:56 +03:00
prepheadrus 3a4a1f87f4 Welcome-to-superalgos-tutorial 2021-11-03 17:02:02 +03:00
Brett Taylor d3570c2b6a test changes 2021-11-03 09:57:59 -04:00
Luis Fernando Molina 59db24aa72 Merge pull request #2488 from harrellbm/develop
Finish cleaning up getting started tutorials
2021-11-03 09:54:09 -04:00
B Harrell 038969d465 Merge branch 'Superalgos:develop' into develop 2021-11-03 08:44:38 -05:00
harrellbm 8189982eb8 Merge branch 'develop' of https://github.com/harrellbm/Superalgos into develop 2021-11-03 08:43:25 -05:00
harrellbm 150f77b2a2 finish cleaning up getting started tutorials 2021-11-03 08:43:22 -05:00
Luis Fernando Molina 0542663fdd Merge pull request #2487 from Luis-Fernando-Molina/develop
Contribution: DeepScan issue fixed
2021-11-03 05:37:50 -04:00
Luis Fernando Molina 1bcd24e442 DeepScan issue fixed 2021-11-03 10:37:20 +01:00
Luis Fernando Molina 15f5cd3db6 Merge pull request #2482 from harrellbm/develop
Update Icons for Getting started Tutorials
2021-11-03 05:35:19 -04:00
Luis Fernando Molina 1262a9ba17 Merge pull request #2484 from NAmorim/develop
[Distribution] Update to packaged apps
2021-11-03 05:29:52 -04:00
Luis Fernando Molina b1045f6509 Changes in User Profile done by Profile Owner gustavohcorradi automatically merged by Superalgos.
Contribution: add weight votes mentorhip pool
2021-11-03 05:28:41 -04:00
Luis Fernando Molina 9ca61a497e Changes in User Profile done by Profile Owner primoz990 automatically merged by Superalgos.
Contribution: This is my contribution to Superalgos
2021-11-03 05:27:34 -04:00
primoz990 a28d1064cf Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-11-03 08:05:03 +01:00
primoz990 b90a04890d This is my contribution to Superalgos 2021-11-03 08:04:26 +01:00
gustavohcorradi c02de655c8 add weight votes mentorhip pool 2021-11-03 00:07:41 +01:00
NAmorim fe1b93391d [Distribution]
Run with UI in background
Console logs
2021-11-02 22:09:34 +00:00
prepheadrus 19c1716fdd Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-11-03 00:20:07 +03:00
prepheadrus 068deb1546 Merge branch 'develop' of https://github.com/prepheadrus/Superalgos into develop 2021-11-03 00:02:31 +03:00
B Harrell 6bedd675f1 Merge branch 'Superalgos:develop' into develop 2021-11-02 10:40:53 -05:00
harrellbm ed1814d40d Merge branch 'develop' of https://github.com/harrellbm/Superalgos into develop 2021-11-02 10:39:53 -05:00
harrellbm 5c87e80b66 Update Icons for Getting started Tutorials 2021-11-02 10:39:45 -05:00
Luis Fernando Molina d76ee9274f Merge pull request #2481 from NAmorim/develop
Update github release workflow
2021-11-02 08:10:45 -04:00
NAmorim f7c862aedd Update github release workflow 2021-11-02 11:51:18 +00:00
prepheadrus 76185a07cd Update welcome-to-superalgos-015-tutorial-step-lets-mine-some-data.json 2021-11-02 14:11:31 +03:00
Luis Fernando Molina fd6f5a348d Merge pull request #2478 from piyanthak/develop
TF workspace refactor for Beta12
2021-11-02 06:00:33 -04:00
piyanthak 857e3e467c TF workspace refactor for Beta12 2021-11-02 15:17:52 +05:30
Luis Fernando Molina 56eb3c0744 Changes in User Profile done by Profile Owner Tentacule23 automatically merged by Superalgos.
Contribution: Automated Userprofile contribute process.
2021-11-02 03:14:44 -04:00
Luis Fernando Molina d0cbab98b9 Merge pull request #2434 from Neobii/plugins-docs
Contribution: My Superalgos Review
2021-11-02 03:11:15 -04:00
Luis Fernando Molina 744e4fa2dc Merge pull request #2468 from harrellbm/develop
Small Tutorial Fixes
2021-11-02 03:10:47 -04:00
Luis Fernando Molina eeeec548cb Merge pull request #2475 from NAmorim/develop
[Distribution] Addition of console logs window
2021-11-02 03:10:12 -04:00
Luis Fernando Molina f57ed82f48 Merge pull request #2477 from ssplatt/fix-file-path
Update file path trimming for fetch via http
2021-11-02 03:09:15 -04:00
ssplatt cbc5eacb5e update dockerignore 2021-11-02 00:00:27 -04:00
NAmorim f2b273e583 [Distribution] Addition of console window 2021-11-02 00:29:53 +00:00
NAmorim d10fbc656f Change the console message 2021-11-02 00:21:37 +00:00
Brett Taylor 4dd998faf1 include a fix for filepath in docker on arm 2021-11-01 16:58:49 -04:00
Luis Fernando Molina 12d4a9b47f Merge pull request #2473 from Luis-Fernando-Molina/develop
Contribution: Governance Oct 2021 Distribution Done
2021-11-01 16:34:59 -04:00
Luis Fernando Molina 5675caacfe Governance Oct 2021 Distribution Done 2021-11-01 21:34:35 +01:00
Tentacule23 b79213f4ac Contribution: Automated Userprofile contribute process. 2021-11-01 16:30:06 -04:00
B Harrell f9672c185f Merge branch 'Superalgos:develop' into develop 2021-11-01 09:12:29 -05:00
harrellbm fa727b5bfa Merge branch 'develop' of https://github.com/harrellbm/Superalgos into develop 2021-11-01 09:05:21 -05:00
harrellbm 19cb4810b7 Small Tutorial fix 2021-11-01 09:05:18 -05:00
Luis Fernando Molina 376d657e51 Merge pull request #2465 from gitforkgit/develop
Contribution: This is my contribution to Superalgos
2021-11-01 10:01:49 -04:00
gitforkgit 8576542530 2021-11-01 14:28:12 +01:00
Superalgos Bot 41ad51eef7 Changes in User Profile done by Profile Owner Tentacule23 automatically merged by Superalgos.
Contribution: Automated Userprofile contribute process.
2021-11-01 14:26:19 +01:00
Tentacule23 d110195050 Contribution: Automated Userprofile contribute process. 2021-11-01 09:25:21 -04:00
gitforkgit 572aa35afd This is my contribution to Superalgos 2021-11-01 14:05:47 +01:00
gitforkgit b28b9f8b7a Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-11-01 14:03:53 +01:00
gitforkgit a446ebb1b9 This is my contribution to Superalgos 2021-11-01 14:00:00 +01:00
gitforkgit b7b5fe8d99 This is my contribution to Superalgos 2021-11-01 13:57:49 +01:00
gitforkgit 32ef271985 This is my contribution to Superalgos 2021-11-01 13:49:06 +01:00
gitforkgit 2162b83bfb This is my contribution to Superalgos 2021-11-01 13:43:39 +01:00
Superalgos Bot 8ad4a30a86 Changes in User Profile done by Profile Owner julian-molina automatically merged by Superalgos.
Contribution: Profile claim votes
2021-11-01 13:13:18 +01:00
Julian Molina 3ea218e975 Profile claim votes 2021-11-01 13:12:56 +01:00
Luis Fernando Molina fc1518c9b0 Merge pull request #2455 from Luis-Fernando-Molina/develop
Contribution: More time between calls to BSCSCAN 10 Sec
2021-11-01 07:31:48 -04:00
Luis Fernando Molina 1c687eb5b8 More time between calls to BSCSCAN 10 Sec 2021-11-01 12:31:22 +01:00
Superalgos Bot f1163c38a7 Changes in User Profile done by Profile Owner gustavohcorradi automatically merged by Superalgos.
Contribution: update unvote
2021-11-01 12:15:18 +01:00
gustavohcorradi 250a2c18b8 update unvote 2021-11-01 12:14:01 +01:00
Superalgos Bot b1669fe6ba Changes in User Profile done by Profile Owner EvaMaria70 automatically merged by Superalgos.
Contribution: user profile
2021-11-01 11:51:18 +01:00
EvaMaria70 446014f8f5 user profile 2021-11-01 11:50:28 +01:00
EvaMaria70 f6f3fff2a5 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-11-01 11:25:34 +01:00
Superalgos Bot c99377ade2 Changes in User Profile done by Profile Owner cozed-gh automatically merged by Superalgos.
Contribution: User-Profile cozed-gh Only nodes names, no percentage changes
2021-11-01 10:45:17 +01:00
cozed-gh 8fb9b9d44c User-Profile cozed-gh Only nodes names, no percentage changes 2021-11-01 10:45:06 +01:00
Superalgos Bot 61da7a15d6 Changes in User Profile done by Profile Owner julian-molina automatically merged by Superalgos.
Contribution: Profile claim votes
2021-11-01 10:42:17 +01:00
Julian Molina ad60d147ac Profile claim votes 2021-11-01 10:41:10 +01:00
Superalgos Bot 5bd6fe813e Changes in User Profile done by Profile Owner edwardsjohn automatically merged by Superalgos.
User Profile
2021-11-01 08:02:15 +01:00
edwardsjohn 201a487dbc User Profile 2021-11-01 12:31:37 +05:30
primoz990 35c3cee2cb Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-11-01 07:46:31 +01:00
Superalgos Bot 2dbf1cfec0 Changes in User Profile done by Profile Owner PLuv automatically merged by Superalgos.
Update User-Profile
2021-11-01 07:32:15 +01:00
Philip Love 894e32bc0b Update User-Profile 2021-11-01 02:31:20 -04:00
Superalgos Bot 790b25990c Changes in User Profile done by Profile Owner EvaMaria70 automatically merged by Superalgos.
Contribution: This is my contribution to Superalgos
2021-11-01 02:00:12 +01:00
EvaMaria70 acf3d24db0 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-11-01 01:59:54 +01:00
EvaMaria70 c50d4bc7ab This is my contribution to Superalgos 2021-11-01 01:59:37 +01:00
gitforkgit de649b8cd8 This is my contribution to Superalgos 2021-11-01 01:22:19 +01:00
gitforkgit f4ea438bae Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-11-01 01:19:02 +01:00
gitforkgit 1df95b9d62 This is my contribution to Superalgos 2021-11-01 01:13:01 +01:00
Superalgos Bot 5c3ea78b6d Changes in User Profile done by Profile Owner superharoun automatically merged by Superalgos.
Contribution: This is my contribution to Superalgos
2021-11-01 01:10:12 +01:00
Haroun cc1ee098b7 This is my contribution to Superalgos 2021-11-01 01:09:48 +01:00
Superalgos Bot 11d80dc892 Changes in User Profile done by Profile Owner gitforkgit automatically merged by Superalgos.
Contribution: This is my contribution to Superalgos
2021-11-01 00:37:12 +01:00
gitforkgit a3bdf08e15 This is my contribution to Superalgos 2021-11-01 00:36:19 +01:00
Superalgos Bot 45e4915cd8 Changes in User Profile done by Profile Owner Tentacule23 automatically merged by Superalgos.
Contribution: Automated Userprofile contribute process.
2021-11-01 00:35:12 +01:00
Tentacule23 526f1089bf Contribution: Automated Userprofile contribute process. 2021-10-31 19:34:51 -04:00
Superalgos Bot 6c31d4504c Changes in User Profile done by Profile Owner NAmorim automatically merged by Superalgos.
Update User Profile  - percentages and support
2021-11-01 00:19:12 +01:00
NAmorim 248a28b468 Update User Profile - percentages and support 2021-10-31 23:18:26 +00:00
Superalgos Bot 098ab80d4b Changes in User Profile done by Profile Owner gitforkgit automatically merged by Superalgos.
Contribution: This is my contribution to Superalgos
2021-11-01 00:17:12 +01:00
gitforkgit 2a478c30f4 This is my contribution to Superalgos 2021-11-01 00:16:42 +01:00
Superalgos Bot 67ba8d54f8 Changes in User Profile done by Profile Owner NAmorim automatically merged by Superalgos.
Update User Profile  - AKA maybe I got it right
2021-10-31 22:46:11 +01:00
NAmorim c5e9e9c676 Update User Profile - AKA maybe I got it right 2021-10-31 21:44:22 +00:00
Superalgos Bot 5c539d837c Changes in User Profile done by Profile Owner end-debug automatically merged by Superalgos.
This is my contribution to Superalgos
2021-10-31 22:41:11 +01:00
SIFISO KHUMALO c63db868a7 This is my contribution to Superalgos 2021-10-31 23:39:33 +02:00
Superalgos Bot 7791e09445 Changes in User Profile done by Profile Owner end-debug automatically merged by Superalgos.
This is my contribution to Superalgos
2021-10-31 22:33:11 +01:00
Superalgos Bot 1879116a85 Changes in User Profile done by Profile Owner cozed-gh automatically merged by Superalgos.
Contribution: User-Profile [cozed-gh]
2021-10-31 22:32:11 +01:00
cozed-gh afe6894a0c User-Profile [cozed-gh] 2021-10-31 22:31:31 +01:00
SIFISO KHUMALO 9479130ea0 This is my contribution to Superalgos 2021-10-31 23:29:52 +02:00
Neobii 7f2fb7ae3d My Superalgos Review 2021-10-31 16:18:29 -05:00
Superalgos Bot 7600808fd8 Changes in User Profile done by Profile Owner gustavohcorradi automatically merged by Superalgos.
Contribution: This is my contribution to Superalgos
2021-10-31 21:15:10 +01:00
gustavohcorradi 5eff6838a4 This is my contribution to Superalgos 2021-10-31 21:13:55 +01:00
Superalgos Bot 933e733956 Changes in User Profile done by Profile Owner alexandrustefan automatically merged by Superalgos.
User profile update [alexandrustefan]
2021-10-31 21:09:10 +01:00
Alexandru Stefan 73df017948 User profile update [alexandrustefan] 2021-10-31 20:06:53 +00:00
Superalgos Bot ab004c1546 Changes in User Profile done by Profile Owner Luis-Fernando-Molina automatically merged by Superalgos.
Contribution: Support weigh vote
2021-10-31 20:31:10 +01:00
Luis Fernando Molina e1b639bb82 Support weigh vote 2021-10-31 20:30:17 +01:00
Superalgos Bot 9da166478d Changes in User Profile done by Profile Owner Tentacule23 automatically merged by Superalgos.
Contribution: Automated Userprofile contribute process.
2021-10-31 20:11:10 +01:00
Tentacule23 57a4c1d7e7 Contribution: Automated Userprofile contribute process. 2021-10-31 15:10:59 -04:00
Superalgos Bot 56c07d0c73 Changes in User Profile done by Profile Owner Tentacule23 automatically merged by Superalgos.
Contribution: Automated Userprofile contribute process.
2021-10-31 19:44:09 +01:00
Tentacule23 14a642882d Contribution: Automated Userprofile contribute process. 2021-10-31 14:43:35 -04:00
Superalgos Bot 43765782a1 Changes in User Profile done by Profile Owner end-debug automatically merged by Superalgos.
This is my contribution to Superalgos
2021-10-31 19:03:09 +01:00
SIFISO KHUMALO bce933f100 This is my contribution to Superalgos 2021-10-31 20:01:18 +02:00
Superalgos Bot 7c2166ec60 Changes in User Profile done by Profile Owner end-debug automatically merged by Superalgos.
This is my contribution to Superalgos
2021-10-31 18:40:09 +01:00
SIFISO KHUMALO d8b3864470 This is my contribution to Superalgos 2021-10-31 19:36:22 +02:00
Superalgos Bot 5c489a36dc Changes in User Profile done by Profile Owner Luis-Fernando-Molina automatically merged by Superalgos.
Contribution: Claim Votes
2021-10-31 18:01:09 +01:00
Luis Fernando Molina 03fb6dc9ef Claim Votes 2021-10-31 18:00:15 +01:00
Superalgos Bot 5c1d8315a0 Changes in User Profile done by Profile Owner end-debug automatically merged by Superalgos.
This is my contribution to Superalgos
2021-10-31 17:56:09 +01:00
SIFISO KHUMALO abf2fb3642 This is my contribution to Superalgos 2021-10-31 18:53:45 +02:00
Superalgos Bot bccb2f3f1b Changes in User Profile done by Profile Owner harrellbm automatically merged by Superalgos.
Final Profile update for Oct
2021-10-31 17:47:09 +01:00
harrellbm c7f5e200ba FInal Profile update for Oct 2021-10-31 11:46:04 -05:00
B Harrell 8136a6ba2b Merge branch 'Superalgos:develop' into develop 2021-10-31 11:46:00 -05:00
Superalgos Bot a65d699111 Changes in User Profile done by Profile Owner brombispi automatically merged by Superalgos.
Contribution: This is my contribution to Superalgos
2021-10-31 17:35:08 +01:00
Your Namebrombispi faa85d013c This is my contribution to Superalgos 2021-10-31 17:33:49 +01:00
Superalgos Bot e077ab234e Changes in User Profile done by Profile Owner PLuv automatically merged by Superalgos.
Profile Update
2021-10-31 17:15:09 +01:00
Philip Love 6587f088ef Profile Update 2021-10-31 12:14:12 -04:00
Superalgos Bot 05f8e5d14f Changes in User Profile done by Profile Owner brombispi automatically merged by Superalgos.
Contribution: This is my contribution to Superalgos
2021-10-31 16:45:08 +01:00
Your Namebrombispi 24431b1c01 This is my contribution to Superalgos 2021-10-31 16:44:10 +01:00
Superalgos Bot d92e34adef Changes in User Profile done by Profile Owner end-debug automatically merged by Superalgos.
Develop
2021-10-31 16:35:09 +01:00
SIFISO KHUMALO 1719c7a2da This is my contribution to Superalgos 2021-10-31 17:32:23 +02:00
SIFISO KHUMALO ea023c9762 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-31 17:27:21 +02:00
Luis Fernando Molina 5957989d42 Merge pull request #2419 from Luis-Fernando-Molina/develop
Contribution: Bug Fixes on Liquidity Program
2021-10-31 11:23:05 -04:00
Luis Fernando Molina 7a5204ec80 Bug Fixes on Liquidity Program 2021-10-31 16:22:47 +01:00
Superalgos Bot afcedf7276 Changes in User Profile done by Profile Owner piyanthak automatically merged by Superalgos.
User Profile
2021-10-31 16:14:08 +01:00
piyanthak 88ea2a6395 User Profile 2021-10-31 20:42:59 +05:30
Superalgos Bot 1b1ecf3039 Changes in User Profile done by Profile Owner brombispi automatically merged by Superalgos.
Contribution: This is my contribution to Superalgos
2021-10-31 15:27:08 +01:00
Your Namebrombispi ad0b3e7aa1 This is my contribution to Superalgos 2021-10-31 15:26:12 +01:00
SIFISO KHUMALO b3cbd99d04 This is my contribution to Superalgos 2021-10-31 16:09:20 +02:00
Your Namebrombispi ed9564a6f3 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-31 14:50:31 +01:00
Superalgos Bot 67366c03f5 Changes in User Profile done by Profile Owner cozed-gh automatically merged by Superalgos.
Contribution: User-Profile [cozed-gh]
2021-10-31 14:08:07 +01:00
cozed-gh 202ae5b22b User-Profile [cozed-gh] 2021-10-31 14:07:23 +01:00
Superalgos Bot 55ec1f12cd Changes in User Profile done by Profile Owner cozed-gh automatically merged by Superalgos.
Contribution: User-Profile [cozed-gh]
2021-10-31 13:48:07 +01:00
cozed-gh a3598d4505 User-Profile [cozed-gh] 2021-10-31 13:47:24 +01:00
brombispi 71f182bece Merge branch 'Superalgos:develop' into develop 2021-10-31 13:44:25 +01:00
Your Namebrombispi e9c7c3bf8d This is my contribution to Superalgos 2021-10-31 13:35:30 +01:00
Superalgos Bot 00833bdb73 Changes in User Profile done by Profile Owner gitforkgit automatically merged by Superalgos.
Contribution: (claims)
2021-10-31 13:23:06 +01:00
gitforkgit e94586e34a (claims) 2021-10-31 13:21:57 +01:00
Superalgos Bot a9cd0d406d Changes in User Profile done by Profile Owner end-debug automatically merged by Superalgos.
This is my contribution to Superalgos
2021-10-31 13:21:07 +01:00
SIFISO KHUMALO a91f6f2175 This is my contribution to Superalgos 2021-10-31 14:19:08 +02:00
Your Namebrombispi b448ab5116 This is my contribution to Superalgos 2021-10-31 13:08:27 +01:00
Luis Fernando Molina f1feb86c4d Merge pull request #2407 from Luis-Fernando-Molina/develop
Contribution: Governance Bug Fixed with Reputation Calculation 2
2021-10-31 07:51:05 -04:00
Luis Fernando Molina 2fa5d3cc6d Governance Bug Fixed with Reputation Calculation 2 2021-10-31 12:50:54 +01:00
Luis Fernando Molina 9ddb80f3b2 Merge pull request #2406 from Luis-Fernando-Molina/develop
Contribution: Governance Bug Fixed with Reputation Calculation
2021-10-31 07:49:57 -04:00
Luis Fernando Molina 863f4b3dcb Governance Bug Fixed with Reputation Calculation 2021-10-31 12:49:34 +01:00
Superalgos Bot 7862ae0b4e Changes in User Profile done by Profile Owner end-debug automatically merged by Superalgos.
Develop
2021-10-31 12:40:06 +01:00
SIFISO KHUMALO 427f1b12ab This is my contribution to Superalgos 2021-10-31 13:28:57 +02:00
Your Namebrombispi 6dc18884a0 This is my contribution to Superalgos 2021-10-31 12:24:28 +01:00
SIFISO KHUMALO 87940d70b9 This is my contribution to Superalgos 2021-10-31 13:24:03 +02:00
Your Namebrombispi 876b150957 This is my contribution to Superalgos 2021-10-31 12:06:30 +01:00
Luis Fernando Molina f1811e7534 Merge pull request #2400 from Luis-Fernando-Molina/develop
Contribution: Bug Fix after adding ETH
2021-10-31 06:32:12 -04:00
Luis Fernando Molina 825f1b4a87 Bug Fix after adding ETH 2021-10-31 11:31:54 +01:00
Superalgos Bot 1c67ef9a8d Changes in User Profile done by Profile Owner MarinitaMarina automatically merged by Superalgos.
Contribution: my profile with claims
2021-10-31 11:24:05 +01:00
MarinitaMarina 3681076cd0 my profile with claims 2021-10-31 11:23:15 +01:00
Luis Fernando Molina 118791958c Merge pull request #2398 from MarinitaMarina/develop
Contribution: Russinan Translations
2021-10-31 06:21:07 -04:00
MarinitaMarina 7b00368d79 Russinan Translations 2021-10-31 11:20:45 +01:00
MarinitaMarina 67192311b7 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-31 11:09:01 +01:00
Luis Fernando Molina 513e9aac18 Merge pull request #2378 from harrellbm/develop
First working docs stats
2021-10-31 05:48:12 -04:00
Luis Fernando Molina d2a39907ed Merge pull request #2397 from Luis-Fernando-Molina/develop
Contribution: One more translator
2021-10-31 05:47:42 -04:00
Luis Fernando Molina 4d3b2326a0 One more translator 2021-10-31 10:47:08 +01:00
Luis Fernando Molina 5489cfeba6 Merge pull request #2375 from MarinitaMarina/develop
Contribution: Welcome Tutorial Translated into Russian part 1
2021-10-31 05:44:16 -04:00
Luis Fernando Molina 7a757c291f Merge pull request #2396 from Luis-Fernando-Molina/develop
Contribution: Base line votes regenerated
2021-10-31 05:41:18 -04:00
Luis Fernando Molina c10d54621d New Liquidity Pool SA/ETH added 2021-10-31 10:38:52 +01:00
Luis Fernando Molina d45ddd48f4 Merge pull request #2394 from Luis-Fernando-Molina/develop
Contribution: Team Member Missing
2021-10-31 04:56:28 -04:00
Luis Fernando Molina f1aaa38c58 Team Member Missing 2021-10-31 09:56:06 +01:00
Superalgos Bot 411367b132 Changes in User Profile done by Profile Owner PLuv automatically merged by Superalgos.
Profile Update
2021-10-31 09:03:05 +01:00
Philip Love 990705ff3f Profile Update 2021-10-31 04:01:37 -04:00
Superalgos Bot 79639ed232 Changes in User Profile done by Profile Owner piyanthak automatically merged by Superalgos.
User Profile w/Liquidity Pool ETH
2021-10-31 05:22:02 +01:00
piyanthak e8f28a0da6 User Profile w/Liquidity Pool ETH 2021-10-31 09:49:44 +05:30
Superalgos Bot 33e49785d8 Changes in User Profile done by Profile Owner Tentacule23 automatically merged by Superalgos.
Contribution: Automated Userprofile contribute process.
2021-10-31 02:49:01 +02:00
Tentacule23 2160305573 Contribution: Automated Userprofile contribute process. 2021-10-30 20:48:54 -04:00
Superalgos Bot a400c12d8f Changes in User Profile done by Profile Owner Tentacule23 automatically merged by Superalgos.
Contribution: Automated Userprofile contribute process.
2021-10-31 02:48:01 +02:00
Tentacule23 cc0fe7225d Contribution: Automated Userprofile contribute process. 2021-10-30 20:47:50 -04:00
Superalgos Bot cdc8b5af63 Changes in User Profile done by Profile Owner NAmorim automatically merged by Superalgos.
User Profile Update
2021-10-31 01:41:01 +02:00
NAmorim 8db15fc453 User Profile Update 2021-10-31 00:39:54 +01:00
Superalgos Bot 0c343e59a3 Changes in User Profile done by Profile Owner prepheadrus automatically merged by Superalgos.
This is my contribution to Superalgos
2021-10-31 01:13:00 +02:00
Superalgos Bot 14a794a51d Changes in User Profile done by Profile Owner alexandrustefan automatically merged by Superalgos.
User profile update [alexandrustefan]
2021-10-31 01:05:00 +02:00
Alexandru Stefan f992d610c8 User profile update [alexandrustefan] 2021-10-30 23:03:47 +00:00
prepheadrus d3df87ddf5 This is my contribution to Superalgos 2021-10-31 01:58:03 +03:00
Superalgos Bot 3840d36080 Changes in User Profile done by Profile Owner cozed-gh automatically merged by Superalgos.
Contribution: User-Profile [cozed-gh]
2021-10-30 23:25:59 +02:00
cozed-gh 2e0e39e538 User-Profile [cozed-gh] 2021-10-30 23:24:56 +02:00
Superalgos Bot 3010bb93e4 Changes in User Profile done by Profile Owner quantum8 automatically merged by Superalgos.
Develop
2021-10-30 23:22:59 +02:00
quantum8 6247855fdc Merge branch 'Superalgos:develop' into develop 2021-10-31 07:21:49 +10:00
quantum8 6feaa29437 updated user profile roles 2021-10-31 07:22:14 +10:00
Superalgos Bot 9853f99a93 Changes in User Profile done by Profile Owner prepheadrus automatically merged by Superalgos.
Contribution: This is my contribution to Superalgos
2021-10-30 22:58:59 +02:00
prepheadrus cccef388bf Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-30 23:15:59 +03:00
Superalgos Bot ac674e4793 Changes in User Profile done by Profile Owner cozed-gh automatically merged by Superalgos.
Contribution: User-Profile [cozed-gh]
2021-10-30 22:05:58 +02:00
cozed-gh 30bf25c4d7 User-Profile [cozed-gh] 2021-10-30 22:05:01 +02:00
prepheadrus d2a8e311d9 This is my contribution to Superalgos 2021-10-30 22:58:56 +03:00
prepheadrus e22fd8eb66 This is my contribution to Superalgos 2021-10-30 22:47:08 +03:00
prepheadrus 266f6685d2 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-30 22:42:55 +03:00
Superalgos Bot 9494e00084 Changes in User Profile done by Profile Owner Raplh2502 automatically merged by Superalgos.
Contribution: profile update
2021-10-30 21:37:58 +02:00
Raplh2502 0010deb175 profile update 2021-10-30 21:36:20 +02:00
prepheadrus 8f7e932f96 This is my contribution to Superalgos 2021-10-30 22:24:52 +03:00
Superalgos Bot 6c74bd46ad Changes in User Profile done by Profile Owner EvaMaria70 automatically merged by Superalgos.
Contribution: This is my contribution to Superalgos
2021-10-30 21:10:58 +02:00
EvaMaria70 ea28b7fe99 This is my contribution to Superalgos 2021-10-30 21:10:45 +02:00
Superalgos Bot 772bbc3571 Changes in User Profile done by Profile Owner Tentacule23 automatically merged by Superalgos.
Contribution: Automated Userprofile contribute process.
2021-10-30 20:30:57 +02:00
MarinitaMarina 1d62ee1dbf This is my contribution to Superalgos 2021-10-30 20:30:37 +02:00
Tentacule23 cbcef6ec87 Contribution: Automated Userprofile contribute process. 2021-10-30 14:30:05 -04:00
Superalgos Bot ad95b50025 Changes in User Profile done by Profile Owner gustavohcorradi automatically merged by Superalgos.
Contribution: update profile voting power
2021-10-30 20:27:57 +02:00
GustavoH c33246083d update profile voting power 2021-10-30 20:27:12 +02:00
Tentacule23 8066e86f39 Contribution: Automated Userprofile contribute process. 2021-10-30 14:26:38 -04:00
MarinitaMarina 23a48b7fc6 Merge remote-tracking branch 'upstream/develop' into develop 2021-10-30 20:18:35 +02:00
Brenden Harrell 8a58ab35fa First working docs stats 2021-10-30 13:06:53 -05:00
Superalgos Bot 4e8144a93d Changes in User Profile done by Profile Owner julian-molina automatically merged by Superalgos.
Contribution: Profile
2021-10-30 19:49:57 +02:00
Julian Molina 59dba187c3 Profile 2021-10-30 19:49:20 +02:00
Superalgos Bot aadfb226b1 Changes in User Profile done by Profile Owner julian-molina automatically merged by Superalgos.
Contribution: Profile
2021-10-30 19:47:57 +02:00
Julian Molina 7b0ba12a32 Profile 2021-10-30 19:47:37 +02:00
MarinitaMarina c4c176b7dd Welcome Tutorial Translated into Russian part 1 2021-10-30 19:16:11 +02:00
Superalgos Bot 6c6c0457e1 Changes in User Profile done by Profile Owner Tentacule23 automatically merged by Superalgos.
Contribution: Automated Userprofile contribute process.
2021-10-30 17:16:56 +02:00
Tentacule23 c3686f2b88 Contribution: Automated Userprofile contribute process. 2021-10-30 11:16:40 -04:00
Luis Fernando Molina 8855c46e0a Merge pull request #2366 from EvaMaria70/develop
Contribution: how to resolve claims
2021-10-30 11:15:58 -04:00
Luis Fernando Molina 815a66587c Merge pull request #2322 from krimsonkla/develop
Contribution: "Additional typo fixes"
2021-10-30 11:15:19 -04:00
Luis Fernando Molina f3025ec3dd Merge pull request #2371 from gitforkgit/develop
Contribution: (claims)
2021-10-30 11:15:03 -04:00
Luis Fernando Molina a4a73c6df8 Merge pull request #2364 from Luis-Fernando-Molina/develop
Contribution: usetprofile
2021-10-30 11:14:16 -04:00
Luis Fernando Molina 2704727a44 Merge pull request #2372 from Tentacule23/develop
Contribution: gov_command_page_added Tentacule23
2021-10-30 11:13:17 -04:00
Luis Fernando Molina 0719160bdb non tech users community leader 2021-10-30 17:12:52 +02:00
Tentacule23 8122afe844 gov_command_page_added Tentacule23 2021-10-30 10:55:16 -04:00
gitforkgit 7b11b012c4 (claims) 2021-10-30 16:51:34 +02:00
Superalgos Bot 10ded62205 Changes in User Profile done by Profile Owner Tentacule23 automatically merged by Superalgos.
Contribution: Automated Userprofile contribute process.
2021-10-30 16:21:55 +02:00
Tentacule23 0c415f8077 Contribution: Automated Userprofile contribute process. 2021-10-30 10:21:38 -04:00
Superalgos Bot 39ab51a11c Changes in User Profile done by Profile Owner ssplatt automatically merged by Superalgos.
update ssplatt profile
2021-10-30 16:18:55 +02:00
ssplatt a936aa77d5 update ssplatt profile 2021-10-30 10:18:08 -04:00
Superalgos Bot 9e2745d2bf Changes in User Profile done by Profile Owner Tentacule23 automatically merged by Superalgos.
Contribution: Automated Userprofile contribute process.
2021-10-30 16:16:55 +02:00
Tentacule23 0211dfa9da Contribution: Automated Userprofile contribute process. 2021-10-30 10:16:11 -04:00
EvaMaria70 f901f11693 how to resolve claims 2021-10-30 16:13:20 +02:00
Superalgos Bot a2fface4a8 Changes in User Profile done by Profile Owner harrellbm automatically merged by Superalgos.
Update Profile
2021-10-30 16:05:55 +02:00
Brenden Harrell ad4d40398e Update Profile 2021-10-30 09:04:47 -05:00
Luis Fernando Molina eafb9d55a0 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-30 16:00:42 +02:00
Luis Fernando Molina 187dd25a4d userprofiel 2021-10-30 16:00:34 +02:00
Superalgos Bot b8ef393172 Changes in User Profile done by Profile Owner Luis-Fernando-Molina automatically merged by Superalgos.
Contribution: Automated Userprofile contribute process.
2021-10-30 15:58:48 +02:00
Luis Fernando Molina c550d505ec Contribution: Automated Userprofile contribute process. 2021-10-30 09:57:39 -04:00
Luis Fernando Molina 617518c620 Merge pull request #2334 from Tentacule23/develop
Contribution: gov_user_graphql
2021-10-30 09:55:17 -04:00
Superalgos Bot 42d103b18d Changes in User Profile done by Profile Owner gustavohcorradi automatically merged by Superalgos.
Contribution: update profile token power switch
2021-10-30 15:47:43 +02:00
GustavoH 39c25ae192 update profile token power switch 2021-10-30 15:47:19 +02:00
Luis Fernando Molina 1e2226512f Merge pull request #2361 from Luis-Fernando-Molina/develop
Contribution: Members Non Tech Users Community
2021-10-30 09:27:43 -04:00
Luis Fernando Molina 8a76208a7f Members Non Tech Users Community 2021-10-30 15:27:14 +02:00
Luis Fernando Molina 855693d108 Merge pull request #2356 from EvaMaria70/develop
translation how claims
2021-10-30 09:20:27 -04:00
gitforkgit a4af307c07 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-30 15:19:47 +02:00
Superalgos Bot cb4a021ad7 Changes in User Profile done by Profile Owner Luis-Fernando-Molina automatically merged by Superalgos.
Contribution: claim votes to new Devs
2021-10-30 15:17:43 +02:00
Luis Fernando Molina d18c54c154 claim votes to new Devs 2021-10-30 15:17:32 +02:00
Superalgos Bot 292d041f7f Changes in User Profile done by Profile Owner julian-molina automatically merged by Superalgos.
Contribution: Profile
2021-10-30 15:04:43 +02:00
gitforkgit d38b049e43 (Translation into german: Short part of governance) 2021-10-30 15:04:31 +02:00
Julian Molina 248585ccd2 Profile 2021-10-30 15:04:05 +02:00
Superalgos Bot e0cf71c063 Changes in User Profile done by Profile Owner prepheadrus automatically merged by Superalgos.
Contribution: This is my contribution to Superalgos
2021-10-30 15:02:43 +02:00
prepheadrus 2675cbc598 This is my contribution to Superalgos 2021-10-30 16:01:40 +03:00
Luis Fernando Molina eb466e97ab Merge pull request #2323 from gitforkgit/develop
Contribution: (Translation into german: "Data Mining"-rest. Now nearly fully translated. Only missing parts are the quoted ones)
2021-10-30 08:54:41 -04:00
prepheadrus 9f0c39a530 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-30 15:54:19 +03:00
Luis Fernando Molina fbaf1b2fba Merge pull request #2341 from prepheadrus/develop
Contribution: This is my contribution to Superalgos
2021-10-30 08:52:46 -04:00
EvaMaria70 8524cc9662 translation how claims 2021-10-30 14:51:21 +02:00
gitforkgit 11dcc683cd Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-30 14:47:33 +02:00
Superalgos Bot da8f4c7af7 Changes in User Profile done by Profile Owner EvaMaria70 automatically merged by Superalgos.
Contribution: This is my contribution to Superalgos
2021-10-30 14:27:43 +02:00
EvaMaria70 0d0359ce6f This is my contribution to Superalgos 2021-10-30 14:27:12 +02:00
Superalgos Bot a219911a83 Changes in User Profile done by Profile Owner gustavohcorradi automatically merged by Superalgos.
Contribution: update profile 2 claims
2021-10-30 14:05:43 +02:00
GustavoH 1e7d1dfec4 update profile 2 claims 2021-10-30 14:05:36 +02:00
Superalgos Bot f6ceae0a7f Changes in User Profile done by Profile Owner mzirma automatically merged by Superalgos.
Contribution: Update user profile
2021-10-30 13:25:42 +02:00
mzirma 5675ed0af0 This is my contribution to Superalgos 2021-10-30 14:22:38 +03:00
prepheadrus 2bb4c6c882 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-30 13:54:51 +03:00
Luis Fernando Molina 70f9a422e3 Merge pull request #2351 from Luis-Fernando-Molina/develop
Contribution: votes and positions refined
2021-10-30 06:44:37 -04:00
Luis Fernando Molina 747ba72818 votes and positions refined 2021-10-30 12:44:18 +02:00
Luis Fernando Molina b8760cdcda Merge pull request #2350 from Luis-Fernando-Molina/develop
Contribution: Bug Fixed Governance
2021-10-30 06:31:39 -04:00
Luis Fernando Molina 50acdf9e2f Bug Fixed Governance 2021-10-30 12:31:21 +02:00
Superalgos Bot 7f0bab3530 Changes in User Profile done by Profile Owner mARTin-B78 automatically merged by Superalgos.
Contribution: User Profile mARTin-B78
2021-10-30 12:27:42 +02:00
mARTin-B78 71dfcde019 User Profile mARTin-B78 2021-10-30 12:27:22 +02:00
Luis Fernando Molina 9e3a236ded Merge pull request #2347 from Luis-Fernando-Molina/develop
Contribution: Distribution
2021-10-30 05:45:01 -04:00
Luis Fernando Molina 94fc19c6d8 Distribution 2021-10-30 11:44:40 +02:00
Luis Fernando Molina 09deffd10e Merge pull request #2345 from Luis-Fernando-Molina/develop
Contribution: Missing memeber data-mining
2021-10-30 05:43:02 -04:00
prepheadrus 4733dfe959 This is my contribution to Superalgos 2021-10-30 12:42:14 +03:00
Superalgos Bot 57a82d82bd Changes in User Profile done by Profile Owner julian-molina automatically merged by Superalgos.
Contribution: Profile
2021-10-30 11:40:42 +02:00
Julian Molina 29ab2034e2 Profile 2021-10-30 11:40:06 +02:00
Luis Fernando Molina a5fa2073e6 Distribution 2021-10-30 11:17:37 +02:00
Luis Fernando Molina 01d7dda17a Missing memeber data-mining 2021-10-30 11:15:31 +02:00
prepheadrus 997371ba7f This is my contribution to Superalgos 2021-10-30 10:43:24 +03:00
Luis Fernando Molina aa3eb1b1a1 Merge pull request #2342 from Luis-Fernando-Molina/develop
Contribution: quantum8 Memberships updated
2021-10-30 03:16:24 -04:00
Luis Fernando Molina 0511c17643 quantum8 Memberships updated 2021-10-30 09:16:00 +02:00
prepheadrus afba87ca38 This is my contribution to Superalgos 2021-10-30 09:45:34 +03:00
Superalgos Bot 2439ffdb03 Changes in User Profile done by Profile Owner prepheadrus automatically merged by Superalgos.
Contribution: This is my contribution to Superalgos
2021-10-30 08:02:39 +02:00
prepheadrus f348b8f7ba This is my contribution to Superalgos 2021-10-30 09:02:32 +03:00
Superalgos Bot a6bdfa719e Changes in User Profile done by Profile Owner ssplatt automatically merged by Superalgos.
update ssplatt profile
2021-10-30 05:22:38 +02:00
Brett Taylor 5fee7651de update ssplatt profile 2021-10-29 23:20:09 -04:00
Superalgos Bot 91512fc6c3 Changes in User Profile done by Profile Owner Barrypair automatically merged by Superalgos.
Develop
2021-10-30 03:57:37 +02:00
Barrypair e5412ae1f0 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-30 03:52:12 +02:00
Tentacule23 80f8ffc81f Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-29 19:55:45 -04:00
Luis Fernando Molina 8a541f34a7 Merge pull request #2333 from Luis-Fernando-Molina/develop
Contribution: Governance Bug Fixed. Mining Tab not showing up.
2021-10-29 18:44:41 -04:00
Luis Fernando Molina bd55610ed4 Governance Bug Fixed. Mining Tab not showing up. 2021-10-30 00:42:30 +02:00
Tentacule23 c208df6979 graphql_fix_for_gov_userprofile Tentacule23 2021-10-29 18:40:32 -04:00
Superalgos Bot 403b4df77e Changes in User Profile done by Profile Owner Tentacule23 automatically merged by Superalgos.
Contribution: Automated Userprofile contribute process.
2021-10-30 00:39:36 +02:00
Tentacule23 e22b2076c8 Contribution: Automated Userprofile contribute process. 2021-10-29 18:38:41 -04:00
Superalgos Bot c5086b6ff8 Changes in User Profile done by Profile Owner NAmorim automatically merged by Superalgos.
User Profile Update
2021-10-30 00:38:36 +02:00
NAmorim f8329e22ad User Profile Update 2021-10-29 23:37:03 +01:00
Superalgos Bot 54efdf93a9 Changes in User Profile done by Profile Owner Luis-Fernando-Molina automatically merged by Superalgos.
Contribution: My Profile Votes Refined
2021-10-30 00:11:36 +02:00
Luis Fernando Molina 56aec8bc45 My Profile Votes Refined 2021-10-30 00:11:26 +02:00
Superalgos Bot a00b38fd01 Changes in User Profile done by Profile Owner Raplh2502 automatically merged by Superalgos.
Contribution: profile update
2021-10-29 23:51:35 +02:00
Raplh2502 47256b0f23 profile update 2021-10-29 23:50:35 +02:00
Superalgos Bot f28744c322 Changes in User Profile done by Profile Owner narkxx automatically merged by Superalgos.
Contribution: User Profile narkxx
2021-10-29 23:41:36 +02:00
narkxx c1b9093d60 User Profile narkxx 2021-10-29 23:41:08 +02:00
Luis Fernando Molina bbc3846975 Merge pull request #2327 from Luis-Fernando-Molina/develop
Contribution: Positions updated with Data Mining Contributors
2021-10-29 15:08:54 -04:00
Luis Fernando Molina 11db10be4e Positions updated with Data Mining Contributors 2021-10-29 21:07:46 +02:00
Luis Fernando Molina 3a02828758 Merge pull request #2326 from Luis-Fernando-Molina/develop
Contribution: Positions updated with Non Tech Users Community
2021-10-29 14:24:38 -04:00
Luis Fernando Molina d912c35616 Positions updated with Non Tech Users Community 2021-10-29 20:23:03 +02:00
Superalgos Bot 49e0eecfda Changes in User Profile done by Profile Owner EvaMaria70 automatically merged by Superalgos.
Contribution: update profile positions
2021-10-29 19:22:33 +02:00
EvaMaria70 5d2ccbe959 update profile positions 2021-10-29 19:22:16 +02:00
Julian Molina 7c2eed5496 Merge pull request #2324 from julian-molina/develop
Contribution: Governance - Superalgos Positions Plugin
2021-10-29 19:11:56 +02:00
Julian Molina 77784fd955 Governance - Superalgos Positions Plugin 2021-10-29 19:11:24 +02:00
gitforkgit 5350f727ea (Translation into german: "Data Mining"-rest. Now nearly fully translated. Only missing parts are the quoted ones) 2021-10-29 18:08:43 +02:00
Jason Risch c203040f3a "Additional typo fixes" 2021-10-29 08:45:41 -07:00
Superalgos Bot 9f2102e0e6 Changes in User Profile done by Profile Owner harrellbm automatically merged by Superalgos.
Update Profile
2021-10-29 17:36:32 +02:00
Brenden Harrell 2aeab5fb4d Update Profile 2021-10-29 10:35:13 -05:00
Superalgos Bot 3dacf39b67 Changes in User Profile done by Profile Owner gustavohcorradi automatically merged by Superalgos.
Contribution: update profile teams
2021-10-29 17:29:33 +02:00
gustavohcorradi bb3cf36253 update profile teams 2021-10-29 17:28:29 +02:00
gitforkgit 26c71b82e6 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-29 17:17:06 +02:00
Julian Molina b8d265f829 Merge pull request #2319 from julian-molina/develop
Contribution: Governance - Superalgos Positions Plugin
2021-10-29 16:32:15 +02:00
Julian Molina c6fe7bca70 Governance - Superalgos Positions Plugin 2021-10-29 16:29:32 +02:00
Superalgos Bot b70604783b Changes in User Profile done by Profile Owner prepheadrus automatically merged by Superalgos.
Contribution: This is my contribution to Superalgos
2021-10-29 16:23:31 +02:00
prepheadrus d067e5ea7f This is my contribution to Superalgos 2021-10-29 17:23:17 +03:00
Superalgos Bot ff950b235f Changes in User Profile done by Profile Owner EvaMaria70 automatically merged by Superalgos.
Contribution:  update profile claims
2021-10-29 15:56:31 +02:00
EvaMaria70 0f9fdda3ac update profile claims 2021-10-29 15:54:34 +02:00
Luis Fernando Molina 32a986cc13 Merge pull request #2292 from krimsonkla/develop
Contribution: "Fixed Typos - Will add more in another PR"
2021-10-29 09:52:14 -04:00
Luis Fernando Molina ab6ba2ae12 Merge pull request #2316 from Luis-Fernando-Molina/develop
Contribution: PR Bot improved to check for lowerCase
2021-10-29 09:51:36 -04:00
Luis Fernando Molina c3a203b8bb PR Bot improved to check for lowerCase 2021-10-29 15:51:15 +02:00
Superalgos Bot e3c910f2fc Changes in User Profile done by Profile Owner julian-molina automatically merged by Superalgos.
Contribution: User profile
2021-10-29 15:50:25 +02:00
Luis Fernando Molina 201ad526e2 Merge pull request #2313 from Luis-Fernando-Molina/develop
Contribution: PR Bot improved
2021-10-29 09:14:41 -04:00
Luis Fernando Molina 592310c8ea PR Bot improved 2021-10-29 15:14:02 +02:00
Superalgos Bot 159ce2a9de Changes in User Profile done by Profile Owner gustavohcorradi automatically merged by Superalgos.
Contribution: update user profile gustavohcorradi
2021-10-29 14:16:04 +02:00
gustavohcorradi 2d2a5b0447 update user profile gustavohcorradi 2021-10-29 14:14:05 +02:00
Julian Molina 7e86e6872c Profile 2021-10-29 14:13:17 +02:00
Superalgos Bot 35ec33c772 Changes in User Profile done by Profile Owner Luis-Fernando-Molina automatically merged by Superalgos.
Contribution: My Profile
2021-10-29 13:08:02 +02:00
Luis Fernando Molina 6e17cab565 My Profile 2021-10-29 13:07:08 +02:00
Luis Fernando Molina efc62fb167 Changes in User Profile done by Profile Owner EvaMaria70 automatically merged by Superalgos.
Update userprofile
2021-10-29 04:51:53 -04:00
Luis Fernando Molina e9d2303c57 Merge pull request #2302 from quantum8/develop
quantum mine add chop index
2021-10-29 00:11:12 -04:00
quantum8 8b285a1556 Merge branch 'Superalgos:develop' into develop 2021-10-29 12:29:52 +10:00
quantum8 09c80b8df7 Added chop index indicator 2021-10-29 12:31:37 +10:00
Luis Fernando Molina b1c54b4e1d Merge pull request #2298 from Raplh2502/develop
Contribution: add signal to noise ratio to Polus datamine
2021-10-28 22:06:54 -04:00
Luis Fernando Molina cf24f96958 Changes in User Profile done by Profile Owner alexandrustefan automatically merged by Superalgos.
Contribution: User Profile [alexandrustefan]
2021-10-28 18:18:46 -04:00
Alexandru Stefan f81bd823ea Contribution: User Profile [alexandrustefan] 2021-10-28 22:05:27 +00:00
Luis Fernando Molina a943d30fa3 Changes in User Profile done by Profile Owner superharoun automatically merged by Superalgos.
Contribution: This is my contribution to Superalgos
2021-10-28 17:44:51 -04:00
Luis Fernando Molina 0d11a0a74a Changes in User Profile done by Profile Owner cozed-gh automatically merged by Superalgos.
Contribution: User-Profile [cozed-gh]
2021-10-28 17:44:46 -04:00
cozed-gh adde2326ba User-Profile [cozed-gh] 2021-10-28 23:44:29 +02:00
Haroun d7dcf8020a This is my contribution to Superalgos 2021-10-28 23:44:07 +02:00
Raplh2502 6ec05a60bc add signal to noise ratio to Polus datamine 2021-10-28 23:40:59 +02:00
Luis Fernando Molina b7434234ba Changes in User Profile done by Profile Owner cozed-gh automatically merged by Superalgos.
Contribution: User-Profile [cozed-gh]
2021-10-28 17:23:46 -04:00
cozed-gh be116cd92e User-Profile [cozed-gh] 2021-10-28 23:23:36 +02:00
Luis Fernando Molina 9f8a62bd83 Changes in User Profile done by Profile Owner cozed-gh automatically merged by Superalgos.
Contribution: User-Profile [cozed-gh]
2021-10-28 17:12:46 -04:00
cozed-gh b6b475220c User-Profile [cozed-gh] 2021-10-28 23:12:26 +02:00
Luis Fernando Molina 3977cfa33a Changes in User Profile done by Profile Owner Smidy13 automatically merged by Superalgos.
Profile: Profile updates for Smidy13
2021-10-28 17:02:45 -04:00
Smidy13 2022326b5d Profile: Profile updates for Smidy13 2021-10-29 09:58:00 +13:00
Luis Fernando Molina 1cd150224f Changes in User Profile done by Profile Owner e-Nut automatically merged by Superalgos.
Contribution: user profile [e-Nut]
2021-10-28 15:52:45 -04:00
eNut 9318d631f5 user profile [e-Nut] 2021-10-28 21:51:37 +02:00
EvaMaria70 8179b83513 This is my contribution to Superalgos 2021-10-28 21:44:46 +02:00
Luis Fernando Molina dade953a4c Merge pull request #2293 from end-debug/develop
Contribution: This is my contribution to Superalgos
2021-10-28 14:56:08 -04:00
Luis Fernando Molina 7410879cee Update CODEOWNERS 2021-10-28 20:55:23 +02:00
Barrypair aba8262dc1 Token renewd 2021-10-28 20:52:29 +02:00
SIFISO KHUMALO babf0f3c9c This is my contribution to Superalgos 2021-10-28 20:50:34 +02:00
Jason Risch 824843f70f "Fixed Typos - Will add more in another PR" 2021-10-28 11:23:03 -07:00
Luis Fernando Molina 1c4e04fc19 Changes in User Profile done by Profile Owner Luis-Fernando-Molina automatically merged by Superalgos.
Contribution: Delegation to Team Leaders
2021-10-28 14:00:45 -04:00
Luis Fernando Molina 32e430b7cf Delegation to Team Leaders 2021-10-28 20:00:34 +02:00
Luis Fernando Molina 92752916f5 Changes in User Profile done by Profile Owner Tentacule23 automatically merged by Superalgos.
Contribution: Position_Claims3 Tentacule23
2021-10-28 13:45:38 -04:00
Luis Fernando Molina 2c2e920c42 Merge pull request #2290 from Luis-Fernando-Molina/develop
Contribution: Tutorial Missing from Token Distribution Superalgos Workspace
2021-10-28 13:45:21 -04:00
Luis Fernando Molina 3ae1908c64 Tutorial Missing from Token Distribution Superalgos Workspace 2021-10-28 19:44:48 +02:00
Tentacule23 e898a3235a Position_Claims3 Tentacule23 2021-10-28 13:33:24 -04:00
Luis Fernando Molina b8da4782e4 Changes in User Profile done by Profile Owner Tentacule23 automatically merged by Superalgos.
Contribution: Position_Claims2 Tentacule23
2021-10-28 13:22:50 -04:00
Tentacule23 f8a005e8b8 Position_Claims2 Tentacule23 2021-10-28 13:22:17 -04:00
Luis Fernando Molina 5ffca71677 Changes in User Profile done by Profile Owner Tentacule23 automatically merged by Superalgos.
Contribution: Position_Claims Tentacule23
2021-10-28 13:17:51 -04:00
Tentacule23 f65c149221 Position_Claims Tentacule23 2021-10-28 13:16:52 -04:00
Luis Fernando Molina bba9ac16fb Changes in User Profile done by Profile Owner mzirma automatically merged by Superalgos.
Contribution: User-Profile mzirma updated
2021-10-28 12:43:50 -04:00
mzirma d0dc27347d User-Profile mzirma updated 2021-10-28 19:43:16 +03:00
Luis Fernando Molina a4918be425 Changes in User Profile done by Profile Owner krimsonkla automatically merged by Superalgos.
Contribution: User Profile krimsonkla
2021-10-28 12:31:50 -04:00
Luis Fernando Molina 9ea175af72 Changes in User Profile done by Profile Owner cozed-gh automatically merged by Superalgos.
Contribution: User-Profile [cozed-gh]
2021-10-28 12:30:50 -04:00
cozed-gh 11c9085a6f User-Profile [cozed-gh] 2021-10-28 18:30:18 +02:00
Jason Risch 04082339fc Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-28 09:28:24 -07:00
Jason Risch 7e22bb3c78 User Profile krimsonkla 2021-10-28 09:17:35 -07:00
cozed-gh 0046c19e3e Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-28 17:46:01 +02:00
Luis Fernando Molina 81a4f7cb82 Merge pull request #2280 from Luis-Fernando-Molina/develop
Contribution: Tentacule23 contributios fixed
2021-10-28 11:46:00 -04:00
Luis Fernando Molina 38fa40506c Changes in User Profile done by Profile Owner cozed-gh automatically merged by Superalgos.
Contribution: User-Profile [cozed-gh]
2021-10-28 11:45:50 -04:00
Luis Fernando Molina cdf448b0ce Tentacule23 contributios fixed 2021-10-28 17:45:25 +02:00
cozed-gh 5baf2fc840 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-28 17:45:22 +02:00
cozed-gh 76903714c2 User-Profile [cozed-gh] 2021-10-28 17:45:00 +02:00
Luis Fernando Molina 7c12d24ae3 Changes in User Profile done by Profile Owner cozed-gh automatically merged by Superalgos.
Contribution: User-Profile [cozed-gh]
2021-10-28 11:40:51 -04:00
Luis Fernando Molina d228440ca3 Merge pull request #2278 from Luis-Fernando-Molina/develop
Contribution: Plugins Workspace Fixed
2021-10-28 11:40:46 -04:00
Luis Fernando Molina 4b193934b3 Plugins Workspace Fixed 2021-10-28 17:40:26 +02:00
cozed-gh db57fd167f User-Profile [cozed-gh] 2021-10-28 17:40:17 +02:00
Luis Fernando Molina 8bced0cfd3 Changes in User Profile done by Profile Owner cozed-gh automatically merged by Superalgos.
Contribution: User-Profile [cozed-gh]
2021-10-28 11:28:50 -04:00
cozed-gh 4ab65e9347 User-Profile [cozed-gh] 2021-10-28 17:26:12 +02:00
Luis Fernando Molina 72128b3830 Changes in User Profile done by Profile Owner mzirma automatically merged by Superalgos.
Contribution: User Profile mzirma
2021-10-28 10:59:49 -04:00
mzirma 3adea8ad3b User Profile mzirma 2021-10-28 17:56:19 +03:00
Luis Fernando Molina 77859b2ad2 Changes in User Profile done by Profile Owner Luis-Fernando-Molina automatically merged by Superalgos.
Contribution: This is my contribution to Superalgos
2021-10-28 10:54:43 -04:00
Luis Fernando Molina ac7c4d9136 This is my contribution to Superalgos 2021-10-28 16:54:27 +02:00
Luis Fernando Molina b186d22635 user profiles with base votes 2021-10-28 16:49:53 +02:00
Luis Fernando Molina f30faf1eac Merge pull request #2273 from Luis-Fernando-Molina/develop
Contribution: Some Delegation To new Contributors
2021-10-28 10:41:20 -04:00
Luis Fernando Molina 7b5ab47845 Some Delegation To new Contributors 2021-10-28 16:41:01 +02:00
Luis Fernando Molina 9792a271e2 Merge pull request #2271 from Luis-Fernando-Molina/develop
Contribution: Governance Plugin Worksapce Fixed
2021-10-28 09:47:26 -04:00
Luis Fernando Molina 10ddfc5223 Governance Plugin Worksapce Fixed 2021-10-28 14:25:58 +02:00
Luis Fernando Molina 6532071a5f Changes in User Profile done by Profile Owner alexandrustefan automatically merged by Superalgos.
Contribution: User Profile [alexandrustefan]
2021-10-28 08:22:45 -04:00
Luis Fernando Molina badf17ad72 Merge pull request #2270 from Luis-Fernando-Molina/develop
Contribution: Community Teams
2021-10-28 08:22:30 -04:00
Luis Fernando Molina e244e69acc Community Teams 2021-10-28 14:22:09 +02:00
Luis Fernando Molina 1a115ffe70 Merge pull request #2269 from Luis-Fernando-Molina/develop
Contribution: Community Teams
2021-10-28 08:21:11 -04:00
Luis Fernando Molina bf10611862 Community Teams 2021-10-28 14:20:38 +02:00
Alexandru Stefan 4b91133703 Contribution: User Profile [alexandrustefan] 2021-10-28 11:42:06 +00:00
Luis Fernando Molina c7391fae8b Changes in User Profile done by Profile Owner EvaMaria70 automatically merged by Superalgos.
Contribution: This is my contribution to Superalgos
2021-10-28 06:46:19 -04:00
EvaMaria70 84975a2356 This is my contribution to Superalgos 2021-10-28 12:23:31 +02:00
Luis Fernando Molina dfe6343f78 Merge pull request #2264 from Luis-Fernando-Molina/develop
Contribution: Plugin Workspace Token Distribution Superalgos Fixed
2021-10-28 05:21:58 -04:00
Luis Fernando Molina cf547534b7 Plugin Workspace Token Distribution Superalgos Fixed 2021-10-28 11:21:17 +02:00
Luis Fernando Molina bea6b06f2e Changes in User Profile done by Profile Owner Luis-Fernando-Molina automatically merged by Superalgos.
Contribution: user profile changes
2021-10-28 05:13:50 -04:00
Luis Fernando Molina a3a821c56b user profile changes 2021-10-28 11:12:17 +02:00
Luis Fernando Molina 2d9c730189 Merge pull request #2261 from Smidy13/develop
Improvement: Icons for Missing Plugins
2021-10-28 04:01:34 -04:00
Luis Fernando Molina 65f065bb72 Merge pull request #2259 from ssplatt/update-codeowners
replace non-existent core-devs team
2021-10-28 04:00:12 -04:00
Smidy13 ce1e264e9f Merge branch 'develop' of https://github.com/Smidy13/Superalgos into develop 2021-10-28 20:52:04 +13:00
Smidy13 d581179af0 Improvement: Removing Non-Existant Branch 2021-10-28 20:51:34 +13:00
Smidy cfb583a378 Merge branch 'Superalgos:develop' into develop 2021-10-28 20:23:00 +13:00
Smidy13 c725360a5c Improvement: Icons for Missing Plugins 2021-10-28 20:22:17 +13:00
Luis Fernando Molina 782712eb97 Changes in User Profile done by Profile Owner Barrypair automatically merged by Superalgos.
Update Barrypair.json
2021-10-28 02:04:15 -04:00
Barrypair eeb40cd1f1 Update Barrypair.json 2021-10-28 08:03:07 +02:00
Brett Taylor 50a2390696 replace non-existant core-devs team 2021-10-27 22:25:40 -04:00
Luis Fernando Molina d78c19d927 Changes in User Profile done by Profile Owner gustavohcorradi automatically merged by Superalgos.
Contribution: update profile mentors influencers
2021-10-27 17:20:55 -04:00
GustavoH 29e67f9a63 update profile mentors influencers 2021-10-27 23:20:19 +02:00
Luis Fernando Molina d002296c6f Changes in User Profile done by Profile Owner gustavohcorradi automatically merged by Superalgos.
Contribution: update profile supporters
2021-10-27 17:07:55 -04:00
GustavoH 33f6bf2308 update profile supporters 2021-10-27 23:07:36 +02:00
Luis Fernando Molina 599634ebeb Merge pull request #2256 from ssplatt/update-dirs-docker
update dir creation in docker container
2021-10-27 17:03:33 -04:00
Brett Taylor b15a2b216d update dir creation in docker container 2021-10-27 16:35:28 -04:00
Luis Fernando Molina f499be28cc Merge pull request #2255 from Luis-Fernando-Molina/develop
Contribution: Bug Fixed Crashing Governance
2021-10-27 16:30:14 -04:00
Luis Fernando Molina 65e725289f Bug Fixed Crashing Governance 2021-10-27 22:29:41 +02:00
Luis Fernando Molina abbfb315b7 Changes in User Profile done by Profile Owner gustavohcorradi automatically merged by Superalgos.
syncing my fork
2021-10-27 16:29:04 -04:00
Luis Fernando Molina d3c026c322 Merge pull request #2247 from gitforkgit/develop
Contribution: (Translation into German: Data Mining - Indicator Bots - Coding the Indicator's Logic)
2021-10-27 16:28:28 -04:00
gustavohcorradi bc4ce985fc Merge branch 'Superalgos:develop' into develop 2021-10-27 22:27:53 +02:00
Tentacule23 64942f2427 Contribution: Automated Userprofile contribute process. 2021-10-27 22:19:16 +02:00
Tentacule23 eaf51dbd72 userprofile app to gov Tentacule23 2021-10-27 22:19:16 +02:00
Luis Fernando Molina 87794cff6c Changes in User Profile done by Profile Owner EvaMaria70 automatically merged by Superalgos.
Contribution: test updating user profile
2021-10-27 15:42:55 -04:00
EvaMaria70 26db84d6e2 test updating user profile 2021-10-27 21:42:26 +02:00
gitforkgit 14929fc682 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-27 20:46:15 +02:00
Luis Fernando Molina 84e4627f82 Changes in User Profile done by Profile Owner Raplh2502 automatically merged by Superalgos.
Contribution: profile update
2021-10-27 14:44:03 -04:00
Raplh2502 a07cfe6a39 profile update 2021-10-27 20:43:36 +02:00
Luis Fernando Molina 7d3370ffea Changes in User Profile done by Profile Owner harrellbm automatically merged by Superalgos.
Update User Profile
2021-10-27 14:38:54 -04:00
harrellbm 5635bb1343 Update User Profile 2021-10-27 13:38:39 -05:00
gitforkgit c0e55e3f28 (Translation into German: Data Mining - Indicator Bots - Coding the Indicator's Logic) 2021-10-27 19:59:38 +02:00
Luis Fernando Molina 21cc3f7cbd Merge pull request #2245 from Luis-Fernando-Molina/develop
Contribution: Positions Updated with Education Report
2021-10-27 13:16:30 -04:00
Luis Fernando Molina 6ed55c361e Positions Updated with Education Report 2021-10-27 19:16:06 +02:00
Luis Fernando Molina 6f33a1edae Merge pull request #2244 from NAmorim/develop
Contribution: Update packaged app menu item
2021-10-27 11:29:13 -04:00
Nuno Amorim 44f346f208 Merge branch 'Superalgos:develop' into develop 2021-10-27 16:07:59 +01:00
NAmorim eee3b116b4 Change menu item from 'Superalgos' to 'File' 2021-10-27 16:07:31 +01:00
Luis Fernando Molina f3d911e553 Changes in User Profile done by Profile Owner EvaMaria70 automatically merged by Superalgos.
Contribution: update user profie EvaMaria70
2021-10-27 09:43:00 -04:00
EvaMaria70 7623228101 update user profie EvaMaria70 2021-10-27 15:42:41 +02:00
Luis Fernando Molina 01c730c187 Merge pull request #2242 from EvaMaria70/develop
Contribution: translation CLAIM
2021-10-27 09:23:23 -04:00
EvaMaria70 a86b2f6c84 translation CLAIM 2021-10-27 15:15:22 +02:00
Luis Fernando Molina a7b90592d4 Changes in User Profile done by Profile Owner NAmorim automatically merged by Superalgos.
Contribution: app.contributeUserProfile
2021-10-27 06:47:59 -04:00
NAmorim dc93cd731c app.contributeUserProfile 2021-10-27 11:47:30 +01:00
Luis Fernando Molina 7c41beeb81 Changes in User Profile done by Profile Owner alexandrustefan automatically merged by Superalgos.
Contribution: User Profile [alexandrustefan]
2021-10-27 06:09:52 -04:00
Alexandru Stefan c26e702576 Contribution: User Profile [alexandrustefan] 2021-10-27 09:45:22 +00:00
Luis Fernando Molina a0cfb7848b Merge pull request #2238 from Luis-Fernando-Molina/develop
Contribution: Forum Team Fixed
2021-10-27 05:28:31 -04:00
Luis Fernando Molina 37b1a50b57 Forum Team Fixed 2021-10-27 11:28:09 +02:00
Luis Fernando Molina 72dc5e892d Merge pull request #2215 from gitforkgit/develop
Contribution: (Translation into german: "Data Mining - Api" and some typo fixes)
2021-10-27 02:03:09 -04:00
Luis Fernando Molina e1e2833947 Merge pull request #2214 from e-Nut/develop
Contribution: [More Dutch translations]
2021-10-27 02:02:59 -04:00
Luis Fernando Molina 52d8b7c631 Merge pull request #2233 from Smidy13/develop
Improvement: isLoading Opacity Change for UiObject
2021-10-27 02:02:10 -04:00
Luis Fernando Molina 2efa45eb29 Merge pull request #2235 from ssplatt/twitter-bot-updates
Make the twitter social/announce bot functional
2021-10-27 02:01:05 -04:00
Luis Fernando Molina 95dd39cf87 Changes in User Profile done by Profile Owner alexandrustefan automatically merged by Superalgos.
Contribution: User Profile [alexandrustefan]
2021-10-27 01:12:11 -04:00
Smidy13 4f4acd686d Merge branch 'develop' of https://github.com/Smidy13/Superalgos into develop 2021-10-27 16:15:46 +13:00
Smidy13 b2e510c5ba Bug Fix: Hovering over UiObject opacity bug 2021-10-27 16:15:17 +13:00
Brett Taylor 817b1d8afa remove debug logging 2021-10-26 22:50:09 -04:00
Brett Taylor b0950f0da1 make the twitter bot functional 2021-10-26 22:46:26 -04:00
Alexandru Stefan 1d7245bdeb Merge branch 'Superalgos:develop' into develop 2021-10-27 02:17:23 +03:00
Alexandru Stefan b23b489424 User Profile [alexandrustefan] 2021-10-26 23:14:45 +00:00
Smidy ecf9da582a Merge branch 'Superalgos:develop' into develop 2021-10-27 11:24:47 +13:00
Smidy13 67355c875d Improvement: isLoading Opacity Change for UiObject 2021-10-27 11:24:17 +13:00
gustavohcorradi 391c4720e3 update4 user profile gustavohcorradi 2021-10-26 23:44:46 +02:00
Luis Fernando Molina 912ec7b333 Merge pull request #2232 from Tentacule23/develop
Contribution: userprofile app to gov Tentacule23
2021-10-26 17:44:28 -04:00
Tentacule23 268c3f102e Contribution: Automated Userprofile contribute process. 2021-10-26 17:38:28 -04:00
Tentacule23 1d9bab14ce userprofile app to gov Tentacule23 2021-10-26 17:26:10 -04:00
Luis Fernando Molina d8114f2386 Changes in User Profile done by Profile Owner Tentacule23 automatically merged by Superalgos.
Contribution: Automated Userprofile contribute process.
2021-10-26 17:11:47 -04:00
Tentacule23 979bcd2169 Contribution: Automated Userprofile contribute process. 2021-10-26 17:11:34 -04:00
gitforkgit 844c6e9482 (Translation into german: "Data Mining - Indicator Bots - Data Mining Workflow" + typo fixes) 2021-10-26 22:50:00 +02:00
Luis Fernando Molina 647c9dc195 Merge pull request #2224 from mARTin-B78/develop
Contribution: This is my contribution to Superalgos
2021-10-26 16:37:17 -04:00
Luis Fernando Molina 7b4eb04a50 Changes in User Profile done by Profile Owner Barrypair automatically merged by Superalgos.
Contribution: user profile Barrypair
2021-10-26 16:09:38 -04:00
Barrypair 88edca1a4e user profile Barrypair 2021-10-26 21:56:25 +02:00
gitforkgit adcb984da3 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-26 21:12:51 +02:00
Barrypair df394d8404 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-26 21:09:09 +02:00
Luis Fernando Molina 3e2e454530 Merge pull request #2227 from Tentacule23/develop
Contribution: app.contributeuserprofile
2021-10-26 14:56:59 -04:00
Luis Fernando Molina 084d708832 Changes in User Profile done by Profile Owner gustavohcorradi automatically merged by Superalgos.
Contribution: Updating my profile plugin
2021-10-26 14:56:29 -04:00
Barrypair 7d6d779353 Merge branch 'develop' of https://github.com/Barrypair/Superalgos into develop 2021-10-26 20:42:18 +02:00
GustavoH dff8824b1a update3 user profile plugin 2021-10-26 20:34:41 +02:00
GustavoH 276d26d5c1 This is my contribution to Superalgos 2021-10-26 19:51:57 +02:00
Tentacule23 a907a11252 app.contributeuserprofile 2021-10-26 13:12:24 -04:00
Tentacule23 3a79d2fb55 app.contributeuserprofile 2021-10-26 13:02:44 -04:00
Luis Fernando Molina 3380b37e56 Merge pull request #2225 from alexandrustefan/develop
Install product script
2021-10-26 12:25:22 -04:00
Alexandru Stefan 6a3e7bea73 global variable 'pluginFile' 2021-10-26 15:52:50 +03:00
Barrypair aef76f529f Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-26 14:34:07 +02:00
Alexandru Stefan 1ff20dae7f Merge branch 'develop' of https://github.com/alexandrustefan/Superalgos into develop 2021-10-26 15:23:05 +03:00
Alexandru Stefan b421d81ba1 Merge branch 'Superalgos:develop' into develop 2021-10-26 15:22:58 +03:00
Alexandru Stefan 6b1b973ecc refactored the way the installing procedure is being executed; refactored function names to be more relevant; added install in charting space logic; added save trading mine plugin logic 2021-10-26 15:22:01 +03:00
gitforkgit c2c43a6a07 (Translation into german: Data mining another short part) 2021-10-26 14:17:42 +02:00
mARTin-B78 e8bc44c86e This is my contribution to Superalgos 2021-10-26 11:34:18 +00:00
gitforkgit eccbcbd7d1 (Translation into german: "Data Mining - Consuming Data From Strategies/ beginning of Indicator Bot") 2021-10-26 13:24:40 +02:00
gitforkgit 9da7b7bcb7 (additionTranslation into german: "Data Mining - Api") 2021-10-26 12:51:19 +02:00
Smidy13 def769b7c6 Improvement: Visual Indicator for Loading Profiles 2021-10-26 23:44:37 +13:00
gitforkgit 095dc5f462 (try resolving errors) 2021-10-26 12:33:37 +02:00
Luis Fernando Molina 7fee1bf4df Merge pull request #2222 from Smidy13/develop
Improvement: Boolean Enable/Disable Menu Items
2021-10-26 04:49:24 -04:00
Smidy13 1837bee95c Merge branch 'develop' of https://github.com/Smidy13/Superalgos into develop 2021-10-26 21:23:39 +13:00
Smidy13 d81417e847 Bug Fix: Missing Icon for Move to Phase Event 2021-10-26 21:23:05 +13:00
Smidy13 7a1afa8a9a Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-26 21:08:34 +13:00
Smidy c1eaec74b7 Merge branch 'Superalgos:develop' into develop 2021-10-26 21:02:59 +13:00
Smidy13 485b3a43fe Improvement: Boolean Enable/Disable Menu Items 2021-10-26 21:02:09 +13:00
Luis Fernando Molina 1b10d262ee Merge pull request #2217 from harrellbm/develop
Add function library for Docs stats and Data mining step clarification
2021-10-26 03:29:26 -04:00
Luis Fernando Molina 960264cc32 Merge pull request #2221 from Luis-Fernando-Molina/develop
Contribution: Bug Fixed at httpInterface new feature
2021-10-26 03:23:56 -04:00
Luis Fernando Molina 0eb13a0164 Bug Fixed at httpInterface new feature 2021-10-26 09:22:19 +02:00
Luis Fernando Molina 532c0201e8 Merge pull request #2219 from Tentacule23/develop
Contribution: UserProfileViaGithubApi Tentacule23
2021-10-26 03:14:30 -04:00
Luis Fernando Molina f8a4d3423d Merge pull request #2220 from Luis-Fernando-Molina/develop
Contribution: Governance Simplified Voting
2021-10-26 02:54:07 -04:00
Luis Fernando Molina b57e0371a9 Governance Simplified Voting 2021-10-26 08:52:38 +02:00
Tentacule23 a9641e3f54 UserProfileViaGithubApiv2 Tentacule23 2021-10-25 23:18:19 -04:00
Tentacule23 99dd678173 UserProfileViaGithubApi Tentacule23 2021-10-25 23:12:13 -04:00
harrellbm 680ee2233d Data mining step clarification 2021-10-25 15:36:41 -05:00
gitforkgit 8107ab4f42 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-25 22:16:34 +02:00
Luis Fernando Molina fd48fc006c Merge pull request #2216 from gustavohcorradi/develop
Contribution: This is my first review to Superalgos
2021-10-25 16:12:54 -04:00
GustavoH e213eb3647 This is my contribution to Superalgos 2021-10-25 22:10:28 +02:00
gitforkgit 8b86e4b409 (Translation into german: "Data Mining -Fetching Data From APIs"-rest) 2021-10-25 22:07:25 +02:00
gitforkgit 75faf05129 (Translation into german: "Data Mining - Api" and some typo fixes) 2021-10-25 21:19:48 +02:00
Alexandru Stefan f142fec0c1 install product in charting space 2021-10-25 21:55:05 +03:00
B Harrell f397e323c2 Merge branch 'Superalgos:develop' into develop 2021-10-25 13:13:21 -05:00
eNut e1eb98135a [More Dutch translations] 2021-10-25 19:19:59 +02:00
Luis Fernando Molina 3ea96fec6f Merge pull request #2213 from Luis-Fernando-Molina/develop
Contribution: Platform New Feature: Demo Mode
2021-10-25 09:00:10 -04:00
Luis Fernando Molina 4251c2b24b Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-25 14:59:43 +02:00
Luis Fernando Molina 27c7c8ea0b Hackers protection at websockets level 2021-10-25 14:56:03 +02:00
Luis Fernando Molina bcbe230f68 Merge pull request #2210 from mARTin-B78/develop
Contribution: This is my contribution to Superalgos
2021-10-25 07:56:36 -04:00
mARTin-B78 50989e9e4a This is my contribution to Superalgos 2021-10-25 11:43:23 +00:00
Luis Fernando Molina 00c47b2065 Demo Mode at UI improved wit localhost allowed 2021-10-25 13:37:05 +02:00
Luis Fernando Molina 40772b09af Demo Mode implemented at the UI 2021-10-25 13:25:34 +02:00
Luis Fernando Molina 216dbbc7d2 Environment reaching the UI at the Platform 2021-10-25 12:55:50 +02:00
Luis Fernando Molina bd9fa1d162 Latest Changes in Governance 2021-10-25 12:23:09 +02:00
mARTin-B78 8d7b63e885 This is my contribution to Superalgos 2021-10-25 08:54:50 +00:00
Luis Fernando Molina 23e229a61e Merge pull request #2203 from gitforkgit/develop
Contribution: (Translation into german: "Data Mining - addition")
2021-10-25 04:40:17 -04:00
Alexandru Stefan 45fd7e4479 Merge branch 'develop' of https://github.com/alexandrustefan/Superalgos into develop 2021-10-25 02:40:45 +03:00
Alexandru Stefan af35bf32e0 identified charting space in workspace 2021-10-25 02:40:04 +03:00
Alexandru Stefan 180a0ff84e refactor trading mine and data mine install; added data task install 2021-10-25 02:32:33 +03:00
Luis Fernando Molina 5cfda766a8 Changes in User Profile done by Profile Owner patrickhaemmerle automatically merged by Superalgos.
User Profile Update
2021-10-24 17:21:40 -04:00
Patrick Hämmerle 7481654408 User Profile Update 2021-10-24 23:19:49 +02:00
gitforkgit 65f537e7ac (Translation into german: "Data Mining - Products") 2021-10-24 22:01:07 +02:00
gitforkgit 59d6a9ea42 (additionTranslation into german: "Data Mining - Deployments") 2021-10-24 21:44:10 +02:00
Luis Fernando Molina f31827dd25 Changes in User Profile done by Profile Owner piyanthak automatically merged by Superalgos.
User Profile update
2021-10-24 15:29:33 -04:00
Brenden Harrell 96cd514026 Add initial function for Docs stats 2021-10-24 14:27:59 -05:00
gitforkgit 8cfea3e486 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-24 20:47:19 +02:00
piyanthak ef01b2b56c User Profile update 2021-10-24 22:31:42 +05:30
Luis Fernando Molina 0b0360b72e Merge pull request #2206 from Luis-Fernando-Molina/develop
Contribution: Governance new Feature: Multiple Liquidity Programs
2021-10-24 04:58:00 -04:00
Luis Fernando Molina 03b1049241 deepScan bug fixed 2021-10-24 10:56:29 +02:00
Luis Fernando Molina c2934076f7 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-24 10:52:50 +02:00
Luis Fernando Molina 8870c95a08 Update Validations.js 2021-10-24 10:48:57 +02:00
Luis Fernando Molina d02ee2d8da Update tokens-awarded.json 2021-10-24 10:45:19 +02:00
Luis Fernando Molina 7dab358863 Tokens Mined Fixed 2021-10-24 10:43:39 +02:00
Luis Fernando Molina e8809618d5 Token Power Improved 2021-10-24 10:25:46 +02:00
Luis Fernando Molina 86629256ca Governance Reporting Liquidity 2021-10-24 10:02:29 +02:00
Luis Fernando Molina 73cbb6ecaf Merge pull request #2205 from piyanthak/develop
New Crypto Exchange/Coin assets, schema mod for Crypto Exchange/Asset Png's
2021-10-24 03:00:37 -04:00
piyanthak 0bc3aa9965 App-Schema mods for new Crypto Exchange/Asset Pngs 2021-10-24 12:25:28 +05:30
piyanthak 7e2d6f0f8e Additional Crypto Asset png's 2021-10-24 12:23:37 +05:30
piyanthak 833ae00ece Additional Crypto Asset SVG's 2021-10-24 12:22:14 +05:30
piyanthak 1b86b2e3b1 CCXT (and non) Exchange png's 2021-10-24 12:19:48 +05:30
piyanthak 31a95ca976 CCXT (and non) Exchange SVG's 2021-10-24 12:18:31 +05:30
Luis Fernando Molina ce70fa69ac Merge pull request #2204 from harrellbm/develop
Small update of Keyboard Shortcut Page
2021-10-24 02:45:21 -04:00
Luis Fernando Molina 1dc087ea65 Merge pull request #2202 from piyanthak/develop
Crypto SVG/png assets
2021-10-24 02:45:01 -04:00
Alexandru Stefan 01bc9ccba2 install product into trading mine 2021-10-23 21:59:25 +03:00
Luis Fernando Molina 0cbc38eb4c Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-23 16:44:40 +02:00
Brenden Harrell 0f442aae54 Small update of Keyboard Shortcut Page 2021-10-23 09:34:21 -05:00
gitforkgit 9620a7a78b (Translation into german: "Data Mining - addition") 2021-10-23 16:22:47 +02:00
gitforkgit 9cacfb0cfe Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-23 15:25:25 +02:00
Luis Fernando Molina 80920eabb3 liquidity Balances Laoding Well 2021-10-23 14:49:22 +02:00
Luis Fernando Molina 815c642304 Liquidity being read from different pools 2021-10-23 14:08:49 +02:00
Luis Fernando Molina 8f2800d607 3 Liquidity Pools 2021-10-23 13:02:34 +02:00
piyanthak 2b10dfe591 Crypto png assets 2021-10-23 16:23:52 +05:30
piyanthak 7bc5b892b9 Crypto svg assets 2021-10-23 16:22:10 +05:30
Luis Fernando Molina 03a1afd4d9 Merge pull request #2201 from e-Nut/develop
Contribution: [more Dutch translations]
2021-10-23 05:05:37 -04:00
Alexandru Stefan 39443539fc install product in available trading mines 2021-10-23 02:41:01 +03:00
eNut e0c0bdd3f3 [more Dutch translations] 2021-10-22 20:54:24 +02:00
Luis Fernando Molina 6bf9aaf884 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-22 20:42:11 +02:00
Luis Fernando Molina 0a9361f59e Merge pull request #2195 from NicN11/develop
Contribution: This is my contribution to Superalgos
2021-10-22 14:41:42 -04:00
Luis Fernando Molina a0e0090afd Merge pull request #2198 from piyanthak/develop
Crypto svg&png assets
2021-10-22 14:41:13 -04:00
Luis Fernando Molina b5f555cbe4 Merge pull request #2199 from harrellbm/develop
Update docs for node snap, add Keyboard Shortcut Guide and update readme for workspace refactoring
2021-10-22 14:39:29 -04:00
Luis Fernando Molina 94c45f2bdd User Profiles loaded both at the Network and Desktop 2021-10-22 18:32:04 +02:00
B Harrell b1670380ee Update readme for workspace refactoring 2021-10-22 10:34:20 -05:00
Brenden Harrell 83bb2edec4 Update docs for node snap and add Keyboard Shortcut Guide 2021-10-22 10:09:57 -05:00
Luis Fernando Molina 8716812610 User Profiles Module 2021-10-22 16:21:56 +02:00
Luis Fernando Molina 3345eff347 Splitting Memory and changing it to Network Project 2021-10-22 15:46:56 +02:00
Luis Fernando Molina 5712193f72 Bug Fixed Network 2021-10-22 14:47:01 +02:00
piyanthak 9c67b79e44 Crypto png assets 2021-10-22 17:49:10 +05:30
piyanthak 8abdeed5a2 crypto svg assets 2021-10-22 17:47:04 +05:30
Luis Fernando Molina 1326aed521 Signing Account Feature Improved 2021-10-22 13:45:33 +02:00
Luis Fernando Molina 5c9597950b Web Socket Clients Refactoring 2021-10-22 10:46:20 +02:00
Luis Fernando Molina a3081bcf4c Merge pull request #2193 from gitforkgit/develop
Contribution: (Translation into german: "Data Mining - Status Dependencies")
2021-10-22 03:13:28 -04:00
Luis Fernando Molina e6f7afd9b9 Merge pull request #2194 from NAmorim/develop
Contribution: Standalone applications
2021-10-22 03:12:49 -04:00
NicN11 1f550b8939 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-22 07:05:51 +02:00
NicN11 e9d84c1c5d This is my contribution to Superalgos 2021-10-22 07:03:11 +02:00
NAmorim f3c35790f4 Mac ARM64 build 2021-10-21 22:59:56 +01:00
Nuno Amorim 6d8919eecd Merge branch 'Superalgos:develop' into develop 2021-10-21 22:57:44 +01:00
gitforkgit 94d9ddde75 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-21 23:11:29 +02:00
Luis Fernando Molina d0379fd317 Merge pull request #2192 from Raplh2502/develop
Contribution: add volatility bands to Polus datamine
2021-10-21 17:00:03 -04:00
gitforkgit e1e5f65c03 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-21 22:57:17 +02:00
gitforkgit 9c1eee37cf (Translation into german: "Data Mining - Status Dependencies") 2021-10-21 22:55:22 +02:00
Raplh2502 dd216e93b7 add volatility bands to Polus datamine 2021-10-21 22:54:04 +02:00
Luis Fernando Molina 779a6cc7bf Merge pull request #2190 from gitforkgit/develop
Contribution: (Translation into german: "Data Mining - Managing Execution")
2021-10-21 16:44:42 -04:00
Luis Fernando Molina 29f7802cbe Merge pull request #2191 from mARTin-B78/develop
Contribution: This is my contribution to Superalgos
2021-10-21 16:32:55 -04:00
gitforkgit 800d06ecc9 (Translation into german: "Data Mining - Status Reports") 2021-10-21 22:26:36 +02:00
mARTin-B78 7edd92e26a This is my contribution to Superalgos 2021-10-21 20:15:38 +00:00
gitforkgit 242e9ee1ab (Translation into german: "Data Mining - Data Dependencies") 2021-10-21 22:11:20 +02:00
Luis Fernando Molina b6128a6862 Create release_build_dev.yml 2021-10-21 21:48:49 +02:00
Luis Fernando Molina 562f2670c3 Create CODEOWNERS 2021-10-21 21:46:47 +02:00
Luis Fernando Molina c13f02a74c Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-21 21:45:55 +02:00
Luis Fernando Molina 16055b41f6 Create CODEOWNERS 2021-10-21 21:45:51 +02:00
gitforkgit 184a66886e (Translation into german: "Data Mining - Managing Execution") 2021-10-21 21:21:18 +02:00
primoz990 aea77ea0f7 new github program node 2021-10-21 20:21:59 +02:00
Luis Fernando Molina e96ca81063 Changes in User Profile done by Profile Owner primoz990 automatically merged by Superalgos.
Contribution: This is my contribution to Superalgos
2021-10-21 13:52:56 -04:00
primoz990 ed8cb75cc5 This is my contribution to Superalgos 2021-10-21 19:52:49 +02:00
NAmorim c4e14829bb Merge branch 'develop' of https://github.com/NAmorim/Superalgos into develop 2021-10-21 18:45:51 +01:00
Nuno Amorim 83ef4815d0 Merge branch 'Superalgos:develop' into develop 2021-10-21 18:45:29 +01:00
NAmorim 7d7be12a48 Enable SA data to be stored in user documents folder 2021-10-21 18:44:42 +01:00
gitforkgit b2965fa4a4 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-21 17:02:14 +02:00
Luis Fernando Molina c1507c7fbe Changes in User Profile done by Profile Owner alexandrustefan automatically merged by Superalgos.
Contribution: User Profile alexandrustefan
2021-10-21 10:56:54 -04:00
Alexandru Stefan a5d85d523a Merge branch 'develop' of https://github.com/alexandrustefan/Superalgos into develop 2021-10-21 14:55:56 +00:00
Luis Fernando Molina 4055b4c2d8 Merge pull request #2181 from gitforkgit/develop
Contribution: (translation into german : "Data Mining - Data Mine Hierarchy" and "User Manual Summary")
2021-10-21 10:30:44 -04:00
Luis Fernando Molina dd27f0d1ad Changes in User Profile done by Profile Owner Barrypair automatically merged by Superalgos.
Contribution: User Profile Barrypair
2021-10-21 10:29:54 -04:00
Barrypair be55e3f745 Update Barrypair.json 2021-10-21 15:22:17 +02:00
Barrypair 88005f2745 Update Barrypair.json 2021-10-21 15:20:41 +02:00
Alexandru Stefan 268270c733 My Superalgos Review 2021-10-21 13:15:58 +00:00
Barrypair f6ff35aa7b Merge branch 'develop' of https://github.com/Barrypair/Superalgos into develop 2021-10-21 13:32:05 +02:00
Barrypair 477f5c6d85 Create Barrypair.json 2021-10-21 13:31:17 +02:00
Nuno Amorim a9cfa38d06 Merge branch 'Superalgos:develop' into develop 2021-10-21 11:55:17 +01:00
NAmorim 6680d4495c Notify electron that server is running 2021-10-21 11:54:45 +01:00
Luis Fernando Molina 1fb1b4edc1 Merge pull request #2185 from alexandrustefan/develop
added community forum link in docs footer
2021-10-21 06:25:37 -04:00
NAmorim cc350aae23 Merge branch 'develop' of https://github.com/NAmorim/Superalgos into develop 2021-10-21 10:44:30 +01:00
NAmorim c5c76094f5 Packaged app build script cleanup
Adition of portable windows app
2021-10-21 10:42:37 +01:00
Alexandru Stefan ec8d8ceacc added community forum link in docs footer 2021-10-21 12:02:36 +03:00
Luis Fernando Molina d396b099ec Merge pull request #2182 from ph4z/develop
Contribution: Fix http(s) requests for UI clients.
2021-10-20 18:39:21 -04:00
Luis Fernando Molina e99bc425fd Merge pull request #2183 from Raplh2502/develop
Contribution: add RVI to Polus datamine
2021-10-20 18:36:33 -04:00
Luis Fernando Molina ed643887f9 Changes in User Profile done by Profile Owner NAmorim automatically merged by Superalgos.
User Profile update
2021-10-20 18:35:14 -04:00
Nuno Amorim d2a65ed71b Merge branch 'Superalgos:develop' into develop 2021-10-20 23:06:09 +01:00
ph4z 36f5895985 Doc and tuto update for webSocketsExternalURL 2021-10-20 21:54:44 +00:00
NAmorim 2b5406e378 User Profile update 2021-10-20 22:42:55 +01:00
Raplh2502 fd6cab202f add RVI to Polus datamine 2021-10-20 23:12:14 +02:00
ph4z f65189c964 Merge branch 'Superalgos:develop' into develop 2021-10-20 22:11:51 +02:00
gitforkgit 905892065c Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-20 21:40:29 +02:00
gitforkgit 3cdac9f5e3 (translation into german : "Data Mining - Data Mine Hierarchy" and "User Manual Summary") 2021-10-20 21:40:02 +02:00
Julian Molina cf5d686ca3 Merge pull request #2180 from julian-molina/develop
Contribution: Governance - Reintroduced tutorial into the workspace
2021-10-20 18:54:31 +02:00
Julian Molina 22fa93b002 Governance - Reintroduced tutorial into the workspace 2021-10-20 18:52:10 +02:00
Julian Molina 5333d90140 Merge pull request #2179 from julian-molina/develop
Contribution: Governance - Superalgos Positions
2021-10-20 17:50:16 +02:00
Julian Molina a4e7d79d57 Governance - Superalgos Positions 2021-10-20 17:38:04 +02:00
Barrypair 083a1f86a7 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-20 15:39:37 +02:00
Barrypair 8c7f2325b2 Merge branch 'Superalgos:develop' into develop 2021-10-20 15:25:09 +02:00
Luis Fernando Molina b3f4444446 Merge pull request #2172 from gitforkgit/develop
Contribution: (Translation into german of another two chapters: Chapter V - Data Mining)
2021-10-20 08:13:52 -04:00
ph4z 8e61bccbba initial support for https clients 2021-10-20 11:07:52 +00:00
Luis Fernando Molina 70df26a046 Merge pull request #2176 from Luis-Fernando-Molina/develop
Contribution: Desktop: Code comments and some fixes
2021-10-20 06:44:51 -04:00
Luis Fernando Molina d8bfe85888 Desktop: Code comments and some fixes 2021-10-20 12:37:33 +02:00
Luis Fernando Molina 4cc4c9d043 Desktop Client Comments 2021-10-20 12:30:46 +02:00
Luis Fernando Molina b016173231 Merge pull request #2175 from Luis-Fernando-Molina/develop
Contribution: Network: Code comments and some fixes
2021-10-20 06:17:29 -04:00
Luis Fernando Molina 38b88a589b Fixing Port Numbers 2021-10-20 12:05:19 +02:00
Luis Fernando Molina fd7f970304 Refactoring CLIENT PLATFORM 2021-10-20 11:40:01 +02:00
Luis Fernando Molina 7c078b286f Removing Environment for debug 2021-10-20 10:36:41 +02:00
Luis Fernando Molina a7a338bf26 Network modules with added comments. 2021-10-20 10:21:14 +02:00
Luis Fernando Molina ce33c03bf8 Cleaning 2021-10-20 09:25:31 +02:00
Luis Fernando Molina 24a80a903a Merge pull request #2174 from ph4z/develop
Contribution: Accept webSocketsExternalURL parameter on network node config
2021-10-20 03:19:58 -04:00
Luis Fernando Molina 087e86692f Merge pull request #2162 from mARTin-B78/develop
Contribution: This is my contribution to Superalgos
2021-10-20 03:14:57 -04:00
Luis Fernando Molina 9ad1e92844 Merge pull request #2171 from Raplh2502/develop
Contribution: add volatility adapted moving average to Polus datamine
2021-10-20 03:14:24 -04:00
ph4z a8d2a8f837 Accept webSocketsExternalURL parameter on network node config 2021-10-20 04:44:21 +00:00
ph4z b46c637e75 Revert "Ensure task module connect to local port of event server"
This reverts commit 05d77ba9aa.
2021-10-20 04:40:08 +00:00
ph4z 2a8fe5d39b Accept webSocketsExternalURL parameter on network node config 2021-10-20 04:31:10 +00:00
ph4z 05d77ba9aa Ensure task module connect to local port of event server 2021-10-20 03:20:58 +00:00
ph4z a8bf27b54d Accept webSocketsScheme parameter on network node config 2021-10-20 02:38:37 +00:00
gitforkgit 070adb88e7 (Translation into german of another two chapters: Chapter V - Data Mining) 2021-10-20 00:55:02 +02:00
Raplh2502 e0c1b7ab6b add volatility adapted moving average to Polus datamine 2021-10-20 00:36:58 +02:00
mARTin-B78 dbdb7cb16f Merge branch 'develop' into develop 2021-10-19 23:26:27 +02:00
Luis Fernando Molina d0064c3cf4 Changes in User Profile done by Profile Owner harrellbm automatically merged by Superalgos.
Profile Update
2021-10-19 16:40:48 -04:00
harrellbm 7fa38555d0 Profile Update 2021-10-19 15:38:57 -05:00
Luis Fernando Molina 938aeadde8 Changes in User Profile done by Profile Owner Raplh2502 automatically merged by Superalgos.
Contribution: profile update
2021-10-19 15:20:47 -04:00
Raplh2502 4521a8564a profile update 2021-10-19 21:18:58 +02:00
Luis Fernando Molina f00333cc68 Changes in User Profile done by Profile Owner Tentacule23 automatically merged by Superalgos.
Contribution: update_user_liquidity Tentacule23
2021-10-19 12:22:39 -04:00
Tentacule23 7cc7c94621 update_user_liquidity Tentacule23 2021-10-19 11:54:51 -04:00
Luis Fernando Molina a23e505f7a Merge pull request #2163 from gitforkgit/develop
Contribution: (german translation :part of data Mining docs )
2021-10-19 11:14:56 -04:00
Luis Fernando Molina eb54b91226 Merge pull request #2167 from Luis-Fernando-Molina/develop
Contribution: Governance: Liquidity Program Implemented.
2021-10-19 11:11:43 -04:00
Luis Fernando Molina e421fd9eea Merge pull request #2166 from piyanthak/develop
Workspaces refactored for beta12
2021-10-19 11:10:57 -04:00
Luis Fernando Molina 36744390b8 Governance: Liquidity Program Implemented. 2021-10-19 17:09:44 +02:00
piyanthak fb42aafdef Workspaces refactored for beta12 2021-10-19 20:37:03 +05:30
Luis Fernando Molina a9570d699b Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-19 16:36:16 +02:00
Luis Fernando Molina 30d82d7d5b Merge pull request #2165 from NAmorim/develop
Contribution: Enable automatic binary build & release
2021-10-19 10:35:52 -04:00
Luis Fernando Molina 7a1b1f7ff0 Liquidity Program added 2021-10-19 16:23:57 +02:00
NAmorim c7cebb4f0e Cleaned up workflows 2021-10-19 15:21:57 +01:00
NAmorim 92b6d04051 Further package.json cleanup 2021-10-19 15:12:18 +01:00
NAmorim fe1432facb Update workflows 2021-10-19 14:54:36 +01:00
NAmorim c34463e63a Update README for binaries 2021-10-19 14:53:21 +01:00
NAmorim 6e36a600eb Have the binary as separate config 2021-10-19 14:53:06 +01:00
Luis Fernando Molina 32496a9059 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-19 15:24:01 +02:00
Luis Fernando Molina 834718ac1b Merge pull request #2164 from NAmorim/develop
Revert erroneous Pull Request #2130
2021-10-19 09:23:39 -04:00
NAmorim 137c53f561 Revert erroneous PR 2021-10-19 14:19:01 +01:00
gitforkgit cbaddf7c02 (german translation :part of data Mining docs ) 2021-10-19 00:12:32 +02:00
Luis Fernando Molina 2ef414d982 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-18 23:18:42 +02:00
mARTin-B78 b857b3167d This is my contribution to Superalgos 2021-10-18 21:04:45 +00:00
Luis Fernando Molina 9455b2d907 Merge pull request #2158 from gitforkgit/develop
Contribution: (Translation into German "App Message - Update Done - Already Up-To-Date")
2021-10-18 16:42:29 -04:00
Luis Fernando Molina f0b8d8850e Merge pull request #2161 from ssplatt/update-codeowners
update the codeowners file
2021-10-18 16:42:05 -04:00
gitforkgit aa885cab4c Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-18 19:23:37 +02:00
ssplatt e4c336a120 update the codeowners file 2021-10-18 10:35:52 -04:00
Luis Fernando Molina 430d7d6818 Merge pull request #2160 from Smidy13/develop
Bug Fix: Removing Duplicate Workspaces
2021-10-18 04:57:51 -04:00
Smidy b894c69ee5 Merge branch 'Superalgos:develop' into develop 2021-10-18 21:33:57 +13:00
Smidy13 a2273e6878 Bug Fix: Removing Duplicate Workspaces 2021-10-18 21:32:59 +13:00
Luis Fernando Molina de1503c2a8 Merge pull request #2159 from alexandrustefan/develop
Small fixes for debugging
2021-10-18 04:24:08 -04:00
Alexandru Stefan 5e50d7dd3d fixed TaskServer vscode launch file 2021-10-18 01:39:43 +03:00
Alexandru Stefan 35bec1d96e due to changes in Environment file (basePath has been added) the concatenation with dot will break the path while debugging TaskServer 2021-10-18 01:37:38 +03:00
Alexandru Stefan cba90c8a0e Log the eval error only if there is an error 2021-10-18 01:35:32 +03:00
gitforkgit a6e0cd3784 (translation into german: short part of Charting Space and the beginning of Data Mining Docs articles) 2021-10-17 22:57:51 +02:00
Luis Fernando Molina f844b3b64a Reading Liquidity Tokens 2021-10-17 20:26:49 +02:00
gitforkgit a911d87849 (Translation into German App Message - Update Done - Already Up-To-Date) 2021-10-17 17:42:14 +02:00
gitforkgit 1da9947f29 Merge branch 'develop' of https://github.com/gitforkgit/Superalgos into develop 2021-10-17 17:35:27 +02:00
gitforkgit 09c5bba03b ignore 2021-10-17 17:05:40 +02:00
gitforkgit c3374a69bd Merge branch 'Superalgos:develop' into develop 2021-10-17 16:57:01 +02:00
Luis Fernando Molina 49b6b46082 Merge pull request #2157 from Luis-Fernando-Molina/develop
Contribution: Bg Fix Comman Line Workspace
2021-10-17 09:00:42 -04:00
Luis Fernando Molina 52b28cb4e3 Bg Fix Comman Line Workspace 2021-10-17 15:00:04 +02:00
Luis Fernando Molina e7697e9c28 Merge pull request #2156 from Luis-Fernando-Molina/develop
Contribution: Bug Fixed with feature of starting from a workspace named at the console command
2021-10-17 08:31:17 -04:00
Luis Fernando Molina b44c834e98 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-17 14:30:27 +02:00
Luis Fernando Molina 2adb627c75 Bug Fixed with feature of starting from a workspace named at the console command 2021-10-17 14:30:12 +02:00
Luis Fernando Molina 45cde78438 Merge pull request #2154 from e-Nut/develop
Contribution: [more Dutch translations]
2021-10-17 08:13:27 -04:00
Luis Fernando Molina d1e5b32b06 Merge pull request #2152 from harrellbm/develop
fix errors in docs files
2021-10-17 05:30:30 -04:00
eNut 87b359789b [more Dutch translations] 2021-10-17 09:56:41 +02:00
Brenden Harrell ab10c29972 fix errors in docs files 2021-10-16 15:50:56 -05:00
gitforkgit dfd4e4d54d Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-16 19:23:10 +02:00
Luis Fernando Molina cbc8b73ef4 Merge pull request #2151 from Luis-Fernando-Molina/develop
Contribution: Feature: Loading a Workspace specified at the Command Line.
2021-10-16 12:01:56 -04:00
Luis Fernando Molina 7669a4db3c Merge pull request #2144 from gitforkgit/develop
Contribution: another try
2021-10-16 12:01:41 -04:00
Luis Fernando Molina 87d6fc2581 Feature: Loading a Workspace specified at the Command Line. 2021-10-16 17:59:57 +02:00
gitforkgit 621f1a20af Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-16 16:38:11 +02:00
Luis Fernando Molina 22810c71aa Merge pull request #2150 from harrellbm/develop
Update Tutorial Scroll for Fullscreen Gif
2021-10-16 10:03:20 -04:00
Brenden Harrell 8f923fbe4c Merge branch 'develop' of https://github.com/harrellbm/Superalgos into develop 2021-10-16 08:59:52 -05:00
Brenden Harrell bf8bcaab3a Update Tutorial Scroll for Fullscreen Gif 2021-10-16 08:59:13 -05:00
Luis Fernando Molina f9692944c3 Merge pull request #2145 from mARTin-B78/develop
Contribution: This is my contribution to Superalgos
2021-10-16 09:49:10 -04:00
Luis Fernando Molina 3b7e405780 Merge pull request #2149 from piyanthak/develop
Update of 4 workspaces for new Beta12 refactoring
2021-10-16 09:48:49 -04:00
mARTin-B78 404f7912a6 This is my contribution to Superalgos 2021-10-16 13:21:57 +00:00
mARTin-B78 9f3c91cc54 This is my contribution to Superalgos 2021-10-16 12:29:02 +00:00
piyanthak 7e05489c8f Update of 4 workspaces for new Beta12 refactoring 2021-10-16 16:34:55 +05:30
mARTin-B78 1588d42088 Merge branch 'develop' into develop 2021-10-16 12:57:18 +02:00
Luis Fernando Molina fb7b43a30c Merge pull request #2148 from Luis-Fernando-Molina/develop
Contribution: Github Codeowners File Changed
2021-10-16 04:09:33 -04:00
Luis Fernando Molina f358d52f84 Github Codeowners File Changed 2021-10-16 10:09:07 +02:00
Luis Fernando Molina 2a59cebe63 Merge pull request #2147 from Luis-Fernando-Molina/develop
Contribution: Governance with more detailed teams
2021-10-16 04:02:30 -04:00
Luis Fernando Molina 9ad99f7e6e Governance with more detailed teams 2021-10-16 10:02:06 +02:00
Luis Fernando Molina 816e9bf60f Merge pull request #2137 from ssplatt/add-codeowners
add preliminary codeowners file
2021-10-16 04:01:11 -04:00
Luis Fernando Molina d08d9cc3b4 Merge pull request #2146 from harrellbm/develop
fix corrupt value in translation and Implement Tutorial Scrollbar
2021-10-16 03:28:01 -04:00
Brenden Harrell 72f1bc6a8a small style change 2021-10-15 21:17:37 -05:00
Brenden Harrell ecc95c0b5b Style for Tutorial Scrollbar 2021-10-15 20:55:33 -05:00
Brenden Harrell adcdf352f5 initial tutorial scroll implementation 2021-10-15 20:31:54 -05:00
Brenden Harrell 30c278b4c9 fix corrupt value in translation 2021-10-15 19:09:27 -05:00
mARTin-B78 e632314360 This is my contribution to Superalgos 2021-10-15 21:56:41 +00:00
gitforkgit be79ab80a0 (another try) 2021-10-15 21:48:59 +02:00
gitforkgit 8aaf00152e (try solving profile error issue2) 2021-10-15 21:10:03 +02:00
gitforkgit 9a2dcff440 (try solving profile error issue) 2021-10-15 20:20:53 +02:00
gitforkgit 781e225025 (tray solving profile error issue) 2021-10-15 20:18:34 +02:00
gitforkgit 06de4734f7 This is my contribution to Superalgos 2021-10-15 20:05:26 +02:00
Brett Taylor 93736fdb62 add preliminary codeowners file 2021-10-15 13:45:05 -04:00
gitforkgit f44a21dd5e (german contribution) 2021-10-15 19:34:32 +02:00
gitforkgit 7e49d8422a (german contribution) 2021-10-15 19:32:21 +02:00
gitforkgit 46aaad9387 (german translation) 2021-10-15 19:27:50 +02:00
gitforkgit 43dcf7781e This is my contribution to Superalgos 2021-10-15 19:18:55 +02:00
Luis Fernando Molina f6a266366b Merge pull request #2132 from piyanthak/develop
Update of 2 workspaces for new Beta12 refactoring
2021-10-15 13:12:23 -04:00
Luis Fernando Molina 6cc519052c Merge pull request #2129 from mARTin-B78/develop
Contribution: This is my contribution to Superalgos
2021-10-15 13:11:55 -04:00
gitforkgit b1224f842c Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-15 16:45:42 +02:00
piyanthak 2b9c2dbd0e Update of 2 workspaces for new Beta12 refactoring 2021-10-15 19:40:45 +05:30
Luis Fernando Molina cb0720f670 Merge pull request #2131 from Luis-Fernando-Molina/develop
Contribution: Governance Bug Fixes
2021-10-15 07:50:10 -04:00
Luis Fernando Molina c53a5df2d4 Governance Bug Fixes 2021-10-15 13:48:16 +02:00
mARTin-B78 df5f0fda7a This is my contribution to Superalgos 2021-10-15 11:42:10 +00:00
Luis Fernando Molina a8d442e819 many Bug Fixes 2021-10-15 13:41:25 +02:00
mARTin-B78 273ee1745a This is my contribution to Superalgos 2021-10-15 10:56:24 +00:00
mARTin-B78 a0277a5537 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-15 09:58:20 +00:00
Luis Fernando Molina e0eefb0062 Merge pull request #2127 from Raplh2502/develop
Contribution: update Polus Datamine with new indicator
2021-10-15 04:12:36 -04:00
Luis Fernando Molina 6118e21160 Merge pull request #2130 from NAmorim/develop
Contribution: Contribute - User Profile Update
2021-10-15 04:12:19 -04:00
NAmorim 5f3c700834 Contribute - User Profile Update 2021-10-15 00:30:07 +01:00
mARTin-B78 d1ef0801a2 This is my contribution to Superalgos 2021-10-14 21:51:52 +00:00
gitforkgit c3c4b384e9 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-14 22:55:00 +02:00
Luis Fernando Molina c2ef41ae47 Changes in User Profile done by Profile Owner primoz990 automatically merged by Superalgos.
Contribution: User Profile primoz990
2021-10-14 16:02:33 -04:00
primoz990 fd2ae34e2d User Profile primoz990 2021-10-14 22:02:14 +02:00
Raplh2502 10f01fac32 update Polus Datamine with new indicator 2021-10-14 20:25:16 +01:00
primoz990 e19acec44f Merge branch 'Superalgos:develop' into develop 2021-10-14 20:41:03 +02:00
Luis Fernando Molina 84073e86d8 Merge pull request #2126 from Luis-Fernando-Molina/develop
Contribution: Install as Plugin Bug Fix
2021-10-14 12:40:19 -04:00
Luis Fernando Molina 92dee735e9 Install as Plugin Bug Fix 2021-10-14 18:38:30 +02:00
Luis Fernando Molina 7a9112ea44 Merge pull request #2125 from Luis-Fernando-Molina/develop
Contribution: Simplification of Governance System, Avoiding Self Voting and Implementing Negative Votes
2021-10-14 12:17:08 -04:00
Luis Fernando Molina 6306453ffe Merge pull request #2123 from mARTin-B78/develop
Contribution: This is my contribution to Superalgos
2021-10-14 12:15:47 -04:00
Luis Fernando Molina 0898e16285 DeepScan Bug Fixes 2021-10-14 18:14:25 +02:00
Luis Fernando Molina 96cb7c9d6f Simplification of Governance System, Avoiding Self Voting and Implementing Negative Votes 2021-10-14 18:07:40 +02:00
mARTin-B78 1a3def6708 This is my contribution to Superalgos 2021-10-14 15:58:21 +00:00
Luis Fernando Molina 1705961d68 Negatives Votes Implemented 2021-10-14 17:28:57 +02:00
mARTin-B78 fc63d08b50 This is my contribution to Superalgos 2021-10-14 14:49:46 +00:00
mARTin-B78 30ac9e5560 This is my contribution to Superalgos 2021-10-14 13:39:10 +00:00
primoz990 79004f352e Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-14 14:07:28 +02:00
Luis Fernando Molina 4d5690bcd6 Voting own claims validation implemented 2021-10-14 13:12:41 +02:00
Luis Fernando Molina 0f5520060a Minimun Votes 2021-10-14 12:12:40 +02:00
Luis Fernando Molina ce60ddced7 All teams and projects defined 2021-10-14 12:02:23 +02:00
mARTin-B78 5e32ecfc58 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-14 09:31:37 +00:00
Luis Fernando Molina afc5c770ae Removing all unnecesary plugins 2021-10-14 10:10:09 +02:00
Luis Fernando Molina b14c3dacb8 Simplification of Governance Part 1 2021-10-14 10:06:10 +02:00
Luis Fernando Molina a71aedd5af Merge pull request #2124 from 9808us/develop
Hello World Workspace fixed
2021-10-14 03:55:52 -04:00
Luis Fernando Molina 72c54793d1 Merge pull request #2122 from end-debug/develop
Contribution: This is my contribution to Superalgos
2021-10-14 03:53:45 -04:00
9808us 4c5dfb56ba Workspace fixed 2021-10-14 05:34:58 +02:00
mARTin-B78 039be451d4 This is my contribution to Superalgos 2021-10-14 01:30:42 +00:00
mARTin-B78 aac28af72f This is my contribution to Superalgos 2021-10-14 00:27:58 +00:00
mARTin-B78 54fe3cf870 This is my contribution to Superalgos 2021-10-13 22:20:35 +00:00
SIFISO KHUMALO 69d5a06066 This is my contribution to Superalgos 2021-10-13 22:17:25 +02:00
gitforkgit 5bbbefc026 (Translation of: "Telegram announcements into german") 2021-10-13 18:39:13 +02:00
Luis Fernando Molina 58e20a44cf Merge pull request #2119 from mARTin-B78/develop
Contribution: This is my contribution to Superalgos
2021-10-13 10:49:08 -04:00
Luis Fernando Molina 18db4519f8 Merge pull request #2118 from NAmorim/develop
Delete old workflow
2021-10-13 03:40:57 -04:00
Luis Fernando Molina 7ed06a5dac Merge pull request #2120 from Raplh2502/develop
Contribution: update of Polus Datamine with work in progress (functional) on volatility analyzer
2021-10-13 03:40:23 -04:00
primoz990 1cd43c5356 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-13 07:49:46 +02:00
primoz990 b8e45d06f3 Revert "User Profile primoz990"
This reverts commit fa7044f036.
2021-10-13 07:48:49 +02:00
primoz990 fa7044f036 User Profile primoz990 2021-10-13 07:43:22 +02:00
Raplh2502 f2535976d7 update of Polus data mine with work in progress on a volatility analyzer 2021-10-12 23:37:20 +02:00
Nuno Amorim 41d43b79d2 Merge branch 'Superalgos:develop' into develop 2021-10-12 21:50:10 +01:00
NAmorim 29363e35df Add icons to MacOS package 2021-10-12 21:48:33 +01:00
mARTin-B78 388f7a6c2a This is my contribution to Superalgos 2021-10-12 20:30:45 +00:00
gitforkgit 688b75434d ("Translation of Telegram Bot, How to Contribute Translations, Docs in English" into german) 2021-10-12 22:18:45 +02:00
mARTin-B78 f529fbfcd5 This is my contribution to Superalgos 2021-10-12 19:58:34 +00:00
gitforkgit f9e736472e (ading how to add paragraph in the translation docs-articel) 2021-10-12 19:58:46 +02:00
gitforkgit 18e6049878 (Added an paragraph and table that eplains why keywords should not be translated and a table with examples) 2021-10-12 19:04:38 +02:00
gitforkgit cdbf14c392 added the Workspace category to the : The docs explained docs 2021-10-12 18:24:41 +02:00
NAmorim 0dea4d6762 Delete old workflow 2021-10-12 16:50:38 +01:00
Luis Fernando Molina c841c2c6bc Merge pull request #2116 from NAmorim/develop
Workflow with MacOS Electron Binary
2021-10-12 11:43:20 -04:00
NAmorim f78866da48 Add Windows icon to build folder 2021-10-12 16:38:03 +01:00
NAmorim e5af65a1aa Enable MacOS build
Small corrections
Enable CI releases
2021-10-12 16:27:53 +01:00
Julian Molina fd51af9c33 Merge pull request #2114 from julian-molina/develop
Contribution: Tested exchanges repagination
2021-10-12 14:12:28 +02:00
Julian Molina eae56944b9 Tested exchanges repagination 2021-10-12 14:05:52 +02:00
Luis Fernando Molina e37ad93b49 Merge pull request #2113 from ssplatt/announce-enter-exit
Add option to have announcement run on Stage Enter or Exit
2021-10-12 03:14:15 -04:00
Brett Taylor 55516b32ca reorg 2021-10-11 18:09:08 -04:00
Brett Taylor 67babe0819 update announcements 2021-10-11 18:02:27 -04:00
Luis Fernando Molina fc02d648f2 Merge pull request #2109 from gitforkgit/develop
Contribution: (Translation of "Tutorial" docs-article until "Initial values")
2021-10-11 17:44:55 -04:00
Luis Fernando Molina 7ff1073be8 Merge pull request #2107 from harrellbm/develop
Hardened Git commands for branch switching
2021-10-11 16:46:10 -04:00
Luis Fernando Molina 5ff772ef38 Merge pull request #2110 from Raplh2502/develop
Contribution: repair references at Master trading mine ; add Quantum and new indicatprs from Alpha data mine to the process dependencies
2021-10-11 16:45:22 -04:00
Luis Fernando Molina 8a53f6b54c Merge pull request #2111 from Luis-Fernando-Molina/develop
Contribution: App Schema Fixes at Related UI Object Project
2021-10-11 16:44:53 -04:00
Luis Fernando Molina 76dfeeb6a2 Manual APP Schema Fixes 2021-10-11 22:42:48 +02:00
gitforkgit 7b6170ba2e (Translation of "Tutorial" docs-article until "Initial values") 2021-10-11 22:29:11 +02:00
Raplh2502 748bbd5624 repair of references at Masters Trading Mine ; add Quantum, Polus and New indicators of Alpha 2021-10-11 22:27:12 +02:00
Luis Fernando Molina 14db83c833 More Actions Fixed 2021-10-11 22:24:42 +02:00
Luis Fernando Molina 6704ae5da4 Upgrade to deal with multiple soolutions 2021-10-11 22:18:38 +02:00
Brenden Harrell 92ac87b93d Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-11 15:18:32 -05:00
Barrypair 80ee398f89 Merge pull request #1 from Superalgos/develop
Develop
2021-10-11 21:35:32 +02:00
Luis Fernando Molina 88c0f2c7d6 Merge pull request #2101 from e-Nut/develop
Contribution: [Dutch translations + typo fixes]
2021-10-11 14:27:10 -04:00
Luis Fernando Molina f57dc3f4cb Merge pull request #2102 from gitforkgit/develop
Contribution: Translation off first chapter The docs Explained and two typos in english original
2021-10-11 14:26:55 -04:00
Luis Fernando Molina de0bd26466 Merge pull request #2105 from NAmorim/develop
Windows installer
2021-10-11 14:24:48 -04:00
Luis Fernando Molina deed317053 Merge pull request #2108 from Luis-Fernando-Molina/develop
Contribution: Extracting Visual-Scripting Project from Foundations
2021-10-11 14:22:10 -04:00
Luis Fernando Molina 81aa44c545 Extracting Visual-Scripting Project from Foundations 2021-10-11 20:19:05 +02:00
Luis Fernando Molina 39c6366b6a Schemas Auto Fixed 2021-10-11 20:13:06 +02:00
Luis Fernando Molina 5ad53267d2 Update httpInterface.js 2021-10-11 20:08:38 +02:00
Luis Fernando Molina 23f13fa0c3 App Schema Auto Fix Feature 2021-10-11 20:07:37 +02:00
Brett Taylor b619a9210d enter and exit announcements working 2021-10-11 13:11:12 -04:00
e-Nut fba0592c95 Merge branch 'Superalgos:develop' into develop 2021-10-11 19:01:45 +02:00
gitforkgit d569f83bcb The rest of the chapters: The Docs Explained 2021-10-11 18:49:32 +02:00
Luis Fernando Molina 9bbabb14ca Final set of actions 2021-10-11 17:08:14 +02:00
Luis Fernando Molina 267f75aa9e Delete UI Object 2021-10-11 17:02:12 +02:00
Brett Taylor 20cbf04596 Merge branch 'develop' into announce-enter-exit 2021-10-11 10:29:38 -04:00
Brett Taylor f3dc04a9a0 initial addition of enter-exit option for announcements 2021-10-11 10:28:28 -04:00
Luis Fernando Molina 2553c8df8d Add Missing Children 2021-10-11 16:25:59 +02:00
Luis Fernando Molina b3d366c000 Add UI Object 2021-10-11 16:19:54 +02:00
Brenden Harrell 67886ead73 clean code and move required modules to platformRoot 2021-10-11 08:01:46 -05:00
B Harrell c4f775b684 Merge branch 'Superalgos:develop' into develop 2021-10-11 07:53:37 -05:00
Brenden Harrell 1bc5e34c9d fix variable scope 2021-10-11 07:48:59 -05:00
Brenden Harrell 9469f4293c type fix 2021-10-11 07:46:58 -05:00
Brenden Harrell bca6192327 final command adjustments 2021-10-11 07:44:57 -05:00
Brenden Harrell bafd07ab9d fix access remote names object 2021-10-11 07:29:32 -05:00
Luis Fernando Molina d4fb3db23c Copy Node Path 2021-10-11 14:22:36 +02:00
Luis Fernando Molina 8dae007be1 Branches 2021-10-11 13:48:41 +02:00
Luis Fernando Molina 0723ec0573 TS Refactorings missing 2021-10-11 13:40:04 +02:00
Luis Fernando Molina eb2d58a689 findNodeInNodeMesh 2021-10-11 13:27:29 +02:00
NAmorim f7c5b27ede Another try at relese build 2021-10-11 12:19:32 +01:00
Luis Fernando Molina f2e0ec2aa6 Node Config 2021-10-11 13:17:41 +02:00
Luis Fernando Molina 5e8e4f5f73 Node Children 2021-10-11 13:15:31 +02:00
Luis Fernando Molina 46d7472ac8 Meshes 2021-10-11 13:08:58 +02:00
NAmorim 5b1b1b9b35 Remove debug info 2021-10-11 12:03:16 +01:00
NAmorim 281beba0be Enable autoUpdate
additions for Mac app
2021-10-11 12:01:16 +01:00
NAmorim 0169214b3f Disable git check when running as packaged app 2021-10-11 12:00:41 +01:00
NAmorim 23b774109a Update to reference Windows installer 2021-10-11 12:00:03 +01:00
NAmorim dd80c80b14 Updates to enable Windows installer 2021-10-11 11:59:09 +01:00
NAmorim 4799d41466 Update paths for RO vitual fs 2021-10-11 11:57:49 +01:00
NAmorim 20aff4f54e Change binaries default folder 2021-10-11 11:57:04 +01:00
gitforkgit 6b74b9cbb2 (Translation into german of chapters 2+3+4 -> "The Docs explained" <- and smaller typo fixes in the english original) 2021-10-11 12:39:28 +02:00
Luis Fernando Molina 45aa5f3dca frames 2021-10-11 12:38:47 +02:00
Luis Fernando Molina d632491d65 Hierarchy 2021-10-11 12:35:22 +02:00
Luis Fernando Molina d8c12c04d9 node clonning 2021-10-11 12:30:26 +02:00
Luis Fernando Molina 9c28aee88b VisualScritingFunctionLibraryUiObjectsFromNodes 2021-10-11 12:26:25 +02:00
gitforkgit 9c92080d79 (Translation into german of chapters 2+3+4 -> "The Docs explained" <- and smaller typo fixes in the english original) 2021-10-11 12:17:26 +02:00
Luis Fernando Molina 423a36c1b0 Update FloatingObject.js 2021-10-11 12:16:56 +02:00
Luis Fernando Molina 069e9ade9a deleteUIObject 2021-10-11 12:14:41 +02:00
Luis Fernando Molina 478cb082c8 chainAttachNode 2021-10-11 12:12:43 +02:00
Luis Fernando Molina 6444d222f2 Reference Attach Detach 2021-10-11 12:11:53 +02:00
Luis Fernando Molina 1f4fee8904 Visual Scripting Modules moved in from Foundations 2021-10-11 12:05:14 +02:00
Luis Fernando Molina cd44cc0d72 Merge pull request #2104 from Smidy13/develop
Bug Fix: NPM Install to Fix where Electron not in package.lock file
2021-10-11 04:57:07 -04:00
Brenden Harrell 2f889aa341 adjust getting remotes 2021-10-10 22:14:35 -05:00
Brenden Harrell b259db992e more changes 2021-10-10 22:12:03 -05:00
Brenden Harrell 2aedf8d408 condition for setting upstream 2021-10-10 22:07:25 -05:00
Brenden Harrell f00d0fe567 final command setup (hopfully) 2021-10-10 22:01:10 -05:00
Brenden Harrell ae7eaad7ba break up git commands 2021-10-10 21:52:59 -05:00
Smidy13 3b2c62b4e4 Bug Fix: NPM Install to Fix where Electron not in package.lock file 2021-10-11 14:53:03 +13:00
gitforkgit eb4e78283e Translation into german of chapters 2+3+4 -> "The Docs explained" <- and smaller typo fixes in the english original 2021-10-11 00:17:59 +02:00
gitforkgit aac19ed53e Translation off first chapter The docs Explained and two typos in english original 2021-10-10 20:52:16 +02:00
eNut cc97a654b9 [Dutch translations + typo fixes] 2021-10-10 20:39:12 +02:00
Luis Fernando Molina 3294832c39 Merge pull request #2100 from Superalgos/plugins-docs
Plugins docs into develop
2021-10-10 12:25:15 -04:00
Luis Fernando Molina 5380122b7f Merge pull request #2099 from Luis-Fernando-Molina/develop
Contribution: Twitter Bot Moved
2021-10-10 06:44:40 -04:00
Luis Fernando Molina 7d9971a1a6 Twitter Bot Moved 2021-10-10 12:44:12 +02:00
Luis Fernando Molina 956460df10 Merge pull request #2098 from Luis-Fernando-Molina/develop
Contribution: Social-Bots Slack Icon
2021-10-10 06:42:05 -04:00
Luis Fernando Molina 01b79c9dee Update slack-bot.png 2021-10-10 12:41:41 +02:00
Luis Fernando Molina 4d3dc3c1fc Merge pull request #2097 from Luis-Fernando-Molina/develop
Contribution: Social-Bots project extracted from Fundations
2021-10-10 06:41:07 -04:00
Luis Fernando Molina 517cc26446 Update ActionSwitch.js 2021-10-10 12:40:19 +02:00
Luis Fernando Molina 1b38361935 Delete SocialBotsFunctions.js 2021-10-10 12:39:42 +02:00
Luis Fernando Molina 86259f9ed1 Delete SocialBots.js 2021-10-10 12:39:07 +02:00
Luis Fernando Molina 58309116b9 Delete social-bots.json 2021-10-10 12:37:39 +02:00
Luis Fernando Molina 99f76678f7 Delete slack-bot.png 2021-10-10 12:36:15 +02:00
Luis Fernando Molina dd20afb9e8 Social-Bots project extracted from Fundations 2021-10-10 12:30:46 +02:00
Luis Fernando Molina 025792fe42 UI Bug Fixes 2021-10-10 12:12:44 +02:00
Luis Fernando Molina 48ebaeb925 Bug Fixes plus icons 2021-10-10 11:45:14 +02:00
Luis Fernando Molina db6b6603af Refactoring project name 2021-10-10 11:35:09 +02:00
Luis Fernando Molina c187c276df Action Switch upgraded 2021-10-10 11:26:09 +02:00
Luis Fernando Molina 3405818181 Docs-Nodes moved 2021-10-10 11:19:06 +02:00
Luis Fernando Molina eca6a9bf47 Schemas updated with project 2021-10-10 11:13:29 +02:00
Luis Fernando Molina 23c1b17e2d Create TwitterBot.js 2021-10-10 11:02:52 +02:00
Luis Fernando Molina d3bf069fd6 Merge pull request #2096 from e-Nut/develop
Contribution: Translations Dutch
2021-10-10 04:31:22 -04:00
Luis Fernando Molina ee0872a472 Merge pull request #2095 from primoz990/plugins-docs
Contribution: My Superalgos Review
2021-10-10 04:30:34 -04:00
eNut f6e7dc0217 [more Dutch Translations] 2021-10-10 10:29:26 +02:00
eNut 5d4ecbb691 This is my contribution to Superalgos 2021-10-10 09:40:25 +02:00
primoz990 96a6206c59 My Superalgos Review 2021-10-10 07:52:28 +02:00
Luis Fernando Molina be6289fe22 Merge pull request #2093 from PLuv/develop
Fix: Error handling for Fisher Indicator
2021-10-09 12:11:06 -04:00
Philip Love c6e19cdf2a Fix: Error handling for Fisher Indicator 2021-10-09 12:05:26 -04:00
Luis Fernando Molina 8f79f39723 Schemas with project fixed 2021-10-09 10:23:42 +02:00
Luis Fernando Molina 780fce04ff Schemas and Icons moved 2021-10-09 10:15:55 +02:00
Luis Fernando Molina 780f975e7c Social-Bots Project 2021-10-09 10:08:33 +02:00
Luis Fernando Molina d3f1ade376 Merge pull request #2092 from e-Nut/develop
Contribution: [1st tutorial step 5 dutch translation]
2021-10-09 02:56:46 -04:00
Luis Fernando Molina 588a3c95ea Merge pull request #2091 from Chococoin/develop
Add missing images.
2021-10-09 02:56:12 -04:00
eNut 8f3f877810 [1st tutorial step 5 dutch translation] 2021-10-09 08:35:47 +02:00
Germán Lugo c1dfd1b169 Add missing images. 2021-10-08 21:28:58 +02:00
Luis Fernando Molina 4469ee99c7 Merge pull request #2089 from harrellbm/develop
Run node setup on branch switch
2021-10-08 13:19:04 -04:00
Brenden Harrell baf64da77c almost there 2021-10-08 11:10:05 -05:00
Brenden Harrell 80b6d27611 more adjustments 2021-10-08 10:05:18 -05:00
Brenden Harrell 08d30ca390 adjust git commands 2021-10-08 09:57:10 -05:00
Brenden Harrell 7adf7f7181 remove git from raw commands 2021-10-08 08:54:22 -05:00
Brenden Harrell 87b05e5ecd add clean git branch commands 2021-10-08 08:50:06 -05:00
Brenden Harrell 4033f4019f Merge branch 'develop' of https://github.com/harrellbm/Superalgos into develop 2021-10-08 08:26:09 -05:00
Brenden Harrell 73823b4152 final adjustments 2021-10-08 08:17:00 -05:00
Brenden Harrell f725a977de convert returned buffer to string 2021-10-08 08:05:42 -05:00
Brenden Harrell 424df55bcd more adjustments 2021-10-08 08:00:54 -05:00
Brenden Harrell 1e5df05b2c adjust error code response 2021-10-08 07:51:32 -05:00
Luis Fernando Molina 18685d49dd Merge pull request #2082 from Barrypair/plugins-docs
Contribution: My Superalgos Review
2021-10-08 08:18:49 -04:00
Barrypair b6197de956 Delete superalgos-project-review-031-superalgos-review-your-review-title.json 2021-10-08 12:30:54 +02:00
Luis Fernando Molina d42b59dfa2 Merge pull request #2088 from Luis-Fernando-Molina/develop
Contribution: Bug Fix Installing Markets
2021-10-08 05:27:01 -04:00
Luis Fernando Molina 2df3a569b4 DeepScan Bug Fix 2021-10-08 11:25:35 +02:00
Luis Fernando Molina 0d7fe35928 Bug Fixes Installing Markets 2021-10-08 11:22:25 +02:00
Luis Fernando Molina 5e2e370c41 Update UiObjectsFromNodes.js 2021-10-08 10:46:20 +02:00
Luis Fernando Molina cd40e8ec48 Logging improved 2021-10-08 10:24:18 +02:00
Luis Fernando Molina 103746b007 Merge pull request #2086 from quantum8/develop
Spelling fix
2021-10-08 03:36:57 -04:00
Luis Fernando Molina 6bf508fc34 Merge pull request #2087 from Tentacule23/develop
Contribution: Lost_Nodes_Fix_And_Node_Rescue Tentacule23
2021-10-08 03:36:23 -04:00
Tentacule23 13dfe99d7c Lost_Nodes_Fix_And_Node_Rescue Tentacule23 2021-10-07 20:10:16 -04:00
quantum8 7c44fc3761 Merge branch 'Superalgos:develop' into develop 2021-10-08 08:20:33 +10:00
harrellbm eb741cd9d3 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-07 15:35:05 -05:00
Luis Fernando Molina 8786c87f5e Merge pull request #2083 from e-Nut/develop
Contribution: NL dutch flag SVG
2021-10-07 16:25:21 -04:00
Luis Fernando Molina 142942838b Merge pull request #2084 from Raplh2502/develop
Contribution: Creation of 01 min candle counter for 1-hs in Polus datamine + modification of codenames in Monte-Carlo indicator due to unhandling of the "-"
2021-10-07 16:23:35 -04:00
Raplh2502 a9a33ae930 Creation of 01 min candle counter for 1-hs in Polus datamine + modification of codenames in Monte-Carlo indicator due to unhandling of the "-" 2021-10-07 21:47:26 +02:00
eNut 363e225a87 This is my contribution to Superalgos 2021-10-07 21:01:28 +02:00
Barrypair 38036af25d My Superalgos Review 2021-10-07 20:48:34 +02:00
Luis Fernando Molina 04c5010e86 Merge pull request #2076 from harrellbm/temp
Add Dutch Language Footer
2021-10-07 12:11:04 -04:00
Luis Fernando Molina acf9d47467 Merge pull request #2075 from NAmorim/develop
Contribution - Application binaries (electron wrapped)
2021-10-07 12:08:11 -04:00
Barrypair ed0c83dbb2 My Superalgos Review 2021-10-07 17:44:33 +02:00
NAmorim 9cf1ede9f2 Fix typo 2021-10-07 16:04:12 +01:00
NAmorim 80c93c226c Checking Github Actions 2021-10-07 16:00:21 +01:00
harrellbm 39540f6850 finish footer declaration 2021-10-07 09:24:43 -05:00
harrellbm 6885c2ded8 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-07 08:26:13 -05:00
harrellbm 1a4bae9e86 Add Dutch Language Footer 2021-10-07 08:11:53 -05:00
harrellbm fb7f26ba6a Add Dutch Language Footer 2021-10-07 08:03:24 -05:00
NAmorim c1fe2e975d Correction for arguments 2021-10-07 11:28:06 +01:00
NAmorim 37587029d2 Binaries build scripts 2021-10-07 08:49:29 +01:00
NAmorim c0c2f10228 Path update to run inside electron package 2021-10-07 08:49:07 +01:00
NAmorim 1b04aa32e7 Electron wrapper for binaries 2021-10-07 08:48:41 +01:00
quantum8 8e379fe853 Update Utilities.js
Spelling fix
2021-10-07 10:35:45 +10:00
Luis Fernando Molina c5279aa348 Merge pull request #2073 from EvaMaria70/develop
Contribution: This is my contribution to Superalgos
2021-10-06 15:14:24 -04:00
EvaMaria70 5a3d40169c This is my contribution to Superalgos 2021-10-06 20:44:15 +02:00
EvaMaria70 9afff7174d This is my contribution to Superalgos 2021-10-06 20:33:04 +02:00
EvaMaria70 f789e2d578 This is my contribution to Superalgos 2021-10-06 20:01:24 +02:00
Luis Fernando Molina 3d10ecf3f2 Merge pull request #2068 from EvaMaria70/develop
Contribution: This is my contribution to Superalgos
2021-10-06 13:58:02 -04:00
Luis Fernando Molina 84f2988560 Merge pull request #2070 from ssplatt/update-twitter-bot
Fix twitter bot reference name to fix 'delete node'
2021-10-06 13:56:39 -04:00
Luis Fernando Molina 168cb749ee Merge pull request #2071 from ssplatt/update-data-dirs
update path to persistent data to match new locations
2021-10-06 13:56:23 -04:00
Luis Fernando Molina e24d57dded Changes in User Profile done by Profile Owner e-Nut automatically merged by Superalgos.
Contribution: update user profile
2021-10-06 13:55:54 -04:00
eNut db4ad1b0e4 This is my contribution to Superalgos 2021-10-06 19:47:00 +02:00
ssplatt 87d2252c43 update path to persistent data to match new locations 2021-10-06 12:48:54 -04:00
ssplatt 2fbcd3fa57 fix twitter bot reference name to fix 'delete node' 2021-10-06 12:24:18 -04:00
EvaMaria70 9d2acc5a58 This is my contribution to Superalgos 2021-10-06 17:07:48 +02:00
EvaMaria70 060418e4d6 This is my contribution to Superalgos 2021-10-06 17:03:34 +02:00
EvaMaria70 59f0202485 This is my contribution to Superalgos 2021-10-06 16:27:55 +02:00
EvaMaria70 1ec3f656a0 This is my contribution to Superalgos 2021-10-06 14:50:53 +02:00
EvaMaria70 03b2b1ffda This is my contribution to Superalgos 2021-10-06 14:30:19 +02:00
EvaMaria70 f27034652e This is my contribution to Superalgos 2021-10-06 13:56:07 +02:00
EvaMaria70 ed2f8c7497 This is my contribution to Superalgos 2021-10-06 13:50:30 +02:00
EvaMaria70 255315dd64 This is my contribution to Superalgos 2021-10-06 13:03:45 +02:00
Luis Fernando Molina 2dae62dbc2 Merge pull request #2067 from Luis-Fernando-Molina/develop
Contribution: Beta 12 Labels
2021-10-06 06:50:39 -04:00
Luis Fernando Molina 0bf9caf2c1 Beta 12 Labels 2021-10-06 12:50:00 +02:00
Luis Fernando Molina 7018e43f5e Merge pull request #2066 from Luis-Fernando-Molina/develop
Contribution: deepscan bug fixes
2021-10-06 06:48:26 -04:00
Luis Fernando Molina 7c552f55a1 Merge pull request #2065 from EvaMaria70/develop
Contribution: This is my contribution to Superalgos
2021-10-06 06:47:31 -04:00
Luis Fernando Molina 4a34245410 deepscan bug fixes 2021-10-06 12:46:54 +02:00
Luis Fernando Molina 44dfb12195 Merge pull request #2064 from Luis-Fernando-Molina/develop
Contribution: Extracting from Foundations several projects: Data-Mining, Algorithmic Trading and Community Plugins, Machine Learning
2021-10-06 06:39:30 -04:00
Luis Fernando Molina 08a56a6026 Removing files for Beta 12 2021-10-06 12:37:59 +02:00
Luis Fernando Molina 2905730db6 Update CircularMenuItem.js 2021-10-06 12:37:00 +02:00
Luis Fernando Molina 540f18cd69 ProjectSchema Beta 12 2021-10-06 12:35:39 +02:00
Luis Fernando Molina c6748a8466 conflicts on file trading and learning session functions solved 2021-10-06 12:34:08 +02:00
Luis Fernando Molina b3d9a3cc80 conflicts on file CircularMenuItem.js solved 2021-10-06 12:28:38 +02:00
EvaMaria70 0fd12e1f1a This is my contribution to Superalgos 2021-10-06 12:24:17 +02:00
Luis Fernando Molina 259396c205 conflicts Project Schema Solved 2021-10-06 11:49:51 +02:00
EvaMaria70 e98fb2063a This is my contribution to Superalgos 2021-10-06 11:41:58 +02:00
Luis Fernando Molina 89fdec328f Action Switches Fixed 2021-10-06 11:17:07 +02:00
Luis Fernando Molina 59b4703152 Changes in User Profile done by Profile Owner e-Nut automatically merged by Superalgos.
Contribution: User Profile [e-Nut]
2021-10-05 13:24:02 -04:00
eNut 03d177f7a7 User Profile [e-Nut] 2021-10-05 19:23:46 +02:00
Luis Fernando Molina 816720f80f Changes in User Profile done by Profile Owner gitforkgit automatically merged by Superalgos.
Contribution: User Profile gitforkgit
2021-10-05 10:21:46 -04:00
Luis Fernando Molina 507d17aa69 Changes in User Profile done by Profile Owner quantum8 automatically merged by Superalgos.
Updated user profile again for governance claims
2021-10-05 10:21:37 -04:00
Luis Fernando Molina 4eb903b908 Merge pull request #2052 from prepheadrus/develop
Contribution: This is my contribution to Superalgos
2021-10-05 10:18:14 -04:00
Luis Fernando Molina 4e46b8c6b7 Merge pull request #2056 from EvaMaria70/develop
Contribution: This is my contribution to Superalgos
2021-10-05 10:17:29 -04:00
Luis Fernando Molina fc477d4f88 Merge pull request #2059 from piyanthak/develop
Develop
2021-10-05 10:16:12 -04:00
Luis Fernando Molina cd5029aaa0 Merge pull request #2058 from piyanthak/plugins-docs
Plugins docs
2021-10-05 10:09:25 -04:00
Luis Fernando Molina e288edbfa9 Merge pull request #2062 from ssplatt/brewfile
Update READMEs, add brewfile, add npm script aliases
2021-10-05 10:05:04 -04:00
EvaMaria70 f4faf0959e This is my contribution to Superalgos 2021-10-05 15:51:56 +02:00
ssplatt 1cd52b8ed1 add python to brewfile for tensorflow 2021-10-04 17:25:51 -04:00
ssplatt b71fd5282b update readmes, add brewfile, add npm scripts 2021-10-04 17:25:02 -04:00
piyanthak 28da06e485 Add files via upload 2021-10-05 00:24:14 +05:30
Julian Molina 52f15ce37c Merge pull request #2060 from e-Nut/plugins-docs
Contribution: [Added review]
2021-10-04 20:51:36 +02:00
piyanthak 0755e4dc34 Tested Ex.
Correction of binance
2021-10-05 00:13:05 +05:30
EvaMaria70 c445691bc9 This is my contribution to Superalgos 2021-10-04 19:58:03 +02:00
eNut 489a6ed7a2 [Added review] 2021-10-04 19:18:08 +02:00
piyanthak 7aa52e4ff3 Add files via upload 2021-10-04 21:36:12 +05:30
piyanthak 2697689c3c Add files via upload 2021-10-04 21:29:30 +05:30
piyanthak 9941896c4e Add files via upload 2021-10-04 21:28:09 +05:30
piyanthak ba94eba05d Add files via upload 2021-10-04 20:45:10 +05:30
piyanthak 557817ff91 Add files via upload 2021-10-04 20:43:54 +05:30
B Harrell a840c2034a Merge branch 'Superalgos:develop' into develop 2021-10-04 07:22:57 -05:00
EvaMaria70 823c920baf This is my contribution to Superalgos 2021-10-04 13:54:04 +02:00
quantum8 99b8734417 Updated user profile again for governance claims 2021-10-04 09:08:02 +10:00
EvaMaria70 fed1b8d0ec This is my contribution to Superalgos 2021-10-03 23:57:22 +02:00
EvaMaria70 fc3419e2c1 This is my contribution to Superalgos 2021-10-03 23:39:45 +02:00
EvaMaria70 e43f3aac01 This is my contribution to Superalgos 2021-10-03 23:28:44 +02:00
EvaMaria70 833691a2b7 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-03 21:31:23 +02:00
EvaMaria70 7e4484f0b0 This is my contribution to Superalgos 2021-10-03 20:13:36 +02:00
gitforkgit 62a41aeb31 User Profile gitforkgit 2021-10-03 19:56:50 +02:00
Luis Fernando Molina 0ebed3095f Merge pull request #2054 from Superalgos/develop
Develop into Master: Token Distribution Beta 10 and 11 done.
2021-10-03 12:38:42 -04:00
Luis Fernando Molina 5b2ef4ab31 First SA Token Distribution by the Governance System 2021-10-03 18:35:40 +02:00
EvaMaria70 0c8dae7f37 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-03 17:59:02 +02:00
Luis Fernando Molina 629e6b6cff Merge pull request #2053 from julian-molina/develop
Contribution: Governance tuning
2021-10-03 10:40:09 -04:00
Julian Molina 2f7b1bcb4b Governance tuning 2021-10-03 16:18:40 +02:00
prepheadrus 65358f6404 This is my contribution to Superalgos 2021-10-03 16:48:18 +03:00
prepheadrus 76c191c7a8 This is my contribution to Superalgos 2021-10-03 16:42:30 +03:00
prepheadrus 894ccc72db This is my contribution to Superalgos 2021-10-03 16:30:41 +03:00
Luis Fernando Molina ca39237d97 Merge pull request #2051 from julian-molina/develop
Contribution: Governance tunning
2021-10-03 09:00:47 -04:00
Julian Molina 947a74d07e Governance tunning 2021-10-03 14:53:58 +02:00
Luis Fernando Molina ed903a2f99 Changes in User Profile done by Profile Owner prepheadrus automatically merged by Superalgos.
Contribution: This is my contribution to Superalgos
2021-10-03 08:51:42 -04:00
prepheadrus a2ae601e2e This is my contribution to Superalgos 2021-10-03 15:50:44 +03:00
Luis Fernando Molina 9a9ea8e338 Changes in User Profile done by Profile Owner prepheadrus automatically merged by Superalgos.
Contribution: This is my contribution to Superalgos
2021-10-03 08:21:42 -04:00
prepheadrus 4f1c4f179f This is my contribution to Superalgos 2021-10-03 15:20:45 +03:00
Luis Fernando Molina 2fc59ea595 Changes in User Profile done by Profile Owner prepheadrus automatically merged by Superalgos.
Contribution: This is my contribution to Superalgos
2021-10-03 07:55:41 -04:00
prepheadrus 8037ccf3c0 This is my contribution to Superalgos 2021-10-03 14:53:59 +03:00
Luis Fernando Molina 79d7ebad58 Changes in User Profile done by Profile Owner prepheadrus automatically merged by Superalgos.
Contribution: This is my contribution to Superalgos
2021-10-03 07:37:41 -04:00
prepheadrus cd5e89bedc This is my contribution to Superalgos 2021-10-03 14:37:11 +03:00
Luis Fernando Molina c4f5db9bb1 Changes in User Profile done by Profile Owner prepheadrus automatically merged by Superalgos.
Contribution: This is my contribution to Superalgos
2021-10-03 07:29:41 -04:00
prepheadrus e89d345e85 This is my contribution to Superalgos 2021-10-03 14:28:47 +03:00
Luis Fernando Molina f9de125bfd Changes in User Profile done by Profile Owner bayaderos automatically merged by Superalgos.
Contribution: This is my contribution to Superalgos
2021-10-03 06:43:35 -04:00
Luis Fernando Molina 5001fbc474 Changes in User Profile done by Profile Owner prepheadrus automatically merged by Superalgos.
Contribution: This is my contribution to Superalgos
2021-10-03 06:43:31 -04:00
Luis Fernando Molina cc75c7d630 npm update 2021-10-03 12:39:21 +02:00
prepheadrus 93dee2d28c This is my contribution to Superalgos 2021-10-03 13:31:38 +03:00
prepheadrus 65d535ef2d Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-03 13:17:04 +03:00
bayaderos b782cf277d This is my contribution to Superalgos 2021-10-03 12:00:29 +02:00
bayaderos 0ebf4a7dbd This is my contribution to Superalgos 2021-10-03 11:47:45 +02:00
Luis Fernando Molina 22d4ad532d Bug Fixed with Time Frame Filters 2021-10-03 11:29:00 +02:00
Luis Fernando Molina 316dd6da66 Bug Fixed - Time Frames Filter 2021-10-03 11:27:19 +02:00
Luis Fernando Molina 1104a07808 Changes in User Profile done by Profile Owner superharoun automatically merged by Superalgos.
Contribution: superharoun profile modifications
2021-10-03 03:28:56 -04:00
Haroun b68454a392 superharoun profile modifications 2021-10-03 09:28:46 +02:00
prepheadrus 8adee4168c This is my contribution to Superalgos 2021-10-03 03:57:09 +03:00
Luis Fernando Molina 99cf71878e Changes in User Profile done by Profile Owner prepheadrus automatically merged by Superalgos.
Contribution: This is my contribution to Superalgos
2021-10-02 20:23:53 -04:00
prepheadrus a0bc67c316 This is my contribution to Superalgos 2021-10-03 03:23:24 +03:00
Luis Fernando Molina ebbe3d78de Changes in User Profile done by Profile Owner prepheadrus automatically merged by Superalgos.
Contribution: This is my contribution to Superalgos
2021-10-02 20:15:52 -04:00
prepheadrus 97d9753621 This is my contribution to Superalgos 2021-10-03 03:14:40 +03:00
Luis Fernando Molina 11ee1f585e Changes in User Profile done by Profile Owner prepheadrus automatically merged by Superalgos.
Contribution: This is my contribution to Superalgos
2021-10-02 20:04:52 -04:00
Luis Fernando Molina 4a29bcc10d Changes in User Profile done by Profile Owner PLuv automatically merged by Superalgos.
Profile Tweak #4758094312
2021-10-02 20:03:53 -04:00
prepheadrus c14ce4f5f5 This is my contribution to Superalgos 2021-10-03 03:03:47 +03:00
Philip Love baa71182ee Profile Tweak #4758094312 2021-10-02 20:01:55 -04:00
Luis Fernando Molina 3ebcbfea24 Changes in User Profile done by Profile Owner prepheadrus automatically merged by Superalgos.
Contribution: This is my contribution to Superalgos
2021-10-02 19:54:52 -04:00
prepheadrus 8e34abfadc This is my contribution to Superalgos 2021-10-03 02:54:13 +03:00
Luis Fernando Molina ea4d9eba29 Changes in User Profile done by Profile Owner prepheadrus automatically merged by Superalgos.
Contribution: This is my contribution to Superalgos
2021-10-02 19:45:53 -04:00
prepheadrus 5ee9a9858a This is my contribution to Superalgos 2021-10-03 02:44:49 +03:00
prepheadrus ed2c96e039 This is my contribution to Superalgos 2021-10-03 02:34:57 +03:00
prepheadrus 4cb5d8b3bd This is my contribution to Superalgos 2021-10-03 02:19:14 +03:00
prepheadrus 73c5ffb99b This is my contribution to Superalgos 2021-10-03 02:13:40 +03:00
Luis Fernando Molina 2f8f1451c6 Changes in User Profile done by Profile Owner quantum8 automatically merged by Superalgos.
User profile update
2021-10-02 18:44:52 -04:00
quantum8 d2bdea6f0c Merge branch 'develop' of https://github.com/quantum8/Superalgos into develop 2021-10-03 08:41:12 +10:00
quantum8 0d157bb98e Updated user profile for governance claims 2021-10-03 08:40:07 +10:00
Luis Fernando Molina 275af0cf0c Changes in User Profile done by Profile Owner teehanming automatically merged by Superalgos.
update profile
2021-10-02 18:24:51 -04:00
teehanming 59306ebb87 update profile 2021-10-03 06:23:21 +08:00
Luis Fernando Molina 38c1d5c0fc Changes in User Profile done by Profile Owner Smidy13 automatically merged by Superalgos.
Profile: Update to Smidy13 Profile
2021-10-02 15:37:50 -04:00
Smidy13 8ce9b412f1 Profile: Update to Smidy13 Profile 2021-10-03 08:36:56 +13:00
Luis Fernando Molina e9289a6b95 UX improvement 2021-10-02 19:48:49 +02:00
Luis Fernando Molina c37469f75b Changes in User Profile done by Profile Owner PLuv automatically merged by Superalgos.
User-Profile PLuv
2021-10-02 12:36:49 -04:00
Philip Love 877432808b User-Profile PLuv 2021-10-02 12:35:50 -04:00
Luis Fernando Molina 060770a409 Merge pull request #2031 from Superalgos/plugins-docs
Plugins docs into Develop
2021-10-02 12:22:13 -04:00
Luis Fernando Molina 272c3cf04b Merge pull request #2030 from Superalgos/develop
Develop into Plugins Docs
2021-10-02 12:21:40 -04:00
Luis Fernando Molina ada83e4c2c Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-02 18:10:38 +02:00
Luis Fernando Molina 2547cab9fb Las voting touches 2021-10-02 18:10:29 +02:00
Luis Fernando Molina e172dbf4f4 Changes in User Profile done by Profile Owner BillyYan13 automatically merged by Superalgos.
Contribution: User Profile [BillyYan13]
2021-10-02 11:33:48 -04:00
Billy d03c4f00d2 User Profile [BillyYan13] 2021-10-02 17:32:50 +02:00
Luis Fernando Molina 2bd15150e3 More votes fine tunning 2021-10-02 16:39:59 +02:00
Luis Fernando Molina 2023fdd03a Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-02 16:39:46 +02:00
Luis Fernando Molina 7b91d9d22c Changes in User Profile done by Profile Owner cozed-gh automatically merged by Superalgos.
Contribution: User Profile cozed-gh [final, for sure!]
2021-10-02 09:59:48 -04:00
cozed-gh 83141a61b3 User Profile cozed-gh [final, for sure!] 2021-10-02 15:59:12 +02:00
Luis Fernando Molina 52706719e6 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-02 15:56:58 +02:00
Luis Fernando Molina e1c7ae5394 Changes in User Profile done by Profile Owner ssplatt automatically merged by Superalgos.
update ssplatt profile
2021-10-02 09:55:48 -04:00
Brett Taylor 136c0a4deb update ssplatt profile 2021-10-02 09:51:20 -04:00
Luis Fernando Molina 14f386cf86 Merge pull request #2022 from BillyYan13/develop
Contribution: User Profile [BillyYan13]
2021-10-02 09:32:18 -04:00
Billy 7c13b51b7f User Profile [BillyYan13] 2021-10-02 15:29:41 +02:00
Billy c7e457e357 User Profile [BillyYan13] 2021-10-02 15:21:39 +02:00
EvaMaria70 69f6c6c5f3 This is my contribution to Superalgos 2021-10-02 15:11:34 +02:00
Luis Fernando Molina 92c5a7e7e9 Voting Fine Tunning 2021-10-02 15:08:15 +02:00
Luis Fernando Molina 0a9b1c9d48 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-02 13:37:33 +02:00
Luis Fernando Molina c47033adc5 Voting Adjustments 2021-10-02 13:37:22 +02:00
Luis Fernando Molina 35c54b0186 Changes in User Profile done by Profile Owner superharoun automatically merged by Superalgos.
update superharoun profile
2021-10-02 07:36:46 -04:00
Haroun 0fe01e6371 superharoun update 2021-10-02 13:00:40 +02:00
Haroun 6f40d41db9 Revert "This is my contribution to Superalgos"
This reverts commit 21d59c2395.
2021-10-02 13:00:40 +02:00
Luis Fernando Molina 85a218936f Update .gitignore 2021-10-02 11:41:00 +02:00
Luis Fernando Molina df79a409eb Tidy workspace 2021-10-02 11:37:26 +02:00
Luis Fernando Molina b07f3b8566 Bug Fixed with Token Delegation 2021-10-02 11:27:18 +02:00
Haroun 97ff78d359 Merge branch 'Superalgos:develop' into develop 2021-10-02 10:56:03 +02:00
Haroun 21d59c2395 This is my contribution to Superalgos 2021-10-02 10:52:11 +02:00
Luis Fernando Molina 21c95922e0 Merge pull request #2005 from julian-molina/develop
Contribution: Governance tuning
2021-10-02 04:04:21 -04:00
Julian Molina 97ceb9f785 Governance tuning 2021-10-02 10:04:15 +02:00
Luis Fernando Molina 5a390a3c03 Update Token-Distribution-All-User-Profiles.json 2021-10-02 09:59:06 +02:00
Luis Fernando Molina ea78609f7c Changes in User Profile done by Profile Owner EvaMaria70 automatically merged by Superalgos.
Contribution: This is my contribution to Superalgos
2021-10-02 03:35:44 -04:00
Luis Fernando Molina 7e7849fd24 Merge pull request #2003 from BillyYan13/plugins-docs
Contribution: My Superalgos Review
2021-10-02 03:35:22 -04:00
EvaMaria70 c3715d7126 This is my contribution to Superalgos 2021-10-02 09:34:48 +02:00
Luis Fernando Molina 71946bc5d5 Update welcome-to-superalgos-003-tutorial-welcome-to-superalgos.json 2021-10-02 09:33:28 +02:00
Billy 15ede2f4f4 My Superalgos Review 2021-10-02 09:30:51 +02:00
Luis Fernando Molina 14ccd705c4 Merge pull request #2001 from Smidy13/develop
Improvement: Improved Error Handling for Missing Images
2021-10-02 02:38:56 -04:00
Luis Fernando Molina 0fefcabb17 Merge pull request #1996 from prepheadrus/develop
Contribution: This is my contribution to Superalgos
2021-10-02 02:38:11 -04:00
Smidy13 516535b8e4 Spelling: Correcting Spelling in Splash Screen Text 2021-10-02 18:43:33 +13:00
Smidy13 b6a92cda57 Improvement: Improved Error Handling for Missing Images 2021-10-02 18:36:29 +13:00
Luis Fernando Molina 68be25a50f Changes in User Profile done by Profile Owner gustavojuri automatically merged by Superalgos.
Contribution: This is my contribution to Superalgos
2021-10-01 17:26:39 -04:00
Luis Fernando Molina 4e7d6f5203 Changes in User Profile done by Profile Owner rominastabile automatically merged by Superalgos.
Contribution: This is my contribution to Superalgos
2021-10-01 17:10:39 -04:00
rominastabile 20f90952a3 This is my contribution to Superalgos 2021-10-01 18:09:42 -03:00
rominastabile 0fc0ec71dc This is my contribution to Superalgos 2021-10-01 17:55:52 -03:00
prepheadrus e6b4445fef This is my contribution to Superalgos 2021-10-01 23:54:14 +03:00
prepheadrus dfc045f2cf This is my contribution to Superalgos 2021-10-01 23:41:41 +03:00
Luis Fernando Molina fcc5a8b39f Merge pull request #1991 from prepheadrus/plugins-docs
Contribution: This is my contribution to Superalgos
2021-10-01 16:38:11 -04:00
Luis Fernando Molina 884ff3cbbb Merge pull request #1992 from prepheadrus/develop
Contribution: This is my contribution to Superalgos
2021-10-01 16:36:36 -04:00
Luis Fernando Molina c007d3f7ae Merge pull request #1986 from EvaMaria70/develop
Contribution: This is my contribution to Superalgos
2021-10-01 16:35:58 -04:00
prepheadrus a8fde78b50 This is my contribution to Superalgos 2021-10-01 23:33:20 +03:00
Luis Fernando Molina 51ad32b29a Changes in User Profile done by Profile Owner rominastabile automatically merged by Superalgos.
Contribution: This is my contribution to Superalgos
2021-10-01 16:30:40 -04:00
rominastabile f04d9c5c5f This is my contribution to Superalgos 2021-10-01 17:29:51 -03:00
prepheadrus c42ee1e41e This is my contribution to Superalgos 2021-10-01 23:27:03 +03:00
prepheadrus 1a48645f68 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-01 23:14:32 +03:00
Luis Fernando Molina 06edcd1e91 Changes in User Profile done by Profile Owner Smidy13 automatically merged by Superalgos.
Profile: Smidy13 Profile Update
2021-10-01 16:12:40 -04:00
Smidy13 bad1f28883 Profile: Smidy13 Profile Update 2021-10-02 09:11:39 +13:00
prepheadrus 36e78ad75c This is my contribution to Superalgos 2021-10-01 22:41:54 +03:00
Luis Fernando Molina 1706874099 Changes in User Profile done by Profile Owner Raplh2502 automatically merged by Superalgos.
Contribution: percentage correction in profile
2021-10-01 15:18:38 -04:00
Luis Fernando Molina c0c03753a8 Changes in User Profile done by Profile Owner prepheadrus automatically merged by Superalgos.
Contribution: This is my contribution to Superalgos
2021-10-01 15:17:38 -04:00
Raplh2502 53948cddb5 percentage correction in profile 2021-10-01 20:17:32 +01:00
prepheadrus 41d42e07a0 This is my contribution to Superalgos 2021-10-01 22:17:14 +03:00
Luis Fernando Molina ae6030e9a3 Changes in User Profile done by Profile Owner prepheadrus automatically merged by Superalgos.
Contribution: This is my contribution to Superalgos
2021-10-01 15:03:38 -04:00
prepheadrus c03dba4e02 This is my contribution to Superalgos 2021-10-01 22:02:57 +03:00
Luis Fernando Molina 2a81376c19 Changes in User Profile done by Profile Owner NAmorim automatically merged by Superalgos.
User profile update - Take 3746532
2021-10-01 14:29:38 -04:00
NAmorim ac182bfe3d User profile update - Take 3746532 2021-10-01 19:27:11 +01:00
EvaMaria70 d07b836ffa This is my contribution to Superalgos 2021-10-01 19:51:10 +02:00
EvaMaria70 7467ce8ee9 This is my contribution to Superalgos 2021-10-01 19:32:41 +02:00
Luis Fernando Molina 889a796798 Changes in User Profile done by Profile Owner gustavohcorradi automatically merged by Superalgos.
Contribution: This is my contribution to Superalgos
2021-10-01 13:28:37 -04:00
Luis Fernando Molina daeb3920ac Merge pull request #1980 from julian-molina/develop
Contribution: Governance tuning
2021-10-01 13:07:52 -04:00
Julian Molina 35df064af9 Governance tuning 2021-10-01 18:52:35 +02:00
Luis Fernando Molina f3ede68928 Merge pull request #1970 from ssplatt/del-if-exists
Check if directory exists before deleting
2021-10-01 11:41:28 -04:00
Luis Fernando Molina 58d88ac334 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-01 17:28:09 +02:00
Luis Fernando Molina 9f6663b1df Reorganization of icons 2021-10-01 17:28:06 +02:00
GustavoH 614c093a54 This is my contribution to Superalgos 2021-10-01 17:27:43 +02:00
Luis Fernando Molina 1658b3ed82 All rearenged 2021-10-01 17:06:39 +02:00
Luis Fernando Molina 0561d75b9b Changes in User Profile done by Profile Owner piyanthak automatically merged by Superalgos.
Contribution: User Profile piyanthak
2021-10-01 10:55:36 -04:00
piyanthak 0887739d86 User Profile piyanthak 2021-10-01 20:25:02 +05:30
Luis Fernando Molina 62f43dcf16 Changes in User Profile done by Profile Owner prepheadrus automatically merged by Superalgos.
Contribution: This is my contribution to Superalgos
2021-10-01 10:54:36 -04:00
prepheadrus b1684361ff This is my contribution to Superalgos 2021-10-01 17:54:21 +03:00
Luis Fernando Molina 15727ff6d1 Changes in User Profile done by Profile Owner PLuv automatically merged by Superalgos.
User Profile Update: PLuv
2021-10-01 10:40:36 -04:00
Philip Love 7baee2c619 Merge remote-tracking branch 'upstream/develop' into develop 2021-10-01 10:39:31 -04:00
Brenden Harrell 81b23b3495 move response out of exec callback 2021-10-01 09:38:21 -05:00
Philip Love e79d26d0c1 User Profile Update: PLuv 2021-10-01 10:38:10 -04:00
Luis Fernando Molina 8031da44be Changes in User Profile done by Profile Owner prepheadrus automatically merged by Superalgos.
Contribution: This is my contribution to Superalgos
2021-10-01 10:37:36 -04:00
prepheadrus fb08ae6349 This is my contribution to Superalgos 2021-10-01 17:37:14 +03:00
Brenden Harrell 0595f1b06f add missing await 2021-10-01 09:33:58 -05:00
Brenden Harrell bb903b8eb4 one more go 2021-10-01 09:26:53 -05:00
Brenden Harrell 046a369ce4 Another go at proper async ordering 2021-10-01 09:12:21 -05:00
Brenden Harrell d12ab41b47 adjust order of response 2021-10-01 09:05:06 -05:00
Luis Fernando Molina cc2c16ba09 Changes in User Profile done by Profile Owner piyanthak automatically merged by Superalgos.
Contribution: User Profile piyanthak
2021-10-01 10:02:36 -04:00
piyanthak 2c98c8538d User Profile piyanthak 2021-10-01 19:31:40 +05:30
Brenden Harrell db0e91ac02 more troubleshooting 2021-10-01 08:58:21 -05:00
Luis Fernando Molina 664af207a1 Logging Improved 2021-10-01 15:56:04 +02:00
Brenden Harrell e34f44a620 troubleshooting 2021-10-01 08:55:48 -05:00
Luis Fernando Molina bc7a931bd0 Bug fixes with same id at plugins 2021-10-01 15:51:00 +02:00
Luis Fernando Molina bb2055dcf4 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-01 15:42:50 +02:00
Luis Fernando Molina ebcd818219 Merge pull request #1974 from julian-molina/develop
Contribution: Governance tunning
2021-10-01 09:42:12 -04:00
Julian Molina 26cc412855 Governance tunning 2021-10-01 15:39:44 +02:00
Brenden Harrell 90377568ac initial implementation of running node setup on branch switch in httpinterface 2021-10-01 08:39:30 -05:00
Luis Fernando Molina e969cb0047 Changes in User Profile done by Profile Owner piyanthak automatically merged by Superalgos.
Contribution: User Profile piyanthak
2021-10-01 09:34:35 -04:00
piyanthak 91075420d7 User Profile piyanthak 2021-10-01 19:04:00 +05:30
Brenden Harrell 978c6be82c move running node setup to httpinterface 2021-10-01 08:27:54 -05:00
Luis Fernando Molina 3fe8a46a3b Changes in User Profile done by Profile Owner ssplatt automatically merged by Superalgos.
Update ssplatt user profile
2021-10-01 09:26:39 -04:00
Luis Fernando Molina 774eb62910 Changes in User Profile done by Profile Owner Tentacule23 automatically merged by Superalgos.
Contribution: Profile_Update Tentacule23
2021-10-01 09:26:35 -04:00
Tentacule23 b92545269c Profile_Update Tentacule23 2021-10-01 09:26:02 -04:00
Brett Taylor 10c98dcfe8 update ssplatt profile 2021-10-01 09:24:46 -04:00
Luis Fernando Molina 2ff3559baf remove logs 2021-10-01 15:17:11 +02:00
Brett Taylor 42877ad754 add check to see if node_modules exists before attempting to rm 2021-10-01 09:07:17 -04:00
Brenden Harrell f3bc0cdda8 start implementing shell command utility 2021-10-01 07:41:29 -05:00
Brenden Harrell 00ce521972 Callback adjustment 2021-10-01 07:40:48 -05:00
Brenden Harrell 7bc3b0ec28 move required node modules 2021-10-01 07:40:21 -05:00
Brenden Harrell 5a0136a1c0 add needed node modules 2021-10-01 07:39:45 -05:00
Brenden Harrell 563e648079 display branch changed page after node setup is run 2021-10-01 07:39:23 -05:00
Brenden Harrell 357e9a04bc Run Node Setup on Branch Switch Initial 2021-10-01 07:38:39 -05:00
Luis Fernando Molina 8ac96096ac Changes in User Profile done by Profile Owner harrellbm automatically merged by Superalgos.
Changes to harrellbm profile
2021-10-01 08:31:35 -04:00
Brenden Harrell f10f7166cf Changes to harrellbm profile 2021-10-01 07:30:29 -05:00
B Harrell 04daf0ff69 Merge branch 'Superalgos:develop' into develop 2021-10-01 07:11:53 -05:00
Brenden Harrell 3442442017 Revert "start implementing shell command utility"
This reverts commit 61ec81e092.
2021-10-01 07:10:56 -05:00
Brenden Harrell 32dd328112 Merge branch 'develop' of https://github.com/harrellbm/Superalgos into develop 2021-10-01 07:00:51 -05:00
Brenden Harrell 61ec81e092 start implementing shell command utility 2021-10-01 07:00:48 -05:00
Luis Fernando Molina 55f49ff6ca Changes in User Profile done by Profile Owner prepheadrus automatically merged by Superalgos.
Contribution: This is my contribution to Superalgos
2021-10-01 07:00:34 -04:00
prepheadrus fa4ff8efa7 This is my contribution to Superalgos 2021-10-01 13:59:03 +03:00
Luis Fernando Molina 9f1b16e89b Changes in User Profile done by Profile Owner prepheadrus automatically merged by Superalgos.
Contribution: This is my contribution to Superalgos
2021-10-01 06:52:34 -04:00
prepheadrus 32b3763f9b This is my contribution to Superalgos 2021-10-01 13:52:09 +03:00
Luis Fernando Molina 0ca0d721c2 Changes in User Profile done by Profile Owner cozed-gh automatically merged by Superalgos.
Contribution: User Profile cozed-gh
2021-10-01 06:35:34 -04:00
cozed-gh 9da15a66bf User Profile cozed-gh 2021-10-01 12:35:24 +02:00
Luis Fernando Molina a1ee5a2478 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-01 12:30:13 +02:00
Luis Fernando Molina 0d4dfbd20d small Text 2021-10-01 12:30:00 +02:00
Luis Fernando Molina 23ca4b5c1e No ring, more UX imrprovements while on map mode 2021-10-01 12:21:23 +02:00
Luis Fernando Molina 777f5e8309 Changes in User Profile done by Profile Owner prepheadrus automatically merged by Superalgos.
Contribution: This is my contribution to Superalgos
2021-10-01 06:12:33 -04:00
prepheadrus cee247e02e This is my contribution to Superalgos 2021-10-01 13:11:36 +03:00
Julian Molina 5c08e5b0e9 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-01 12:05:11 +02:00
Luis Fernando Molina b81f39edc3 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-01 11:59:25 +02:00
Luis Fernando Molina 1669e7950e Image size smaller inMapMode 2021-10-01 11:59:06 +02:00
Luis Fernando Molina 13abba6213 Changes in User Profile done by Profile Owner prepheadrus automatically merged by Superalgos.
Contribution: This is my contribution to Superalgos
2021-10-01 05:58:33 -04:00
prepheadrus e8694bdf98 This is my contribution to Superalgos 2021-10-01 12:57:41 +03:00
Luis Fernando Molina e4ae20e1be Changes in User Profile done by Profile Owner prepheadrus automatically merged by Superalgos.
Contribution: This is my contribution to Superalgos
2021-10-01 05:54:33 -04:00
prepheadrus c1729dbdac This is my contribution to Superalgos 2021-10-01 12:53:48 +03:00
Luis Fernando Molina a17a0ed878 Improvement inMapMode 2021-10-01 11:46:53 +02:00
Julian Molina 928e611b85 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-01 11:22:43 +02:00
Luis Fernando Molina b97db15d8f Reputation bug fixed 2021-10-01 11:19:29 +02:00
Luis Fernando Molina 7632d6dc3f Changes in User Profile done by Profile Owner cozed-gh automatically merged by Superalgos.
Contribution: User Profile cozed-gh
2021-10-01 05:10:33 -04:00
cozed-gh 9bdea96052 User Profile cozed-gh 2021-10-01 11:10:07 +02:00
Luis Fernando Molina 2a49b03d70 Merge pull request #1956 from ssplatt/twitter-announce-bot
add twitter bot icon png
2021-10-01 04:41:48 -04:00
Julian Molina ae479e3853 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-10-01 09:40:12 +02:00
Luis Fernando Molina 9cac93eb63 Changes in User Profile done by Profile Owner PLuv automatically merged by Superalgos.
User Profile Update PLuv
2021-10-01 01:09:31 -04:00
Philip Love c3a8040402 User Profile Update PLuv 2021-10-01 01:08:51 -04:00
Brett Taylor c54a50b834 add twitter bot icon png 2021-09-30 23:03:05 -04:00
Luis Fernando Molina 05fd1554c5 Changes in User Profile done by Profile Owner ssplatt automatically merged by Superalgos.
update ssplatt user profile
2021-09-30 21:43:29 -04:00
Brett Taylor 9826831dfc update ssplatt user profile 2021-09-30 21:41:40 -04:00
Luis Fernando Molina 345482b55e Changes in User Profile done by Profile Owner gustavojuri automatically merged by Superalgos.
Contribution: This is my contribution to Superalgos
2021-09-30 19:30:28 -04:00
gustavojuri 6d01f36594 This is my contribution to Superalgos 2021-09-30 20:30:07 -03:00
Luis Fernando Molina ad66b76795 Changes in User Profile done by Profile Owner thaissmolina75 automatically merged by Superalgos.
Contribution: my profile
2021-09-30 17:13:27 -04:00
thaissmolina75 d8ac177e84 my profile 2021-09-30 17:13:19 -04:00
Luis Fernando Molina 4b39bc5ce2 Changes in User Profile done by Profile Owner LucOnGit automatically merged by Superalgos.
Contribution: My Superalgos Review
2021-09-30 17:07:27 -04:00
LucOnGit 07212fa93d My Superalgos Review 2021-09-30 22:50:32 +02:00
Luis Fernando Molina 4b81270699 Merge pull request #1932 from ssplatt/twitter-announce-bot
[WIP] Twitter announce bot
2021-09-30 16:40:06 -04:00
Luis Fernando Molina f56005ba70 Changes in User Profile done by Profile Owner thaissmolina75 automatically merged by Superalgos.
Contribution: my profile
2021-09-30 16:39:27 -04:00
thaissmolina75 cd77780f28 my profile 2021-09-30 16:39:04 -04:00
Brett Taylor a7529a6dbc initial twitter announce bot configuration 2021-09-30 16:27:50 -04:00
Julian Molina 91debac36f Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-09-30 21:42:18 +02:00
Luis Fernando Molina ed98835903 Sent by Julian 2021-09-30 21:33:43 +02:00
Julian Molina 523c95ee21 Revert "Revert "This is my contribution to Superalgos""
This reverts commit 4e4d6b8fc4.
2021-09-30 21:29:26 +02:00
Julian Molina 4e4d6b8fc4 Revert "This is my contribution to Superalgos"
This reverts commit 1b4a0d0ab1.
2021-09-30 21:19:36 +02:00
Luis Fernando Molina 438cff2028 Update Luis-Fernando-Molina.json 2021-09-30 21:15:01 +02:00
Luis Fernando Molina 85d8991bc2 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-09-30 21:10:32 +02:00
Luis Fernando Molina f640cdcc12 Revert "Update Luis-Fernando-Molina.json"
This reverts commit 21112e05e9.
2021-09-30 21:09:58 +02:00
Julian Molina 1b4a0d0ab1 This is my contribution to Superalgos 2021-09-30 21:05:12 +02:00
Luis Fernando Molina 5cfac99354 Changes in User Profile done by Profile Owner 9808us automatically merged by Superalgos.
Profile Update delegating power
2021-09-30 14:48:56 -04:00
9808us 6870bbb18f Profile Update delegating power 2021-09-30 20:47:48 +02:00
Luis Fernando Molina 21112e05e9 Update Luis-Fernando-Molina.json 2021-09-30 19:36:20 +02:00
Julian Molina f3cff4a4de Merge pull request #1926 from julian-molina/develop
Contribution: This is my contribution to Superalgos
2021-09-30 19:30:06 +02:00
Julian Molina f0fd1f4ee7 This is my contribution to Superalgos 2021-09-30 19:27:58 +02:00
Luis Fernando Molina 70c72ad7dc Update Luis-Fernando-Molina.json 2021-09-30 19:23:21 +02:00
Luis Fernando Molina a47de0fd1e Merge pull request #1924 from ssplatt/update-docker-user
Update docker user to not be a system user
2021-09-30 12:53:59 -04:00
Luis Fernando Molina 75700877a6 Changes in User Profile done by Profile Owner harrellbm automatically merged by Superalgos.
Final tweaks to profile harrellbm
2021-09-30 12:52:55 -04:00
harrellbm 434db6a138 Revert "Run Node Setup on Branch Switch Initial"
This reverts commit bf17265ac0.
2021-09-30 11:52:16 -05:00
harrellbm 15d06e05df Revert "display branch changed page after node setup is run"
This reverts commit 11597254ea.
2021-09-30 11:52:12 -05:00
harrellbm f619641f26 Revert "add needed node modules"
This reverts commit 5835257d1e.
2021-09-30 11:52:09 -05:00
harrellbm d2f4eb9cb6 Revert "move required node modules"
This reverts commit f4ac7fad14.
2021-09-30 11:51:50 -05:00
harrellbm ef8e78d9bc Revert "Callback adjustment"
This reverts commit 2f11880055.
2021-09-30 11:51:36 -05:00
harrellbm b2c6a23f55 Final Tweaks to harrellbm profile 2021-09-30 11:48:00 -05:00
Luis Fernando Molina e0a8ae40de Update Luis-Fernando-Molina.json 2021-09-30 18:46:08 +02:00
Brett Taylor dde97cadc8 fix typo 2021-09-30 12:44:58 -04:00
Brett Taylor 63ae6492eb fix typo 2021-09-30 12:44:42 -04:00
Brett Taylor 9162840a25 fix merge conflicts 2021-09-30 12:43:34 -04:00
Brett Taylor 6d40654523 make docker user non-system 2021-09-30 12:40:57 -04:00
B Harrell 970407eab9 Merge branch 'Superalgos:develop' into develop 2021-09-30 11:11:52 -05:00
Luis Fernando Molina 0535413490 Changes in User Profile done by Profile Owner Raplh2502 automatically merged by Superalgos.
Contribution: profile last update
2021-09-30 12:01:54 -04:00
Raplh2502 e62f2c97d6 profile last update 2021-09-30 17:00:57 +01:00
Luis Fernando Molina 8ee75a9e6d Update Luis-Fernando-Molina.json 2021-09-30 17:46:17 +02:00
Luis Fernando Molina a0950d418c Changes in User Profile done by Profile Owner piyanthak automatically merged by Superalgos.
Contribution: This is my contribution to Superalgos
2021-09-30 11:25:48 -04:00
piyanthak 8d8caca23c This is my contribution to Superalgos 2021-09-30 20:50:26 +05:30
Luis Fernando Molina a5b2d4d32e Update Luis-Fernando-Molina.json 2021-09-30 16:49:44 +02:00
Luis Fernando Molina 8f363f2e95 Update Luis-Fernando-Molina.json 2021-09-30 16:32:50 +02:00
Luis Fernando Molina ddb19c73c6 Update Luis-Fernando-Molina.json 2021-09-30 16:15:54 +02:00
Luis Fernando Molina 8fc3a26b78 Create Token-Distribution-All-User-Profiles.json 2021-09-30 15:34:36 +02:00
Luis Fernando Molina b20c664f81 Update Luis-Fernando-Molina.json 2021-09-30 15:28:57 +02:00
Luis Fernando Molina 5e80ab63b0 Governance Bugs Fixed 2021-09-30 15:19:58 +02:00
Luis Fernando Molina e3d4aa7006 Merge pull request #1921 from buddies2705/develop
Contribution: This is my contribution to Superalgos
2021-09-30 07:28:31 -04:00
Guarav Agrawal 1913cafacc This is my contribution to Superalgos 2021-09-30 16:14:30 +05:30
Luis Fernando Molina f8e7dc75ad Changes in User Profile done by Profile Owner Basalt09 automatically merged by Superalgos.
Contribution: This is my contribution to Superalgos
2021-09-30 05:19:17 -04:00
Basalt09 4c346aabd9 This is my contribution to Superalgos 2021-09-30 17:15:13 +08:00
Basalt09 173b4d78f3 This is my contribution to Superalgos 2021-09-30 17:14:01 +08:00
Luis Fernando Molina b84ad7aae6 Update ActionSwitch.js 2021-09-30 11:02:38 +02:00
Luis Fernando Molina 0eb238551c More actions moved out from Foundations to their projects 2021-09-30 11:00:56 +02:00
Luis Fernando Molina 68bb87936a Actions Moved to Machine-Learning 2021-09-30 10:49:08 +02:00
Luis Fernando Molina c82a2b96ab Actions moved to Education Project 2021-09-30 10:44:44 +02:00
Luis Fernando Molina 77624f63c7 My Workspaces folder moved 2021-09-30 10:30:09 +02:00
Luis Fernando Molina a8d06a46e1 Changes in User Profile done by Profile Owner tikry2021 automatically merged by Superalgos.
Contribution: User Profile tikry2021
2021-09-29 20:09:14 -04:00
Till Rupp efcdb11fc1 User Profile tikry2021 2021-09-30 02:08:51 +02:00
Luis Fernando Molina 9d113e9376 Changes in User Profile done by Profile Owner tikry2021 automatically merged by Superalgos.
Contribution: User Profile tikry2021
2021-09-29 20:03:13 -04:00
Till Rupp 1593871b51 User Profile tikry2021 2021-09-30 02:03:05 +02:00
Luis Fernando Molina c4ba03dd47 Changes in User Profile done by Profile Owner tikry2021 automatically merged by Superalgos.
Contribution: User Profile tikry2021
2021-09-29 19:44:13 -04:00
Till Rupp 826f4d3fd8 User Profile tikry2021 2021-09-30 01:43:35 +02:00
Luis Fernando Molina 883e566cd2 Merge pull request #1913 from ssplatt/minimize-container-size
Minimize container size
2021-09-29 18:12:30 -04:00
ssplatt 0ccd5114f0 update command to remove build deps 2021-09-29 16:31:30 -04:00
ssplatt 777f6607ea update dockerfile and dockerignore 2021-09-29 16:04:29 -04:00
Luis Fernando Molina 00c20fc389 Changes in User Profile done by Profile Owner 9808us automatically merged by Superalgos.
Profile Update
2021-09-29 15:14:05 -04:00
9808us 47e87b269e Profile Update 2021-09-29 20:45:24 +02:00
Luis Fernando Molina 36c26570ac Update Getting-Started-Tutorials.json 2021-09-29 19:47:35 +02:00
ssplatt 6aae1d54bc fix merge conflicts 2021-09-29 13:32:41 -04:00
Luis Fernando Molina c2bd990c9d Bug Fixed with Action Project 2021-09-29 19:32:07 +02:00
Luis Fernando Molina 1218ff377d Missing Action Project 2021-09-29 17:03:13 +02:00
Luis Fernando Molina 42fe051bad Merge pull request #1909 from NAmorim/develop
Minor typos
2021-09-29 10:53:05 -04:00
Basalt09 6a92615bb1 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-09-29 22:02:08 +08:00
Luis Fernando Molina c7db94c63a Plugins Moved 2021-09-29 15:49:48 +02:00
Luis Fernando Molina 215ec526a1 ML Plugins fixed 2021-09-29 15:40:35 +02:00
Luis Fernando Molina d597b0416d Docs moved from Foundations 2021-09-29 15:28:38 +02:00
Luis Fernando Molina 6d41d04cbd ML Icons 2021-09-29 15:15:49 +02:00
NAmorim b15abee11b Further updates to docker image 2021-09-29 14:05:25 +01:00
NAmorim 664db48914 Minor typos 2021-09-29 13:57:07 +01:00
Luis Fernando Molina c494433576 ML Schemas migrated out of Foundations 2021-09-29 14:09:00 +02:00
Luis Fernando Molina 2a49b303cc Machine Learning Refactoring 2021-09-29 13:14:15 +02:00
Luis Fernando Molina 7fa0ac699d Changes in User Profile done by Profile Owner prepheadrus automatically merged by Superalgos.
Contribution: This is my contribution to Superalgos
2021-09-29 06:11:48 -04:00
prepheadrus 501449f98a This is my contribution to Superalgos 2021-09-29 13:10:52 +03:00
Luis Fernando Molina 9e5c550474 Machine Learning Project extracted from Foundations 2021-09-29 11:46:20 +02:00
Luis Fernando Molina 82e0999a9f Merge pull request #1906 from NAmorim/develop
Update Docker image
2021-09-29 05:38:13 -04:00
NAmorim 998e3765d2 Merge branch 'develop' of https://github.com/NAmorim/Superalgos into develop 2021-09-29 10:29:12 +01:00
NAmorim fc5f1b11e8 Update Docker image 2021-09-29 10:28:16 +01:00
Luis Fernando Molina 2837f0ab32 Update githubServer.js 2021-09-29 10:48:28 +02:00
Luis Fernando Molina 8abcf97f1e Changes in User Profile done by Profile Owner AzraelMilosz automatically merged by Superalgos.
Contribution: User Profile AzraelMilosz
2021-09-29 00:57:47 -04:00
Luis Fernando Molina 5d1ba51a71 Changes in User Profile done by Profile Owner brombispi automatically merged by Superalgos.
Contribution: User Profile brombispi
2021-09-29 00:52:45 -04:00
Your Namebrombispi 4ced38eee1 User Profile brombispi 2021-09-29 06:52:10 +02:00
brombispi d93c433fdf Merge branch 'Superalgos:develop' into develop 2021-09-29 06:19:03 +02:00
AzraelMilosz e9af465e1c User Profile AzraelMilosz 2021-09-29 00:15:03 -04:00
Luis Fernando Molina bec0bb880a Changes in User Profile done by Profile Owner piyanthak automatically merged by Superalgos.
Contribution: User Profile piyanthak
2021-09-28 23:57:44 -04:00
Luis Fernando Molina e4ca90db04 Changes in User Profile done by Profile Owner OliverTurtle automatically merged by Superalgos.
User Profile OliverTurtle
2021-09-28 21:54:43 -04:00
OliverTurtle 833db3c168 User Profile OliverTurtle 2021-09-29 01:51:32 +00:00
brombispi bff781f1db Delete brombispi.json 2021-09-28 22:58:32 +02:00
Your Namebrombispi 39573ec1ce User Profile brombispi 2021-09-28 22:52:30 +02:00
Your Namebrombispi 9a645294ee User Profile brombispi 2021-09-28 22:34:25 +02:00
Your Namebrombispi 97d397c2b1 User Profile brombispi 2021-09-28 22:19:53 +02:00
Luis Fernando Molina 5ea6b82d8d Changes in User Profile done by Profile Owner Raplh2502 automatically merged by Superalgos.
Contribution: update user profile
2021-09-28 15:02:13 -04:00
Raplh2502 9ddee3a3f8 update user profile 2021-09-28 21:01:20 +02:00
Luis Fernando Molina 8450e6717b Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-09-28 20:22:25 +02:00
Luis Fernando Molina e66a88def3 Changes in User Profile done by Profile Owner Charlie67j automatically merged by Superalgos.
Contribution: User Profile Charlie67j
2021-09-28 14:17:12 -04:00
Charlie67j cc965c66fb User Profile Charlie67j 2021-09-28 18:16:44 +00:00
Charlie67j 5560354ffd Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-09-28 18:11:54 +00:00
Charlie67j f27ab683d6 User Profile Charlie67j 2021-09-28 18:10:11 +00:00
Basalt09 9ef2138f0c My Superalgos Review 2021-09-28 23:09:55 +08:00
Basalt09 a887d5b997 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-09-28 22:30:52 +08:00
Luis Fernando Molina 14e7655df9 Fixing some bugs 2021-09-28 13:40:35 +02:00
Luis Fernando Molina b20559057d Update Getting-Started-Tutorials.json 2021-09-28 12:39:32 +02:00
Luis Fernando Molina d7c79bf6ba Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-09-28 12:39:17 +02:00
Luis Fernando Molina 134c3c8119 Changes in User Profile done by Profile Owner itzr automatically merged by Superalgos.
Contribution: User Profile itzr
2021-09-28 03:15:54 -04:00
Ian Tozer 300a5b4f64 Merge branch 'Superalgos:develop' into develop 2021-09-28 14:12:50 +07:00
itzr 61fdd5307b My Superalgos Review 2021-09-28 14:12:20 +07:00
Azrael c2ac8cc7d4 User Profile AzraelMilosz 2021-09-28 02:14:07 -04:00
Luis Fernando Molina cc95a1f36e Changes in User Profile done by Profile Owner buck2825 automatically merged by Superalgos.
Adding user profile
2021-09-27 16:41:49 -04:00
buck2825 945d566e43 fixed file name 2021-09-27 16:40:50 -04:00
buck2825 186746041b Add files via upload 2021-09-27 16:27:11 -04:00
Luis Fernando Molina 16d5e00fc3 Bug Fixed 2021-09-27 22:08:21 +02:00
Luis Fernando Molina 936b6f4f34 Merge pull request #1884 from Raplh2502/develop
Contribution: Update of my profile with claims on Medium Articles  + Add Medium articles to Superalgos - Marketing
2021-09-27 15:50:47 -04:00
Raplh2502 d6e65c36c3 Update of my profile with claims on Medium Articles + Add Medium articles to Superalgos - Marketing 2021-09-27 21:47:37 +02:00
Luis Fernando Molina 559053b169 Changes in User Profile done by Profile Owner zpriv2021 automatically merged by Superalgos.
Contribution: User Profile [zpriv2021]
2021-09-27 15:21:43 -04:00
zpriv2021 25796587fb User Profile [zpriv2021] 2021-09-27 19:28:20 +02:00
Luis Fernando Molina 82450bf9c7 Bug Fixed 2021-09-27 19:02:48 +02:00
Luis Fernando Molina 7bada617b7 Trading Task Running 2021-09-27 18:29:29 +02:00
Luis Fernando Molina 67f6e1d9db Plugins Moved from Foundations to Algorithmic-Trading 2021-09-27 17:37:28 +02:00
Luis Fernando Molina d9e2b26e98 App Schemas and Icons Moved to new Project Algorithmic-Trading 2021-09-27 17:08:18 +02:00
Luis Fernando Molina 8c2d2d762f All TS refactorings done 2021-09-27 14:25:28 +02:00
Luis Fernando Molina 704f1d69fa TradingSessionFunctions refactored 2021-09-27 13:55:42 +02:00
Luis Fernando Molina 1c5e2b68f4 Algorithmic-Trading project spinned out from Foundations 2021-09-27 13:37:24 +02:00
Luis Fernando Molina af856335af Fix to Install Market procedure, to allow tasks belonging to different projects 2021-09-27 12:02:52 +02:00
Luis Fernando Molina 3da75053aa Merge pull request #1880 from quantum8/develop
New indicator & MVWAP fix
2021-09-27 03:22:55 -04:00
Brenden Harrell 2f11880055 Callback adjustment 2021-09-26 21:46:12 -05:00
Brenden Harrell f4ac7fad14 move required node modules 2021-09-26 21:43:42 -05:00
Brenden Harrell 5835257d1e add needed node modules 2021-09-26 21:29:47 -05:00
Brenden Harrell 11597254ea display branch changed page after node setup is run 2021-09-26 21:15:30 -05:00
Brenden Harrell bf17265ac0 Run Node Setup on Branch Switch Initial 2021-09-26 21:04:42 -05:00
quantum8 f2bb032e17 Added "BeepBoop" buy/sell indicator.
Fixed MVWAP from returning NaN when token/exchange is down.
2021-09-27 08:53:50 +10:00
Luis Fernando Molina 59435e4bc3 Merge pull request #1876 from 9808us/develop
Kucoin Tested
2021-09-26 09:52:16 -04:00
Luis Fernando Molina b7c1510a5d Changes in User Profile done by Profile Owner H-Rashdan automatically merged by Superalgos.
Contribution: User Profile H-Rashdan
2021-09-26 09:52:09 -04:00
Luis Fernando Molina 5ba393a09b Changes in User Profile done by Profile Owner bybader automatically merged by Superalgos.
Contribution: User Profile [bybader]
2021-09-26 09:51:02 -04:00
Luis Fernando Molina 3b90597478 Community Plugins Refactoring 2021-09-26 15:31:59 +02:00
B Y. B 408911bddd User Profile [bybader] 2021-09-26 17:11:11 +04:00
Luis Fernando Molina 742722be71 Plugins Project implemented 2021-09-26 14:58:22 +02:00
Luis Fernando Molina 87d4e6f516 Merge pull request #1878 from bybader/plugins-docs
Contribution: My Superalgos Review
2021-09-26 06:54:47 -04:00
B Y. B 42a2b935cb My Superalgos Review 2021-09-26 14:35:12 +04:00
9808us 1db4bda0bc Kucoin 2021-09-26 12:15:18 +02:00
H-Rashdan 00c05e673e User Profile H-Rashdan 2021-09-26 13:14:09 +03:00
9808us f55d9d8a7a Kucoin Tested
Fetching candles ok
LIVE trading ok
2021-09-26 12:01:19 +02:00
Luis Fernando Molina fe264a58ce Changes in User Profile done by Profile Owner Tashkuk automatically merged by Superalgos.
User profile Tashkuk
2021-09-25 20:08:37 -04:00
Tashkuk 4aa51ec00d User profile Tashkuk 2021-09-26 02:04:19 +02:00
Luis Fernando Molina ac25f962de Changes in User Profile done by Profile Owner elipwns automatically merged by Superalgos.
Updated elipwns user-profile
2021-09-25 19:41:36 -04:00
Eli Kloft f95a7e1450 Updated elipwns user-profile 2021-09-25 16:39:07 -07:00
Luis Fernando Molina dc0ad2647f Merge pull request #1866 from elipwns/develop
Quick spelling fix
2021-09-25 19:32:18 -04:00
Eli Kloft 524df27792 Merge branch 'Superalgos:develop' into develop 2021-09-25 12:50:41 -07:00
Luis Fernando Molina 47e3961b3e Bug Fixed Attaching Rules 2021-09-25 21:22:45 +02:00
Luis Fernando Molina 86fcfb4c67 Bug Fixed at Menu Items not handling relatedUiObjectProject 2021-09-25 21:16:41 +02:00
Luis Fernando Molina 3d0682b004 Bug fixes with attaching rules 2021-09-25 18:43:37 +02:00
Luis Fernando Molina ee90ba2b45 Docs Bug Fixed handling Menu Items of other Projects 2021-09-25 18:24:37 +02:00
Luis Fernando Molina bf931fedf6 Docs nodes moved 2021-09-25 17:44:04 +02:00
piyanthak 957e62c5f9 User Profile piyanthak 2021-09-25 21:05:38 +05:30
Luis Fernando Molina d5add5486c Indicators From Getting Started Tutorials Workspace Running 2021-09-25 16:27:24 +02:00
Luis Fernando Molina cb010fb5c6 Data Mines related modules moved to Data-Mining Project 2021-09-25 14:23:30 +02:00
Luis Fernando Molina 7df98bde28 Mine Functions moved to Data Mining Project 2021-09-25 11:55:40 +02:00
Luis Fernando Molina e9c2e773f4 Merge pull request #1863 from harrellbm/develop
Add embedded Youtube videos to tutorial space
2021-09-25 05:03:40 -04:00
Brenden Harrell 15fd95bb19 Add embeded Youtube videos to tutorial space 2021-09-24 20:55:57 -05:00
Luis Fernando Molina 9ff3b57f4e Merge pull request #1862 from Raplh2502/develop
Contribution: Finalization of Keltner indicator with EMA based Keltner bands and MAMA based Keltner Bands
2021-09-24 18:32:48 -04:00
Raplh2502 8790d7ea37 Finalization of Keltner indicator with EMA based Keltner bands and MAMA based Keltner Bands 2021-09-24 23:17:58 +02:00
Luis Fernando Molina c7881176c1 Merge pull request #1861 from Luis-Fernando-Molina/develop
Contribution: launch.js fixed (again)
2021-09-24 08:30:38 -04:00
Luis Fernando Molina 516365b2af launch.js fixed (again) 2021-09-24 14:30:14 +02:00
Luis Fernando Molina b5d7b2d2f8 Merge pull request #1860 from Superalgos/develop
Develop into Master
2021-09-24 06:33:44 -04:00
Luis Fernando Molina a8e4b71efa Merge pull request #1859 from Luis-Fernando-Molina/develop
Contribution: DeepScan Bug Fixes
2021-09-24 06:29:01 -04:00
Luis Fernando Molina 5e5207f508 Merge pull request #1858 from Superalgos/plugins-docs
Plugins docs into Develop
2021-09-24 06:27:40 -04:00
Luis Fernando Molina 8597332738 DeepScan Bug Fixes 2021-09-24 12:27:26 +02:00
Luis Fernando Molina 927f3016c9 Merge pull request #1857 from Luis-Fernando-Molina/develop
Contribution: Launch.json updated
2021-09-24 06:20:10 -04:00
Luis Fernando Molina 1edb6c878e Launch.json updated 2021-09-24 12:17:33 +02:00
Luis Fernando Molina ac29807afd Merge pull request #1856 from Ferrox85/develop
Update Snapshots.js
2021-09-24 06:16:07 -04:00
Ferrox85 6c2a8abf93 Update Snapshots.js
Added periods and a minor bug fix if the the undefined values happen before save
2021-09-24 10:37:09 +02:00
Eli Kloft f827356158 Merge branch 'Superalgos:develop' into develop 2021-09-23 16:59:05 -07:00
Luis Fernando Molina 3b569e509a Changes in User Profile done by Profile Owner Tentacule23 automatically merged by Superalgos.
Contribution: Profile_Update Tentacule23
2021-09-23 13:08:33 -04:00
Tentacule23 7cdb4ffaf3 Profile_Update Tentacule23 2021-09-23 13:08:12 -04:00
Luis Fernando Molina f7496db953 Changes in User Profile done by Profile Owner cozed-gh automatically merged by Superalgos.
Contribution: User Profile cozed-gh
2021-09-23 11:27:32 -04:00
cozed-gh fc5b97caf8 User Profile cozed-gh 2021-09-23 17:26:48 +02:00
Luis Fernando Molina b8873cd4f3 Changes in User Profile done by Profile Owner cozed-gh automatically merged by Superalgos.
Contribution: User Profile cozed-gh
2021-09-23 11:16:32 -04:00
cozed-gh 505722047c User Profile cozed-gh 2021-09-23 17:15:28 +02:00
Luis Fernando Molina 06a336742c Changes in User Profile done by Profile Owner cozed-gh automatically merged by Superalgos.
Contribution: User Profile cozed-gh
2021-09-23 04:12:29 -04:00
cozed-gh 041d2f0b38 User Profile cozed-gh 2021-09-23 10:11:33 +02:00
Luis Fernando Molina be09981ef5 Changes in User Profile done by Profile Owner cozed-gh automatically merged by Superalgos.
Contribution: User Profile cozed-gh
2021-09-23 03:55:28 -04:00
cozed-gh 7c851c26d7 User Profile cozed-gh 2021-09-23 09:54:49 +02:00
Luis Fernando Molina b89d904d72 Changes in User Profile done by Profile Owner cozed-gh automatically merged by Superalgos.
Contribution: User Profile cozed-gh
2021-09-23 03:00:28 -04:00
cozed-gh 0b464f3628 User Profile cozed-gh 2021-09-23 08:59:35 +02:00
Luis Fernando Molina 33035603ad Changes in User Profile done by Profile Owner teehanming automatically merged by Superalgos.
profile claim
2021-09-23 01:23:27 -04:00
Tee Han Ming 7924ac4162 Merge branch 'Superalgos:develop' into develop 2021-09-23 13:22:13 +08:00
teehanming 4b963a8dc3 profile claim 2021-09-23 13:21:45 +08:00
Eli Kloft f5704eea8a Merge branch 'Superalgos:develop' into develop 2021-09-22 21:28:33 -07:00
ssplatt 5bf5aa5600 getting started 2021-09-22 21:09:36 -04:00
Luis Fernando Molina 523490d7e5 Changes in User Profile done by Profile Owner Tentacule23 automatically merged by Superalgos.
Contribution: User_profile_update Tentacule23
2021-09-22 16:09:23 -04:00
Tentacule23 ae1ed6e3ff User_profile_update Tentacule23 2021-09-22 16:08:38 -04:00
Luis Fernando Molina 4425d456d6 Merge pull request #1847 from Raplh2502/develop
Contribution: Finalization of Monte-Carlo forecast at Polus Trading Mine ; creation of a new indicator based on combination of Keltner, MAMA and Bollinger Bands
2021-09-22 15:49:12 -04:00
Raplh2502 eac46b3393 Finalization of Monte-Carlo forecast at Polus Trading Mine ; creation of a new indicator based on combination of Keltner, MAMA and Bollinger Bands 2021-09-22 21:12:11 +02:00
Eli Kloft c35e556cf9 Fix spelling error 2021-09-22 11:35:11 -07:00
Luis Fernando Molina 83e5f8f3bc Merge pull request #1846 from harrellbm/develop
Adjustments to Governance Onboarding for Tentacule23
2021-09-22 14:34:40 -04:00
harrellbm 7459dfd074 Add final Feature claim for Tentacule23 2021-09-22 13:29:03 -05:00
harrellbm a492ebf4e1 Final Adjustments to harrellbm Profile 2021-09-22 13:28:45 -05:00
Luis Fernando Molina 8db9598060 Merge pull request #1844 from Ferrox85/develop
Minor Tweak to snapshot
2021-09-22 14:25:10 -04:00
harrellbm ced2bba300 Merge branch 'develop' of https://github.com/harrellbm/Superalgos into develop 2021-09-22 12:49:45 -05:00
Luis Fernando Molina d7a5953f7f Changes in User Profile done by Profile Owner cozed-gh automatically merged by Superalgos.
Contribution: User Profile cozed-gh
2021-09-22 13:43:21 -04:00
cozed-gh 8b7c3b2bc8 User Profile cozed-gh 2021-09-22 19:42:53 +02:00
Ferrox85 67d2f4b443 Merge branch 'Superalgos:develop' into develop 2021-09-22 19:29:56 +02:00
Ferrox85 57c4f80eb0 Merge branch 'develop' of https://github.com/Ferrox85/Superalgos into develop 2021-09-22 19:27:23 +02:00
Ferrox85 9badedfbdb Update Snapshots.js
Minor tweak for if on finalize there is no data / running trade (and a small typo)
2021-09-22 19:27:19 +02:00
Luis Fernando Molina eb68e0181a Changes in User Profile done by Profile Owner cozed-gh automatically merged by Superalgos.
Contribution: User Profile cozed-gh
2021-09-22 13:26:21 -04:00
cozed-gh a2480f2d21 User Profile cozed-gh 2021-09-22 19:24:32 +02:00
Luis Fernando Molina 328a82914f Changes in User Profile done by Profile Owner elipwns automatically merged by Superalgos.
Added elipwns profile.
2021-09-22 12:44:15 -04:00
Luis Fernando Molina 9a4d6ccf38 Merge pull request #1842 from Luis-Fernando-Molina/develop
Contribution: Governance Bug Fxed. Calculations  taking too long because of circular references with too many generations. Reduced to 3.
2021-09-22 12:44:04 -04:00
Luis Fernando Molina d6c739b1c5 Governance Bug Fxed. Calculations taking too long because of circular references with too many generations. Reduced to 3. 2021-09-22 18:42:28 +02:00
Eli Kloft 0ee6fd05ba Added elipwns profile. 2021-09-22 09:00:40 -07:00
Luis Fernando Molina edb2f91006 appliesTo at Signing Account node 2021-09-22 17:46:56 +02:00
Luis Fernando Molina 99cb765424 Merge pull request #1840 from cozed-gh/develop
Added "EMA Crossing" and "Triple ALMA"
2021-09-22 09:49:45 -04:00
cozed-gh 1088eeaf43 Merge branch 'Superalgos:develop' into develop 2021-09-22 15:44:22 +02:00
cozed-gh ad97c8a9f1 Added "EMA Crossing" and "Triple ALMA" 2021-09-22 15:37:43 +02:00
Luis Fernando Molina 1bf1960cde Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-09-22 15:30:59 +02:00
Luis Fernando Molina c8fbd3bcdc Bug Fixed Governance Tab 2021-09-22 14:42:53 +02:00
Luis Fernando Molina 727be74343 Merge pull request #1839 from Luis-Fernando-Molina/develop
Contribution: Desktop & Network validating Signature Hash
2021-09-22 08:35:54 -04:00
Luis Fernando Molina 2a373a243f Desktop & Network validating Signature Hash 2021-09-22 14:34:37 +02:00
Luis Fernando Molina 594262930d Merge pull request #1837 from Ferrox85/develop
Fixet empty rows and undefined strategy values
2021-09-22 08:18:22 -04:00
Luis Fernando Molina ea52a6e0a6 Changes in User Profile done by Profile Owner cozed-gh automatically merged by Superalgos.
Contribution: User Profile cozed-gh
2021-09-22 08:08:16 -04:00
cozed-gh 64bb598d0e User Profile cozed-gh 2021-09-22 14:07:18 +02:00
Ferrox85 2ceedd593c Merge branch 'Superalgos:develop' into develop 2021-09-22 13:40:07 +02:00
Ferrox85 ce336a3f8d Fixet empty rows and undefined strategy values
Complete fix of the CSV snapshot generator. Implemented the trigger values and overwrite the exit values at exit state with keeping the trigger state values. Removed the empty lines in the file.
2021-09-22 13:38:39 +02:00
Luis Fernando Molina 2bd4127135 Merge pull request #1836 from Luis-Fernando-Molina/develop
Contribution: Desktop & Network working with Secrets
2021-09-22 07:14:27 -04:00
Luis Fernando Molina 325163e5fa Desktop & Network working with Secrets 2021-09-22 13:12:54 +02:00
Luis Fernando Molina cf2d083905 Merge pull request #1835 from Luis-Fernando-Molina/develop
Contribution: Governance: Auto processing of PRs
2021-09-22 06:01:55 -04:00
Luis Fernando Molina edc3f86ad8 Governance: Auto processing of PRs 2021-09-22 12:01:05 +02:00
Luis Fernando Molina eea1faef81 Changes in User Profile done by Profile Owner Tentacule23 automatically merged by Superalgos.
Contribution: Profile_update Tentacule23
2021-09-22 03:46:21 -04:00
Tentacule23 dcaffe7aee Profile_update Tentacule23 2021-09-21 22:44:32 -04:00
Luis Fernando Molina ed273f5750 Changes in User Profile done by Profile Owner Luis-Fernando-Molina automatically merged by Superalgos.
Contribution: Governance Hash Validation Test 5
2021-09-21 16:48:23 -04:00
Luis Fernando Molina b298a69c5f Governance Hash Validation Test 6 2021-09-21 22:47:48 +02:00
Luis Fernando Molina d4c9d647d8 Governance Hash Validation Test 5 2021-09-21 22:46:51 +02:00
Luis Fernando Molina 18a0a47136 Governance Hash Validation Test 4 2021-09-21 22:45:42 +02:00
Luis Fernando Molina 65f9165b58 Changes in User Profile done by Profile Owner Luis-Fernando-Molina automatically merged by Superalgos.
Contribution: Governance Hash Validation Test 3
2021-09-21 16:44:33 -04:00
Luis Fernando Molina 525822b3d3 Governance Hash Validation Test 3 2021-09-21 22:44:02 +02:00
Luis Fernando Molina 15891ff890 Merge pull request #1829 from Luis-Fernando-Molina/develop
Contribution: Governance Hash Validation Test 1
2021-09-21 16:43:31 -04:00
Luis Fernando Molina 488261dbd4 Governance Hash Validation Test 2 2021-09-21 22:40:53 +02:00
Luis Fernando Molina c2fcf04369 Governance Hash Validation Test 1 2021-09-21 22:36:20 +02:00
Luis Fernando Molina 8a70df1ffa Merge pull request #1828 from Luis-Fernando-Molina/develop
Contribution: Governance: Signature Hash Validation
2021-09-21 16:34:30 -04:00
Luis Fernando Molina a4239311bb Governance: Signature Hash Validation 2021-09-21 22:31:49 +02:00
Luis Fernando Molina 850bcf8d7f Changes in User Profile done by Profile Owner Luis-Fernando-Molina automatically merged by Superalgos.
Contribution: Governance Signing Account Test 11
2021-09-21 15:08:02 -04:00
Luis Fernando Molina 60b46413c7 Governance Signing Account Test 11 2021-09-21 21:07:40 +02:00
Luis Fernando Molina c8fab584f0 Merge pull request #1826 from Luis-Fernando-Molina/develop
Contribution: Governance Signing Account Test 10
2021-09-21 15:06:34 -04:00
Luis Fernando Molina 64a35b2798 Governance Signing Account Test 10 2021-09-21 21:06:21 +02:00
Luis Fernando Molina dda0883461 Governance Signing Account Test 9 2021-09-21 21:03:41 +02:00
Luis Fernando Molina 82e36eee7a Merge pull request #1824 from Luis-Fernando-Molina/develop
Contribution: Governance Signing Account Test 8
2021-09-21 15:03:23 -04:00
Luis Fernando Molina 87514fed5f Governance Signing Account Test 8 2021-09-21 21:03:04 +02:00
Luis Fernando Molina f25d7d754d Changes in User Profile done by Profile Owner Luis-Fernando-Molina automatically merged by Superalgos.
Contribution: Governance Signing Accounts Test 8
2021-09-21 15:01:06 -04:00
Luis Fernando Molina 392322a432 Governance Signing Accounts Test 8 2021-09-21 21:00:51 +02:00
Luis Fernando Molina 79a03df2fb Merge pull request #1822 from Luis-Fernando-Molina/develop
Contribution: Governance Signing Accounts Test 7
2021-09-21 15:00:31 -04:00
Luis Fernando Molina 3612143d68 Governance Signing Accounts Test 7 2021-09-21 21:00:20 +02:00
Luis Fernando Molina 9d04974902 Changes in User Profile done by Profile Owner Luis-Fernando-Molina automatically merged by Superalgos.
Contribution: Governance Signing Accounts Test 5
2021-09-21 14:55:01 -04:00
Luis Fernando Molina 0443fd2ea2 Governance Signing Accounts Test 5 2021-09-21 20:54:35 +02:00
Luis Fernando Molina 5c3bfb1182 Merge pull request #1820 from Luis-Fernando-Molina/develop
Contribution: Governance Signing Accounts Test 4
2021-09-21 14:54:05 -04:00
Luis Fernando Molina 99ce5971dc Governance Signing Accounts Test 4 2021-09-21 20:52:45 +02:00
Luis Fernando Molina 82fc956181 Merge pull request #1819 from Luis-Fernando-Molina/develop
Contribution: Governance Signing Accounts Test 3
2021-09-21 14:51:58 -04:00
Luis Fernando Molina 440321ee21 Governance Signing Accounts Test 3 2021-09-21 20:51:38 +02:00
Luis Fernando Molina 0df88066cc Changes in User Profile done by Profile Owner Luis-Fernando-Molina automatically merged by Superalgos.
Contribution: Governance: Signing Accounts implementation - Test 2
2021-09-21 14:46:53 -04:00
Luis Fernando Molina 0e73d7c7f4 Governance: Signing Accounts implementation - Test 2 2021-09-21 20:44:26 +02:00
Luis Fernando Molina b1f0658cc5 Changes in User Profile done by Profile Owner Luis-Fernando-Molina automatically merged by Superalgos.
Contribution: Governance: Signing Accounts implementation - Test 1
2021-09-21 14:43:27 -04:00
Luis Fernando Molina 587f97e3b5 Governance: Signing Accounts implementation - Test 1 2021-09-21 20:43:10 +02:00
Luis Fernando Molina 5ae366665b Merge pull request #1816 from Luis-Fernando-Molina/develop
Contribution: Governance: Signing Accounts implementation
2021-09-21 14:42:24 -04:00
Luis Fernando Molina 2ad273a8bb Merge pull request #1815 from Tentacule23/develop
Contribution: Node_Move_Fix2 Tentacule23
2021-09-21 14:41:29 -04:00
Luis Fernando Molina fa7f16360e Governance: Signing Accounts implementation - Fix 2021-09-21 20:41:01 +02:00
Luis Fernando Molina e38b6bc952 Governance: Signing Accounts implementation 2021-09-21 20:37:40 +02:00
Luis Fernando Molina e3f8d25328 My profile with signing accounts for each Superalgos product 2021-09-21 19:09:12 +02:00
Luis Fernando Molina f9ac2761d2 Signing Accounts Created 2021-09-21 18:03:43 +02:00
Luis Fernando Molina 553669f460 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-09-21 17:47:33 +02:00
Tentacule23 63eb662290 Node_Move_Fix2 Tentacule23 2021-09-21 09:26:00 -04:00
Tentacule23 533cae9c2e Node_Move_Fix Tentacule23 2021-09-21 09:16:24 -04:00
Tentacule23 3d23408823 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-09-21 08:16:53 -04:00
Luis Fernando Molina e1836ec8b4 Recognize Governance Project Node as trigger for the workspace to be considered a Governance Workspace 2021-09-21 13:31:16 +02:00
Julian Molina d4f5200d3c Merge pull request #1812 from julian-molina/develop
Contribution: Simplifying icons assets definitions in governance plugins
2021-09-21 12:33:03 +02:00
Julian Molina 0ee33ae86f Simplifying icons assets definitions in governance plugins 2021-09-21 12:31:45 +02:00
Luis Fernando Molina 6d22b0d6b7 Merge pull request #1805 from harrellbm/develop
Set up Governance Feature Claims for Tentacule23 Contributions
2021-09-21 05:10:14 -04:00
Luis Fernando Molina be9e77f685 Merge pull request #1809 from elipwns/develop
Added various crypto-assets.
2021-09-21 05:07:32 -04:00
Luis Fernando Molina 78693c3be9 Merge pull request #1808 from quantum8/develop
Added choppy indicator
2021-09-21 05:06:11 -04:00
Eli Kloft a64163a332 Merge branch 'Superalgos:develop' into develop 2021-09-20 22:29:25 -07:00
Eli Kloft fff993929f Added CAKE and VET crypto-assets. 2021-09-20 22:23:08 -07:00
Eli Kloft 20a63bb614 Added DAI crypto-asset. 2021-09-20 22:09:55 -07:00
Eli Kloft 71d0d1b9a5 Added USDC crypto-asset. 2021-09-20 21:49:42 -07:00
Eli Kloft 2571590dfb Added NANO crypto-asset. Sorted assets alphabetically. 2021-09-20 21:35:34 -07:00
quantum8 5d84c6af81 Added choppy indicator 2021-09-21 09:50:22 +10:00
Tentacule23 f0dc0e1046 Node_move_fix Tentacule23 2021-09-20 17:43:02 -04:00
harrellbm 5370d814fb Adjust Delegation 2021-09-20 15:19:36 -05:00
harrellbm 218282a2a0 Add Feature Weights 2021-09-20 15:05:58 -05:00
harrellbm b04916fdbf Add Tentacule 23 Features and Delegate Tokens 2021-09-20 14:58:35 -05:00
Luis Fernando Molina ec01ed4345 Changes in User Profile done by Profile Owner end-debug automatically merged by Superalgos.
Contribution: User Profile [end-debug]
2021-09-20 13:59:23 -04:00
Luis Fernando Molina 8d2295d74f Merge pull request #1803 from harrellbm/develop
Remove Safety Comments from Tutorial Tab Code
2021-09-20 13:57:58 -04:00
harrellbm eda995e011 Remove Safty Comments from Tutorial Tab Code 2021-09-20 11:07:58 -05:00
SIFISO KHUMALO 010b5e2597 User Profile [end-debug] 2021-09-20 17:33:04 +02:00
Luis Fernando Molina 12c27519b7 Merge pull request #1802 from Luis-Fernando-Molina/develop
Contribution: Network Refactoring into LAN Network
2021-09-20 07:52:59 -04:00
Luis Fernando Molina ac0b03fd5f Deepscan fixes 2021-09-20 13:52:51 +02:00
Basalt09 3e4814add9 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-09-20 19:42:37 +08:00
Luis Fernando Molina 1090e64fa3 p2p Network Hiererchy basic implementation 2021-09-20 13:41:54 +02:00
Luis Fernando Molina 7dfe5c2397 refactoring Network Hierarchy into LAN Network Hierarchy 2021-09-20 12:51:40 +02:00
Luis Fernando Molina b5dcf93c1f Update CircularMenu.js 2021-09-20 12:47:30 +02:00
Luis Fernando Molina e5a11328ee Fixing some Icons 2021-09-20 12:38:49 +02:00
Luis Fernando Molina 751cd0acfb Refactoring Network into LAN Network, Network Node into LAN Network Node 2021-09-20 12:30:11 +02:00
Luis Fernando Molina a520501258 Create network-project.json 2021-09-20 11:43:19 +02:00
Luis Fernando Molina d750a4be81 Merge pull request #1799 from Tentacule23/develop
Contribution: tutorial_fix_and_better_node_snap Tentacule23
2021-09-20 05:08:19 -04:00
Luis Fernando Molina 7c1bd26491 Merge pull request #1800 from Smidy13/develop
Bug Fix: Telegram Social Bots sendMessage failing due to changes to T…
2021-09-20 05:05:36 -04:00
Luis Fernando Molina 7931dab53e Merge pull request #1801 from PLuv/develop
Add: DCA Bot Demo Workspace ; Update: Pluvtech-DM, Trading-Mine
2021-09-20 05:04:13 -04:00
Philip Love 94e5e301c4 Add: DCA Bot Demo Workspace ; Update: Pluvtech-DM, Trading-Mine 2021-09-20 02:16:50 -04:00
Smidy13 dc6e1bdb1c Bug Fix: Telegram Social Bots sendMessage failing due to changes to Telegram package 2021-09-20 14:57:40 +12:00
Tentacule23 ee29bbcb11 tutorial_fix_and_better_node_snap Tentacule23 2021-09-19 21:42:10 -04:00
Luis Fernando Molina d22287dd0e Merge pull request #1798 from Luis-Fernando-Molina/develop
Contribution: Bug Fixed at Platform Client crashing doing Github Stuff if web app is closed.
2021-09-19 17:37:49 -04:00
Luis Fernando Molina 3821164970 Bug Fixed at Platform Client crashing doing Github Stuff if web app is closed. 2021-09-19 23:37:29 +02:00
Luis Fernando Molina 29e89ef824 Merge pull request #1797 from Luis-Fernando-Molina/develop
Contribution: Bug Fix, Platform Client Crash
2021-09-19 16:57:11 -04:00
Luis Fernando Molina 41f7aa7a20 Merge pull request #1796 from harrellbm/develop
Bug fixes in Docs Space and Play Tutorial
2021-09-19 16:56:30 -04:00
Luis Fernando Molina 06385eb3bf Bug Fix, Platform Client Crash 2021-09-19 22:55:48 +02:00
harrellbm caa339d786 Comment out Code causing issues in Tutorial Play 2021-09-19 11:28:13 -05:00
B Harrell a29ca106b1 Merge branch 'Superalgos:develop' into develop 2021-09-19 11:07:09 -05:00
Basalt09 dd3b682af3 This is my contribution to Superalgos 2021-09-19 22:58:05 +08:00
Luis Fernando Molina 44bfdd4a8f Merge pull request #1795 from Luis-Fernando-Molina/develop
Contribution: Bug Fixed at Platform Client crashing when Http Request Body could not be read.
2021-09-19 04:21:33 -04:00
Luis Fernando Molina 79f0438079 Bug Fixed at Platform Client crashing when Http Request Body could not be read. 2021-09-19 10:20:16 +02:00
Luis Fernando Molina e043fd613d Changes in User Profile done by Profile Owner jance1499 automatically merged by Superalgos.
Contribution: User Profile jance1499
2021-09-19 04:03:30 -04:00
Luis Fernando Molina cf40373829 Changes in User Profile done by Profile Owner mantlik automatically merged by Superalgos.
Contribution: User Profile mantlik
2021-09-19 04:03:26 -04:00
Luis Fernando Molina 183e848937 Merge pull request #1784 from quantum8/develop
Plotter & reference fix
2021-09-19 04:03:05 -04:00
Luis Fernando Molina 6675fb7d47 Merge pull request #1791 from Smidy13/develop
Spelling: Fixing Typo in TaskServerRoot.js
2021-09-19 04:02:21 -04:00
Luis Fernando Molina b6c2554f86 Merge pull request #1793 from thaissmolina75/develop
Contribution: creating profile tut spanish update
2021-09-19 04:01:23 -04:00
Luis Fernando Molina 42b2166824 Merge pull request #1794 from Luis-Fernando-Molina/develop
Contribution: Desktop: Timeline with post contents
2021-09-19 03:58:24 -04:00
thaissmolina75 976b15d484 creating profile tut spanish update 2021-09-19 00:32:51 -04:00
Frantisek Mantlik 1f19b961db User Profile mantlik 2021-09-18 23:23:06 -04:00
Smidy13 bf6bb3559d Improvement: Add Social Bots UI Option to Trading Sessions 2021-09-19 15:05:37 +12:00
Smidy13 6fc2f223ad Spelling: Fixing Typo in TaskServerRoot.js 2021-09-19 14:50:45 +12:00
James Pannell 29e9ba2b1c User Profile jance1499 2021-09-18 16:44:52 -05:00
Luis Fernando Molina e5f83eeccb Merge pull request #1786 from thaissmolina75/develop
Contribution: my profile
2021-09-18 09:39:31 -04:00
Luis Fernando Molina b49237b25f Merge pull request #1785 from Raplh2502/develop
Contribution: Add Monte-Carlo forecast to Polus Datamine
2021-09-18 09:37:36 -04:00
Luis Fernando Molina 8757d26487 Post Text fetched from github and shown at the timeline. 2021-09-18 13:09:10 +02:00
Luis Fernando Molina 760c8d9196 Events Showing up in Timeline 2021-09-18 12:09:17 +02:00
thaissmolina75 e914250f5d my profile 2021-09-18 00:17:50 -04:00
Raplh2502 2949307bb3 Add Monte-Carlo forecast to Polus Datamine 2021-09-18 04:32:23 +02:00
Luis Fernando Molina a995068978 Bug Fixed 2021-09-17 17:57:53 +02:00
Luis Fernando Molina 71de99b11b Applying events from storage implemented. 2021-09-17 16:27:50 +02:00
jacob a0dc92a115 merge with master
Merge branch 'develop' of https://github.com/quantum8/Superalgos into develop
2021-09-17 20:32:04 +10:00
jacob 447830f4a2 Fixed delta MFI plotter. Updated masters node to link to quantum data mine 2021-09-17 20:31:34 +10:00
Luis Fernando Molina 5d2f74c8de Storage Module Implemented 2021-09-17 12:10:06 +02:00
Luis Fernando Molina d2f815d256 Network Node saving events and pushing them to storage 2021-09-17 11:32:11 +02:00
Luis Fernando Molina b1f5d42a25 Merge pull request #1780 from Ferrox85/develop
Update Snapshots.js
2021-09-17 03:14:18 -04:00
Luis Fernando Molina b40417943a Merge pull request #1781 from Raplh2502/develop
Contribution: Creation of the new Polus Datamine with the Fisher Transform MFI
2021-09-17 03:13:56 -04:00
Luis Fernando Molina a88c860989 Merge pull request #1783 from quantum8/develop
data mine update
2021-09-17 03:13:18 -04:00
quantum8 4d6352e089 Add files via upload
updated MVWAP
2021-09-17 17:00:19 +10:00
Brenden Harrell 9379d2b8c2 Fix small Doc Space Refactoring issues 2021-09-16 21:32:17 -05:00
Raplh2502 4b1ed89dde Creation of the new Polus Datamine with the Fisher Transform MFI 2021-09-16 23:55:38 +02:00
Ferrox85 5e60605b58 Update Snapshots.js
Small addition with a profit type (even / loss/profit)
2021-09-16 21:13:34 +02:00
Luis Fernando Molina f68ddda386 Merge pull request #1778 from harrellbm/develop
Update Setup Script for Unified Dependencies
2021-09-16 12:37:04 -04:00
Luis Fernando Molina 45a57d9f27 Merge pull request #1777 from Luis-Fernando-Molina/develop
Contribution: All node_modules moved to the root Superalgos directory
2021-09-16 12:36:50 -04:00
harrellbm 05101d8d8e Update Setup Script for Unified Dependencies 2021-09-16 11:06:06 -05:00
Luis Fernando Molina c1ea907ba7 DeepScan bugs Fixed 2021-09-16 17:25:36 +02:00
Luis Fernando Molina 734dcfd45b Merge pull request #1776 from Ferrox85/develop
Update Snapshots.js
2021-09-16 11:23:54 -04:00
Luis Fernando Molina 862e9995cc Changes in User Profile done by Profile Owner Charlie67j automatically merged by Superalgos.
Contribution: User Profile Charlie67j
2021-09-16 11:22:53 -04:00
Luis Fernando Molina 44033decc6 Websockets Client Bug Fixed, that prevented concurrent messages. 2021-09-16 17:02:44 +02:00
Ferrox85 40566f6059 Update Snapshots.js
Added orders in base and quote asset adn revenue % for base and quoted asset
2021-09-16 16:58:06 +02:00
Charlie67j 2e977822b1 User Profile Charlie67j 2021-09-16 13:52:06 +00:00
Luis Fernando Molina e351fe271f CL into PL refactoring 2021-09-16 12:25:37 +02:00
Luis Fernando Molina e6893d1db5 unnecesary node modules folders removed 2021-09-16 11:48:42 +02:00
Luis Fernando Molina ee8403e39b Task Server running with all the requires at root 2021-09-16 11:34:22 +02:00
Luis Fernando Molina 888c1ae3e6 Task server running from root 2021-09-16 10:48:53 +02:00
Luis Fernando Molina 2584d6aeb0 Bug Fixed ws missing 2021-09-16 10:37:33 +02:00
Luis Fernando Molina 959e75b256 Superalgos Client refactoring 2021-09-16 10:32:49 +02:00
Luis Fernando Molina f990734a87 Task Server Root implemented 2021-09-16 10:31:18 +02:00
Luis Fernando Molina 2ec676defb Requires completely removed from Platform codebase 2021-09-16 10:10:13 +02:00
Luis Fernando Molina d2811cc422 Platoform Running with node modules loaded at platform root 2021-09-16 09:54:36 +02:00
Luis Fernando Molina 61dbbf4e53 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-09-16 09:53:47 +02:00
Luis Fernando Molina fea83fbf87 Nodejs command decoupled from root ant Desktop and Network 2021-09-16 08:54:20 +02:00
Luis Fernando Molina 5218b27402 latest CCXT version 2021-09-16 08:29:53 +02:00
Luis Fernando Molina 2eb6f2c9c2 Changes in User Profile done by Profile Owner harrellbm automatically merged by Superalgos.
Update to User Profile harrellbm
2021-09-16 02:15:55 -04:00
harrellbm 90e7e4c32e Update to User Profile harrellbm 2021-09-15 15:50:54 -05:00
Luis Fernando Molina 9eebd3e9dd Merge pull request #1772 from superharoun/develop
Fix typo
2021-09-15 15:48:18 -04:00
Haroun a7f31eb918 Fix typo 2021-09-15 21:34:32 +02:00
Luis Fernando Molina 84af4d9ebf Changes in User Profile done by Profile Owner Jefferson111 automatically merged by Superalgos.
Contribution: User Profile Jefferson111
2021-09-15 12:29:36 -04:00
Luis Fernando Molina 8e5745bf0e Changes in User Profile done by Profile Owner superharoun automatically merged by Superalgos.
User Profile superharoun
2021-09-15 12:29:31 -04:00
Haroun dbd32e208f Revert "Fix typo"
This reverts commit 38bf0759c2.
2021-09-15 17:25:53 +02:00
J 73e426ddad Create Jefferson111.json 2021-09-15 23:11:06 +08:00
Jefferson111 0b1eeafb36 Revert "User Profile Jefferson111"
This reverts commit e9418127ee.
2021-09-15 23:06:22 +08:00
Luis Fernando Molina 4e73c75b8b Merge pull request #1768 from harrellbm/plugins-docs
Update readme for newer node version download
2021-09-15 10:50:14 -04:00
Jefferson111 e9418127ee User Profile Jefferson111 2021-09-15 22:40:15 +08:00
B Harrell 6d9dddcb84 Update readme for newer node version download 2021-09-14 22:02:10 -05:00
Haroun 38bf0759c2 Fix typo 2021-09-14 23:36:38 +02:00
Haroun 884de45ae7 This is my contribution to Superalgos 2021-09-14 23:12:40 +02:00
Haroun bd9dd06f89 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-09-14 22:45:00 +02:00
Luis Fernando Molina a12b89dab3 Merge pull request #1764 from ssplatt/fix-spelling
Fix spelling of 'Strength'
2021-09-14 16:33:54 -04:00
ssplatt f7f5a5859c fix spelling of strength 2021-09-14 16:03:47 -04:00
Luis Fernando Molina 29601079c8 Merge pull request #1763 from Ferrox85/develop
Changes to CSV Snapshot and Filestorage foor CSV handling
2021-09-14 15:41:52 -04:00
Ferrox85 9d24120b9b Changes to CSV Snapshot and Filestorage foor CSV handling
Projects/Foundations/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/Snapshots.js
changes on this file:

adds only the first run a header to the to be saved content
next runs it fetches the CSV file
adds the new content to it
saves the file
this way you have a snapshot of all trades for referencing

Projects/Foundations/TS/Task-Modules/FileStorage.js
changes on this file:
-skips JSON validation (because it is no json file) and returns the text
2021-09-14 21:21:37 +02:00
Luis Fernando Molina bf854b4419 Changes in User Profile done by Profile Owner alexbacanu automatically merged by Superalgos.
Contribution: User Profile alexbacanu
2021-09-14 10:08:01 -04:00
Luis Fernando Molina 341334939f Merge pull request #1760 from Luis-Fernando-Molina/develop
Contribution: Social Trading: event for getting the timeline
2021-09-14 09:54:23 -04:00
Luis Fernando Molina e30addb819 Social Trading: event for getting the timeline 2021-09-14 15:51:48 +02:00
Alexandru Bacanu ecb9f0013f User Profile alexbacanu 2021-09-14 13:40:43 +03:00
Luis Fernando Molina 3530f125d3 Merge pull request #1737 from a-r-1/plugins-docs
Plugins docs
2021-09-14 03:54:34 -04:00
Luis Fernando Molina d641a7e3b4 Merge pull request #1741 from Tentacule23/develop
Contribution: Menu-Tooltip Tentacule23
2021-09-14 03:51:41 -04:00
Luis Fernando Molina 7388ebc629 Changes in User Profile done by Profile Owner 9808us automatically merged by Superalgos.
Contribution: User Profile update 9808us
2021-09-14 03:46:32 -04:00
Luis Fernando Molina 82e54dc8f5 Changes in User Profile done by Profile Owner a-r-1 automatically merged by Superalgos.
Contribution: User Profile [a-r-1]
2021-09-14 03:46:27 -04:00
Luis Fernando Molina 354a8b1126 Changes in User Profile done by Profile Owner hellarnasstrom automatically merged by Superalgos.
Contribution: User Profile hellarnasstrom
2021-09-14 03:46:23 -04:00
Luis Fernando Molina 2683476fe4 Changes in User Profile done by Profile Owner narkxx automatically merged by Superalgos.
Contribution: User Profile Narkxx
2021-09-14 03:46:18 -04:00
Luis Fernando Molina fcdc0c75b3 Changes in User Profile done by Profile Owner NAmorim automatically merged by Superalgos.
Contribution: User Profile NAmorim
2021-09-14 03:46:14 -04:00
Luis Fernando Molina a7287c5261 Merge pull request #1745 from quantum8/develop
data quantum mine
2021-09-14 03:42:49 -04:00
Luis Fernando Molina a752730d9d Merge pull request #1750 from harrellbm/develop
Update Space setting docs and default config
2021-09-14 03:39:32 -04:00
Brenden Harrell a93925e520 Refactor docs space and fix space settings node overlap 2021-09-13 22:11:21 -05:00
Brenden Harrell ec582c45bc Finish Education Project Head node 2021-09-13 22:10:57 -05:00
Brenden Harrell e59eb365bb Hierarchy Head node for Education Project 2021-09-13 21:04:53 -05:00
Brenden Harrell 2662571357 Handle projects that do not have hierarchy head nodes 2021-09-13 21:04:35 -05:00
FMW-NAmorim 3e98e21b43 User Profile NAmorim 2021-09-13 23:31:45 +01:00
Haroun a4671b2ceb User Profile superharoun 2021-09-13 23:42:18 +02:00
Haroun 6b392e8a54 Merge branch 'master' of https://github.com/Superalgos/Superalgos 2021-09-13 21:50:45 +02:00
harrellbm edf824b77d Update Space setting docs and default config 2021-09-13 12:35:24 -05:00
Julian Molina c7e5e48282 Merge pull request #1749 from julian-molina/develop
Contribution: Improvements in Governance tutorial pages
2021-09-13 18:07:04 +02:00
Julian Molina 87765207c0 Improvements in Governance tutorial pages 2021-09-13 18:04:52 +02:00
Tentacule23 e32f5244f0 reference_info_in_menu_tooltip Tentacule23 2021-09-13 09:05:08 -04:00
jacob 243fa7a870 data mine containing keltner channel and MVWAP indicators 2021-09-13 12:45:07 +10:00
Tentacule23 05cd46bb01 collapse_tutorial Tentacule23 2021-09-12 22:07:13 -04:00
narkxx 0a8fcc2a03 User Profile Narkxx 2021-09-12 22:13:31 +02:00
Tentacule23 782cdb6046 Menu-Tooltip Tentacule23 2021-09-12 11:45:59 -04:00
Alpesh a687e50d5b User Profile [a-r-1] 2021-09-12 16:09:15 +01:00
9808us 12730be0d4 User Profile update 9808us 2021-09-12 14:58:54 +02:00
Alpesh ed7a19eed3 My Review - modified 2021-09-12 13:28:14 +01:00
Alpesh 3b4d9853aa My Review - modified to include body of review 2021-09-12 13:19:54 +01:00
Alpesh ef07234b26 Supergalos Review from a noobie getting started 2021-09-12 13:01:54 +01:00
hellarnasstrom dbb03c4aee User Profile hellarnasstrom 2021-09-12 12:25:20 +02:00
Luis Fernando Molina f9a9d02308 Changes in User Profile done by Profile Owner Ferrox85 automatically merged by Superalgos.
Develop
2021-09-12 05:33:45 -04:00
Luis Fernando Molina 7e0a6c7197 Merge pull request #1733 from Smidy13/develop
Bug Fix: Fast Forward into the Future
2021-09-12 05:32:50 -04:00
Luis Fernando Molina 55ff37c296 Merge pull request #1734 from Luis-Fernando-Molina/develop
Contribution: Desktop App: Posts being saved at User's Repos
2021-09-12 05:31:39 -04:00
Luis Fernando Molina f77aa3d1c5 Posts being recorded at User's own Github repo. 2021-09-12 11:19:57 +02:00
Luis Fernando Molina 2b92426d9c Posts being sent to Users Social Trading Repo 2021-09-12 11:01:21 +02:00
Smidy13 2a6515b2af Bug Fix: Fast Forward into the Future 2021-09-12 21:00:27 +12:00
Smidy13 0609479caf Merge branch 'develop' of https://github.com/Smidy13/Superalgos into develop 2021-09-12 20:56:39 +12:00
Smidy13 9b1a54999a Bug Fix: Fast Forward in the Future 2021-09-12 20:51:13 +12:00
Ferrox85 fe64297e55 Merge branch 'Superalgos-develop' into develop 2021-09-12 10:03:06 +02:00
Ferrox85 ea7e27ad6f Merge branch 'develop' of https://github.com/Superalgos/Superalgos into Superalgos-develop 2021-09-12 10:02:21 +02:00
Luis Fernando Molina 3d0db423ed Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-09-12 08:31:38 +02:00
Luis Fernando Molina 5276fb8728 Merge pull request #1729 from harrellbm/plugins-docs
reference debug topic in actions topic and typo fix
2021-09-12 02:30:19 -04:00
Luis Fernando Molina 7280704a33 Merge pull request #1730 from Tentacule23/develop
Contribution: snap_to_position Tentacule23
2021-09-12 02:28:40 -04:00
Tentacule23 fd1fec92ac snap_to_position Tentacule23 2021-09-11 18:34:33 -04:00
Luis Fernando Molina ee92708d40 Post TextArea ready 2021-09-11 17:17:32 +02:00
Brenden Harrell 335e32613a Merge branch 'plugins-docs' of https://github.com/harrellbm/Superalgos into plugins-docs 2021-09-11 10:09:23 -05:00
Brenden Harrell 2018cbdc6f Docs Typo Fix 2021-09-11 10:09:20 -05:00
B Harrell 7852c26286 Merge branch 'Superalgos:plugins-docs' into plugins-docs 2021-09-11 09:58:04 -05:00
Brenden Harrell 15712a67e1 reference debug topic in actions topic 2021-09-11 09:56:55 -05:00
Luis Fernando Molina be44746f79 Merge pull request #1726 from harrellbm/develop
Harden Tutorial Icon Loading
2021-09-11 10:25:37 -04:00
Luis Fernando Molina cbfbb6e5f6 Merge pull request #1727 from harrellbm/plugins-docs
Cherry Pick icon Hardening and Begin Refactoring Tutorials
2021-09-11 10:24:53 -04:00
Brenden Harrell 938852779b Refactor: Custom Charts for Icons 2021-09-11 09:14:52 -05:00
Brenden Harrell 7db4fbf424 Harden Tutorial Icon loading 2021-09-11 09:11:57 -05:00
B Harrell e06416ba82 Merge branch 'Superalgos:develop' into develop 2021-09-11 09:06:16 -05:00
Brenden Harrell aae8229048 Various Doc Updates 2021-09-11 09:04:40 -05:00
Brenden Harrell b04812762d Harden Tutorial Icon loading 2021-09-11 08:57:36 -05:00
Ferrox85 f3a146d25f Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-09-11 14:24:09 +02:00
Luis Fernando Molina 986172f616 who to follow working well 2021-09-10 16:14:14 +02:00
Luis Fernando Molina e4f11d5341 Following and Unfollowing working from WebApp 2021-09-10 14:15:55 +02:00
Luis Fernando Molina db348b3f51 follow profile working from Web App to Network Node 2021-09-10 14:03:52 +02:00
Luis Fernando Molina 2f4aa33cfe scrolling problem solved 2021-09-10 11:59:52 +02:00
Luis Fernando Molina e7a44b7760 Click event handled 2021-09-10 11:29:54 +02:00
Luis Fernando Molina 091a8a3c6d Who to Follow 2021-09-10 09:15:06 +02:00
Luis Fernando Molina 8d79c9255d Changes in User Profile done by Profile Owner Tentacule23 automatically merged by Superalgos.
Contribution: User Profile Tentacule23
2021-09-10 03:10:34 -04:00
Tentacule23 061e513601 User Profile Tentacule23 2021-09-09 11:46:41 -04:00
Luis Fernando Molina 9b9dc4d645 Profiles showing up at web page 2021-09-09 17:27:00 +02:00
Luis Fernando Molina c5a83c2889 Changes in User Profile done by Profile Owner Ferrox85 automatically merged by Superalgos.
Develop
2021-09-09 11:01:36 -04:00
Ferrox85 726c012b2f update userprofile 2021-09-09 16:53:52 +02:00
Ferrox85 6f67aa8382 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-09-09 16:45:44 +02:00
Luis Fernando Molina 274d8e24fa Merge pull request #1720 from Luis-Fernando-Molina/develop
Contribution: Desktop App: Infraestructure to connect via websockets from Web App to Network Node via Desktop Client
2021-09-09 09:27:43 -04:00
Luis Fernando Molina 481b8fb2d8 Deep Scan Bug Fixes 2021-09-09 15:26:35 +02:00
Luis Fernando Molina f58dcd7e33 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-09-09 15:20:45 +02:00
Luis Fernando Molina cdd5cebfc5 Profiles Arrived to the Desktop WebApp 2021-09-09 15:17:41 +02:00
Ferrox85 6968489d8b User Profile Ferrox85 2021-09-09 14:17:26 +02:00
Luis Fernando Molina 4125d54016 SA root object implemented at Web App. 2021-09-09 14:08:59 +02:00
Luis Fernando Molina 663a847351 DESKTOP_WEB_SOCKETS_INTERFACE_PORT used at WebApp 2021-09-09 13:14:02 +02:00
Luis Fernando Molina 9c1baaf306 .children. to .nodeChildren. refactoring 2021-09-09 13:04:51 +02:00
Luis Fernando Molina 7b3aa8da85 Improving App Loader 2021-09-09 13:03:46 +02:00
Luis Fernando Molina c18e1a776d Killed App Post Loader 2021-09-09 12:35:31 +02:00
Ferrox85 652610bb5d User Profile Ferrox85 2021-09-09 12:27:37 +02:00
Luis Fernando Molina 73134a4f45 Modules loaded at UI 2021-09-09 12:16:28 +02:00
Ferrox85 1758d8704c User Profile Ferrox85 2021-09-09 12:11:13 +02:00
Ferrox85 d76c79b9ab Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-09-09 12:08:55 +02:00
Luis Fernando Molina 303c8a9920 Ready to request profiles 2021-09-09 11:45:07 +02:00
Luis Fernando Molina bdf54265ce Merge pull request #1719 from Tentacule23/plugins-docs
Contribution: My Superalgos Review
2021-09-09 02:06:55 -04:00
Tentacule23 c24381f820 My Superalgos Review 2021-09-08 20:03:24 -04:00
Julian Molina 176a2a8d08 Merge pull request #1716 from julian-molina/develop
Contribution: README Usage section clarifications
2021-09-08 19:31:51 +02:00
Julian Molina 47acdceaad README Usage section clarifications 2021-09-08 19:30:30 +02:00
Luis Fernando Molina a9cf324199 Desktop Web App Websockets Clieent 2021-09-08 15:50:09 +02:00
Luis Fernando Molina f3a7460985 Desktop Websockets Internface Implemeted 2021-09-08 15:19:40 +02:00
Luis Fernando Molina 44332a13de Initializing the Web App 2021-09-08 14:14:27 +02:00
Luis Fernando Molina c01c9bbca6 who to follow 2021-09-08 13:48:48 +02:00
Luis Fernando Molina b81ac5fcf7 Merge pull request #1706 from quantum8/develop
Contribution: User Profile quantum8
2021-09-08 05:34:56 -04:00
Luis Fernando Molina 6af7fe09eb Merge pull request #1693 from quantum8/patch-1
Spelling fix
2021-09-08 05:34:30 -04:00
Luis Fernando Molina 020e01237a html layout 2021-09-08 11:03:43 +02:00
jacob e9ea832281 User Profile quantum8 2021-09-08 11:38:13 +10:00
jacob 6f8d223142 User Profile quantum8 2021-09-08 11:31:54 +10:00
quantum8 591053ef40 Update creating-your-user-profile-tutorial-033-tutorial-step-token-power-requirement.json
Spelling fix
2021-09-08 11:08:53 +10:00
quantum8 7f0bb521d4 Spelling fix
Fix typo
2021-09-08 11:01:29 +10:00
quantum8 cff738248b Spelling fix
Minor spelling fix for the deprecated message text.
2021-09-08 10:36:48 +10:00
Luis Fernando Molina 4e92ff1740 Event Broadcasting 2021-09-07 16:57:48 +02:00
Luis Fernando Molina 65549d136c Merge pull request #1689 from Superalgos/develop
Develop into Master: Beta 11 Hot Fix 2 - Docker
2021-09-07 10:10:09 -04:00
Luis Fernando Molina 511adfd6d8 Merge pull request #1688 from ssplatt/update-docker-file
update run command in docker file
2021-09-07 09:49:48 -04:00
Brett Taylor 03a6e458cb update run command 2021-09-07 09:46:08 -04:00
Luis Fernando Molina bac140cf92 sockets connections and disconnections plus callers ordered arrays. 2021-09-07 13:05:58 +02:00
Luis Fernando Molina 4623ef28a3 Update index.html 2021-09-07 11:31:59 +02:00
Luis Fernando Molina 979b95dab9 Merge pull request #1687 from Superalgos/develop
Develop into Master: Beta 11 Hot Fix 1
2021-09-06 14:38:07 -04:00
Luis Fernando Molina 373f0307d8 WebApp Loading all modules declared at Project Schema 2021-09-06 20:30:05 +02:00
Luis Fernando Molina 8e17897597 Changes in User Profile done by Profile Owner romeox7 automatically merged by Superalgos.
Contribution: User Profile romeox7
2021-09-06 13:40:02 -04:00
Jerome P f5d6154be4 User Profile romeox7 2021-09-06 17:09:31 +00:00
Julian Molina 4e0ac054ec Merge pull request #1685 from julian-molina/develop
Contribution: Reviews clean up and repagination
2021-09-06 18:44:12 +02:00
Julian Molina c1951921c0 Reviews clean up and repagination 2021-09-06 18:43:46 +02:00
Julian Molina 501b447ca1 Merge pull request #1684 from julian-molina/develop
Contribution: Getting started improvements
2021-09-06 18:42:22 +02:00
Julian Molina 0d7db51cf8 Getting started improvements 2021-09-06 18:31:37 +02:00
Luis Fernando Molina ecc7b7d7b6 Web App basic code 2021-09-06 17:59:44 +02:00
Julian Molina debd68e950 Merge pull request #1683 from julian-molina/develop
Contribution: README update fixing node run command instructions
2021-09-06 16:52:10 +02:00
Julian Molina 748ffca1e4 README update fixing node run command instructions 2021-09-06 16:51:21 +02:00
Luis Fernando Molina 474a9238ec Merge pull request #1681 from Superalgos/develop
Develop into Plugins Docs
2021-09-06 10:29:52 -04:00
Luis Fernando Molina 0ff2809f0d Reorg of UI loader 2021-09-06 14:11:54 +02:00
Smidy13 585bb001ba Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-09-04 08:43:59 +12:00
Smidy13 66e3e205ef Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-09-02 22:13:50 +12:00
Haroun 178b33545f Merge branch 'master' of https://github.com/Superalgos/Superalgos 2021-06-20 23:34:57 +02:00
Haroun 433a779d95 Merge branch 'master' of https://github.com/Superalgos/Superalgos 2021-06-09 11:27:23 +02:00
Haroun a517b99294 Merge branch 'master' of https://github.com/Superalgos/Superalgos 2021-05-17 22:48:56 +02:00
Haroun 1fcb7095dd This is my contribution to Superalgos 2021-05-09 22:24:55 +02:00
2030 changed files with 849045 additions and 456185 deletions

No files matched your search

+13 -8
View File
@@ -1,15 +1,20 @@
Data-Storage
Log-Files
My-Workspaces
**/Data-Storage
**/My-Data-Storage
**/Log-Files
**/My-Log-Files
**/My-Workspaces
debug.log
*.db
.git*
.vscode
README.md
LICENSE
CONTRIBUITING.md
CONTRIBUTING.md
CODE_OF_CONDUCT.md
./**/.vscode
Dockerfile
.git*
.docker*
**/.vscode
**/Dockerfile*
**/docker-compose.yml
**/node_modules
**/.env*
+30
View File
@@ -0,0 +1,30 @@
# https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners
# These owners will be the default owners for everything in
# the repo. Unless a later match takes precedence, these will be requested for
# review when someone opens a pull request.
* @Superalgos/foundations-project
# Project Teams
/Projects/Algorithmic-Trading/ @Superalgos/algorithmic-trading-project
/Projects/Community-Plugins/ @Superalgos/community-plugins-project
/Projects/Data-Mining/ @Superalgos/data-mining-project
/Projects/Ethereum/ @Superalgos/ethereum-project
/Projects/Foundations/ @Superalgos/foundations-project
/Projects/Governance/ @Superalgos/governance-project
/Projects/Machine-Learning/ @Superalgos/machine-learning-project
/Projects/Network/ @Superalgos/network-project
/Projects/Social-Bots/ @Superalgos/social-bots-project
/Projects/Social-Trading/ @Superalgos/social-trading-project
/Projects/TensorFlow/ @Superalgos/tensorflow-project
/Projects/Visual-Scripting/ @Superalgos/visual-scripting-project
/Projects/Education/ @Superalgos/education-project
Docs*/ @Superalgos/education-project
/.github/ @Superalgos/sysadmins-team
/Docker/ @Superalgos/sysadmins-team
.git* @Superalgos/sysadmins-team
.docker* @Superalgos/sysadmins-team
package*.json @Superalgos/sysadmins-team
+69
View File
@@ -0,0 +1,69 @@
name: Build/release Binaries
on:
pull_request:
branches: [master]
#release:
# types: [published, created]
workflow_dispatch:
jobs:
create-release:
runs-on: ubuntu-latest
steps:
- name: Download a file
run: curl "https://raw.githubusercontent.com/${{ github.repository }}/master/package.json" -o package.json
- name: get-version
id: version
uses: nyaa8/package-version@v1
with:
path: './package.json'
- name: Create release
id: create_release
uses: viperproject/create-nightly-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ env.PACKAGE_VERSION }}
release_name: Superalgos-v${{ env.PACKAGE_VERSION }}
build-release:
runs-on: ${{ matrix.os }}
needs: create-release
strategy:
matrix:
os: [windows-latest, macos-latest]
steps:
- name: Check out Git repository
uses: actions/checkout@v2
with:
ref: develop
- name: Install Node.js, NPM and Yarn
uses: actions/setup-node@v1
with:
node-version: 14
- name: get-version
id: version
uses: nyaa8/package-version@v1
with:
path: './package.json'
- name: Build/release Electron app
uses: samuelmeuli/action-electron-builder@v1
with:
# GitHub token, automatically provided to the action
# (No need to define this secret in the repo settings)
github_token: ${{ secrets.github_token }}
args: "-c.extraMetadata.version=${{ env.PACKAGE_VERSION }} -c build/electron-builder.json -p always"
# If the commit is tagged with a version (e.g. "v1.0.0"),
# release the app after building
# release: ${{ startsWith(github.ref, 'refs/tags/v') }}
release: true
+78
View File
@@ -0,0 +1,78 @@
name: Nightly develop Binaries
on:
schedule:
- cron: '20 3 * * *'
workflow_dispatch:
jobs:
create-release:
runs-on: ubuntu-latest
steps:
- name: Download a file
run: curl "https://raw.githubusercontent.com/${{ github.repository }}/develop/package.json" -o package.json
- name: Get current date
id: date
run: echo "::set-output name=date::$(date +'%Y%m%d')"
- name: get-version
id: version
uses: nyaa8/package-version@v1
with:
path: './package.json'
- name: Create nightly release
id: create_release
uses: viperproject/create-nightly-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ env.PACKAGE_VERSION }}.${{ steps.date.outputs.date }}
release_name: Superalgos ${{ env.PACKAGE_VERSION }} Snapshot ${{ steps.date.outputs.date }}
keep_num: 5
keep_tags: false
build-release:
runs-on: ${{ matrix.os }}
needs: create-release
strategy:
matrix:
os: [windows-latest, macos-latest]
steps:
- name: Get current date
id: date
run: echo "::set-output name=date::$(date +'%Y%m%d')"
- name: Check out Git repository
uses: actions/checkout@v2
with:
ref: develop
- name: Install Node.js, NPM and Yarn
uses: actions/setup-node@v1
with:
node-version: 14
- name: get-version
id: version
uses: nyaa8/package-version@v1
with:
path: './package.json'
- name: Build/release Electron app
uses: samuelmeuli/action-electron-builder@v1
with:
# GitHub token, automatically provided to the action
# (No need to define this secret in the repo settings)
github_token: ${{ secrets.github_token }}
args: "-c.extraMetadata.main=electron-wrapper.js -c.extraMetadata.version=${{ env.PACKAGE_VERSION }}.${{ steps.date.outputs.date }} -c build/electron-builder.json -p onTagOrDraft"
# If the commit is tagged with a version (e.g. "v1.0.0"),
# release the app after building
# release: ${{ startsWith(github.ref, 'refs/tags/v') }}
release: true
+7
View File
@@ -1,6 +1,11 @@
Data-Storage
Log-Files
My-Workspaces
My-Social-Trading-Data
My-Network-Nodes-Data
My-Secrets
My-Data-Storage
My-Log-Files
debug.log
.DS_Store
*.db
@@ -12,4 +17,6 @@ Projects/Foundations/Icons/Thumbs.db
*.exe
node_modules
launch.json
package-lock.json
.idea
dist
+11
View File
@@ -0,0 +1,11 @@
{
"folders": [
{
"path": "C:\\Superalgos\\Platform"
},
{
"path": "C:\\Superalgos\\Projects"
}
],
"settings": {}
}
+13
View File
@@ -0,0 +1,13 @@
{
"folders": [
{
"path": "C:\\Superalgos\\TaskServer"
},
{
"path": "C:\\Superalgos\\Projects"
}
],
"settings": {
"search.maintainFileSearchCache": true
}
}
+12 -4
View File
@@ -1,17 +1,25 @@
{
"files.exclude": {
"**/Data-Storage": true,
"**/Documentation": true,
"**/Log-Files": true,
"**/node_modules": true,
"**/Deprecated-Code": true
"**/My-Social-Trading-Data": true,
"**/My-Network-Nodes-Data": true,
"**/My-Workspaces": true,
"**/My-Secrets": true,
"**/My-Data-Storage": true,
"**/My-Log-Files": true,
},
"search.exclude": {
"**/Data-Storage": true,
"**/Documentation": true,
"**/Log-Files": true,
"**/node_modules": true,
"**/Deprecated-Code": true
"**/My-Social-Trading-Data": true,
"**/My-Network-Nodes-Data": true,
"**/My-Workspaces": true,
"**/My-Secrets": true,
"**/My-Data-Storage": true,
"**/My-Log-Files": true,
},
"search.maintainFileSearchCache": true
}
+4
View File
@@ -0,0 +1,4 @@
brew "git"
brew "node"
brew "npm"
brew "python@3.9"
+22 -21
View File
@@ -8,33 +8,34 @@ exports.newDesktopApp = function newDesktopApp() {
async function run() {
/*
let socialGraphService = NT.projects.network.modules.socialGraph.newSocialGraph()
await socialGraphService.initialize()
Here we will store our running objects:
*/
DK.running = {}
/*
This is the Personal Social Graph for the user running this App.
*/
DK.running.socialGraph = DK.projects.socialTrading.modules.socialGraph.newSocialTradingModulesSocialGraph()
await DK.running.socialGraph.initialize()
/*
This is the Web Sockets client that interacts with the Superalgos Network.
*/
//DK.webSocketsClient = SA.projects.network.modules.webSocketsClient.newNetworkModulesWebSocketsClient()
//await DK.webSocketsClient.initialize()
DK.running.webSocketsClient = SA.projects.network.modules.webSocketsAppClient.newNetworkModulesWebSocketsAppClient()
await DK.running.webSocketsClient.initialize()
console.log('Desktop Client Connected to Network Node via Web Sockets ................... Connected to port ' + global.env.NETWORK_WEB_SOCKETS_INTERFACE_PORT)
/* These are the Network Interfaces by which the UI interacts with the Desktop App.*/
//let WEB_SOCKETS_INTERFACE = require('./webSocketsInterface.js')
let HTTP_INTERFACE = require('./httpInterface.js')
/* These are the Network Interfaces by which the Web App interacts with this Desktop Client.*/
/*
WEB_SOCKETS_INTERFACE = WEB_SOCKETS_INTERFACE.newWebSocketsInterface()
WEB_SOCKETS_INTERFACE.initialize()
console.log('Web Sockets Interface ....................................... Listening at port ' + global.env.CLIENT_WEB_SOCKETS_INTERFACE_PORT)
*/
DK.running.webSocketsInterface = DK.projects.socialTrading.modules.webSocketsInterface.newDesktopModulesWebSocketsInterface()
DK.running.webSocketsInterface.initialize()
console.log('Desktop Client Web Sockets Interface ....................................... Listening at port ' + global.env.DESKTOP_WEB_SOCKETS_INTERFACE_PORT)
HTTP_INTERFACE = HTTP_INTERFACE.newHttpInterface()
HTTP_INTERFACE.initialize()
console.log('Http Interface .............................................. Listening at port ' + global.env.DESKTOP_HTTP_INTERFACE_PORT)
DK.running.httpInterface = DK.projects.socialTrading.modules.httpInterface.newDesktopModulesHttpInterface()
DK.running.httpInterface.initialize()
console.log('Desktop Client Http Interface .............................................. Listening at port ' + global.env.DESKTOP_HTTP_INTERFACE_PORT)
return
let queryMessage
let query
/*
@@ -42,7 +43,7 @@ exports.newDesktopApp = function newDesktopApp() {
*/
queryMessage = {
queryType: SA.projects.socialTrading.globals.queryTypes.USER_PROFILES,
emitterUserProfileId: DK.TEST_NETWORK_CLIENT_USER_PROFILE_ID,
emitterUserProfileId: SA.secrets.map.get(global.env.DESKTOP_APP_SIGNING_ACCOUNT).userProfileId,
initialIndex: 'Last',
amountRequested: 10,
direction: 'Past'
@@ -71,7 +72,7 @@ exports.newDesktopApp = function newDesktopApp() {
let eventMessage = {
eventId: SA.projects.foundations.utilities.miscellaneousFunctions.genereteUniqueId(),
eventType: SA.projects.socialTrading.globals.eventTypes.FOLLOW_USER_PROFILE,
emitterUserProfileId: DK.TEST_NETWORK_CLIENT_USER_PROFILE_ID,
emitterUserProfileId: SA.secrets.map.get(global.env.DESKTOP_APP_SIGNING_ACCOUNT).userProfileId,
targetUserProfileId: profile.userProfileId
}
@@ -96,8 +97,8 @@ exports.newDesktopApp = function newDesktopApp() {
*/
queryMessage = {
queryType: SA.projects.socialTrading.globals.queryTypes.USER_PROFILE_STATS,
emitterUserProfileId: DK.TEST_NETWORK_CLIENT_USER_PROFILE_ID,
targetUserProfileId: DK.TEST_NETWORK_CLIENT_USER_PROFILE_ID
emitterUserProfileId: SA.secrets.map.get(global.env.DESKTOP_APP_SIGNING_ACCOUNT).userProfileId,
targetUserProfileId: SA.secrets.map.get(global.env.DESKTOP_APP_SIGNING_ACCOUNT).userProfileId
}
query = {
-190
View File
@@ -1,190 +0,0 @@
let postLoader
function newAppLoader() {
const MODULE_NAME = 'App Loader'
const INFO_LOG = false
const ERROR_LOG = true
const logger = newWebDebugLog()
let thisObject = {
loadModules: loadModules
}
return thisObject
async function loadModules() {
try {
if (INFO_LOG === true) { logger.write('[INFO] loadModules -> Entering function.') }
let plotters
let modulesArray = []
plotters = defaultPlotters()
modulesArray = modulesArray.concat([
'Globals.js',
'Workspace.js',
'Files/SingleFile.js',
'Files/FileCloud.js',
'Files/MarketFiles.js',
'Files/DailyFiles.js',
'Files/FileCursor.js',
'Files/FileSequence.js',
'Files/FileStorage.js',
'EventsServerClient.js',
'LegacyPlotter.js',
'PlotterPanel.js',
'VideoRecorder.js',
'ProductStorage.js',
'Canvas.js',
'EventHandler.js',
'Frame.js',
'Animation.js',
'Container.js',
'Utilities.js',
'AppPostLoader.js'
])
modulesArray = modulesArray.concat(plotters)
functionLibraries()
function functionLibraries() {
let url = 'ListFunctionLibraries'
httpRequest(undefined, url, onResponse)
function onResponse(err, fileList) {
let urlArray = []
let fileArray = JSON.parse(fileList)
for (let i = 0; i < fileArray.length; i++) {
let item = fileArray[i]
project = item[0]
fileName = item[1]
urlArray.push('Projects' + '/' + project + '/' + 'UI' + '/' + 'Function-Libraries' + '/' + fileName)
}
modulesArray = modulesArray.concat(urlArray)
utilities()
}
}
function utilities() {
let url = 'ListUtilitiesFiles'
httpRequest(undefined, url, onResponse)
function onResponse(err, fileList) {
let urlArray = []
let fileArray = JSON.parse(fileList)
for (let i = 0; i < fileArray.length; i++) {
let item = fileArray[i]
project = item[0]
fileName = item[1]
urlArray.push('Projects' + '/' + project + '/' + 'UI' + '/' + 'Utilities' + '/' + fileName)
}
modulesArray = modulesArray.concat(urlArray)
globals()
}
}
function globals() {
let url = 'ListGlobalFiles'
httpRequest(undefined, url, onResponse)
function onResponse(err, fileList) {
let urlArray = []
let fileArray = JSON.parse(fileList)
for (let i = 0; i < fileArray.length; i++) {
let item = fileArray[i]
project = item[0]
fileName = item[1]
urlArray.push('Projects' + '/' + project + '/' + 'UI' + '/' + 'Globals' + '/' + fileName)
}
modulesArray = modulesArray.concat(urlArray)
spaces()
}
}
function spaces() {
let url = 'ListSpaceFiles'
httpRequest(undefined, url, onResponse)
function onResponse(err, fileList) {
let urlArray = []
let fileArray = JSON.parse(fileList)
for (let i = 0; i < fileArray.length; i++) {
let path = fileArray[i]
urlArray.push('Projects' + '/' + path)
}
modulesArray = modulesArray.concat(urlArray)
downloadIncludedFiles()
}
}
function downloadIncludedFiles() {
let downloadedCounter = 0
for (let i = 0; i < modulesArray.length; i++) {
let path = modulesArray[i]
REQUIREJS([path], onRequired)
if (INFO_LOG === true) { logger.write('[INFO] loadModules -> Module Requested.') }
if (INFO_LOG === true) { logger.write('[INFO] loadModules -> path = ' + path) }
if (INFO_LOG === true) { logger.write('[INFO] loadModules -> total requested = ' + (i + 1)) }
function onRequired(pModule) {
try {
if (INFO_LOG === true) { logger.write('[INFO] loadModules -> onRequired -> Entering function.') }
if (INFO_LOG === true) { logger.write('[INFO] loadModules -> onRequired -> Module Downloaded.') }
if (INFO_LOG === true) { logger.write('[INFO] loadModules -> onRequired -> path = ' + path) }
downloadedCounter++
if (INFO_LOG === true) { logger.write('[INFO] loadModules -> onRequired -> downloadedCounter = ' + downloadedCounter) }
if (downloadedCounter === modulesArray.length) {
if (INFO_LOG === true) { logger.write('[INFO] loadModules -> onRequired -> Starting Advanced Algos Platform.') }
setTimeout(() => {
postLoader = newAppPostLoader()
postLoader.start()
}, 500)
}
} catch (err) {
if (ERROR_LOG === true) { logger.write('[ERROR] loadModules -> onRequired -> err = ' + err.stack) }
}
}
}
}
} catch (err) {
if (ERROR_LOG === true) { logger.write('[ERROR] loadModules -> err = ' + err.stack) }
}
}
function defaultPlotters() {
return [
'Plotters/Foundations/Candles/Plotters-Candles-Volumes/Candles.js',
'Plotters/Foundations/Candles/Plotters-Candles-Volumes/CandlePanel.js',
'Plotters/Foundations/Candles/Plotters-Candles-Volumes/Volumes.js',
'Plotters/Foundations/Candles/Plotters-Candles-Volumes/VolumePanel.js',
'Plotters/Foundations/Bollinger/Plotters-Bollinger-Bands/BollingerBands.js',
'Plotters/Foundations/Bollinger/Plotters-Bollinger-Bands/BollingerBandsPanel.js',
'Plotters/Foundations/Bollinger/Plotters-Bollinger-Bands/PercentageBandwidth.js'
]
}
}
+15
View File
@@ -0,0 +1,15 @@
/* Root objects*/
let UI = {
projects: {},
schemas: { projectSchema: undefined },
environment: undefined,
running: {}
}
let SA = { projects: {} }
/*
We will use this to load functions originally intended for Nodejs
*/
let exports = {}
+412
View File
@@ -0,0 +1,412 @@
function newWebApp() {
/*
In it's current state of development, the Web App only has one module.
Everything is being coded here until some structure emerges.
*/
let thisObject = {
initialize: initialize,
finalize: finalize
}
return thisObject
function finalize() {
}
async function initialize() {
try {
setupRootObject(UI, 'UI')
setupRootObject(SA, 'SA')
await UI.projects.socialTrading.modules.webSocketsWebClient.initialize()
loadWUserProfileTimeline()
loadWhoToFollow()
setupEventHandlers()
} catch (err) {
console.log('[ERROR] initialize -> err.stack = ' + err.stack)
}
}
function setupRootObject(rootObject, rootObjectName) {
/*
Here we will setup the UI object, with all the
projects and spaces.
*/
for (let i = 0; i < UI.schemas.projectSchema.length; i++) {
let projectDefinition = UI.schemas.projectSchema[i]
rootObject.projects[projectDefinition.propertyName] = {}
let projectInstance = rootObject.projects[projectDefinition.propertyName]
projectInstance.utilities = {}
projectInstance.globals = {}
projectInstance.functionLibraries = {}
projectInstance.modules = {}
if (projectDefinition[rootObjectName] === undefined) { continue }
/* Set up Globals of this Project */
if (projectDefinition[rootObjectName].globals !== undefined) {
for (let j = 0; j < projectDefinition[rootObjectName].globals.length; j++) {
let globalDefinition = projectDefinition[rootObjectName].globals[j]
if (exports[globalDefinition.functionName] === undefined) {
projectInstance.globals[globalDefinition.propertyName] = eval(globalDefinition.functionName + '()')
} else {
projectInstance.globals[globalDefinition.propertyName] = eval('exports.' + globalDefinition.functionName + '()')
}
}
}
/* Set up Utilities of this Project */
if (projectDefinition[rootObjectName].utilities !== undefined) {
for (let j = 0; j < projectDefinition[rootObjectName].utilities.length; j++) {
let utilityDefinition = projectDefinition[rootObjectName].utilities[j]
if (exports[utilityDefinition.functionName] === undefined) {
projectInstance.utilities[utilityDefinition.propertyName] = eval(utilityDefinition.functionName + '()')
} else {
projectInstance.utilities[utilityDefinition.propertyName] = eval('exports.' + utilityDefinition.functionName + '()')
}
}
}
/* Set up Function Libraries of this Project */
if (projectDefinition[rootObjectName].functionLibraries !== undefined) {
for (let j = 0; j < projectDefinition[rootObjectName].functionLibraries.length; j++) {
let functionLibraryDefinition = projectDefinition[rootObjectName].functionLibraries[j]
if (exports[functionLibraryDefinition.functionName] === undefined) {
projectInstance.functionLibraries[functionLibraryDefinition.propertyName] = eval(functionLibraryDefinition.functionName + '()')
} else {
projectInstance.functionLibraries[functionLibraryDefinition.propertyName] = eval('exports.' + functionLibraryDefinition.functionName + '()')
}
}
}
/* Set up Modules of this Project */
if (projectDefinition[rootObjectName].modules !== undefined) {
for (let j = 0; j < projectDefinition[rootObjectName].modules.length; j++) {
let functionLibraryDefinition = projectDefinition[rootObjectName].modules[j]
if (exports[functionLibraryDefinition.functionName] === undefined) {
projectInstance.modules[functionLibraryDefinition.propertyName] = eval(functionLibraryDefinition.functionName + '()')
} else {
projectInstance.modules[functionLibraryDefinition.propertyName] = eval('exports.' + functionLibraryDefinition.functionName + '()')
}
}
}
}
}
async function loadWUserProfileTimeline() {
let queryMessage = {
queryType: SA.projects.socialTrading.globals.queryTypes.EVENTS,
emitterUserProfileId: undefined,
initialIndex: SA.projects.socialTrading.globals.queryConstants.INITIAL_INDEX_LAST,
amountRequested: 100,
direction: SA.projects.socialTrading.globals.queryConstants.DIRECTION_PAST
}
let query = {
requestType: 'Query',
queryMessage: JSON.stringify(queryMessage)
}
await UI.projects.socialTrading.modules.webSocketsWebClient.sendMessage(
JSON.stringify(query)
)
.then(addToContentDiv)
.catch(onError)
function onError(errorMessage) {
console.log('[ERROR] Query not executed. ' + errorMessage)
console.log('[ERROR] query = ' + JSON.stringify(query))
}
function addToContentDiv(events) {
try {
let contentDiv = document.getElementById('content-div')
/*
Delete al current content.
*/
while (contentDiv.childNodes.length > 4) {
let childToRemove = contentDiv.childNodes[contentDiv.childNodes.length - 1]
contentDiv.removeChild(childToRemove)
}
/*
Render the timeline.
*/
for (let i = 0; i < events.length; i++) {
let event = events[i]
let postDiv = document.createElement("div")
postDiv.setAttribute("class", "post-div")
let textNode
switch (event.eventType) {
case SA.projects.socialTrading.globals.eventTypes.NEW_USER_POST: {
textNode = document.createTextNode(event.emitterUserProfile.userProfileHandle + " POSTED " + event.postText)
break
}
case SA.projects.socialTrading.globals.eventTypes.FOLLOW_USER_PROFILE: {
textNode = document.createTextNode(event.emitterUserProfile.userProfileHandle + " FOLLOWED " + event.targetUserProfile.userProfileHandle)
break
}
case SA.projects.socialTrading.globals.eventTypes.UNFOLLOW_USER_PROFILE: {
textNode = document.createTextNode(event.emitterUserProfile.userProfileHandle + " UNFOLLOWED " + event.targetUserProfile.userProfileHandle)
break
}
}
postDiv.appendChild(textNode)
contentDiv.appendChild(postDiv)
}
}
catch (err) {
console.log('[ERROR] err.stack = ' + err.stack)
}
}
}
async function loadWhoToFollow() {
let queryMessage = {
queryType: SA.projects.socialTrading.globals.queryTypes.UNFOLLOWED_USER_PROFILES,
emitterUserProfileId: undefined,
initialIndex: SA.projects.socialTrading.globals.queryConstants.INITIAL_INDEX_FIRST,
amountRequested: 3,
direction: SA.projects.socialTrading.globals.queryConstants.DIRECTION_UP
}
let query = {
requestType: 'Query',
queryMessage: JSON.stringify(queryMessage)
}
await UI.projects.socialTrading.modules.webSocketsWebClient.sendMessage(
JSON.stringify(query)
)
.then(addWhoToFollowTable)
.catch(onError)
function onError(errorMessage) {
console.log('[ERROR] Query not executed. ' + errorMessage)
console.log('[ERROR] query = ' + JSON.stringify(query))
}
function addWhoToFollowTable(profiles) {
let contextCell = document.getElementById('who-to-follow-cell')
let table = document.createElement("table")
let tblBody = document.createElement("tbody")
for (let i = 0; i < profiles.length; i++) {
let profile = profiles[i]
let row = document.createElement("tr")
let cell = document.createElement("td")
addProfileToFollowTable(cell, profile)
row.appendChild(cell)
tblBody.appendChild(row)
}
table.appendChild(tblBody)
contextCell.appendChild(table)
table.setAttribute("class", "who-to-follow-table")
function addProfileToFollowTable(htmlElement, profile) {
let table = document.createElement("table")
let tblBody = document.createElement("tbody")
let row = document.createElement("tr")
{
let cell = document.createElement("td")
let textNode = document.createTextNode('Profile Picture')
cell.appendChild(textNode)
row.appendChild(cell)
}
{
let cell = document.createElement("td")
let textNode = document.createTextNode(profile.userProfileHandle)
cell.appendChild(textNode)
row.appendChild(cell)
}
{
let cell = document.createElement("td")
let span = document.createElement("span")
let button = document.createElement("button")
let text = document.createTextNode('Follow')
span.setAttribute("id", "profile-to-follow-span-" + profile.userProfileId)
button.setAttribute("id", "profile-to-follow-button-" + profile.userProfileId)
button.name = 'Follow Profile'
button.userProfileId = profile.userProfileId
span.setAttribute("class", "profile-to-follow-span")
button.setAttribute("class", "profile-to-follow-button")
button.appendChild(text)
span.appendChild(button)
cell.appendChild(span)
row.appendChild(cell)
}
tblBody.appendChild(row)
table.appendChild(tblBody)
htmlElement.appendChild(table)
table.setAttribute("class", "profile-to-follow-table")
}
}
}
function setupEventHandlers() {
/*
Add events to process button clicks , and mouseWheel.
*/
document.addEventListener("click", onClick)
document.addEventListener('mousewheel', onMouseWheel, false)
async function onClick(event) {
if (event.target && event.target.nodeName === "BUTTON") {
switch (event.target.name) {
case 'New Post': {
let textArea = document.getElementById("new-post-text-area")
await sendNewPostEvent(
textArea.value
)
.then(updateTextArea)
.catch(onError)
function updateTextArea() {
textArea.value = ""
}
break
}
case 'Follow Profile': {
await sendTargetUserProfileEvent(
event.target.userProfileId,
SA.projects.socialTrading.globals.eventTypes.FOLLOW_USER_PROFILE
)
.then(updateButton)
.catch(onError)
function updateButton() {
let span = document.getElementById('profile-to-follow-span-' + event.target.userProfileId)
let button = document.getElementById('profile-to-follow-button-' + event.target.userProfileId)
span.setAttribute("class", "profile-to-unfollow-span")
button.setAttribute("class", "profile-to-unfollow-button")
button.name = 'Unfollow Profile'
}
break
}
case 'Unfollow Profile': {
await sendTargetUserProfileEvent(
event.target.userProfileId,
SA.projects.socialTrading.globals.eventTypes.UNFOLLOW_USER_PROFILE
)
.then(updateButton)
.catch(onError)
function updateButton() {
let span = document.getElementById('profile-to-follow-span-' + event.target.userProfileId)
let button = document.getElementById('profile-to-follow-button-' + event.target.userProfileId)
span.setAttribute("class", "profile-to-follow-span")
button.setAttribute("class", "profile-to-follow-button")
button.name = 'Follow Profile'
}
break
}
}
}
/*
Error Handling
*/
function onError(errorMessage) {
console.log('[ERROR] Click event failed. ' + errorMessage)
}
}
function onMouseWheel(event) {
let scrollDiv = document.getElementById("scroll-div")
scrollDiv.scrollTop = scrollDiv.scrollTop + event.deltaY
}
}
async function sendTargetUserProfileEvent(
userProfileId,
eventType
) {
return new Promise((resolve, reject) => { asyncCall(resolve, reject) })
async function asyncCall(resolve, reject) {
let eventMessage
let event
eventMessage = {
eventType: eventType,
eventId: SA.projects.foundations.utilities.miscellaneousFunctions.genereteUniqueId(),
targetUserProfileId: userProfileId,
timestamp: (new Date()).valueOf()
}
event = {
requestType: 'Event',
eventMessage: JSON.stringify(eventMessage)
}
await UI.projects.socialTrading.modules.webSocketsWebClient.sendMessage(
JSON.stringify(event)
)
.then(resolve)
.catch(onError)
function onError(errorMessage) {
console.log('[ERROR] Event not executed. ' + errorMessage)
console.log('[ERROR] event = ' + JSON.stringify(event))
reject(errorMessage)
}
}
}
async function sendNewPostEvent(
postText
) {
return new Promise((resolve, reject) => { asyncCall(resolve, reject) })
async function asyncCall(resolve, reject) {
let eventMessage
let event
eventMessage = {
eventType: SA.projects.socialTrading.globals.eventTypes.NEW_USER_POST,
eventId: SA.projects.foundations.utilities.miscellaneousFunctions.genereteUniqueId(),
postText: postText,
timestamp: (new Date()).valueOf()
}
event = {
requestType: 'Event',
eventMessage: JSON.stringify(eventMessage)
}
await UI.projects.socialTrading.modules.webSocketsWebClient.sendMessage(
JSON.stringify(event)
)
.then(resolve)
.catch(onError)
function onError(errorMessage) {
console.log('[ERROR] Event not executed. ' + errorMessage)
console.log('[ERROR] event = ' + JSON.stringify(event))
reject(errorMessage)
}
}
}
}
+118
View File
@@ -0,0 +1,118 @@
function newWebAppLoader() {
let thisObject = {
loadModules: loadModules
}
return thisObject
async function loadModules() {
try {
let modulesArray = [
'WebDebugLog.js',
'WebApp.js'
]
for (let i = 0; i < UI.schemas.projectSchema.length; i++) {
let project = UI.schemas.projectSchema[i]
if (project.UI !== undefined) {
if (project.UI.functionLibraries !== undefined) {
for (let j = 0; j < project.UI.functionLibraries.length; j++) {
let fileName = project.UI.functionLibraries[j].fileName
if (fileName === undefined) {fileName = project.UI.functionLibraries[j].name.replaceAll(' ', '') + '.js'}
modulesArray.push('Projects' + '/' + project.name + '/' + 'UI' + '/' + 'Function-Libraries' + '/' + fileName)
}
}
if (project.UI.utilities !== undefined) {
for (let j = 0; j < project.UI.utilities.length; j++) {
let fileName = project.UI.utilities[j].fileName
if (fileName === undefined) {fileName = project.UI.utilities[j].name.replaceAll(' ', '') + '.js'}
modulesArray.push('Projects' + '/' + project.name + '/' + 'UI' + '/' + 'Utilities' + '/' + fileName)
}
}
if (project.UI.globals !== undefined) {
for (let j = 0; j < project.UI.globals.length; j++) {
let fileName = project.UI.globals[j].fileName
if (fileName === undefined) {fileName = project.UI.globals[j].name.replaceAll(' ', '') + '.js'}
modulesArray.push('Projects' + '/' + project.name + '/' + 'UI' + '/' + 'Globals' + '/' + fileName)
}
}
if (project.UI.modules !== undefined) {
for (let j = 0; j < project.UI.modules.length; j++) {
let fileName = project.UI.modules[j].fileName
if (fileName === undefined) {fileName = project.UI.modules[j].name.replaceAll(' ', '') + '.js'}
modulesArray.push('Projects' + '/' + project.name + '/' + 'UI' + '/' + 'Modules' + '/' + fileName)
}
}
}
if (project.SA !== undefined) {
if (project.SA.functionLibraries !== undefined) {
for (let j = 0; j < project.SA.functionLibraries.length; j++) {
let fileName = project.SA.functionLibraries[j].fileName
if (fileName === undefined) {fileName = project.SA.functionLibraries[j].name.replaceAll(' ', '') + '.js'}
modulesArray.push('Projects' + '/' + project.name + '/' + 'SA' + '/' + 'Function-Libraries' + '/' + fileName)
}
}
if (project.SA.utilities !== undefined) {
for (let j = 0; j < project.SA.utilities.length; j++) {
let fileName = project.SA.utilities[j].fileName
if (fileName === undefined) {fileName = project.SA.utilities[j].name.replaceAll(' ', '') + '.js'}
modulesArray.push('Projects' + '/' + project.name + '/' + 'SA' + '/' + 'Utilities' + '/' + fileName)
}
}
if (project.SA.globals !== undefined) {
for (let j = 0; j < project.SA.globals.length; j++) {
let fileName = project.SA.globals[j].fileName
if (fileName === undefined) {fileName = project.SA.globals[j].name.replaceAll(' ', '') + '.js'}
modulesArray.push('Projects' + '/' + project.name + '/' + 'SA' + '/' + 'Globals' + '/' + fileName)
}
}
if (project.SA.modules !== undefined) {
for (let j = 0; j < project.SA.modules.length; j++) {
let fileName = project.SA.modules[j].fileName
if (fileName === undefined) {fileName = project.SA.modules[j].name.replaceAll(' ', '') + '.js'}
modulesArray.push('Projects' + '/' + project.name + '/' + 'SA' + '/' + 'Modules' + '/' + fileName)
}
}
}
}
downloadIncludedFiles()
function downloadIncludedFiles() {
let downloadedCounter = 0
for (let i = 0; i < modulesArray.length; i++) {
let path = modulesArray[i]
REQUIREJS([path], onRequired)
function onRequired(pModule) {
try {
downloadedCounter++
if (downloadedCounter === modulesArray.length) {
setTimeout(() => {
UI.running.webApp = newWebApp()
UI.running.webApp.initialize()
}, 500)
}
} catch (err) {
console.log('[ERROR] loadModules -> onRequired -> err = ' + err.stack)
}
}
}
}
} catch (err) {
console.log('[ERROR] loadModules -> err = ' + err.stack)
}
}
}
+102
View File
@@ -0,0 +1,102 @@
function loadSuperalgos() {
let browser = checkBrowserVersion()
if ((browser.name !== "Chrome" && browser.name !== "Safari") || (browser.name === "Chrome" && parseInt(browser.version) < 85) || (browser.name === "Safari" && parseInt(browser.version) < 13)) {
alert("Superalgos is officially supported on Google Chrome 85 or Safari 13.1 and above. Your browser version has been detected as potentially beneath this. If you continue you may experience some functionaility issues.\n\nDetected Browser: " + browser.name + "\nVersion: " + browser.version)
}
loadGlobals()
function loadGlobals() {
let path = "Globals.js"
REQUIREJS([path], onRequired)
function onRequired(pModule) {
setupEnvironment()
}
}
function setupEnvironment() {
httpRequest(undefined, 'Environment', onResponse)
function onResponse(err, file) {
UI.environment = JSON.parse(file)
setupProjectsSchema()
}
}
function setupProjectsSchema() {
httpRequest(undefined, 'ProjectsSchema', onResponse)
function onResponse(err, file) {
UI.schemas.projectSchema = JSON.parse(file)
loadModules()
}
}
function loadModules() {
let path = "WebAppLoader.js"
REQUIREJS([path], onRequired)
function onRequired(pModule) {
let APP_LOADER_MODULE = newWebAppLoader()
APP_LOADER_MODULE.loadModules()
}
}
}
function httpRequest(pContentToSend, pPath, callBackFunction) {
let xmlHttpRequest = new XMLHttpRequest()
xmlHttpRequest.onreadystatechange = function () {
if (this.readyState === 4 && this.status === 200) {
try {
callBackFunction(undefined, xmlHttpRequest.responseText)
} catch (err) {
console.log('[ERROR] httpRequest -> httpRequest -> err.stack = ' + err.stack)
console.log('[ERROR] httpRequest -> httpRequest -> pContentToSend = ' + pContentToSend)
console.log('[ERROR] httpRequest -> httpRequest -> pPath = ' + pPath)
console.log('[ERROR] httpRequest -> httpRequest -> xmlHttpRequest.responseText = ' + xmlHttpRequest.responseText)
console.log('[ERROR] httpRequest -> httpRequest -> callBackFunction = ' + callBackFunction)
}
return
} else if (this.readyState === 4 && this.status === 404) {
callBackFunction({ result: "Fail", message: xmlHttpRequest.responseText.trim(), code: xmlHttpRequest.responseText.trim() })
return
}
}
if (pContentToSend === undefined) {
xmlHttpRequest.open("GET", pPath, true)
xmlHttpRequest.send()
} else {
try {
let blob = new Blob([pContentToSend], { type: 'text/plain' })
xmlHttpRequest.open("POST", pPath, true)
xmlHttpRequest.send(blob)
} catch (err) {
if (ERROR_LOG === true) { console.log("[ERROR] callServer -> err.message = " + err.message) }
callBackFunction({ result: "Fail", message: err.message })
}
}
}
function checkBrowserVersion() {
let ua = navigator.userAgent, tem, M = ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || []
if (/trident/i.test(M[1])) {
tem = /\brv[ :]+(\d+)/g.exec(ua) || []
return { name: 'IE', version: (tem[1] || '') }
}
if (M[1] === 'Chrome') {
tem = ua.match(/\bOPR|Edge\/(\d+)/)
if (tem != null) { return { name: 'Opera', version: tem[1] } }
}
M = M[2] ? [M[1], M[2]] : [navigator.appName, navigator.appVersion, '-?']
if ((tem = ua.match(/version\/(\d+)/i)) != null) { M.splice(1, 1, tem[1]) }
return {
name: M[0],
version: M[1]
}
}
+21
View File
@@ -0,0 +1,21 @@
function newWebDebugLog() {
try {
let thisObject = {
write: write,
fileName: 'undefined'
}
return thisObject
function write(pText) {
console.log(spacePad(thisObject.fileName, 50) + ' : ' + pText)
function spacePad(str, max) {
str = str.toString()
return str.length < max ? spacePad(' ' + str, max) : str
}
}
} catch (err) {
console.log(spacePad(MODULE_NAME, 50) + ' : ' + '[ERROR] WebDebugLog --> err = ' + err.stack)
}
}
File renamed without changes.
+282 -7
View File
@@ -22,13 +22,288 @@
font-style: normal;
}
kbd {
padding: 2px 8px;
font-size: 125%;
font-weight: 500;
.body{
overflow-y: hidden;
overflow-x: hidden;
}
.scroll-div {
position:absolute;
overflow-y: scroll;
overflow-x: hidden;
top:0px;
left:0px;
vertical-align: top;
height: 100%;
width: 100%;
color: #000;
background-color: #bcd643;
border-radius: 5px;
border-style: outset;
border-color: blue;
background-color: transparent;
border-width: 0px;
}
.static-div {
position: fixed;
top:0px;
left:18%;
width: 100%;
height: 100%;
padding: 0;
margin: 0;
color: #000;
background:transparent;
border-width: 0px;
border-collapse: collapse;
}
.content-div {
position:relative;
vertical-align: top;
height: 100%;
width: 30%;
left: 31.2%;
color: #000;
border-color: blue;
background-color:transparent;
border-width: 1px;
}
.post-placeholder {
vertical-align: top;
height: 50px;
width: 100%;
color: #000;
border-color: blue;
background-color: transparent;
border-width: 0px;
}
.post-div {
vertical-align: top;
height: 300px;
width: 100%;
color: #000;
border-color: blue;
background-color: transparent;
border-width: 0px;
}
.new-post-div {
vertical-align: top;
height: 300px;
width: 100%;
color: #000;
border-color: blue;
background-color: transparent;
border-width: 0px;
}
.page-table {
top:0px;
left:18%;
width: 64%;
height: 100%;
padding: 0;
margin: 0;
color: #000;
background:transparent;
border-width: 0px;
border-collapse: collapse;
}
.left-column {
position:relative;
top:0px;
width: 20%;
height: 100%;
padding: 0;
margin: 0;
color: #000;
border-width: 0px;
}
.middle-column {
position:relative;
top:0px;
width: 50%;
height: 100%;
padding: 0;
margin: 0;
color: #000;
border-width: 0px;
}
.right-column {
position:relative;
top:0px;
left:0px;
width: 30%;
height: 100%;
padding: 0;
margin: 0;
color: #000;
border-width: 0px;
}
.left-table {
position:relative;
width: 100%;
height: 100%;
padding: 0;
margin: 0;
color: #000;
border-width: 0px;
border-collapse: collapse;
}
.logo-cell {
vertical-align: top;
width: 100%;
height: 70px;
padding: 0;
margin: 0;
color: #000;
border-width: 0px;
}
.menu-cell {
vertical-align: top;
width: 100%;
padding: 0;
margin: 0;
color: #000;
border-width: 0px;
}
.profile-cell {
vertical-align: bottom;
width: 100%;
height: 50px;
padding: 0;
margin: 0;
color: #000;
border-width: 0px;
}
.middle-table {
position:relative;
width: 100%;
height: 100%;
padding: 0;
margin: 0;
color: #000;
border-width: 0px;
border-collapse: collapse;
}
.content-title-cell {
vertical-align: top;
width: 100%;
height: 50px;
padding: 0;
margin: 0;
color: #000;
border-width: 0px;
background-color: #ffffff;
}
.content-cell {
vertical-align: top;
width: 100%;
padding: 0;
margin: 0;
color: #000;
border-width: 0px;
}
.right-table {
position:relative;
width: 100%;
height: 100%;
padding: 0;
margin: 0;
color: #000;
border-width: 0px;
border-collapse: collapse;
}
.search-cell {
vertical-align: top;
width: 100%;
height: 50px;
padding: 0;
margin: 0;
color: #000;
border-width: 0px;
}
.context-cell {
vertical-align: top;
width: 100%;
padding: 0;
margin: 0;
color: #000;
border-width: 0px;
background:transparent;
}
.menu-table {
position:relative;
width: 100%;
height: 65%;
padding: 0;
margin: 0;
color: #000;
border-width: 0px;
border-collapse: collapse;
}
.menu-item-cell {
vertical-align: top;
width: 100%;
height: 50px;
padding: 0;
margin: 0;
color: #000;
border-width: 0px;
}
.who-to-follow-table {
position:relative;
width: 100%;
height: 30%;
padding: 0;
margin: 0;
color: #000;
border-width: 0px;
border-collapse: collapse;
}
.profile-to-follow-table {
position:relative;
width: 100%;
height: 30%;
padding: 0;
margin: 0;
color: #000;
border-width: 0px;
border-collapse: collapse;
}
.profile-to-follow-span {
float: right;
}
.profile-to-follow-button {
float: right;
background-color: green;
}
.profile-to-unfollow-span {
float: right;
}
.profile-to-unfollow-button {
float: right;
background-color: red;
}
+129 -17
View File
@@ -6,8 +6,8 @@
<meta name="description" content="Free and Open Source Crypto Social Trading">
<link rel="stylesheet" href="main.css" type="text/css" charset="utf-8" />
<link rel="shortcut icon" type="image/png/ico" href="Images/favicon.ico" />
<script type="text/javascript" src="WebServer/require.js"></script>
<script type="text/javascript" src="AppPreLoader.js"></script>
<script type="text/javascript" src="Require.js"></script>
<script type="text/javascript" src="WebAppPreLoader.js"></script>
<script type="text/javascript">
function loadApp() {
@@ -28,25 +28,137 @@
}
function onResize() {
try {
if (page === undefined) { return }
if (page.eventHandler === undefined) { return }
if (DISABLE_BROWSER_RESIZE_EVENT === true) { return }
page.eventHandler.raiseEvent('Browser Resized')
} catch (err) {
console.log('Error Resizing. ' + err.stack)
}
}
</script>
</script>
</head>
<body id="body" onload="loadApp()"
onresize="onResize()">
Hello World!
<div id="masterApp"></div>
<div id="canvasApp"></div>
<body id="body" onload="loadApp()" onresize="onResize()" class="body">
<div id="scroll-div" class="scroll-div">
<div id="static-div" class="static-div">
<table id="page-table" class="page-table">
<tr>
<td class="left-column">
<table class="left-table">
<tr>
<td class="logo-cell">LOGO</td>
</tr>
<tr>
<td class="menu-cell">
<table class="menu-table">
<tr>
<td class="menu-item-cell">Home</td>
</tr>
<tr>
<td class="menu-item-cell">Explore</td>
</tr>
<tr>
<td class="menu-item-cell">Notifications</td>
</tr>
<tr>
<td class="menu-item-cell">Messages</td>
</tr>
<tr>
<td class="menu-item-cell">Bookmarks</td>
</tr>
<tr>
<td class="menu-item-cell">Lists</td>
</tr>
<tr>
<td class="menu-item-cell">Profile</td>
</tr>
<tr>
<td class="menu-item-cell">More</td>
</tr>
<tr>
<td class="menu-item-cell">Post</td>
</tr>
</table>
</td>
</tr>
<tr>
<td class="profile-cell">PROFILE</td>
</tr>
</table>
</td>
<td class="middle-column">
<table class="middle-table">
<tr>
<td class="content-title-cell">CONTENT TITLE</td>
</tr>
<tr>
<td class="content-cell">
</td>
</tr>
</table>
</td>
<td class="right-column">
<table class="right-table">
<tr>
<td class="search-cell">SEARCH</td>
</tr>
<tr>
<td class="context-cell">
<table class="context-table">
<tr>
<td>Who to follow</td>
</tr>
<tr>
<td id="who-to-follow-cell">
</td>
</tr>
<tr>
<td>Show more</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</div>>
<div id="content-div" class="content-div">
<div id="post-placeholder" class="post-placeholder">
Placeholder
</div>
<div id="new-post-div" class="new-post-div">
<table>
<tr>
<td>Profile Pic</td>
<td>
<table>
<tr>
<td>
<textarea id="new-post-text-area">Type your post here...</textarea>
</td>
</tr>
<tr>
<td>Permissions</td>
</tr>
<tr>
<td>Tool Bar <button name="New Post">POST</button></td>
</tr>
</table>
</td>
</tr>
</table>
</div>
<div class="post-div">
POST 2
</div>
<div class="post-div">
POST 3
</div>
<div class="post-div">
POST 4
</div>
<div class="post-div">
POST 5
</div>
</div>
</div>
</body>
</html>
-68
View File
@@ -1,68 +0,0 @@
exports.newHttpInterface = function newHttpInterface() {
/*
This module represent the HTTP API of the
Desktop App. All HTTP request are processed
by this module.
*/
let thisObject = {
initialize: initialize,
finalize: finalize
}
return thisObject
function finalize() {
}
function initialize() {
/*
We will create an HTTP Server and leave it running forever.
*/
SA.nodeModules.http.createServer(onHttpRequest).listen(global.env.DESKTOP_HTTP_INTERFACE_PORT)
/* Starting the browser now is optional */
if (process.argv.includes("noBrowser")) {
//Running Client only with no UI.
} else {
SA.nodeModules.open('http://localhost:' + global.env.DESKTOP_HTTP_INTERFACE_PORT)
}
}
function onHttpRequest(httpRequest, httpResponse) {
try {
let requestPathAndParameters = httpRequest.url.split('?') // Remove version information
let requestPath = requestPathAndParameters[0].split('/')
let endpointOrFile = requestPath[1]
switch (endpointOrFile) {
case 'Images': // This means the Images folder.
{
let path = global.env.PATH_TO_CLIENT + '/WebServer/Images/' + requestPath[2]
if (requestPath[3] !== undefined) {
path = path + '/' + requestPath[3]
}
if (requestPath[4] !== undefined) {
path = path + '/' + requestPath[4]
}
if (requestPath[5] !== undefined) {
path = path + '/' + requestPath[5]
}
path = unescape(path)
SA.projects.foundations.utilities.httpResponses.respondWithImage(path, httpResponse)
}
break
default:
{
SA.projects.foundations.utilities.httpResponses.respondWithWebFile(httpResponse, endpointOrFile, global.env.PATH_TO_DESKTOP)
}
}
} catch (err) {
console.log(err.stack)
}
}
}
+74
View File
@@ -0,0 +1,74 @@
exports.newDesktopRoot = function newDesktopRoot() {
/*
This module represents the execution root of the Desktop App.
We use this module that is outside the Desktop folder to
load all node dependencies and get them ready to the actual App.
*/
let thisObject = {
run: run
}
return thisObject
async function run() {
/*
The DK object is accessible everywhere at the Superalgos Desktop App.
It provides access to all modules built for this App.
*/
global.DK = {}
/*
The SA object is accessible everywhere at the Superalgos Desktop App.
It provides access to all modules built for Superalgos in general.
*/
global.SA = {}
/* Load Environment Variables */
let ENVIRONMENT = require('./Environment.js');
let ENVIRONMENT_MODULE = ENVIRONMENT.newEnvironment()
global.env = ENVIRONMENT_MODULE
/*
First thing is to load the project schema file.
*/
global.PROJECTS_SCHEMA = require(global.env.PATH_TO_PROJECT_SCHEMA)
/*
Setting up the modules that will be available, defined at the Project Schema file.
*/
let MULTI_PROJECT = require('./MultiProject.js');
let MULTI_PROJECT_MODULE = MULTI_PROJECT.newMultiProject()
MULTI_PROJECT_MODULE.initialize(DK, 'DK')
MULTI_PROJECT_MODULE.initialize(SA, 'SA')
/*
Setting up external dependencies.
*/
SA.nodeModules = {
fs: require('fs'),
util: require('util'),
path: require('path'),
web3: require('web3'),
ws: require('ws'),
open: require('open'),
http: require('http'),
octokit: require("@octokit/rest"),
simpleGit: require('simple-git'),
nodeFetch: require('node-fetch')
}
/*
Setting up Secrets.
*/
SA.secrets = {
array: require('./My-Secrets/Secrets.json').secrets,
map: new Map()
}
for (let i = 0; i < SA.secrets.array.length; i++) {
let secret = SA.secrets.array[i]
SA.secrets.map.set (secret.signingAccountChildCodeName, secret)
}
run()
async function run() {
DK.app = require('./Desktop/DesktopApp.js').newDesktopApp()
await DK.app.run()
console.log('Superalgos Desktop App is Running!')
}
}
}
+11 -20
View File
@@ -1,25 +1,16 @@
FROM python:3-slim
ENV NODE_VERSION=node_16.x
ENV PYTHONUNBUFFERED 1
RUN apt-get update \
&& apt-get install -y curl gnupg lsb-release build-essential \
&& curl -fsSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - \
&& DISTRO="$(lsb_release -s -c)" \
&& echo "deb https://deb.nodesource.com/$NODE_VERSION $DISTRO main" | tee /etc/apt/sources.list.d/nodesource.list \
&& echo "deb-src https://deb.nodesource.com/$NODE_VERSION $DISTRO main" | tee -a /etc/apt/sources.list.d/nodesource.list \
&& apt-get update \
&& apt-get install -y nodejs \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
FROM node:16-alpine
WORKDIR /app
COPY . .
RUN mkdir -p Data-Storage Log-Files My-Workspaces \
&& groupadd superalgos \
&& useradd --no-log-init -m -g superalgos superalgos \
&& chown -R superalgos:superalgos /app
RUN apk add --no-cache --virtual .build-deps make g++ \
&& apk add --no-cache python3 \
&& if [ "$(uname -m)" = "x86_64" ]; then node setup noShortcuts tensorflow; else node setup noShortcuts; fi \
&& mkdir -p ./Platform/My-Data-Storage ./Platform/My-Log-Files ./Platform/My-Workspaces \
&& addgroup superalgos \
&& adduser --disabled-password --no-create-home --ingroup superalgos superalgos \
&& chown -R superalgos:superalgos /app \
&& apk del .build-deps
USER superalgos
RUN node setup noShortcuts
EXPOSE 34248
EXPOSE 18041
VOLUME ["/app/Data-Storage", "/app/Log-Files", "/app/My-Workspaces"]
ENTRYPOINT ["node", "run", "noBrowser"]
VOLUME ["/app/Platform/My-Data-Storage", "/app/Platform/My-Log-Files", "/app/Platform/My-Workspaces"]
ENTRYPOINT ["node", "platform", "noBrowser"]
+273
View File
@@ -0,0 +1,273 @@
# Superalgos Docker Guide
## Table of Contents
- [Introduction](#introduction)
- [Installation](#installation)
- [Mac OS](#mac-os)
- [Windows](#windows)
- [Linux and BSD](#linux-and-bsd)
- [Running Superalgos](#running-superalgos)
- [Using Docker-Compose](#using-docker-compose)
- [Docker Best Practices](#docker-best-practices)
- [Docker Development Best Practices](#docker-development-best-practices)
- [Dockerfile Best Practices](#dockerfile-best-practices)
- [Twelve Factor App](#twelve-factor-app)
## Introduction
This walkthrough is broken up into to parts: a quick-start guide to running [Superalgos](https://github.com/Superalgos/Superalgos) with Docker and a deeper, more theoretical dive into containers with the hopes of explaining some of the design decisions.
[Superalgos](https://github.com/Superalgos/Superalgos), at its core, is a web application which also means it can be deployed inside a container like many other web applications. One of the leading platforms for operating containers is Docker. Docker can run on many different operatng systems and compute platforms. The containers provide an easy, fast, repeatable, and secure way to deploy and distribute applications. While it doesn't take much experience to run containers or Docker, there are some basics that any user should learn in order to use the technology effectively.
Before getting started, be aware that Docker is not the originally intended method of running the [Superalgos](https://github.com/Superalgos/Superalgos) application and as such there are some drawbacks to doing so. Namely, you won't be able contribute back to the project or configure your Governance profile. We'll discuss this more later. Therefore, you should only consider using the Docker container for production deployments.
It is also worth noting that [Superalgos](https://github.com/Superalgos/Superalgos) is very resource intense so it is best to get acquainted with the software by running it on a fast computer with a good amount of RAM as opposed to a tiny, slow Raspberry Pi. But, once you are ready to run a production deployment, then a more economical server is preferred.
Docker container images are hosted on `ghcr`. You can browse the containers in the [Packages section of the code repository](https://github.com/users/Superalgos/packages/container/package/superalgos).
> **Note:** The container and the application are still under heavy development and testing. Please join the [Superalgos SysAdmins Group](https://t.me/superalgossysadmins) to discuss any issues you may run into.
## Installation
First, Docker Desktop needs to be installed on a Mac or Windows computer in order to run the containers. Linux and BSD users will need Docker Engine. Docker-compose is also recommended and it should be included with Docker Desktop, but it may need to be installed separately.
### Mac OS
Docker can be downloaded from the Docker Store following the [directions in the official Docker Docs](https://docs.docker.com/desktop/mac/install/). It can also be installed from the command line using Homebrew.
```shell
brew cask install docker
brew install docker-compose
```
Then, make sure Docker Desktop is running. An easy way to check is to push `Cmd + space` then type `docker.app` in the search bar. You should also see the little whale icon in the top menu bar near the clock.
### Windows
Windows requires a few more steps than Mac OS, but it can also be downloaded from the Docker Store following the [directions in the official Docker Docs](https://docs.docker.com/desktop/windows/install/). It can also be installed from the command line using Chocolatey.
```shell
choco install docker-desktop
```
Docker should automatically start after installation. If you don't see the whale icon in the tray by the clock, then find `Docker` in the start menu.
### Linux and BSD
On Linux and BSD systems, Docker can be installed using the prefered package manager. [Step by step instructions for many different distributions](https://docs.docker.com/engine/install/debian/) of Linux can be found in the official Docker Docs. Since [Superalgos](https://github.com/Superalgos/Superalgos) runs well on Raspberry Pi 4 single-board computers, I'm going to illustrate the commands necessary to run [Superalgos](https://github.com/Superalgos/Superalgos) on the Raspbian Linux distribution.
```shell
# install the requirements
sudo apt-get update
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
# add the gpg keys to verify the packages
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# confgure the official repository
echo \
"deb [arch=arm64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# install docker engine
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose
```
Docker should automatically start when it is done installing. You can check its status with `systemctl status docker`. To make things easier, ensure your user is added to the `docker` group. Type `id` at the command prompt and you should see something like `groups=...999(docker)`. If you don't see it listed, you can add yourself with `sudo usermod -a -G docker <username>`.
## Running Superalgos
Now that we have Docker installed and running, we can run the container. The option `--rm` will remove the isntance of the container when it is exited.
```shell
docker run --rm ghcr.io/superalgos/superalgos:latest
```
You'll see some messages showing the container being downloaded and then some messages from the application itself showing that it is starting up and ready to accept connections. We'll stop the container now and add in a few more options so make it more useful, so press `ctrl + c` to exit.
We'll need to expose some ports so we can actually connect to it from our browser. Also, we'll want to create a few directories on our host file system so we can save, or persist, data between container reboots.
- `-d` to run the container daemonized, in the background
- `-p` to map ports to the host system to allow connections
- `-v` to mount local directories inside the container to persist data
- `--name` to assign a name to the container for easier reference
```shell
# create the data directories
mkdir -p Data-Storage Log-Files My-Workspaces
# run the container with the extra options
docker run \
-d \
--rm \
--name superalgos \
--user $(id -u):$(id -g) \
-p 18041:18041 \
-p 34248:34248 \
-v $(pwd)/Data-Storage:/app/Platform/Data-Storage \
-v $(pwd)/Log-Files:/app/Platform/Log-Files \
-v $(pwd)/My-Workspaces:/app/Platform/My-Workspaces \
ghcr.io/superalgos/superalgos:latest
```
You can check the status of the container with `docker ps -a` and view the logs with `docker logs superalgos`.
Note that you will see one error in the log output informing you that `git` is not installed. This is intentional and is not required for the bot to function properly.
Now you can open your browser and load the application front end. Try loading `http://localhost:34248` if you are on the same computer that is running the container, otherwise use the host ip, for example `http://192.168.1.10:34248`.
If you want to stop the container, you can run `docker stop superalgos`. When you want to upgrade the container, use:
```shell
docker pull ghcr.io/superalgos/superalgos:latest
docker stop superalgos
docker run \
-d \
--rm \
--name superalgos \
--user $(id -u):$(id -g) \
-p 18041:18041 \
-p 34248:34248 \
-v $(pwd)/Data-Storage:/app/Platform/Data-Storage \
-v $(pwd)/Log-Files:/app/Platform/Log-Files \
-v $(pwd)/My-Workspaces:/app/Platform/My-Workspaces \
ghcr.io/superalgos/superalgos:latest
```
Let's stop the container for now (`docker stop superalgos`) and we'll run it again using `docker-compose`.
Continue reading the [Docker Command Line documentation](https://docs.docker.com/engine/reference/commandline/cli/) for more details.
### Using Docker-Compose
Docker-compose is a wrapper for the Docker API which makes it a little easier to maintain a declaritive configuration for an application instead of using the direct command line commands. There is a sample docker-compose configuration included in the [Superalgos](https://github.com/Superalgos/Superalgos) which you can as the basis for your own configuration.
Let's download the sample and edit it. If you don't use `vim`, change that command for your preferred editor.
```shell
wget https://raw.githubusercontent.com/Superalgos/Superalgos/master/Docker/docker-compose.yml
vim docker-compose.yml
```
Now, let's change some of the settings:
```yaml
version: "3"
services:
superalgos:
image: ghcr.io/superalgos/superalgos:latest
command: ["minMemo"]
user: "$UID:$GID"
ports:
- '34248:34248'
- '18041:18041'
volumes:
- ./Data-Storage:/app/Platform/Data-Storage
- ./Log-Files:/app/Platform/Log-Files
- ./My-Workspaces:/app/Platform/My-Workspaces
restart: on-failure
```
You can see we have the same ports and volumes mapped. We also get a few extra settings like `command`, `environment`, and `restart`.
- `command` adds an extra setting to the main startup, so the application ends up running with the full command `node platform noBrowser minMemo`. The base of that command is defined as the `ENTRYPOINT` in the `Dockerfile` that builds the container.
- `user` defines the UID and GID the container should run as so that the data can be persisted with the correct permissions in the Data-Storage, Log-Files, and My-Workspaces directories that we created on the host. If you leave this out, the container will use the built in `superalgos` user which has `uid: 1001` and `gid: 1001`. Instead of using variables, you could also hard-code these UID and GID numbers into the configuration.
- `restart` tells Docker to restart the container if an error occurs.
Save the file and exit the editor. If you are using `vim`, hit escape and then type `:wq!` or press `shift + Z + Z` (two capital Z's).
Now, start the container with `docker-compose up`. This will start the container in the foreground and you'll connect to the log output. Hit `ctrl + c` to exit. Going forward, you'll want to add the `-d` option to start the container and keep it running in the background.
```shell
# some preliminary configuration to set up the persistent data directories
mkdir -p Data-Storage Log-Files My-Workspaces
export UID=$(id -u)
export GID=$(id -g)
# run the container in the background
docker-compose up -d
```
Now you have several `docker-compose` commands at your disposal to interact with the container:
- `docker-compose ps` to see details of the container
- `docker-compose logs` to see the logs
- `docker-compose down` to stop and remove the instance of the container
- `docker-compose pull` to pull the container, or a new version of the `latest` tag
Putting some of those concepts together, you can keep the running container up to date with this one-liner:
```shell
docker-compose pull && docker-compose down && docker-compose up -d
```
Explore the full [Docker Compose documentation](https://docs.docker.com/compose/) for more information.
## Docker Best Practices
As with any technology, there are lots of ways of doing things. A lot of them will give the same end result, but some may have fewer steps, or be more secure, or be more maintainable. That is where "best practices" come in. They aren't there to necessarily tell you what to do and what not to do, but they are there to help guide you in the right direction. A lot of times, they help you avoid making architectural mistakes that could come back and bite you further down the road.
One general best practice when running a production deployment is to avoid breaking changes by pinning to specific container tags. The `shasum hash` and the `release` tags are the best to use. These will generally ensure you are always running the same code and it will only upgrade when configured to do so. The other tags will change which code they are pointing to more frequently and without notice.
- `latest` : the absolute latest build
- `master` : the latest master branch build
- `develop` : the latest develop branch build
- `<shasum hash>` : a specific git commit hash
- `<release>` : corresponds with a Github Release (git tag), i.e. `beta-10`
## Docker Development Best Practices
Docker has many advantages which can aid in every step from development through production deployment. There are some useful tips located directly in the [Docker documentation](https://docs.docker.com/develop/dev-best-practices/). Concisely, they are to keep the build images small, a few tips on when and how to persist data, and to use CI/CD for testing and deployment. All of these tips are used in one way or another as a part of the [Superalgos](https://github.com/Superalgos/Superalgos) project.
- Use a minimal base image and multi-stage build. Superalgos is currently using an [alpine](https://www.alpinelinux.org/) base image but [distroless](https://github.com/GoogleContainerTools/distroless) is becoming more common and some times using a base image like [python-slim](https://hub.docker.com/_/python) is the bast that can be achieved.
- The images are quite large (around 2 GB in size), unfortunately, because the codebase itself is large. We've recently put in a lot of effort to make these images as small as possible.
- The images are built automatically using Github Actions when pull requests are merged.
- With the correct configuration, data, like data mine and trading bot information, is persisted to the host using volume mounts
### Dockerfile Best Practices
Docker maintains a list of [Dockerfile best practices](https://docs.docker.com/develop/develop-images/dockerfile_best-practices/) in their main documentation. These tips dictate many of the decisions around the Superalgos Dockerfile. Some of the tips that are used by [Superalgos](https://github.com/Superalgos/Superalgos) are listed below.
- Use `.dockerignore` to prevent unwanted data from entering the container. This keeps the container small but also enhances security to prevent secrets from leaking into a container by accident.
- Don't install unneccesary packages. In lieu of multi-stage builds, build caches and build dependencies are removed before finalizing the container. Only packages that are necessary for the execution of the application are installed. This is why `git` is not present.
- Minimize the number of layers. Many `RUN` commands are combined into one using `&&` in order to reduce the number of layers.
- Sort multiline arguments. This mostly enhances readability and maintainability.
- Leverage build cache. When testing locally, several of the tips above help levarage the build cache and speed up build times.
### Twelve Factor App
[Superalgos](https://github.com/Superalgos/Superalgos) is a web app but it was originally designed to be run on a local workstation or server on a trusted network. However, I don't think it would be prudent to talk about Docker best practices without mentioning the [Twelve Factor App](https://12factor.net/) manifesto. Over time, [Superalgos](https://github.com/Superalgos/Superalgos) itself may iterate and implement more and more of these principles as more people get involved and more people deploy production environments.
The Twelve Factors:
- Codebase: One codebase tracked in revision control, many deploys
- Superalgos utilizes one GitHub repository
- Dependencies: Explicitly declare and isolate dependencies
- Superalgos is a node.js app and uses npm to track and install dependencies
- Config: Store config in the environment
- Superalgos does not use environment variables the moment for configuration. Options are passed on the command line at run time. Other configuration is hard coded into the Workspaces.
- Backing services: Treat backing services as attached resources
- Superalgos connects to external services via API calls over HTTP (TCP)
- Build, release, run: Strictly separate build and run stages
- Superalgos is deployed by end users in their own local environments
- Processes: Execute the app as one or more stateless processes
- Superalgos is one application
- Port binding: Export services via port binding
- Superalgos exposes an HTTP frontend port and a Websockets backend port (TCP)
- Concurrency: Scale out via the process model
- Superalgos can be clustered but the front end and backend do not necessarily scale out independently from each other
- Disposability: Maximize robustness with fast startup and graceful shutdown
- Superalgos is not stateless in that the data files must be persisted to disk. Also, Superalgos cannot run behind a load balancer and have requests randomly distributed to different backend servers.
- Dev/prod parity: Keep development, staging, and production as similar as possible
- Superalgos doesn't have its own production environment but the container makes it easy to ensure development environments are the same as what a user will see when they deploy it for themselves in their own production environment.
- Logs: Treat logs as event streams
- Superalgos sends its own application logs to standard out. The trading mine logs are sent to flat files (persisted through volume mounts)
- Admin processes: Run admin/management tasks as one-off processes
- Superalgos does not have any admin or management tasks outside of what is used to create the container at build time.
+4 -6
View File
@@ -6,14 +6,12 @@ services:
dockerfile: ./Docker/Dockerfile
image: ghcr.io/superalgos/superalgos:latest
command: ["minMemo"]
user: "$UID:$GID"
ports:
- '34248:34248'
- '18041:18041'
volumes:
- ../Data-Storage:/app/Data-Storage
- ../Log-Files:/app/Log-Files
- ../My-Workspaces:/app/My-Workspaces
environment:
PUID: '1000'
PGID: '1000'
- ../Platform/My-Data-Storage:/app/Platform/My-Data-Storage
- ../Platform/My-Log-Files:/app/Platform/My-Log-Files
- ../Platform/My-Workspaces:/app/Platform/My-Workspaces
restart: on-failure
+36 -12
View File
@@ -1,19 +1,43 @@
const path = require("path")
if (process.env.PACKAGED_PATH) {
basePath = process.env.PACKAGED_PATH
} else {
basePath = __dirname
}
exports.newEnvironment = function () {
let thisObject = {
DEMO_MODE: false,
BASE_PATH: basePath,
WEB_SERVER_URL: 'localhost',
CLIENT_WEB_SOCKETS_INTERFACE_PORT: 18041,
CLIENT_HTTP_INTERFACE_PORT: 34248,
PATH_TO_TASK_SERVER: './TaskServer',
PATH_TO_DATA_STORAGE: './Data-Storage',
PATH_TO_PROJECTS: './Projects',
PATH_TO_LOG_FILES: './Log-Files',
PATH_TO_PROJECTS_REQUIRED: './Projects',
PATH_TO_PROJECT_SCHEMA: '../Projects/ProjectsSchema.json',
PATH_TO_CLIENT: './Platform',
PATH_TO_DEFAULT_WORKSPACE: './Projects/Foundations/Plugins/Workspaces',
PATH_TO_MY_WORKSPACES: './My-Workspaces',
PATH_TO_FONTS: './Platform/WebServer/Fonts'
PLATFORM_WEB_SOCKETS_INTERFACE_PORT: 18041,
NETWORK_WEB_SOCKETS_INTERFACE_PORT: 18042,
DESKTOP_WEB_SOCKETS_INTERFACE_PORT: 18043,
DESKTOP_WEB_SOCKETS_INTERFACE_HOST: 'localhost',
PLATFORM_HTTP_INTERFACE_PORT: 34248,
DESKTOP_HTTP_INTERFACE_PORT: 34249,
PATH_TO_DATA_STORAGE: path.join(basePath, './Platform/My-Data-Storage'),
PATH_TO_PROJECTS: path.join(basePath, './Projects'),
PATH_TO_LOG_FILES: path.join(basePath, './Platform/My-Log-Files'),
PATH_TO_PROJECTS_REQUIRED: path.join(basePath, './Projects'),
PATH_TO_PROJECT_SCHEMA: path.join(basePath, './Projects/ProjectsSchema.json'),
PATH_TO_PLATFORM: path.join(basePath, './Platform'),
PATH_TO_DESKTOP: './Desktop',
PATH_TO_DEFAULT_WORKSPACE: path.join(basePath, './Projects/Foundations/Plugins/Workspaces'),
PATH_TO_MY_WORKSPACES: path.join(basePath, './Platform/My-Workspaces'),
PATH_TO_FONTS: path.join(basePath, './Platform/WebServer/Fonts'),
DESKTOP_APP_SIGNING_ACCOUNT: 'Social-Trading-Desktop-App-1',
MOBILE_APP_SIGNING_ACCOUNT: 'Social-Trading-Mobile-App-1',
SERVER_APP_SIGNING_ACCOUNT: 'Social-Trading-Server-App-1',
PLATFORM_APP_SIGNING_ACCOUNT: 'Algo-Traders-Platform-1',
P2P_NETWORK_NODE_SIGNING_ACCOUNT: 'P2P-Network-Node-1',
}
if (process.env.DATA_PATH) {
thisObject.PATH_TO_DATA_STORAGE = path.join(process.env.DATA_PATH, '/Superalgos_Data/My-Data-Storage')
thisObject.PATH_TO_LOG_FILES = path.join(process.env.DATA_PATH, '/Superalgos_Data/My-Log-Files')
thisObject.PATH_TO_MY_WORKSPACES = path.join(process.env.DATA_PATH, '/Superalgos_Data/My-Workspaces')
}
return thisObject
-23
View File
@@ -1,23 +0,0 @@
exports.newEnvironment = function () {
let thisObject = {
WEB_SERVER_URL: 'localhost',
CLIENT_WEB_SOCKETS_INTERFACE_PORT: 18041,
NETWORK_WEB_SOCKETS_INTERFACE_PORT: 18042,
CLIENT_HTTP_INTERFACE_PORT: 34248,
DESKTOP_HTTP_INTERFACE_PORT: 34249,
PATH_TO_TASK_SERVER: './TaskServer',
PATH_TO_DATA_STORAGE: './Data-Storage',
PATH_TO_PROJECTS: './Projects',
PATH_TO_LOG_FILES: './Log-Files',
PATH_TO_PROJECTS_REQUIRED: './Projects',
PATH_TO_PROJECT_SCHEMA: './Projects/ProjectsSchema.json',
PATH_TO_CLIENT: './Platform',
PATH_TO_DESKTOP: './Desktop',
PATH_TO_DEFAULT_WORKSPACE: './Projects/Foundations/Plugins/Workspaces',
PATH_TO_MY_WORKSPACES: './My-Workspaces',
PATH_TO_FONTS: './Platform/WebServer/Fonts'
}
return thisObject
}
+1 -1
View File
@@ -1,4 +1,4 @@
#!/bin/sh
cd ..
node run
node platform
"$SHELL"
+1 -1
View File
@@ -1,3 +1,3 @@
cd /d %~dp0
cd ..
cmd /k "node run"
cmd /k "node platform"
+1 -1
View File
@@ -65,7 +65,7 @@ exports.newMultiProject = function () {
}
/*
From here we will require and get the modules, but without instantiation thisObject.
From here we will require and get the modules, but without instantiating thisObject.
*/
/* Set up Modules for this Project */
-14
View File
@@ -1,14 +0,0 @@
{
"folders": [
{
"path": "C:\\Superalgos\\Network"
},
{
"path": "C:\\Superalgos\\Projects\\Network"
},
{
"path": "C:\\Superalgos\\Projects\\Social-Trading"
}
],
"settings": {}
}
-17
View File
@@ -1,17 +0,0 @@
{
"files.exclude": {
"**/Data-Storage": true,
"**/Documentation": true,
"**/Log-Files": true,
"**/node_modules": true,
"**/Deprecated-Code": true
},
"search.exclude": {
"**/Data-Storage": true,
"**/Documentation": true,
"**/Log-Files": true,
"**/node_modules": true,
"**/Deprecated-Code": true
},
"search.maintainFileSearchCache": true
}
+14 -10
View File
@@ -1,24 +1,28 @@
exports.newNetworkNode = function newNetworkNode() {
let thisObject = {
socialGraphService: undefined,
storage: undefined,
run: run
}
return thisObject
function run() {
async function run() {
/*
Let's start the Network Interfaces
Other Network Nodes and Client Apps will communicate with this Network Node via it's Websocket Interface.
*/
NT.webSocketsInterface = NT.projects.network.modules.webSocketsInterface.newNetworkModulesWebSocketsInterface()
NT.webSocketsInterface.initialize()
start()
async function start() {
let socialGraphService = NT.projects.socialTrading.modules.socialGraph.newSocialGraph()
await socialGraphService.initialize()
}
/*
The Social Graph Service is the first and for now, the only service this Network Node provides.
*/
thisObject.socialGraphService = NT.projects.socialTrading.modules.socialGraph.newNetworkModulesSocialGraph()
await thisObject.socialGraphService.initialize()
/*
The Sotrage deals with persisting the Social Graph.
*/
thisObject.storage = NT.projects.socialTrading.modules.storage.newSocialTradingModulesStorage()
thisObject.storage.initialize()
}
}
+68
View File
@@ -0,0 +1,68 @@
exports.newNetworkRoot = function newNetworkRoot() {
/*
This module represents the execution root of the Network Node.
We use this module that is outside the Network folder to
load all node dependencies and get them ready to the actual node.
*/
let thisObject = {
run: run
}
return thisObject
async function run() {
/*
The NT object is accessible everywhere at the Superalgos Network.
It provides access to all modules built for this Network.
*/
global.NT = {}
/*
The SA object is accessible everywhere at the Superalgos Network.
It provides access to all modules built for Superalgos in general.
*/
global.SA = {}
/* Load Environment Variables */
let ENVIRONMENT = require('./Environment.js');
let ENVIRONMENT_MODULE = ENVIRONMENT.newEnvironment()
global.env = ENVIRONMENT_MODULE
/*
First thing is to load the project schema file.
*/
global.PROJECTS_SCHEMA = require(global.env.PATH_TO_PROJECT_SCHEMA)
/*
Setting up the modules that will be available, defined at the Project Schema file.
*/
let MULTI_PROJECT = require('./MultiProject.js');
let MULTI_PROJECT_MODULE = MULTI_PROJECT.newMultiProject()
MULTI_PROJECT_MODULE.initialize(NT, 'NT')
MULTI_PROJECT_MODULE.initialize(SA, 'SA')
/*
Setting up external dependencies.
*/
SA.nodeModules = {
fs: require('fs'),
path: require('path'),
util: require('util'),
nodeFetch: require('node-fetch'),
web3: require('web3'),
ws: require('ws'),
simpleGit: require('simple-git')
}
/*
Setting up Secrets.
*/
SA.secrets = {
array: require('./My-Secrets/Secrets.json').secrets,
map: new Map()
}
for (let i = 0; i < SA.secrets.array.length; i++) {
let secret = SA.secrets.array[i]
SA.secrets.map.set(secret.signingAccountChildCodeName, secret)
}
NT.app = require('./Network/NetwokNode.js').newNetworkNode()
NT.app.run()
console.log('Superalgos Network is Running.')
}
}
+10 -13
View File
@@ -1,8 +1,5 @@
exports.newEventServer = function newEventServer() {
const MODULE = "Events Server"
const LOG_INFO = false
let thisObject = {
initialize: initialize,
finalize: finalize,
@@ -37,7 +34,7 @@
if (eventHandler === undefined) {
/*
We will only create event handlers which were not created before. Remember that someone trying to listen events
at an event handler that does not exist, will create that eventhandler, so it is possible that the emitter
at an event handler that does not exist, will create that event handler, so it is possible that the emitter
when trying to create the event handler in fact was late and the event handler is already there if the listener
arrived here first. An event handler created with this method is not destroyed if there are no listeners or they
all leave.
@@ -53,8 +50,8 @@
let eventHandler = eventHandlers.get(command.eventHandlerName)
if (eventHandler !== undefined) {
/*
We will only delete event handlers which have noone listening, allowing a listener to continue listening even
when the event emitter is gone, asuming that it could come back at some point in time and resume emitting.
We will only delete event handlers which have no one listening, allowing a listener to continue listening even
when the event emitter is gone, assuming that it could come back at some point in time and resume emitting.
*/
if (eventHandler.listeners.length === 0) {
eventHandlers.delete(command.eventHandlerName)
@@ -71,8 +68,8 @@
if (eventHandler === undefined) {
/*
We will create event handlers which were not created before if a listener tries to listen to a handler that does not
exist before the emitter comes and create it. This is to aviod syncronization problems and also problems with emitters life
cycles with higher frecuency that the ones of listeners. Created in this way, event handlers are marked for deletion if
exist before the emitter comes and create it. This is to avoid synchronization problems and also problems with emitters life
cycles with higher frequency that the ones of listeners. Created in this way, event handlers are marked for deletion if
all listeners stop listening at one point in time.
*/
eventHandler = newEventHandler()
@@ -107,7 +104,7 @@
if (eventHandler === undefined) {
/* If the event handler does not exist anymore, then there is no need to perform further actiions. */
/* If the event handler does not exist anymore, then there is no need to perform further actions. */
sendResponse(global.DEFAULT_OK_RESPONSE)
return
}
@@ -115,7 +112,7 @@
eventHandler.stopListening(command.eventHandlerName, command.eventType, command.callerId, command.eventSubscriptionId)
/*
We check here if there are no more listeners and the event handler original emmiter is also gone, then we need to delete
We check here if there are no more listeners and the event handler original emitter is also gone, then we need to delete
this event handlers since chances are that is not needed anymore.
*/
if (eventHandler.listeners.length === 0 && eventHandler.deleteWhenAllListenersAreGone === true) {
@@ -133,7 +130,7 @@
eventHandler = newEventHandler()
eventHandlers.set(command.eventHandlerName, eventHandler)
/* No matter if it is the listener or the emiter the one that acts first, if an event handler does not exist we just create it acan keep it there. */
/* No matter if it is the listener or the emitter the one that acts first, if an event handler does not exist we just create it and keep it there. */
}
//console.log("[INFO] Client -> Events Server -> Raising Event " + command.eventHandlerName + " " + command.eventType)
@@ -166,7 +163,7 @@
let thisObject = {
name: undefined, // This is for debugging purposes only.
deleteWhenAllListenersAreGone: false,
listeners: [], // Here we store all the functions we will call when an event is raiseed.
listeners: [], // Here we store all the functions we will call when an event is raised.
listenToEvent: listenToEvent,
stopListening: stopListening,
raiseEvent: raiseEvent,
@@ -184,7 +181,7 @@
/*
We can not allow to have the exact same listener more than once. In case that we find a listener trying to listen again, the first record will
be deleted and we are just going to consider the last one comming in.
be deleted and we are just going to consider the last one coming in.
*/
for (let i = 0; i < thisObject.listeners.length; i++) {
if (eventHandlerName === thisObject.listeners[i][0] && eventType === thisObject.listeners[i][1] && callerId === thisObject.listeners[i][2]) {
+154 -46
View File
@@ -75,11 +75,11 @@ exports.newGithubServer = function newGithubServer() {
async function doGithub() {
const { Octokit } = require("@octokit/rest")
const { Octokit } = SA.nodeModules.octokit
const octokit = new Octokit({
auth: token,
userAgent: 'Superalgos Beta 11'
userAgent: 'Superalgos Beta 12'
})
await getList()
@@ -93,7 +93,7 @@ exports.newGithubServer = function newGithubServer() {
while (lastPage === false) {
try {
page++
await CL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME)
await PL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME)
let listResponse = await octokit[endpoint][method]({
owner,
repo,
@@ -204,10 +204,10 @@ exports.newGithubServer = function newGithubServer() {
try {
const repo = repository
const owner = 'Superalgos'
const { Octokit } = require("@octokit/rest")
const { Octokit } = SA.nodeModules.octokit
const octokit = new Octokit({
auth: token,
userAgent: 'Superalgos Beta 11'
userAgent: 'Superalgos Beta 12'
})
await getPrList()
await mergePrs()
@@ -223,7 +223,7 @@ exports.newGithubServer = function newGithubServer() {
try {
page++
await CL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME)
await PL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME)
let listResponse = await octokit.rest.pulls.list({
owner: owner,
@@ -284,7 +284,7 @@ exports.newGithubServer = function newGithubServer() {
/*
Lets get the files changed at this Pull Request.
*/
await CL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME)
await PL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME)
let listResponse = await octokit.rest.pulls.listFiles({
owner: owner,
repo: repo,
@@ -295,26 +295,28 @@ exports.newGithubServer = function newGithubServer() {
let fileContent // File content of the only file at the PR
let userProfile // User Profile Object
let githubUsername // The Github user name of who is submitting the Pull Request
let mergeResponse // The response received from the call to Gihub to merge the Pull Request
let mergeResponse // The response received from the call to Github to merge the Pull Request
if (await validatePrHasMoreThanOneFile() === false) { continue }
if (await validateFileNameEqualsGithubUsername() === false) { continue }
if (await validateFileChangedIsUserProfile() === false) { continue }
if (await validateMessageSignedIsGithubUsername() === false) { continue }
if (await validateMessageSignedHashIsSignatureHash() === false) { continue }
if (await validateUserProfileNodeNameEqualsGithubUsername() === false) { continue }
if (await validateUserProfileIdDoesNotBelongtoAnotherUserProfile() === false) { continue }
if (await validateUserProfileBlockchainAccountDoesNotBelongtoAnotherUserProfile() === false) { continue }
if (await validateUserProfileSigningAccountsDoesNotBelongtoAnotherUserProfile() === false) { continue }
if (await mergePullRequest() === false) {
console.log('[WARN] Github Server -> mergeGithubPullRequests -> Merge Failed -> Pull Request "' + pullRequest.title + '" not merged because Github could not merge it. -> mergeResponse.message = ' + mergeResponse.data.message)
} else {
console.log('[INFO] Github Server -> mergeGithubPullRequests -> Merge Succed -> Pull Request "' + pullRequest.title + '" successfully merged. -> mergeResponse.message = ' + mergeResponse.data.message)
await CL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME)
console.log('[INFO] Github Server -> mergeGithubPullRequests -> Merge Succeed -> Pull Request "' + pullRequest.title + '" successfully merged. -> mergeResponse.message = ' + mergeResponse.data.message)
await PL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME)
await octokit.rest.issues.createComment({
owner: owner,
repo: repo,
issue_number: pullRequest.number,
body: 'This Pull Request was automatically merged by the Superalgos Governance System because it was detected that the Github User " ' + githubUsername + '" who submitted it, modified its own User Profile Plugin File and nothning else but that file. All validations were successfull.'
body: 'This Pull Request was automatically merged by the Superalgos Governance System because it was detected that the Github User " ' + githubUsername + '" who submitted it, modified its own User Profile Plugin File and nothing else but that file. All validations were successful.'
});
}
@@ -333,15 +335,15 @@ exports.newGithubServer = function newGithubServer() {
let pullRequestFile = filesChanged[j]
let fileContentUrl = pullRequestFile.raw_url
if (fileContentUrl.indexOf('Governance/Plugins/User-Profiles') >= 0) {
await CL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME)
await PL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME)
await octokit.rest.issues.createComment({
owner: owner,
repo: repo,
issue_number: pullRequest.number,
body: 'This Pull Request could not be automatically merged and was closed by the Superalgos Governance System because it was detected that a User Profile file... \n\n' + fileContentUrl + '\n\n...was submitted together with ' + (filesChanged.length - 1) + ' other file/s. User Profiles files as per the Governance System rules, must be the only file present at a Pull Request in order to pass all the validations and be automatically merged.'
body: 'This Pull Request could not be automatically merged and was closed by the Superalgos Governance System because it was detected that a User Profile file... \n\n' + fileContentUrl + '\n\n...was submitted together with ' + (filesChanged.length - 1) + ' other file/s. User Profiles files as per the Governance System rules, must be the only file present at a Pull Request in order to pass all the validations and be automatically merged. \n\n If you intentionally submitted the extra files, the way to get your work merged is by first removing your User Profile file from the Plugins folder at your local installation and executing an app.contribute again. Then wait until the PR is merged (manually reviewed) and after that you put your User Profile file again and create a new PR only with that file with an app.contribute. That last PR should be merged automatically.'
});
await CL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME)
await PL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME)
await octokit.rest.pulls.update({
owner: owner,
repo: repo,
@@ -376,10 +378,10 @@ exports.newGithubServer = function newGithubServer() {
fileName = splittedFileName[0]
githubUsername = pullRequest.user.login
if (githubUsername !== fileName) {
if (githubUsername.toLowerCase() !== fileName.toLowerCase()) {
console.log('[INFO] Github Server -> mergeGithubPullRequests -> Validation #2 Failed -> Pull Request "' + pullRequest.title + '" not merged because the Github Username is not equal to the File Name. -> Github Username = ' + githubUsername + '-> fileName = ' + fileName)
await CL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME)
await PL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME)
await octokit.rest.issues.createComment({
owner: owner,
repo: repo,
@@ -387,7 +389,7 @@ exports.newGithubServer = function newGithubServer() {
body: 'This Pull Request could not be automatically merged and was closed by the Superalgos Governance System because it was detected that the Github User "' + githubUsername + '" who submitted it, is not equal to the name of the User Profile Plugin File.\n\n File Name = "' + fileName + '"'
});
await CL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME)
await PL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME)
await octokit.rest.pulls.update({
owner: owner,
repo: repo,
@@ -402,8 +404,8 @@ exports.newGithubServer = function newGithubServer() {
/*
Validation #3: The file changed at the PR is a User Profile.
*/
await CL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME)
fileContent = await CL.projects.foundations.utilities.webAccess.fetchAPIDataFile(fileContentUrl)
await PL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME)
fileContent = await PL.projects.foundations.utilities.webAccess.fetchAPIDataFile(fileContentUrl)
userProfile = JSON.parse(fileContent)
if (userProfile.type !== 'User Profile') {
@@ -418,10 +420,10 @@ exports.newGithubServer = function newGithubServer() {
*/
let config = JSON.parse(userProfile.config)
let messageSigned = config.signature.message
if (messageSigned !== githubUsername) {
if (messageSigned.toLowerCase() !== githubUsername.toLowerCase()) {
console.log('[INFO] Github Server -> mergeGithubPullRequests -> Validation #4 Failed -> Pull Request "' + pullRequest.title + '" not merged because the Github Username is not equal to the Message Signed at the User Profile. -> Github Username = ' + githubUsername + '-> messageSigned = ' + messageSigned)
await CL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME)
await PL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME)
await octokit.rest.issues.createComment({
owner: owner,
repo: repo,
@@ -429,7 +431,41 @@ exports.newGithubServer = function newGithubServer() {
body: 'This Pull Request could not be automatically merged and was closed by the Superalgos Governance System because it was detected that the Github User "' + githubUsername + '" who submitted it, is not equal to the Message Signed at the User Profile.\n\n Message Signed = "' + messageSigned + '"'
});
await CL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME)
await PL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME)
await octokit.rest.pulls.update({
owner: owner,
repo: repo,
pull_number: pullRequest.number,
state: 'closed'
});
return false
}
}
async function validateMessageSignedHashIsSignatureHash() {
/*
Validation #5: The message signed has is equal to the signature messageHash.
*/
let config = JSON.parse(userProfile.config)
let serverResponse = await PL.servers.WEB3_SERVER.hashData(
config.signature.message
)
let messageSignedHash = serverResponse.hash
let signatureHash = config.signature.messageHash
if (messageSignedHash !== signatureHash) {
console.log('[INFO] Github Server -> mergeGithubPullRequests -> Validation #5 Failed -> Pull Request "' + pullRequest.title + '" not merged because the Message Signed Hash is not equal to the the Signature Hash. -> messageSignedHash = ' + messageSignedHash + '-> signatureHash = ' + signatureHash)
await PL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME)
await octokit.rest.issues.createComment({
owner: owner,
repo: repo,
issue_number: pullRequest.number,
body: 'This Pull Request could not be automatically merged and was closed by the Superalgos Governance System because the Message Signed Hash is not equal to the the Signature Hash.\n\n messageSignedHash = "' + messageSignedHash + '"\n\n signatureHash = "' + signatureHash + '"'
});
await PL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME)
await octokit.rest.pulls.update({
owner: owner,
repo: repo,
@@ -442,12 +478,12 @@ exports.newGithubServer = function newGithubServer() {
async function validateUserProfileNodeNameEqualsGithubUsername() {
/*
Validation #5: The name of the User Profile node is not the Github Username.
Validation #6: The name of the User Profile node is not the Github Username.
*/
if (userProfile.name !== githubUsername) {
console.log('[INFO] Github Server -> mergeGithubPullRequests -> Validation #5 Failed -> Pull Request "' + pullRequest.title + '" not merged because the Github Username is not equal to the User Profile node\'s name. -> Github Username = ' + githubUsername + '-> userProfile.name = ' + userProfile.name)
if (userProfile.name.toLowerCase() !== githubUsername.toLowerCase()) {
console.log('[INFO] Github Server -> mergeGithubPullRequests -> Validation #6 Failed -> Pull Request "' + pullRequest.title + '" not merged because the Github Username is not equal to the User Profile node\'s name. -> Github Username = ' + githubUsername + '-> userProfile.name = ' + userProfile.name)
await CL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME)
await PL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME)
await octokit.rest.issues.createComment({
owner: owner,
repo: repo,
@@ -455,7 +491,7 @@ exports.newGithubServer = function newGithubServer() {
body: 'This Pull Request could not be automatically merged and was closed by the Superalgos Governance System because it was detected that the Github User "' + githubUsername + '" who submitted it, is not equal to the User Profile node\'s name.\n\n User Profile Name = "' + userProfile.name + '"'
});
await CL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME)
await PL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME)
await octokit.rest.pulls.update({
owner: owner,
repo: repo,
@@ -468,18 +504,18 @@ exports.newGithubServer = function newGithubServer() {
async function validateUserProfileIdDoesNotBelongtoAnotherUserProfile() {
/*
Validation #6: The id of the User Profile can not be the id of an already existing User Profile
Validation #7: The id of the User Profile can not be the id of an already existing User Profile
unless the existing one belongs to the same Github username.
*/
let userProfileIdMap = new Map()
let pluginFileNames = await SA.projects.foundations.utilities.plugins.getPluginFileNames(
let pluginFileNames = await SA.projects.communityPlugins.utilities.plugins.getPluginFileNames(
'Governance',
'User-Profiles'
)
for (let i = 0; i < pluginFileNames.length; i++) {
let pluginFileName = pluginFileNames[i]
let pluginFileContent = await SA.projects.foundations.utilities.plugins.getPluginFileContent(
let pluginFileContent = await SA.projects.communityPlugins.utilities.plugins.getPluginFileContent(
'Governance',
'User-Profiles',
pluginFileName
@@ -493,9 +529,9 @@ exports.newGithubServer = function newGithubServer() {
if (testUserProfile === undefined) { return true }
if (testUserProfile !== userProfile.name) {
console.log('[INFO] Github Server -> mergeGithubPullRequests -> Validation #6 Failed -> Pull Request "' + pullRequest.title + '" not merged because the User Profile Id already exists and belongs to another User Profile on record. -> Profile Id = ' + userProfile.id + '-> User Profile with the same Id = ' + testUserProfile)
console.log('[INFO] Github Server -> mergeGithubPullRequests -> Validation #7 Failed -> Pull Request "' + pullRequest.title + '" not merged because the User Profile Id already exists and belongs to another User Profile on record. -> Profile Id = ' + userProfile.id + '-> User Profile with the same Id = ' + testUserProfile)
await CL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME)
await PL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME)
await octokit.rest.issues.createComment({
owner: owner,
repo: repo,
@@ -503,7 +539,7 @@ exports.newGithubServer = function newGithubServer() {
body: 'This Pull Request could not be automatically merged and was closed by the Superalgos Governance System because the User Profile Id already exists and belongs to another User Profile on record. \n\nUser Profile Id = "' + userProfile.id + '" \n\n User Profile with the same Id = "' + testUserProfile + '"'
});
await CL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME)
await PL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME)
await octokit.rest.pulls.update({
owner: owner,
repo: repo,
@@ -517,18 +553,18 @@ exports.newGithubServer = function newGithubServer() {
async function validateUserProfileBlockchainAccountDoesNotBelongtoAnotherUserProfile() {
try {
/*
Validation #7 The blockchain account of the User Profile can not be the
Validation #8 The blockchain account of the User Profile can not be the
blockchain account of an already existing User Profile
unless the existing one belongs to the same Github username.
*/
let userProfileIdMap = new Map()
let pluginFileNames = await SA.projects.foundations.utilities.plugins.getPluginFileNames(
let pluginFileNames = await SA.projects.communityPlugins.utilities.plugins.getPluginFileNames(
'Governance',
'User-Profiles'
)
for (let i = 0; i < pluginFileNames.length; i++) {
let pluginFileName = pluginFileNames[i]
let pluginFileContent = await SA.projects.foundations.utilities.plugins.getPluginFileContent(
let pluginFileContent = await SA.projects.communityPlugins.utilities.plugins.getPluginFileContent(
'Governance',
'User-Profiles',
pluginFileName
@@ -538,7 +574,7 @@ exports.newGithubServer = function newGithubServer() {
let config = JSON.parse(otherUserProfile.config)
let messageSigned = JSON.stringify(config.signature)
let serverResponse = await CL.servers.WEB3_SERVER.recoverAddress(
let serverResponse = await PL.servers.WEB3_SERVER.recoverAddress(
messageSigned
)
userProfileIdMap.set(serverResponse.address, otherUserProfile.name)
@@ -546,7 +582,7 @@ exports.newGithubServer = function newGithubServer() {
let config = JSON.parse(userProfile.config)
let messageSigned = JSON.stringify(config.signature)
let serverResponse = await CL.servers.WEB3_SERVER.recoverAddress(
let serverResponse = await PL.servers.WEB3_SERVER.recoverAddress(
messageSigned
)
@@ -554,9 +590,9 @@ exports.newGithubServer = function newGithubServer() {
if (testUserProfile === undefined) { return true }
if (testUserProfile !== userProfile.name) {
console.log('[INFO] Github Server -> mergeGithubPullRequests -> Validation #7 Failed -> Pull Request "' + pullRequest.title + '" not merged because the User Profile Blockchain Account already exists and belongs to another User Profile on record. -> Profile Blockchain Account = ' + serverResponse.address + '-> User Profile with the same Blockchain Account = ' + testUserProfile)
console.log('[INFO] Github Server -> mergeGithubPullRequests -> Validation #8 Failed -> Pull Request "' + pullRequest.title + '" not merged because the User Profile Blockchain Account already exists and belongs to another User Profile on record. -> Profile Blockchain Account = ' + serverResponse.address + '-> User Profile with the same Blockchain Account = ' + testUserProfile)
await CL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME)
await PL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME)
await octokit.rest.issues.createComment({
owner: owner,
repo: repo,
@@ -564,7 +600,7 @@ exports.newGithubServer = function newGithubServer() {
body: 'This Pull Request could not be automatically merged and was closed by the Superalgos Governance System because the User Profile Blockchain Account already exists and belongs to another User Profile on record. \n\nUser Profile Blockchain Account = "' + serverResponse.address + '" \n\n User Profile with the same Blockchain Account = "' + testUserProfile + '"'
});
await CL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME)
await PL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME)
await octokit.rest.pulls.update({
owner: owner,
repo: repo,
@@ -578,11 +614,82 @@ exports.newGithubServer = function newGithubServer() {
}
}
async function validateUserProfileSigningAccountsDoesNotBelongtoAnotherUserProfile() {
try {
if (userProfile.signingAccounts === undefined) { return true }
for (let i = 0; i < userProfile.signingAccounts.signingAccounts.length; i++) {
let signingAccount = userProfile.signingAccounts.signingAccounts[i]
let config = JSON.parse(signingAccount.config)
/*
Validation #9 Signing accounts of the User Profile
must have a signature of the same Github username of the User Profile.
*/
let messageSigned = config.signature.message
if (messageSigned.toLowerCase() !== githubUsername.toLowerCase()) {
console.log('[INFO] Github Server -> mergeGithubPullRequests -> Validation #9 Failed -> Pull Request "' + pullRequest.title + '" not merged because the Signing Account ' + signingAccount.name + ' has not signed the current Github User Account, but something else. -> messageSigned = ' + messageSigned + '-> githubUsername = ' + githubUsername)
await PL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME)
await octokit.rest.issues.createComment({
owner: owner,
repo: repo,
issue_number: pullRequest.number,
body: 'This Pull Request could not be automatically merged and was closed by the Superalgos Governance System because the Signing Account "' + signingAccount.name + '" has not signed the current Github User Account, but something else. \n\n messageSigned = "' + messageSigned + '" \n\n githubUsername = "' + githubUsername + '"'
});
await PL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME)
await octokit.rest.pulls.update({
owner: owner,
repo: repo,
pull_number: pullRequest.number,
state: 'closed'
});
return false
}
/*
Validation #10: The message signed has is equal to the signature messageHash.
*/
let serverResponse = await PL.servers.WEB3_SERVER.hashData(
config.signature.message
)
let messageSignedHash = serverResponse.hash
let signatureHash = config.signature.messageHash
if (messageSignedHash !== signatureHash) {
console.log('[INFO] Github Server -> mergeGithubPullRequests -> Validation #10 Failed -> Pull Request "' + pullRequest.title + '" not merged because the Message Signed Hash is not equal to the the Signature Hash. -> messageSignedHash = ' + messageSignedHash + '-> signatureHash = ' + signatureHash)
await PL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME)
await octokit.rest.issues.createComment({
owner: owner,
repo: repo,
issue_number: pullRequest.number,
body: 'This Pull Request could not be automatically merged and was closed by the Superalgos Governance System because the Message Signed Hash is not equal to the the Signature Hash.\n\n messageSignedHash = "' + messageSignedHash + '"\n\n signatureHash = "' + signatureHash + '"'
});
await PL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME)
await octokit.rest.pulls.update({
owner: owner,
repo: repo,
pull_number: pullRequest.number,
state: 'closed'
});
return false
}
}
return true
} catch (err) {
console.log(err.stack)
}
}
async function mergePullRequest() {
/*
All validations passed, we will proceed an merge this Pull Request.
*/
await CL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME)
await PL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME)
mergeResponse = await octokit.rest.pulls.merge({
owner: owner,
repo: repo,
@@ -603,7 +710,7 @@ exports.newGithubServer = function newGithubServer() {
try {
page++
await CL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME)
await PL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME)
let listResponse = await octokit.rest.pulls.list({
owner: owner,
@@ -631,15 +738,15 @@ exports.newGithubServer = function newGithubServer() {
for (let i = 0; i < githubPrListMaster.length; i++) {
let pullRequest = githubPrListMaster[i]
await CL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME)
await PL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME)
await octokit.rest.issues.createComment({
owner: owner,
repo: repo,
issue_number: pullRequest.number,
body: 'Hi, this is the Superalgos Governance System taking notice that you have submitted a pull request directly to the master branch.\n\nThanks for submitting a PR to the Superalgos Project. We value every contribution and everyone is welcome to send PRs. Unfortunatelly we are not merging pull requests directly into the master branch. Consider resubmitting to the develop branch intstead. For your convinienve, you can swithch branches from within the app, at the footer of the Docs tab. \n\n I will close this pull request now and look forward for your next contribution either to the develop branch or any other branch available for this purpose.'
body: 'Hi, this is the Superalgos Governance System taking notice that you have submitted a pull request directly to the master branch.\n\nThanks for submitting a PR to the Superalgos Project. We value every contribution and everyone is welcome to send PRs. Unfortunately we are not merging pull requests directly into the master branch. Consider resubmitting to the develop branch instead. For your convenience, you can switch branches from within the app, at the footer of the Docs tab. \n\n I will close this pull request now and look forward for your next contribution either to the develop branch or any other branch available for this purpose.'
});
await CL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME)
await PL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME)
await octokit.rest.pulls.update({
owner: owner,
repo: repo,
@@ -668,6 +775,7 @@ exports.newGithubServer = function newGithubServer() {
}
} catch (err) {
if (err === undefined) { return }
console.log('[ERROR] Github Server -> mergeGithubPullRequests -> doGithub -> err.stack = ' + err.stack)
}
}
+526 -73
View File
@@ -20,17 +20,21 @@ exports.newHttpInterface = function newHttpInterface() {
webhook = undefined
}
function initialize() {
function initialize(initialWorkspace) {
/*
We will create an HTTP Server and leave it running forever.
*/
SA.nodeModules.http.createServer(onHttpRequest).listen(global.env.CLIENT_HTTP_INTERFACE_PORT)
/* Starting the browser now is optional */
if (process.argv.includes("noBrowser")) {
//Running Client only with no UI.
} else {
SA.nodeModules.open('http://localhost:' + global.env.CLIENT_HTTP_INTERFACE_PORT)
}
SA.nodeModules.http.createServer(onHttpRequest).listen(global.env.PLATFORM_HTTP_INTERFACE_PORT)
/* Starting the browser now is optional */
if (process.argv.includes("noBrowser")) {
//Running Client only with no UI.
} else {
let queryString = ''
if (initialWorkspace.name !== undefined) {
queryString = '/?initialWorkspaceName=' + initialWorkspace.name + '&initialWorkspaceProject=' + initialWorkspace.project + '&initialWorkspaceType=' + initialWorkspace.type
}
SA.nodeModules.open('http://localhost:' + global.env.PLATFORM_HTTP_INTERFACE_PORT + queryString)
}
}
function onHttpRequest(httpRequest, httpResponse) {
@@ -40,19 +44,24 @@ exports.newHttpInterface = function newHttpInterface() {
let endpointOrFile = requestPath[1]
switch (endpointOrFile) {
case 'Environment':
{
SA.projects.foundations.utilities.httpResponses.respondWithContent(JSON.stringify(global.env), httpResponse)
}
break
case 'WEB3':
{
SA.projects.foundations.utilities.httpRequests.getRequestBody(httpRequest, processRequest)
SA.projects.foundations.utilities.httpRequests.getRequestBody(httpRequest, httpResponse, processRequest)
async function processRequest(body) {
try {
if (body === undefined) { return }
let params = JSON.parse(body)
switch (params.method) {
case 'getNetworkClientStatus': {
let serverResponse = await CL.servers.WEB3_SERVER.getNetworkClientStatus(
let serverResponse = await PL.servers.WEB3_SERVER.getNetworkClientStatus(
params.host,
params.port,
params.interface
@@ -63,7 +72,7 @@ exports.newHttpInterface = function newHttpInterface() {
}
case 'createWalletAccount': {
let serverResponse = await CL.servers.WEB3_SERVER.createWalletAccount(
let serverResponse = await PL.servers.WEB3_SERVER.createWalletAccount(
params.entropy
)
@@ -72,7 +81,7 @@ exports.newHttpInterface = function newHttpInterface() {
}
case 'getWalletBalances': {
let serverResponse = await CL.servers.WEB3_SERVER.getWalletBalances(
let serverResponse = await PL.servers.WEB3_SERVER.getWalletBalances(
params.host,
params.port,
params.interface,
@@ -84,7 +93,7 @@ exports.newHttpInterface = function newHttpInterface() {
}
case 'signData': {
let serverResponse = await CL.servers.WEB3_SERVER.signData(
let serverResponse = await PL.servers.WEB3_SERVER.signData(
params.privateKey,
params.data
)
@@ -92,9 +101,18 @@ exports.newHttpInterface = function newHttpInterface() {
SA.projects.foundations.utilities.httpResponses.respondWithContent(JSON.stringify(serverResponse), httpResponse)
return
}
case 'hashData': {
let serverResponse = await PL.servers.WEB3_SERVER.hashData(
params.data
)
SA.projects.foundations.utilities.httpResponses.respondWithContent(JSON.stringify(serverResponse), httpResponse)
return
}
case 'recoverAddress': {
let serverResponse = await CL.servers.WEB3_SERVER.recoverAddress(
let serverResponse = await PL.servers.WEB3_SERVER.recoverAddress(
params.signature
)
@@ -103,7 +121,7 @@ exports.newHttpInterface = function newHttpInterface() {
}
case 'mnemonicToPrivateKey': {
let serverResponse = await CL.servers.WEB3_SERVER.mnemonicToPrivateKey(
let serverResponse = await PL.servers.WEB3_SERVER.mnemonicToPrivateKey(
params.mnemonic
)
@@ -131,10 +149,11 @@ exports.newHttpInterface = function newHttpInterface() {
break
case 'CCXT':
{
SA.projects.foundations.utilities.httpRequests.getRequestBody(httpRequest, processRequest)
SA.projects.foundations.utilities.httpRequests.getRequestBody(httpRequest, httpResponse, processRequest)
async function processRequest(body) {
try {
if (body === undefined) { return }
let params = JSON.parse(body)
switch (params.method) {
@@ -233,7 +252,7 @@ exports.newHttpInterface = function newHttpInterface() {
}
console.log('[INFO] httpInterface -> Webhook -> Fetch-Messages -> Exchange-Market = ' + exchange + '-' + market)
console.log('[INFO] httpInterface -> Webhook -> Fetch-Messages -> Messeges Fetched by Webhooks Sensor Bot = ' + webhookMessages.length)
console.log('[INFO] httpInterface -> Webhook -> Fetch-Messages -> Messages Fetched by Webhooks Sensor Bot = ' + webhookMessages.length)
SA.projects.foundations.utilities.httpResponses.respondWithContent(JSON.stringify(webhookMessages), httpResponse)
webhookMessages = []
@@ -242,9 +261,11 @@ exports.newHttpInterface = function newHttpInterface() {
break
}
case 'New-Message': {
SA.projects.foundations.utilities.httpRequests.getRequestBody(httpRequest, processRequest)
SA.projects.foundations.utilities.httpRequests.getRequestBody(httpRequest, httpResponse, processRequest)
function processRequest(messageReceived) {
if (messageReceived === undefined) { return }
let timestamp = (new Date()).valueOf()
let source = requestPath[3]
let exchange = requestPath[4]
@@ -279,7 +300,7 @@ exports.newHttpInterface = function newHttpInterface() {
console.log('[INFO] httpInterface -> Webhook -> New-Message -> Exchange-Market = ' + exchange + '-' + market)
console.log('[INFO] httpInterface -> Webhook -> New-Message -> messageReceived = ' + messageReceived)
console.log('[INFO] httpInterface -> Webhook -> New-Message -> Messeges waiting to be Fetched by Webhooks Sensor Bot = ' + webhookMessages.length)
console.log('[INFO] httpInterface -> Webhook -> New-Message -> Messages waiting to be Fetched by Webhooks Sensor Bot = ' + webhookMessages.length)
SA.projects.foundations.utilities.httpResponses.respondWithContent(JSON.stringify(global.DEFAULT_OK_RESPONSE), httpResponse)
}
break
@@ -291,10 +312,12 @@ exports.newHttpInterface = function newHttpInterface() {
{
switch (requestPath[2]) { // switch by command
case 'Save-Node-Schema': {
SA.projects.foundations.utilities.httpRequests.getRequestBody(httpRequest, processRequest)
SA.projects.foundations.utilities.httpRequests.getRequestBody(httpRequest, httpResponse, processRequest)
async function processRequest(body) {
try {
if (body === undefined) { return }
let docsSchema = JSON.parse(body)
let project = requestPath[3]
let filePath = global.env.PATH_TO_PROJECTS + '/' + project + '/Schemas/Docs-Nodes'
@@ -322,10 +345,12 @@ exports.newHttpInterface = function newHttpInterface() {
}
case 'Save-Concept-Schema': {
SA.projects.foundations.utilities.httpRequests.getRequestBody(httpRequest, processRequest)
SA.projects.foundations.utilities.httpRequests.getRequestBody(httpRequest, httpResponse, processRequest)
async function processRequest(body) {
try {
if (body === undefined) { return }
let docsSchema = JSON.parse(body)
let project = requestPath[3]
let filePath = global.env.PATH_TO_PROJECTS + '/' + project + '/Schemas/Docs-Concepts'
@@ -353,10 +378,12 @@ exports.newHttpInterface = function newHttpInterface() {
}
case 'Save-Topic-Schema': {
SA.projects.foundations.utilities.httpRequests.getRequestBody(httpRequest, processRequest)
SA.projects.foundations.utilities.httpRequests.getRequestBody(httpRequest, httpResponse, processRequest)
async function processRequest(body) {
try {
if (body === undefined) { return }
let docsSchema = JSON.parse(body)
let project = requestPath[3]
let filePath = global.env.PATH_TO_PROJECTS + '/' + project + '/Schemas/Docs-Topics'
@@ -384,10 +411,12 @@ exports.newHttpInterface = function newHttpInterface() {
}
case 'Save-Tutorial-Schema': {
SA.projects.foundations.utilities.httpRequests.getRequestBody(httpRequest, processRequest)
SA.projects.foundations.utilities.httpRequests.getRequestBody(httpRequest, httpResponse, processRequest)
async function processRequest(body) {
try {
if (body === undefined) { return }
let docsSchema = JSON.parse(body)
let project = requestPath[3]
let filePath = global.env.PATH_TO_PROJECTS + '/' + project + '/Schemas/Docs-Tutorials'
@@ -415,10 +444,12 @@ exports.newHttpInterface = function newHttpInterface() {
}
case 'Save-Review-Schema': {
SA.projects.foundations.utilities.httpRequests.getRequestBody(httpRequest, processRequest)
SA.projects.foundations.utilities.httpRequests.getRequestBody(httpRequest, httpResponse, processRequest)
async function processRequest(body) {
try {
if (body === undefined) { return }
let docsSchema = JSON.parse(body)
let project = requestPath[3]
let filePath = global.env.PATH_TO_PROJECTS + '/' + project + '/Schemas/Docs-Reviews'
@@ -446,10 +477,12 @@ exports.newHttpInterface = function newHttpInterface() {
}
case 'Save-Book-Schema': {
SA.projects.foundations.utilities.httpRequests.getRequestBody(httpRequest, processRequest)
SA.projects.foundations.utilities.httpRequests.getRequestBody(httpRequest, httpResponse, processRequest)
async function processRequest(body) {
try {
if (body === undefined) { return }
let docsSchema = JSON.parse(body)
let project = requestPath[3]
let filePath = global.env.PATH_TO_PROJECTS + '/' + project + '/Schemas/Docs-Books'
@@ -569,7 +602,7 @@ exports.newHttpInterface = function newHttpInterface() {
function createNewDir(path) {
try {
fs.mkdirSync(path)
fs.mkdirSync(path, {recursive: true})
} catch (err) {
if (err.message.indexOf('file already exists') < 0) {
throw (err)
@@ -606,7 +639,13 @@ exports.newHttpInterface = function newHttpInterface() {
break
case 'App':
{
// If running the electron app do not try to get git tool. I don't allow it.
if (process.env.SA_MODE === 'gitDisable') {
console.log('[WARN] No contributions on binary distributions. Do manual installation')
break
}
switch (requestPath[2]) { // switch by command
case 'Contribute': {
try {
let commitMessage = unescape(requestPath[3])
@@ -616,7 +655,7 @@ exports.newHttpInterface = function newHttpInterface() {
const contributionsBranch = unescape(requestPath[7])
let error
/* Unsavping # */
/* Unsaving # */
for (let i = 0; i < 10; i++) {
commitMessage = commitMessage.replace('_SLASH_', '/')
commitMessage = commitMessage.replace('_HASHTAG_', '#')
@@ -625,8 +664,8 @@ exports.newHttpInterface = function newHttpInterface() {
contribute()
async function contribute() {
const { lookpath } = require('lookpath');
const gitpath = await lookpath('git');
const { lookpath } = SA.nodeModules.lookpath
const gitpath = await lookpath('git')
if (gitpath === undefined) {
console.log('[ERROR] `git` not installed.')
} else {
@@ -665,7 +704,7 @@ exports.newHttpInterface = function newHttpInterface() {
}
async function doGit() {
const simpleGit = require('simple-git');
const simpleGit = SA.nodeModules.simpleGit
const options = {
baseDir: process.cwd(),
binary: 'git',
@@ -684,7 +723,7 @@ exports.newHttpInterface = function newHttpInterface() {
console.log('[ERROR] httpInterface -> App -> Contribute -> doGit -> currentBranch = ' + currentBranch)
console.log('[ERROR] httpInterface -> App -> Contribute -> doGit -> contributionsBranch = ' + contributionsBranch)
console.log('')
console.log('Torubleshooting Tips:')
console.log('Troubleshooting Tips:')
console.log('')
console.log('1. Make sure that you have set up your Github Username and Token at the APIs -> Github API node at the workspace.')
console.log('2. Make sure you are running the latest version of Git available for your OS.')
@@ -696,11 +735,11 @@ exports.newHttpInterface = function newHttpInterface() {
async function doGithub() {
const { Octokit } = require("@octokit/rest")
const { Octokit } = SA.nodeModules.octokit
const octokit = new Octokit({
auth: token,
userAgent: 'Superalgos Beta 11'
userAgent: 'Superalgos Beta 12'
})
const repo = 'Superalgos'
@@ -760,7 +799,7 @@ exports.newHttpInterface = function newHttpInterface() {
update()
async function update() {
const { lookpath } = require('lookpath');
const { lookpath } = SA.nodeModules.lookpath
const gitpath = await lookpath('git');
if (gitpath === undefined) {
console.log('[ERROR] `git` not installed.')
@@ -790,7 +829,7 @@ exports.newHttpInterface = function newHttpInterface() {
}
async function doGit() {
const simpleGit = require('simple-git');
const simpleGit = SA.nodeModules.simpleGit
const options = {
baseDir: process.cwd(),
binary: 'git',
@@ -831,7 +870,7 @@ exports.newHttpInterface = function newHttpInterface() {
checkout()
async function checkout() {
const { lookpath } = require('lookpath');
const { lookpath } = SA.nodeModules.lookpath
const gitpath = await lookpath('git');
if (gitpath === undefined) {
console.log('[ERROR] `git` not installed.')
@@ -839,6 +878,9 @@ exports.newHttpInterface = function newHttpInterface() {
await doGit()
if (error === undefined) {
// Run node setup to prepare instance for branch change
await runNodeSetup()
// Return to UI that Branch is successfully changed
SA.projects.foundations.utilities.httpResponses.respondWithContent(JSON.stringify(global.DEFAULT_OK_RESPONSE), httpResponse)
} else {
let docs = {
@@ -855,7 +897,7 @@ exports.newHttpInterface = function newHttpInterface() {
}
async function doGit() {
const simpleGit = require('simple-git');
const simpleGit = SA.nodeModules.simpleGit
const options = {
baseDir: process.cwd(),
binary: 'git',
@@ -864,6 +906,27 @@ exports.newHttpInterface = function newHttpInterface() {
const git = simpleGit(options)
try {
await git.checkout(currentBranch)
// Check to see it main repo has been set as upstream
let remotes = await git.getRemotes();
let isUpstreamSet
for (let remote in remotes) {
if (remotes[remote].name === 'upstream') {
isUpstreamSet = true
} else {
isUpstreamSet = false
}
}
// If upstream has not been set. Set it now
if (isUpstreamSet === false) {
await git.addRemote('upstream', 'https://github.com/Superalgos/Superalgos');
}
// Pull branch from main repo
await git.pull('upstream', currentBranch);
// Reset branch to match main repo
let upstreamLocation = `upstream/${currentBranch}`
await git.reset('hard', [upstreamLocation])
} catch (err) {
console.log('[ERROR] Error changing current branch to ' + currentBranch)
console.log(err.stack)
@@ -871,6 +934,21 @@ exports.newHttpInterface = function newHttpInterface() {
}
}
async function runNodeSetup() {
console.log("Running Node setup to adjust for new Branch")
const process = SA.nodeModules.process
const childProcess = SA.nodeModules.childProcess
let dir = process.cwd()
let command = "node setup noShortcuts";
let stdout = childProcess.execSync(command,
{
cwd: dir
}).toString();
console.log("Node Setup has completed with the following result:", stdout)
}
} catch (err) {
console.log('[ERROR] httpInterface -> App -> Update -> Method call produced an error.')
console.log('[ERROR] httpInterface -> App -> Update -> err.stack = ' + err.stack)
@@ -890,7 +968,7 @@ exports.newHttpInterface = function newHttpInterface() {
branch()
async function branch() {
const { lookpath } = require('lookpath');
const { lookpath } = SA.nodeModules.lookpath
const gitpath = await lookpath('git');
if (gitpath === undefined) {
console.log('[ERROR] `git` not installed.')
@@ -918,7 +996,7 @@ exports.newHttpInterface = function newHttpInterface() {
}
async function doGit() {
const simpleGit = require('simple-git');
const simpleGit = SA.nodeModules.simpleGit
const options = {
baseDir: process.cwd(),
binary: 'git',
@@ -946,6 +1024,148 @@ exports.newHttpInterface = function newHttpInterface() {
}
break
}
case 'FixAppSchema': {
/*
We will use this process when we have moved APP SCHEMA files from one project to another, and we need to fix the
actions where this node was referenced, so that it points to the new project where the node has moved to.
*/
let customResponse = {
result: global.CUSTOM_OK_RESPONSE.result,
message: ''
}
SA.projects.foundations.utilities.httpResponses.respondWithContent(JSON.stringify(customResponse), httpResponse)
console.log('Fixing App Schemas...')
let projects = SA.projects.foundations.utilities.filesAndDirectories.getDirectories(global.env.PATH_TO_PROJECTS)
let PROJECTS_MAP = new Map()
let directoryCount = 0
let allAppSchemas = []
let allAppSchemasFilePaths = []
let allAppSchemasFileProjects = []
for (let i = 0; i < projects.length; i++) {
let project = projects[i]
const fs = SA.nodeModules.fs
let folder = 'App-Schema'
let filePath = global.env.PATH_TO_PROJECTS + '/' + project + '/Schemas/'
SA.projects.foundations.utilities.filesAndDirectories.getAllFilesInDirectoryAndSubdirectories(filePath + folder, onFilesReady)
function onFilesReady(files) {
try {
let SCHEMA_MAP = new Map()
console.log('files.length... ' + files.length)
for (let k = 0; k < files.length; k++) {
let name = files[k]
let nameSplitted = name.split(folder)
let fileName = nameSplitted[1]
for (let i = 0; i < 10; i++) {
fileName = fileName.replace('\\', '/')
}
let fileToRead = filePath + folder + fileName
console.log('Reading file... ' + fileToRead)
let fileContent = fs.readFileSync(fileToRead)
let schemaDocument
try {
schemaDocument = JSON.parse(fileContent)
SCHEMA_MAP.set(schemaDocument.type, schemaDocument)
allAppSchemas.push(schemaDocument)
allAppSchemasFilePaths.push(fileToRead)
allAppSchemasFileProjects.push(project)
} catch (err) {
console.log('[ERROR] sendSchema -> Error Parsing JSON File: ' + fileToRead + ' .Error = ' + err.stack)
return
}
}
PROJECTS_MAP.set(project, SCHEMA_MAP)
directoryCount++
console.log('directoryCount = ' + directoryCount, 'projects.length = ' + projects.length)
//console.log(Array.from(PROJECTS_MAP.get(project).keys()))
if (directoryCount === projects.length) {
fixSchemas()
}
} catch (err) {
console.log(err.stack)
}
}
}
function fixSchemas() {
try {
console.log('fixSchemas...' + allAppSchemas.length)
let projects = SA.projects.foundations.utilities.filesAndDirectories.getDirectories(global.env.PATH_TO_PROJECTS)
const fs = SA.nodeModules.fs
let needFixing = 0
for (let i = 0; i < allAppSchemas.length; i++) {
let schemaDocument = allAppSchemas[i]
let wasUpdated = false
for (let j = 0; j < schemaDocument.menuItems.length; j++) {
let menuItem = schemaDocument.menuItems[j]
if (menuItem.relatedUiObject !== undefined && menuItem.relatedUiObjectProject === undefined) {
needFixing++
let hits = 0
let foundProject
let multiProject = ''
for (let k = 0; k < projects.length; k++) {
let project = projects[k]
let testDocument = PROJECTS_MAP.get(project).get(menuItem.relatedUiObject)
if (testDocument !== undefined) {
hits++
foundProject = project
multiProject = multiProject + ' -> ' + project
let fileProject = allAppSchemasFileProjects[i]
//console.log(fileProject, project)
if (fileProject === project) {
/* If the project of the file is the same as the project found, then we consider this a match*/
hits = 1
continue
}
}
}
if (hits === 0) {
console.log('Problem With No Solution #' + needFixing, ' Type: ' + schemaDocument.type, ' Action: ' + menuItem.action, ' Related UI Object: ' + menuItem.relatedUiObject)
console.log('This Node Type was NOT FOUND at any project. ' + menuItem.relatedUiObject)
continue
}
if (hits === 1) {
console.log('Problem With One Solution #' + needFixing, ' Type: ' + schemaDocument.type, ' Action: ' + menuItem.action, ' Related UI Object: ' + menuItem.relatedUiObject, ' Found Project:' + foundProject)
menuItem.relatedUiObjectProject = foundProject
wasUpdated = true
continue
}
console.log('Problem With MULTIPLE Solutions #' + needFixing, ' Type: ' + schemaDocument.type, ' Action: ' + menuItem.action, ' Related UI Object: ' + menuItem.relatedUiObject, ' Found at these Projects:' + multiProject)
}
}
if (wasUpdated === true) {
let fileContent = JSON.stringify(schemaDocument, undefined, 4)
let filePath = allAppSchemasFilePaths[i]
//console.log('Saving File at ' + filePath)
//console.log(fileContent)
//fs.writeFileSync(filePath, fileContent)
}
}
} catch (err) {
console.log(err.stack)
}
}
break
}
}
function respondWithDocsObject(docs, error) {
@@ -991,16 +1211,18 @@ exports.newHttpInterface = function newHttpInterface() {
related to the Governance System are implemented here and routed
to the backend Servers that can process them.
*/
SA.projects.foundations.utilities.httpRequests.getRequestBody(httpRequest, processRequest)
SA.projects.foundations.utilities.httpRequests.getRequestBody(httpRequest, httpResponse, processRequest)
async function processRequest(body) {
try {
if (body === undefined) { return }
let params = JSON.parse(body)
switch (params.method) {
case 'getGithubStars': {
let serverResponse = await CL.servers.GITHUB_SERVER.getGithubStars(
let serverResponse = await PL.servers.GITHUB_SERVER.getGithubStars(
params.repository,
params.username,
params.token
@@ -1011,7 +1233,7 @@ exports.newHttpInterface = function newHttpInterface() {
}
case 'getGithubWatchers': {
let serverResponse = await CL.servers.GITHUB_SERVER.getGithubWatchers(
let serverResponse = await PL.servers.GITHUB_SERVER.getGithubWatchers(
params.repository,
params.username,
params.token
@@ -1022,7 +1244,7 @@ exports.newHttpInterface = function newHttpInterface() {
}
case 'getGithubForks': {
let serverResponse = await CL.servers.GITHUB_SERVER.getGithubForks(
let serverResponse = await PL.servers.GITHUB_SERVER.getGithubForks(
params.repository,
params.username,
params.token
@@ -1033,25 +1255,233 @@ exports.newHttpInterface = function newHttpInterface() {
}
case 'mergePullRequests': {
let serverResponse = await CL.servers.GITHUB_SERVER.mergePullRequests(
let serverResponse = await PL.servers.GITHUB_SERVER.mergePullRequests(
params.commitMessage,
params.username,
params.token
)
SA.projects.foundations.utilities.httpResponses.respondWithContent(JSON.stringify(serverResponse), httpResponse)
setInterval(
PL.servers.GITHUB_SERVER.mergePullRequests,
60000,
params.commitMessage,
params.username,
params.token
)
return
}
case 'payContributors': {
let serverResponse = await CL.servers.WEB3_SERVER.payContributors(
case 'UserProfile': {
try {
let mess = unescape(params.commitMessage)
const username = unescape(params.username)
const token = unescape(params.token)
const currentBranch = unescape(params.currentBranch)
const contributionsBranch = unescape(params.contributionsBranch)
let error
await updateUser()
async function updateUser() {
await doGithubUser()
if (error !== undefined) {
let docs = {
project: 'Governance',
category: 'Topic',
type: 'Gov Error - Contribution Not Sent',
anchor: undefined,
placeholder: {}
}
console.log('respond with docs ')
respondWithDocsObject(docs, error)
return
}
SA.projects.foundations.utilities.httpResponses.respondWithContent(JSON.stringify(global.DEFAULT_OK_RESPONSE), httpResponse)
}
async function doGithubUser() {
const { Octokit } = SA.nodeModules.octokit
const octokit = new Octokit({
auth: token,
userAgent: 'Superalgos Beta 12'
})
const repo = 'Superalgos'
const owner = 'Superalgos'
const head = username + ':' + contributionsBranch
const base = currentBranch
const title = 'Contribution: ' + mess
const path = 'Projects/Governance/Plugins/User-Profiles/' + username + '.json' ;
const sha = await getSHA(path);
if (sha === undefined){
console.log('***** Abort GOV.USERPROFILE *****')
return
}
let file = await SA.projects.communityPlugins.utilities.plugins.getPluginFileContent(
'Governance',
'User-Profiles',
username + '.json'
)
let buff = new Buffer.from(file, 'utf-8');
let encodedFile = buff.toString('base64');
try {
await octokit.repos.createOrUpdateFileContents({
owner: username,
repo: "Superalgos",
path,
message: title,
content: encodedFile,
sha,
branch: base
});
} catch (err) {
if (err.stack.indexOf('Error User Commit') >= 0) {
return
} else {
console.log('[ERROR] httpInterface -> Gov -> contributeUserProfile -> doGithub -> Method call produced an error.')
console.log('[ERROR] httpInterface -> Gov -> contributeUserProfile -> doGithub -> err.stack = ' + err.stack)
console.log('[ERROR] httpInterface -> Gov -> contributeUserProfile -> doGithub -> commitMessage = ' + mess)
console.log('[ERROR] httpInterface -> Gov -> contributeUserProfile -> doGithub -> username = ' + username)
console.log('[ERROR] httpInterface -> Gov -> contributeUserProfile -> doGithub -> token starts with = ' + token.substring(0, 10) + '...')
console.log('[ERROR] httpInterface -> Gov -> contributeUserProfile -> doGithub -> token ends with = ' + '...' + token.substring(token.length - 10))
console.log('[ERROR] httpInterface -> Gov -> contributeUserProfile -> doGithub -> currentBranch = ' + currentBranch)
console.log('[ERROR] httpInterface -> Gov -> contributeUserProfile -> doGithub -> contributionsBranch = ' + contributionsBranch)
error = err
}
}
try {
await octokit.pulls.create({
owner,
repo,
title,
head,
base,
});
} catch (err) {
if (err.stack.indexOf('A pull request already exists') >= 0) {
return
} else {
console.log('[ERROR] httpInterface -> Gov -> contributeUserProfile -> doGithub -> Method call produced an error.')
console.log('[ERROR] httpInterface -> Gov -> contributeUserProfile -> doGithub -> err.stack = ' + err.stack)
console.log('[ERROR] httpInterface -> Gov -> contributeUserProfile -> doGithub -> commitMessage = ' + mess)
console.log('[ERROR] httpInterface -> Gov -> contributeUserProfile -> doGithub -> username = ' + username)
console.log('[ERROR] httpInterface -> Gov -> contributeUserProfile -> doGithub -> token starts with = ' + token.substring(0, 10) + '...')
console.log('[ERROR] httpInterface -> Gov -> contributeUserProfile -> doGithub -> token ends with = ' + '...' + token.substring(token.length - 10))
console.log('[ERROR] httpInterface -> Gov -> contributeUserProfile -> doGithub -> currentBranch = ' + currentBranch)
console.log('[ERROR] httpInterface -> Gov -> contributeUserProfile -> doGithub -> contributionsBranch = ' + contributionsBranch)
error = err
}
}
}
async function getSHA(path) {
let sha = ''
const { graphql } = SA.nodeModules.graphql
try{
const { repository } = await graphql(
'{ ' +
' repository(name: "SuperAlgos", owner: "' + username + '") {' +
' object(expression: "develop:' + path +'") {' +
' ... on Blob {' +
' oid' +
' }' +
' }' +
' name' +
' }' +
'}',
{
headers: {
authorization: 'token ' + token
},
}
)
if (repository.name === undefined){
console.log('***** Token permission needed : User:READ *****')
sha = undefined
error = '***** Token permission needed : User:READ *****'
return sha
}
if(repository.object === null ){
console.log("[User Not Found] -> Creating new user")
return sha
}
sha = repository.object.oid
return sha
} catch (err) {
console.log('[ERROR] httpInterface -> Gov -> contributeUserProfile -> doGithub -> Method call produced an error.')
console.log('[ERROR] httpInterface -> Gov -> contributeUserProfile -> doGithub -> err.stack = ' + err.stack)
console.log('[ERROR] httpInterface -> Gov -> contributeUserProfile -> doGithub -> commitMessage = ' + mess)
console.log('[ERROR] httpInterface -> Gov -> contributeUserProfile -> doGithub -> username = ' + username)
console.log('[ERROR] httpInterface -> Gov -> contributeUserProfile -> doGithub -> token starts with = ' + token.substring(0, 10) + '...')
console.log('[ERROR] httpInterface -> Gov -> contributeUserProfile -> doGithub -> token ends with = ' + '...' + token.substring(token.length - 10))
console.log('[ERROR] httpInterface -> Gov -> contributeUserProfile -> doGithub -> currentBranch = ' + currentBranch)
console.log('[ERROR] httpInterface -> Gov -> contributeUserProfile -> doGithub -> contributionsBranch = ' + contributionsBranch)
return sha
}
}
} catch (err) {
console.log('[ERROR] httpInterface -> Gov -> contributeUserProfile -> Method call produced an error.')
console.log('[ERROR] httpInterface -> Gov -> contributeUserProfile -> err.stack = ' + err.stack)
console.log('[ERROR] httpInterface -> Gov -> contributeUserProfile -> commitMessage = ' + mess)
console.log('[ERROR] httpInterface -> Gov -> contributeUserProfile -> username = ' + username)
console.log('[ERROR] httpInterface -> Gov -> contributeUserProfile -> token starts with = ' + token.substring(0, 10) + '...')
console.log('[ERROR] httpInterface -> Gov -> contributeUserProfile -> token ends with = ' + '...' + token.substring(token.length - 10))
console.log('[ERROR] httpInterface -> Gov -> contributeUserProfile -> currentBranch = ' + currentBranch)
console.log('[ERROR] httpInterface -> Gov -> contributeUserProfile -> contributionsBranch = ' + contributionsBranch)
let error = {
result: 'Fail Because',
message: err.message,
stack: err.stack
}
SA.projects.foundations.utilities.httpResponses.respondWithContent(JSON.stringify(error), httpResponse)
}
break
}
case 'payContributors': {
console.log('----------------------------------------------------------------------------------------------')
console.log('DISTRIBUTION PROCESS STARTED')
console.log('----------------------------------------------------------------------------------------------')
SA.projects.foundations.utilities.httpResponses.respondWithContent(JSON.stringify(global.DEFAULT_OK_RESPONSE), httpResponse)
await PL.servers.WEB3_SERVER.payContributors(
params.contractAddress,
params.contractAbi,
params.paymentsArray,
params.mnemonic
)
SA.projects.foundations.utilities.httpResponses.respondWithContent(JSON.stringify(serverResponse), httpResponse)
return
}
default: {
@@ -1068,24 +1498,28 @@ exports.newHttpInterface = function newHttpInterface() {
message: err.message,
stack: err.stack
}
SA.projects.foundations.utilities.httpResponses.respondWithContent(JSON.stringify(error), httpResponse)
try {
SA.projects.foundations.utilities.httpResponses.respondWithContent(JSON.stringify(error), httpResponse)
} catch (err) {
// we just try to reponnd to the web app, but maybe the response has already been sent.
}
}
}
}
break
case 'LegacyPlotter.js':
{
SA.projects.foundations.utilities.httpResponses.respondWithFile(global.env.PATH_TO_CLIENT + '/WebServer/LegacyPlotter.js', httpResponse)
SA.projects.foundations.utilities.httpResponses.respondWithFile(global.env.PATH_TO_PLATFORM + '/WebServer/LegacyPlotter.js', httpResponse)
}
break
case 'PlotterPanel.js':
{
SA.projects.foundations.utilities.httpResponses.respondWithFile(global.env.PATH_TO_CLIENT + '/WebServer/PlotterPanel.js', httpResponse)
SA.projects.foundations.utilities.httpResponses.respondWithFile(global.env.PATH_TO_PLATFORM + '/WebServer/PlotterPanel.js', httpResponse)
}
break
case 'Images': // This means the Images folder.
{
let path = global.env.PATH_TO_CLIENT + '/WebServer/Images/' + requestPath[2]
let path = global.env.PATH_TO_PLATFORM + '/WebServer/Images/' + requestPath[2]
if (requestPath[3] !== undefined) {
path = path + '/' + requestPath[3]
@@ -1167,12 +1601,12 @@ exports.newHttpInterface = function newHttpInterface() {
break
case 'WebServer': // This means the WebServer folder.
{
SA.projects.foundations.utilities.httpResponses.respondWithFile(global.env.PATH_TO_CLIENT + '/WebServer/' + requestPath[2], httpResponse)
SA.projects.foundations.utilities.httpResponses.respondWithFile(global.env.PATH_TO_PLATFORM + '/WebServer/' + requestPath[2], httpResponse)
}
break
case 'externalScripts': // This means the WebServer folder.
{
SA.projects.foundations.utilities.httpResponses.respondWithFile(global.env.PATH_TO_CLIENT + '/WebServer/externalScripts/' + requestPath[2], httpResponse)
SA.projects.foundations.utilities.httpResponses.respondWithFile(global.env.PATH_TO_PLATFORM + '/WebServer/externalScripts/' + requestPath[2], httpResponse)
}
break
case 'Plotters': // This means the plotter folder, not to be confused with the Plotters script!
@@ -1187,12 +1621,12 @@ exports.newHttpInterface = function newHttpInterface() {
break
case 'ChartLayers':
{
SA.projects.foundations.utilities.httpResponses.respondWithFile(global.env.PATH_TO_CLIENT + '/UI/' + endpointOrFile + '/' + requestPath[2], httpResponse)
SA.projects.foundations.utilities.httpResponses.respondWithFile(global.env.PATH_TO_PLATFORM + '/UI/' + endpointOrFile + '/' + requestPath[2], httpResponse)
}
break
case 'Files':
{
SA.projects.foundations.utilities.httpResponses.respondWithFile(global.env.PATH_TO_CLIENT + '/UI/Data-Files/' + requestPath[2], httpResponse)
SA.projects.foundations.utilities.httpResponses.respondWithFile(global.env.PATH_TO_PLATFORM + '/UI/Data-Files/' + requestPath[2], httpResponse)
}
break
case 'Fonts':
@@ -1343,10 +1777,12 @@ exports.newHttpInterface = function newHttpInterface() {
let project = unescape(requestPath[2])
let folder = unescape(requestPath[3])
let response = await SA.projects.foundations.utilities.plugins.getPluginFileNames(
let response = await SA.projects.communityPlugins.utilities.plugins.getPluginFileNames(
project,
folder
)
).catch(err => {
console.log('[ERROR] httpInterface -> PluginFileNames -> err.stack = ' + err.stack)
})
SA.projects.foundations.utilities.httpResponses.respondWithContent(JSON.stringify(response), httpResponse)
@@ -1375,20 +1811,28 @@ exports.newHttpInterface = function newHttpInterface() {
let folder = unescape(requestPath[3])
let fileName = unescape(requestPath[4])
let response = await SA.projects.foundations.utilities.plugins.getPluginFileContent(
/*Beta 12 Refactoring Code: Remove this before releasing beta 12.*/
if (fileName === 'Superalgos-CL.json') {
fileName = 'Superalgos-PL.json'
}
await SA.projects.communityPlugins.utilities.plugins.getPluginFileContent(
project,
folder,
fileName
).catch(err => {
let error = {
result: 'Fail Because',
message: err
)
.then(response => {
SA.projects.foundations.utilities.httpResponses.respondWithContent(response, httpResponse)
}
SA.projects.foundations.utilities.httpResponses.respondWithContent(JSON.stringify(error), httpResponse)
return
})
SA.projects.foundations.utilities.httpResponses.respondWithContent(response, httpResponse)
)
.catch(err => {
let error = {
result: 'Fail Because',
message: err
}
SA.projects.foundations.utilities.httpResponses.respondWithContent(JSON.stringify(error), httpResponse)
return
})
} catch (err) {
console.log('[ERROR] httpInterface -> LoadPlugin -> Method call produced an error.')
@@ -1407,10 +1851,12 @@ exports.newHttpInterface = function newHttpInterface() {
break
case 'SavePlugin':
{
SA.projects.foundations.utilities.httpRequests.getRequestBody(httpRequest, processRequest)
SA.projects.foundations.utilities.httpRequests.getRequestBody(httpRequest, httpResponse, processRequest)
async function processRequest(body) {
try {
if (body === undefined) { return }
let plugin = JSON.parse(body)
let project = requestPath[2]
let folder = requestPath[3]
@@ -1541,10 +1987,12 @@ exports.newHttpInterface = function newHttpInterface() {
break
case 'SaveWorkspace':
{
SA.projects.foundations.utilities.httpRequests.getRequestBody(httpRequest, processRequest)
SA.projects.foundations.utilities.httpRequests.getRequestBody(httpRequest, httpResponse, processRequest)
async function processRequest(body) {
if (body === undefined) { return }
let fileContent = body
let fileName = unescape(requestPath[2])
let filePath = global.env.PATH_TO_MY_WORKSPACES + '/' + fileName + '.json'
@@ -1555,7 +2003,7 @@ exports.newHttpInterface = function newHttpInterface() {
/* Create Dir if it does not exist */
if (!fs.existsSync(dir)) {
fs.mkdirSync(dir);
fs.mkdirSync(dir, {recursive: true});
}
fs.writeFile(filePath, fileContent, onFileWritten)
@@ -1693,11 +2141,16 @@ exports.newHttpInterface = function newHttpInterface() {
break
default:
{
SA.projects.foundations.utilities.httpResponses.respondWithWebFile(httpResponse, endpointOrFile, global.env.PATH_TO_CLIENT)
SA.projects.foundations.utilities.httpResponses.respondWithWebFile(httpResponse, endpointOrFile, global.env.PATH_TO_PLATFORM)
}
}
} catch (err) {
console.log(err.stack)
if (err.stack !== undefined) {
console.log(err.stack)
}
if (err.message !== undefined) {
console.log('[ERROR] onHttpRequest -> err.message = ' + err.message)
}
}
}
}
+2 -2
View File
@@ -63,7 +63,7 @@
//console.log('[INFO] Client -> Task Manager Server -> runTask -> Task Name = ' + message.event.taskName)
//console.log('[INFO] Client -> Task Manager Server -> runTask -> Task Id = ' + message.event.taskId)
let path = global.env.PATH_TO_TASK_SERVER + '/Task.js'
let path = global.env.BASE_PATH + '/TaskServerRoot.js'
/* Workarround to avoid having the same debug port at the forked process which makes it crash. */
for (let i = 0; i < process.execArgv.length; i++) {
@@ -263,7 +263,7 @@
responseWaiters.set(command.callerId, responseCallBack)
}
CL.servers.EVENT_SERVER.onMessage(JSON.stringify(command), thisObject.onMessage)
PL.servers.EVENT_SERVER.onMessage(JSON.stringify(command), thisObject.onMessage)
} catch (err) {
console.log('[ERROR] Client -> Task Manager Server -> sendCommand -> Error Sending Command to Events Server -> command = ' + JSON.stringify(command))
console.log('[ERROR] Client -> Task Manager Server -> sendCommand -> Error Sending Command to Events Server -> error = ' + err.stack)
+54 -10
View File
@@ -7,6 +7,7 @@ exports.newWeb3Server = function newWeb3Server() {
createWalletAccount: createWalletAccount,
getWalletBalances: getWalletBalances,
signData: signData,
hashData: hashData,
recoverAddress: recoverAddress,
mnemonicToPrivateKey: mnemonicToPrivateKey,
payContributors: payContributors,
@@ -15,7 +16,7 @@ exports.newWeb3Server = function newWeb3Server() {
run: run
}
const Web3 = require('web3');
const Web3 = SA.nodeModules.web3
let web3Map = new Map()
return thisObject
@@ -223,6 +224,22 @@ exports.newWeb3Server = function newWeb3Server() {
}
}
async function hashData(data) {
try {
let web3 = new Web3()
let hash = web3.eth.accounts.hashMessage(data)
return {
hash: hash,
result: 'Ok'
}
} catch (err) {
return { error: 'Could not hash the data. ' + err.stack }
}
}
async function recoverAddress(signature) {
try {
let signatureObject = JSON.parse(signature)
@@ -241,7 +258,7 @@ exports.newWeb3Server = function newWeb3Server() {
async function mnemonicToPrivateKey(mnemonic) {
try {
const ethers = require('ethers')
const ethers = SA.nodeModules.ethers
let wallet = ethers.Wallet.fromMnemonic(mnemonic)
if (wallet.privateKey !== undefined) {
@@ -268,10 +285,14 @@ exports.newWeb3Server = function newWeb3Server() {
let response = await mnemonicToPrivateKey(mnemonic)
let privateKey = response.privateKey
console.log('----------------------------------------------------------------------------------------------')
console.log('PAYING CONTRIBUTORS')
console.log('----------------------------------------------------------------------------------------------')
for (let i = 0; i < paymentsArray.length; i++) {
await CL.projects.foundations.utilities.asyncFunctions.sleep(10000)
await PL.projects.foundations.utilities.asyncFunctions.sleep(15000)
let payment = paymentsArray[i]
sendTokens(
await sendTokens(
i + 1,
payment.userProfile,
payment.from,
@@ -282,20 +303,36 @@ exports.newWeb3Server = function newWeb3Server() {
async function sendTokens(number, userProfile, fromAddress, toAddress, tokenAmount) {
try {
tokenAmount = Math.trunc(tokenAmount / 1000000000000000000)
console.log('')
console.log('---------------------------------------------------------------------------------------------------------------------------------------------------')
console.log(' Payment # ' + number + ' - User Profile: ' + userProfile + ' - SA Tokens Amount: ' + tokenAmount / 1000000000000000000 + ' - Address: ' + toAddress)
console.log(' Payment # ' + number + ' - User Profile: ' + userProfile + ' - SA Tokens Amount: ' + parseFloat(tokenAmount).toLocaleString('en') + ' - Address: ' + toAddress)
console.log('---------------------------------------------------------------------------------------------------------------------------------------------------')
console.log('')
const Tx = require('ethereumjs-tx').Transaction;
if (tokenAmount === 0) {
console.log('No need to send a transaction in this case.')
return
}
const Tx = SA.nodeModules.ethereumjsTx.Transaction;
const web3 = new Web3(new Web3.providers.HttpProvider('https://bsc-dataseed.binance.org/'))
const amount = web3.utils.toHex(tokenAmount)
/*
Token Amount
*/
tokenAmount = web3.utils.toWei(tokenAmount.toString(), 'ether')
var amountBigNumber = web3.utils.toBN(tokenAmount)
//const amount = web3.utils.toHex(tokenAmount)
if (privateKey === undefined) { privateKey = 'No Privete Key - Just Testing' }
privateKey = privateKey.replace('0x', '')
const privateKeyBuffer = Buffer.from(privateKey, 'hex')
const contractAbiObject = JSON.parse(contractAbi)
const contract = new web3.eth.Contract(contractAbiObject, contractAddress, { from: fromAddress })
const Common = require('ethereumjs-common').default
const Common = SA.nodeModules.ethereumjsCommon.default
const BSC_FORK = Common.forCustomChain(
'mainnet',
{
@@ -308,13 +345,14 @@ exports.newWeb3Server = function newWeb3Server() {
);
const nonce = await web3.eth.getTransactionCount(fromAddress);
console.log('Nonce:', nonce)
const rawTransaction = {
"from": fromAddress,
"gasPrice": web3.utils.toHex(5000000000),
"gasLimit": web3.utils.toHex(210000),
"to": contractAddress, "value": "0x0",
"data": contract.methods.transfer(toAddress, amount).encodeABI(),
"data": contract.methods.transfer(toAddress, amountBigNumber).encodeABI(),
"nonce": web3.utils.toHex(nonce)
};
@@ -322,7 +360,13 @@ exports.newWeb3Server = function newWeb3Server() {
transaction.sign(privateKeyBuffer)
console.log('Transaction:', rawTransaction)
const result = await web3.eth.sendSignedTransaction('0x' + transaction.serialize().toString('hex'))
let result
result = await web3.eth.sendSignedTransaction('0x' + transaction.serialize().toString('hex'))
.catch(err => {
console.log('[ERROR] sendSignedTransaction -> err =' + JSON.stringify(err))
})
console.log('Result:', result)
return result
} catch (err) {
+38 -8
View File
@@ -7,9 +7,9 @@
finalize: finalize
}
const WEB_SOCKET = require('ws')
const WEB_SOCKET = SA.nodeModules.ws
let socketServer
let port = global.env.CLIENT_WEB_SOCKETS_INTERFACE_PORT
let port = global.env.PLATFORM_WEB_SOCKETS_INTERFACE_PORT
return thisObject
@@ -36,13 +36,42 @@
socket.on('message', onMenssage)
function onMenssage(message){
function onMenssage(message) {
try {
if (LOG_INFO === true) {
console.log('Message Received: ' + message.substring(0, 1000))
if (global.env.DEMO_MODE === true) {
/*
In DEMO MODE we will accept Task / Sessioins Running or Stopping if you are requesting this from localhost only.
*/
if (socket._socket.remoteAddress !== "::1") {
if (
message.toString().indexOf('"eventType":"Run Task"') >= 0
||
message.toString().indexOf('"eventType":"Stop Task"') >= 0
||
message.toString().indexOf('"eventType":"Run Trading Session"') >= 0
||
message.toString().indexOf('"eventType":"Stop Trading Session"') >= 0
||
message.toString().indexOf('"eventType":"Resume Trading Session"') >= 0
||
message.toString().indexOf('"eventType":"Run Learning Session"') >= 0
||
message.toString().indexOf('"eventType":"Stop Learning Session"') >= 0
||
message.toString().indexOf('"eventType":"Resume Learning Session"') >= 0
) {
console.log('Trying to execute a Task while in DEMO MODE. Some hacking has taken place!')
console.log('Hacker IP Address is: ' + socket._socket.remoteAddress)
return
}
}
}
if (LOG_INFO === true) {
console.log('Message Received: ' + message.toString().substring(0, 10000))
}
let messageArray = message.toString().split('|*|')
let origin = messageArray[0]
@@ -86,7 +115,7 @@
}
CL.servers.EVENT_SERVER.onMessage(messageToEventServer, onResponse)
PL.servers.EVENT_SERVER.onMessage(messageToEventServer, onResponse)
function onResponse(message) {
socket.send(message)
@@ -97,7 +126,8 @@
}
}
} catch (err) {
console.log('[ERROR] Client -> Web Sockets Interface -> run -> setUpWebSocketServer -> err.message = ' + err.message.substring(0, 1000))
console.log('[ERROR] Client -> Web Sockets Interface -> run -> setUpWebSocketServer -> err.message = ' + err.message)
console.log('[ERROR] Client -> Web Sockets Interface -> run -> setUpWebSocketServer -> err.message = ' + err.stack)
}
}
}
+161 -190
View File
@@ -1,194 +1,165 @@
exports.newPlatformApp = function newPlatformApp() {
/* Load Environment Variables */
let ENVIRONMENT = require('../Environment.js');
let ENVIRONMENT_MODULE = ENVIRONMENT.newEnvironment()
global.env = ENVIRONMENT_MODULE
process.on('uncaughtException', function (err) {
if (err.message && err.message.indexOf("EADDRINUSE") > 0) {
console.log("The Superalgos Platform Client cannot be started. Reason: the port configured migth be being used by another application, or Superalgos Platform Client might be already running.")
return
}
console.log('[ERROR] Platform App -> uncaughtException -> err.message = ' + err.message)
console.log('[ERROR] Platform App -> uncaughtException -> err.stack = ' + err.stack)
console.log('[ERROR] Platform App -> uncaughtException -> err = ' + err)
process.exit(1)
})
process.on('unhandledRejection', (reason, p) => {
// Signal user that a necissary node module is missing
if (reason.code == 'MODULE_NOT_FOUND') {
console.log("[ERROR] Dependency library not found. Please try running the 'node setup' command and then restart the Superalgos Platform Client.")
console.log('[ERROR] Platform App -> reason = ' + JSON.stringify(reason))
process.exit(1)
}
console.log('[ERROR] Platform App -> unhandledRejection -> reason = ' + JSON.stringify(reason))
console.log('[ERROR] Platform App -> unhandledRejection -> p = ' + JSON.stringify(p))
process.exit(1)
})
try {
/* Callbacks default responses. */
global.DEFAULT_OK_RESPONSE = {
result: "Ok",
message: "Operation Succeeded"
};
global.DEFAULT_FAIL_RESPONSE = {
result: "Fail",
message: "Operation Failed"
};
global.DEFAULT_RETRY_RESPONSE = {
result: 'Retry',
message: 'Retry Later'
let thisObject = {
run: run
}
global.CUSTOM_OK_RESPONSE = {
result: 'Ok, but check Message',
message: 'Custom Message'
return thisObject
async function run(initialWorkspace) {
process.on('uncaughtException', function (err) {
if (err.message && err.message.indexOf("EADDRINUSE") > 0) {
console.log("The Superalgos Platform Client cannot be started. Reason: the port configured migth be being used by another application, or Superalgos Platform Client might be already running.")
return
}
console.log('[ERROR] Platform App -> uncaughtException -> err.message = ' + err.message)
console.log('[ERROR] Platform App -> uncaughtException -> err.stack = ' + err.stack)
console.log('[ERROR] Platform App -> uncaughtException -> err = ' + err)
process.exit(1)
})
process.on('unhandledRejection', (reason, p) => {
// Signal user that a necissary node module is missing
if (reason.code == 'MODULE_NOT_FOUND') {
console.log("[ERROR] Dependency library not found. Please try running the 'node setup' command and then restart the Superalgos Platform Client.")
console.log('[ERROR] Platform App -> reason = ' + JSON.stringify(reason))
process.exit(1)
}
console.log('[ERROR] Platform App -> unhandledRejection -> reason = ' + JSON.stringify(reason))
console.log('[ERROR] Platform App -> unhandledRejection -> p = ' + JSON.stringify(p))
process.exit(1)
})
try {
/* Callbacks default responses. */
global.DEFAULT_OK_RESPONSE = {
result: "Ok",
message: "Operation Succeeded"
};
global.DEFAULT_FAIL_RESPONSE = {
result: "Fail",
message: "Operation Failed"
};
global.DEFAULT_RETRY_RESPONSE = {
result: 'Retry',
message: 'Retry Later'
}
global.CUSTOM_OK_RESPONSE = {
result: 'Ok, but check Message',
message: 'Custom Message'
}
global.CUSTOM_FAIL_RESPONSE = {
result: 'Fail Because',
message: 'Custom Message'
}
/* Servers */
let WEB_SERVER = require('./Client/webServer.js')
let DATA_FILE_SERVER = require('./Client/dataFileServer.js')
let PROJECT_FILE_SERVER = require('./Client/projectFileServer.js')
let UI_FILE_SERVER = require('./Client/uiFileServer.js')
let PLUGIN_SERVER = require('./Client/pluginServer.js')
let EVENT_SERVER = require('./Client/eventServer.js')
let TASK_MANAGER_SERVER = require('./Client/taskManagerServer.js')
let CCXT_SERVER = require('./Client/ccxtServer.js')
let WEB3_SERVER = require('./Client/web3Server.js')
let GITHUB_SERVER = require('./Client/githubServer.js')
/* Network Interfaces */
let WEB_SOCKETS_INTERFACE = require('./Client/webSocketsInterface.js')
let HTTP_INTERFACE = require('./Client/httpInterface.js')
/*
Setting up servers running inside this Client.
*/
PL.servers = {}
console.log('SUPERALGOS PLATFORM CLIENT SERVERS:')
console.log('')
PL.servers.WEB_SERVER = WEB_SERVER.newWebServer()
PL.servers.WEB_SERVER.initialize()
PL.servers.WEB_SERVER.run()
console.log('Web Server .................................................. Started')
PL.servers.UI_FILE_SERVER = UI_FILE_SERVER.newUIFileServer()
PL.servers.UI_FILE_SERVER.initialize()
PL.servers.UI_FILE_SERVER.run()
console.log('UI File Server .............................................. Started')
PL.servers.PROJECT_FILE_SERVER = PROJECT_FILE_SERVER.newProjectFileServer()
PL.servers.PROJECT_FILE_SERVER.initialize()
PL.servers.PROJECT_FILE_SERVER.run()
console.log('Project File Server ......................................... Started')
PL.servers.PLUGIN_SERVER = PLUGIN_SERVER.newPluginServer()
PL.servers.PLUGIN_SERVER.initialize()
PL.servers.PLUGIN_SERVER.run()
console.log('Plugin Server ............................................... Started')
PL.servers.DATA_FILE_SERVER = DATA_FILE_SERVER.newDataFileServer()
PL.servers.DATA_FILE_SERVER.initialize()
PL.servers.DATA_FILE_SERVER.run()
console.log('Data File Server ............................................ Started')
PL.servers.EVENT_SERVER = EVENT_SERVER.newEventServer()
PL.servers.EVENT_SERVER.initialize()
PL.servers.EVENT_SERVER.run()
console.log('Events Server ............................................... Started')
TASK_MANAGER_SERVER = TASK_MANAGER_SERVER.newTaskManagerServer()
TASK_MANAGER_SERVER.initialize()
TASK_MANAGER_SERVER.run()
console.log('Task Manager Server ......................................... Started')
PL.servers.CCXT_SERVER = CCXT_SERVER.newCCXTServer()
PL.servers.CCXT_SERVER.initialize()
PL.servers.CCXT_SERVER.run()
console.log('CCXT Server ................................................. Started')
PL.servers.WEB3_SERVER = WEB3_SERVER.newWeb3Server()
PL.servers.WEB3_SERVER.initialize()
PL.servers.WEB3_SERVER.run()
console.log('WEB3 Server ................................................. Started')
PL.servers.GITHUB_SERVER = GITHUB_SERVER.newGithubServer()
PL.servers.GITHUB_SERVER.initialize()
PL.servers.GITHUB_SERVER.run()
console.log('Github Server ............................................... Started')
console.log('')
console.log('SUPERALGOS PLATFORM CLIENT INTERFACES:')
console.log('')
WEB_SOCKETS_INTERFACE = WEB_SOCKETS_INTERFACE.newWebSocketsInterface()
WEB_SOCKETS_INTERFACE.initialize()
console.log('Web Sockets Interface ....................................... Listening at port ' + global.env.PLATFORM_WEB_SOCKETS_INTERFACE_PORT)
HTTP_INTERFACE = HTTP_INTERFACE.newHttpInterface()
HTTP_INTERFACE.initialize(initialWorkspace)
console.log('Http Interface .............................................. Listening at port ' + global.env.PLATFORM_HTTP_INTERFACE_PORT)
console.log('')
console.log("You are running Superalgos Beta 12")
console.log('')
console.log("What's new? These are the main new features in this version:")
console.log('')
console.log('Governance System ........................................... Automates the distribution of SA Tokens and allow users to vote on the direction of the project.')
console.log('TensorFlow Integration ...................................... Allows creating and training ML models and use them in trading strategies.')
console.log('')
console.log("What's next? This is the current development pipeline:")
console.log('')
console.log('Superalgos P2P Network ...................................... Will allow algo-traders to share trading signals with Superalgos users consuming these signals via a mobile app.')
console.log('Real-time Trading Signals ................................... Will allow users to emit trading signals and be rewarded with SA Tokens.')
console.log('Superalgos Mobile ........................................... Will allow users to consume trading signals for free and autonomously execute trades from their mobile phones.')
console.log('Ethereum Integration ........................................ Will allow mining data from an Ethereum network node, and bring it into the Superalgos workflow. [Looking for an Ethereum dev that would like to continue this line of development.]')
console.log('')
} catch (err) {
console.log('[ERROR] Platform App -> Error = ' + err.stack)
}
}
global.CUSTOM_FAIL_RESPONSE = {
result: 'Fail Because',
message: 'Custom Message'
}
/* Servers */
let WEB_SERVER = require('./Client/webServer.js')
let DATA_FILE_SERVER = require('./Client/dataFileServer.js')
let PROJECT_FILE_SERVER = require('./Client/projectFileServer.js')
let UI_FILE_SERVER = require('./Client/uiFileServer.js')
let PLUGIN_SERVER = require('./Client/pluginServer.js')
let EVENT_SERVER = require('./Client/eventServer.js')
let TASK_MANAGER_SERVER = require('./Client/taskManagerServer.js')
let CCXT_SERVER = require('./Client/ccxtServer.js')
let WEB3_SERVER = require('./Client/web3Server.js')
let GITHUB_SERVER = require('./Client/githubServer.js')
/* Network Interfaces */
let WEB_SOCKETS_INTERFACE = require('./Client/webSocketsInterface.js')
let HTTP_INTERFACE = require('./Client/httpInterface.js')
/*
The CL object is accesible everywhere at the Superalgos Client.
It provides access to all modules built for this Client.
*/
global.CL = {}
/*
The SA object is accesible everywhere at the Superalgos Client.
It provides access to all modules built for Superalgos in general.
*/
global.SA = {}
/*
First thing is to load the project schema file.
*/
global.PROJECTS_SCHEMA = require(global.env.PATH_TO_PROJECT_SCHEMA)
/*
Setting up the modules that will be available for the Servers Running inside this Client
*/
let MULTI_PROJECT = require('../MultiProject.js');
let MULTI_PROJECT_MODULE = MULTI_PROJECT.newMultiProject()
MULTI_PROJECT_MODULE.initialize(CL, 'CL')
MULTI_PROJECT_MODULE.initialize(SA, 'SA')
/*
Setting up external dependencies.
*/
SA.nodeModules = {
fs: require('fs'),
nodeFetch: require('node-fetch'),
open: require('open'),
http: require('http'),
ccxt: require('ccxt')
}
/*
Setting up servers running inside this Client.
*/
CL.servers = {}
console.log('SUPERALGOS PLATFORM CLIENT SERVERS:')
console.log('')
CL.servers.WEB_SERVER = WEB_SERVER.newWebServer()
CL.servers.WEB_SERVER.initialize()
CL.servers.WEB_SERVER.run()
console.log('Web Server .................................................. Started')
CL.servers.UI_FILE_SERVER = UI_FILE_SERVER.newUIFileServer()
CL.servers.UI_FILE_SERVER.initialize()
CL.servers.UI_FILE_SERVER.run()
console.log('UI File Server .............................................. Started')
CL.servers.PROJECT_FILE_SERVER = PROJECT_FILE_SERVER.newProjectFileServer()
CL.servers.PROJECT_FILE_SERVER.initialize()
CL.servers.PROJECT_FILE_SERVER.run()
console.log('Project File Server ......................................... Started')
CL.servers.PLUGIN_SERVER = PLUGIN_SERVER.newPluginServer()
CL.servers.PLUGIN_SERVER.initialize()
CL.servers.PLUGIN_SERVER.run()
console.log('Plugin Server ............................................... Started')
CL.servers.DATA_FILE_SERVER = DATA_FILE_SERVER.newDataFileServer()
CL.servers.DATA_FILE_SERVER.initialize()
CL.servers.DATA_FILE_SERVER.run()
console.log('Data File Server ............................................ Started')
CL.servers.EVENT_SERVER = EVENT_SERVER.newEventServer()
CL.servers.EVENT_SERVER.initialize()
CL.servers.EVENT_SERVER.run()
console.log('Events Server ............................................... Started')
TASK_MANAGER_SERVER = TASK_MANAGER_SERVER.newTaskManagerServer()
TASK_MANAGER_SERVER.initialize()
TASK_MANAGER_SERVER.run()
console.log('Task Manager Server ......................................... Started')
CL.servers.CCXT_SERVER = CCXT_SERVER.newCCXTServer()
CL.servers.CCXT_SERVER.initialize()
CL.servers.CCXT_SERVER.run()
console.log('CCXT Server ................................................. Started')
CL.servers.WEB3_SERVER = WEB3_SERVER.newWeb3Server()
CL.servers.WEB3_SERVER.initialize()
CL.servers.WEB3_SERVER.run()
console.log('WEB3 Server ................................................. Started')
CL.servers.GITHUB_SERVER = GITHUB_SERVER.newGithubServer()
CL.servers.GITHUB_SERVER.initialize()
CL.servers.GITHUB_SERVER.run()
console.log('Github Server ............................................... Started')
console.log('')
console.log('SUPERALGOS PLATFORM CLIENT INTERFACES:')
console.log('')
WEB_SOCKETS_INTERFACE = WEB_SOCKETS_INTERFACE.newWebSocketsInterface()
WEB_SOCKETS_INTERFACE.initialize()
console.log('Web Sockets Interface ....................................... Listening at port ' + global.env.CLIENT_WEB_SOCKETS_INTERFACE_PORT)
HTTP_INTERFACE = HTTP_INTERFACE.newHttpInterface()
HTTP_INTERFACE.initialize()
console.log('Http Interface .............................................. Listening at port ' + global.env.CLIENT_HTTP_INTERFACE_PORT)
console.log('')
console.log("You are running Superalgos Beta 11")
console.log('')
console.log("What's new? These are the main new features in this version:")
console.log('')
console.log('Governance System ........................................... Automates the distribution of SA Tokens and allow users to vote on the direction of the project.')
console.log('TensorFlow Integration ...................................... Allows creating and training ML models and use them in trading strategies.')
console.log('')
console.log("What's next? This is the current development pipeline:")
console.log('')
console.log('Superalgos P2P Network ...................................... Will allow algo-traders to share trading signals with Superalgos users consuming these signals via a mobile app.')
console.log('Real-time Trading Signals ................................... Will allow users to emit trading signals and be rewarded with SA Tokens.')
console.log('Superalgos Mobile ........................................... Will allow users to consume trading signals for free and autonomously execute trades from their mobile phones.')
console.log('Ethereum Integration ........................................ Will allow mining data from an Ethereum network node, and bring it into the Superalgos workflow.')
console.log('')
} catch (err) {
console.log('[ERROR] Platform App -> Error = ' + err.stack)
}
}
+2 -2
View File
@@ -149,12 +149,12 @@ function newAnimation() {
}
}
/* We request the next frame to be drawn, and stablishing a loop */
/* We request the next frame to be drawn, and establish a loop */
/* Use this code for full animation speed. */
animationLoopHandle = window.requestAnimationFrame(animationLoop)
/* Use this code for max 10 frames per second animation speed, if the app is consumming too much of your CPU. */
/* Use this code for max 10 frames per second animation speed, if the app is consuming too much of your CPU. */
/*
setTimeout(nextLoop, 100)
function nextLoop () {
+17 -18
View File
@@ -1,11 +1,10 @@
let postLoader
function newAppLoader() {
const MODULE_NAME = 'App Loader'
const INFO_LOG = false
const ERROR_LOG = true
const logger = newWebDebugLog()
let thisObject = {
loadModules: loadModules
@@ -64,16 +63,16 @@ function newAppLoader() {
let fileArray = JSON.parse(fileList)
for (let i = 0; i < fileArray.length; i++) {
let item = fileArray[i]
project = item[0]
fileName = item[1]
urlArray.push('Projects' + '/' + project + '/' + 'UI' + '/' + 'Function-Libraries' + '/' + fileName)
let project = item[0]
let fileName = item[1]
urlArray.push('Projects' + '/' + project + '/' + 'UI' + '/' + 'Function-Libraries' + '/' + fileName)
}
modulesArray = modulesArray.concat(urlArray)
utilities()
}
}
}
function utilities() {
let url = 'ListUtilitiesFiles'
@@ -84,16 +83,16 @@ function newAppLoader() {
let fileArray = JSON.parse(fileList)
for (let i = 0; i < fileArray.length; i++) {
let item = fileArray[i]
project = item[0]
fileName = item[1]
urlArray.push('Projects' + '/' + project + '/' + 'UI' + '/' + 'Utilities' + '/' + fileName)
let project = item[0]
let fileName = item[1]
urlArray.push('Projects' + '/' + project + '/' + 'UI' + '/' + 'Utilities' + '/' + fileName)
}
modulesArray = modulesArray.concat(urlArray)
globals()
}
}
}
function globals() {
let url = 'ListGlobalFiles'
@@ -104,16 +103,16 @@ function newAppLoader() {
let fileArray = JSON.parse(fileList)
for (let i = 0; i < fileArray.length; i++) {
let item = fileArray[i]
project = item[0]
fileName = item[1]
urlArray.push('Projects' + '/' + project + '/' + 'UI' + '/' + 'Globals' + '/' + fileName)
let project = item[0]
let fileName = item[1]
urlArray.push('Projects' + '/' + project + '/' + 'UI' + '/' + 'Globals' + '/' + fileName)
}
modulesArray = modulesArray.concat(urlArray)
spaces()
}
}
}
function spaces() {
let url = 'ListSpaceFiles'
@@ -138,7 +137,7 @@ function newAppLoader() {
for (let i = 0; i < modulesArray.length; i++) {
let path = modulesArray[i]
REQUIREJS([path], onRequired)
if (INFO_LOG === true) { logger.write('[INFO] loadModules -> Module Requested.') }
+12 -3
View File
@@ -4,7 +4,7 @@ function newAppPostLoader() {
const MODULE_NAME = 'Post Loader'
const ERROR_LOG = true
const logger = newWebDebugLog()
let thisObject = {
start: start
@@ -14,9 +14,18 @@ function newAppPostLoader() {
function start() {
try {
// autoSaveWhenClosingTheBrowser()
setupProjectsSchema()
setupEnvironment()
function setupEnvironment() {
httpRequest(undefined, 'Environment', onResponse)
function onResponse(err, file) {
UI.environment = JSON.parse(file)
setupProjectsSchema()
}
}
function setupProjectsSchema() {
httpRequest(undefined, 'ProjectsSchema', onResponse)
+2 -2
View File
@@ -47,7 +47,7 @@ function loadSuperalgos() {
loadDebugModule()
if ((browser.name !== "Chrome" && browser.name!=="Safari") || (browser.name === "Chrome" && parseInt(browser.version) < 85) || (browser.name === "Safari" && parseInt(browser.version) < 13)) {
alert("Superalgos is officially supported on Google Chrome 85 or Safari 13.1 and above. Your browser version has been detected as potentially beneath this. If you continue you may experience some functionaility issues.\n\nDetected Browser: " + browser.name + "\nVersion: " + browser.version)
alert("Superalgos is officially supported on Google Chrome 85 or Safari 13.1 and above. Your browser version has been detected as potentially beneath this. If you continue you may experience some functionality issues.\n\nDetected Browser: " + browser.name + "\nVersion: " + browser.version)
}
function checkBrowserVersion () {
@@ -131,7 +131,7 @@ function loadSuperalgos() {
}
}
/* And Finally, we start loading all the scripts we will inmediatelly need. */
/* And Finally, we start loading all the scripts we will immediately need. */
function loadModules() {
let path = "AppLoader.js"
REQUIREJS([path], onRequired)
+51 -12
View File
@@ -172,7 +172,7 @@ function newCanvas() {
spaceDefinitionDrawMap.set(spaceDefinition.animationDrawIndex, spaceDefinition)
}
/* Build the maps that defines the secuence of execution of different events. */
/* Build the maps that defines the sequence of execution of different events. */
if (spaceDefinition.onMouseWheelIndex !== undefined) {
projectInstance.events.onMouseWheelMap.set(spaceDefinition.onMouseWheelIndex, spaceInstance)
}
@@ -373,7 +373,7 @@ function newCanvas() {
if (EDITOR_ON_FOCUS === true) {
/*
We will fordward the event to whoever is
We will forward the event to whoever is
controlling the editor.
*/
if (window.editorController !== undefined) {
@@ -459,6 +459,45 @@ function newCanvas() {
return
}
if (
event.shiftKey === true &&
(event.ctrlKey === true || event.metaKey === true) &&
(event.key === UI.projects.foundations.spaces.floatingSpace.settings.shortcuts.saveFloatingObjectToBeMoved || event.key === UI.projects.foundations.spaces.floatingSpace.settings.shortcuts.saveFloatingObjectToBeMoved.toLowerCase())
) {
UI.projects.foundations.spaces.floatingSpace.saveFloatingObjectToBeMoved()
if (event.preventDefault !== undefined) {
event.preventDefault()
}
return
}
if (
event.shiftKey === true &&
(event.ctrlKey === true || event.metaKey === true) &&
(event.key === UI.projects.foundations.spaces.floatingSpace.settings.shortcuts.moveSavedFloatingObjectToMouse || event.key === UI.projects.foundations.spaces.floatingSpace.settings.shortcuts.moveSavedFloatingObjectToMouse.toLowerCase())
) {
UI.projects.foundations.spaces.floatingSpace.moveSavedFloatingObjectToMouse(thisObject.mouse.position)
if (event.preventDefault !== undefined) {
event.preventDefault()
}
return
}
if (
event.shiftKey === true &&
(event.ctrlKey === true || event.metaKey === true) &&
(event.key === UI.projects.foundations.spaces.floatingSpace.settings.shortcuts.rescueFloatingObjectToMouse || event.key === UI.projects.foundations.spaces.floatingSpace.settings.shortcuts.rescueFloatingObjectToMouse.toLowerCase())
) {
UI.projects.foundations.spaces.floatingSpace.rescueFloatingObjectToMouse(thisObject.mouse.position)
if (event.preventDefault !== undefined) {
event.preventDefault()
}
return
}
let nodeOnFocus = await UI.projects.foundations.spaces.designSpace.workspace.getNodeThatIsOnFocus()
if (nodeOnFocus !== undefined) {
if (nodeOnFocus.payload.uiObject.codeEditor !== undefined) {
@@ -611,7 +650,7 @@ function newCanvas() {
if ((event.ctrlKey === true || event.metaKey === true) && event.altKey === true) {
/* Shortcuts to nodes */
if ((event.keyCode >= 48 && event.keyCode <= 57) || (event.keyCode >= 65 && event.keyCode <= 90)) {
/* From here we prevent the default behaviour. Putting it earlier prevents imput box and text area to receive keystrokes */
/* From here we prevent the default behaviour. Putting it earlier prevents input box and text area to receive keystrokes */
event.preventDefault()
let nodeUsingThisKey = await UI.projects.foundations.spaces.designSpace.workspace.getNodeByShortcutKey(event.key)
@@ -732,11 +771,11 @@ function newCanvas() {
/*
We will go through all the spaces defined at the project schema for each project
and we are going to query each space to see if they have the container that is at
the mouse position. We will order firt the spaces by the sequence order defined
the mouse position. We will order first the spaces by the sequence order defined
at the project schema specifically for this mouse event.
The order of the projects for events evaluations has intentionally been inverted,
because the latest project is drwan the last, on top of the others, that means that
because the latest project is drawn the last, on top of the others, that means that
events should belong to the last first.
*/
for (let i = PROJECTS_SCHEMA.length - 1; i >= 0; i--) {
@@ -842,11 +881,11 @@ function newCanvas() {
/*
We will go through all the spaces defined at the project schema for each project
and we are going to query each space to see if they have the container that is at
the mouse position. We will order firt the spaces by the sequence order defined
the mouse position. We will order first the spaces by the sequence order defined
at the project schema specifically for this mouse event.
The order of the projects for events evaluations has intentionally been inverted,
because the latest project is drwan the last, on top of the others, that means that
because the latest project is drawn the last, on top of the others, that means that
events should belong to the last first.
*/
for (let i = PROJECTS_SCHEMA.length - 1; i >= 0; i--) {
@@ -953,18 +992,18 @@ function newCanvas() {
return
}
/* Then we check who is the current object underneeth the mounse. */
/* Then we check who is the current object underneath the mouse. */
let container
/*
We will go through all the spaces defined at the project schema for each project
and we are going to query each space to see if they have the container that is at
the mouse position. We will order firt the spaces by the sequence order defined
the mouse position. We will order first the spaces by the sequence order defined
at the project schema specifically for this mouse event.
The order of the projects for events evaluations has intentionally been inverted,
because the latest project is drwan the last, on top of the others, that means that
because the latest project is drawn the last, on top of the others, that means that
events should belong to the last first.
*/
for (let i = PROJECTS_SCHEMA.length - 1; i >= 0; i--) {
@@ -1024,11 +1063,11 @@ function newCanvas() {
/*
We will go through all the spaces defined at the project schema for each project
and we are going to query each space to see if they have the container that is at
the mouse position. We will order firt the spaces by the sequence order defined
the mouse position. We will order first the spaces by the sequence order defined
at the project schema specifically for this mouse event.
The order of the projects for events evaluations has intentionally been inverted,
because the latest project is drwan the last, on top of the others, that means that
because the latest project is drawn the last, on top of the others, that means that
events should belong to the last first.
*/
for (let i = PROJECTS_SCHEMA.length - 1; i >= 0; i--) {
+2 -2
View File
@@ -45,7 +45,7 @@ function newDailyFiles() {
}
}
function initialize(pMine, pBot, pSession, pProduct, pDataset, pExchange, pMarket, pDatetime, pTimeFrame, pHost, pPort, pEventsServerClient, callBackFunction) {
function initialize(pMine, pBot, pSession, pProduct, pDataset, pExchange, pMarket, pDatetime, pTimeFrame, pHost, pPort, pEventsServerClient, callBackFunction, scheme='http') {
try {
callBackWhenFileReceived = callBackFunction
@@ -55,7 +55,7 @@ function newDailyFiles() {
let timeFrames
fileCloud = newFileCloud()
fileCloud.initialize(pBot, pHost, pPort)
fileCloud.initialize(pBot, pHost, pPort, scheme)
/* Config Validations */
if (pDataset.config.validTimeFrames === undefined) {
+5 -5
View File
@@ -17,8 +17,8 @@ function newFileCloud () {
let fileStorage
return thisObject
function initialize (pBot, pHost, pPort) {
fileStorage = newFileStorage(pHost, pPort)
function initialize (pBot, pHost, pPort, scheme='http') {
fileStorage = newFileStorage(pHost, pPort, scheme)
}
function getFile (pMine, pBot, pSession, pProduct, pDataset, pExchange, pMarket, ptimeFrameLabel, pDatetime, pSequence, pDataRange, pTimeFrames, callBackFunction) {
@@ -77,7 +77,7 @@ function newFileCloud () {
}
if (fileName === undefined) {
logger.write('[ERROR] getFile -> getFileRecursively -> Inconsistant data. Check the following: ')
logger.write('[ERROR] getFile -> getFileRecursively -> Inconsistent data. Check the following: ')
logger.write('[ERROR] getFile -> getFileRecursively -> pMine = ' + JSON.stringify(pMine))
logger.write('[ERROR] getFile -> getFileRecursively -> pBot = ' + JSON.stringify(pBot))
logger.write('[ERROR] getFile -> getFileRecursively -> pDataset = ' + JSON.stringify(pDataset))
@@ -85,7 +85,7 @@ function newFileCloud () {
logger.write('[ERROR] getFile -> getFileRecursively -> pMarket = ' + JSON.stringify(pMarket))
logger.write('[ERROR] getFile -> getFileRecursively -> ptimeFrameLabel = ' + JSON.stringify(ptimeFrameLabel))
throw ('Inconsistant data received.')
throw ('Inconsistent data received.')
}
if (pMarket !== undefined) {
@@ -152,7 +152,7 @@ function newFileCloud () {
if (ERROR_LOG === true) { logger.write('[ERROR] getFile -> getFileRecursively -> onFileReceived -> filePath = ' + filePath) }
if (ERROR_LOG === true) { logger.write('[ERROR] getFile -> getFileRecursively -> onFileReceived -> fileName = ' + fileName) }
if (ERROR_LOG === true) { logger.write('[ERROR] getFile -> getFileRecursively -> onFileReceived -> Unexpected Error Ocurred.') }
if (ERROR_LOG === true) { logger.write('[ERROR] getFile -> getFileRecursively -> onFileReceived -> Unexpected Error Occurred.') }
if (ERROR_LOG === true) { logger.write('[ERROR] getFile -> getFileRecursively -> onFileReceived -> err = ' + err.stack) }
if (ERROR_LOG === true) { logger.write('[ERROR] getFile -> getFileRecursively -> onFileReceived -> text = ' + text) }
if (ERROR_LOG === true) { logger.write('[ERROR] getFile -> getFileRecursively -> onFileReceived -> response = ' + response) }
+2 -2
View File
@@ -195,7 +195,7 @@ function newFileCursor() {
/*
We are implementing here an algorithm designed to save bandwidth, memory and processing power at the browser.
We say there is a saving mode where the cursor is running at a minimum size. When the end user aproaches the time period the cursor
We say there is a saving mode where the cursor is running at a minimum size. When the end user approaches the time period the cursor
is set, then it should exit the saving mode and go to its actual size.
To do this we are going to measure the distance from the Time Frame received to the one the cursors was initialized with.
@@ -427,7 +427,7 @@ function newFileCursor() {
let targetDate = new Date(cursorDate)
targetDate.setUTCDate(targetDate.getUTCDate() + j)
/* Small algorith to allow load first the current date, then alternate between the most forwad and the most backwards ones. */
/* Small algorithm to allow load first the current date, then alternate between the most forward and the most backwards ones. */
if (j === 0) { j++ } else {
if (j < 0) {
j = -j
+4 -4
View File
@@ -1,4 +1,4 @@
function newFileStorage(host, port) {
function newFileStorage(host, port, scheme='http') {
const MODULE_NAME = 'File Storage'
const INFO_LOG = false
const logger = newWebDebugLog()
@@ -40,12 +40,12 @@ function newFileStorage(host, port) {
let url
if (host !== undefined && port !== undefined) {
url = 'http://' + host + ':' + port + '/' + folder + filePath
url = scheme + '://' + host + ':' + port + '/' + folder + filePath
} else {
url = folder + filePath
}
/* Scaping # since it breaks the URL */
/* Escaping # since it breaks the URL */
url = url.replaceAll('#', '_HASHTAG_')
httpRequest(undefined, url, (response, fileContent) => {
@@ -64,7 +64,7 @@ function newFileStorage(host, port) {
let err = { code: 'The specified key does not exist.' }
callBackFunction(err)
} else {
console.log('Error geting the file from the serever:', err)
console.log('Error getting the file from the server:', err)
callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE)
}
}
+3 -2
View File
@@ -80,7 +80,8 @@ function newMarketFiles() {
pHost,
pPort,
pEventsServerClient,
callBackFunction) {
callBackFunction,
scheme='http') {
try {
let timeFrames
@@ -94,7 +95,7 @@ function newMarketFiles() {
eventsServerClient = pEventsServerClient
fileCloud = newFileCloud()
fileCloud.initialize(pBot, pHost, pPort)
fileCloud.initialize(pBot, pHost, pPort, scheme)
/* Some Validations */
if (dataset.config.validTimeFrames === undefined) {
+1 -1
View File
@@ -8,7 +8,7 @@ function newEventHandler() {
finalize: finalize
}
let eventHandlers = [] // Here we store all the functions we will call when an event is raiseed.
let eventHandlers = [] // Here we store all the functions we will call when an event is raised.
return thisObject
+22 -17
View File
@@ -1,5 +1,5 @@
function newEventsServerClient(networkNode) {
function newEventsServerClient(lanNetworkNode) {
/* Web Sockets Connection */
const MODULE_NAME = 'System Event Handler'
@@ -192,19 +192,19 @@ function newEventsServerClient(networkNode) {
if (thisObject.isConnected() !== true) {
if (lastTryToReconnectDatetime !== undefined) {
if (networkNode !== undefined) {
if (networkNode.payload !== undefined) {
if (networkNode.payload.uiObject !== undefined) {
networkNode.payload.uiObject.setErrorMessage('Failed to Connect to Superalgos Client via WebSockets. Retrying in 1 minute. Check at this node config if the host property has the IP address of the computer running Superalgos Client.')
if (lanNetworkNode !== undefined) {
if (lanNetworkNode.payload !== undefined) {
if (lanNetworkNode.payload.uiObject !== undefined) {
lanNetworkNode.payload.uiObject.setErrorMessage('Failed to Connect to Superalgos Platform Client via WebSockets. Retrying in 1 minute. Check at this node config if the host property has the IP address of the computer running Superalgos Platform Client.')
}
}
}
}
} else {
if (networkNode !== undefined) {
if (networkNode.payload !== undefined) {
if (networkNode.payload.uiObject !== undefined) {
networkNode.payload.uiObject.setStatus('Connected to Superalgos Client via WebSockets.')
if (lanNetworkNode !== undefined) {
if (lanNetworkNode.payload !== undefined) {
if (lanNetworkNode.payload.uiObject !== undefined) {
lanNetworkNode.payload.uiObject.setStatus('Connected to Superalgos Platform Client via WebSockets.')
retryCommandsPhysics()
}
}
@@ -218,16 +218,17 @@ function newEventsServerClient(networkNode) {
try {
let host
let port
/* At this point the node does not have the payload property yet, that is why we have to do this manually */
let extwsurl
try {
let config = JSON.parse(networkNode.config)
let config = JSON.parse(lanNetworkNode.config)
host = config.host
port = config.webSocketsPort
extwsurl = config.webSocketsExternalURL
/* Check if we really have to stablish the connection. */
/* Check if we really have to establish the connection. */
if (config.autoConnect === false) { return }
} catch (err) {
networkNode.payload.uiObject.setErrorMessage(
lanNetworkNode.payload.uiObject.setErrorMessage(
'Bad configuration. Invalid JSON Format.',
undefined,
{
@@ -241,7 +242,7 @@ function newEventsServerClient(networkNode) {
}
if (host === undefined) {
networkNode.payload.uiObject.setErrorMessage(
lanNetworkNode.payload.uiObject.setErrorMessage(
'Bad configuration. Host Property Not Found.',
undefined,
{
@@ -255,7 +256,7 @@ function newEventsServerClient(networkNode) {
}
if (port === undefined) {
networkNode.payload.uiObject.setErrorMessage(
lanNetworkNode.payload.uiObject.setErrorMessage(
'Bad configuration. WebSocketsPort Property Not Found.',
undefined,
{
@@ -268,8 +269,12 @@ function newEventsServerClient(networkNode) {
return
}
const WEB_SOCKETS_URL = 'ws://' + host + ':' + port + ''
let wsurl = 'ws://' + host + ':' + port + ''
if (extwsurl !== undefined) {
wsurl = extwsurl
}
const WEB_SOCKETS_URL = wsurl
WEB_SOCKETS_CONNECTION = new WebSocket(WEB_SOCKETS_URL)
WEB_SOCKETS_CONNECTION.onerror = error => {
console.log('WebSocket error:' + JSON.stringify(error))
@@ -280,7 +285,7 @@ function newEventsServerClient(networkNode) {
}
}
WEB_SOCKETS_CONNECTION.onmessage = e => {
// console.log('Websoked Message Received: ' + e.data)
// console.log('WEB_SOCKET Message Received: ' + e.data)
let message = JSON.parse(e.data)
+8 -8
View File
@@ -6,7 +6,7 @@ function newFrame() {
let thisObject = {
type: 'Rectangle',
containerName: '', // This is for debugging purposes only.
parentFrame: undefined, // Here we store the parent cointainer zoom object.
parentFrame: undefined, // Here we store the parent container zoom object.
radius: 0,
offset: undefined,
position: undefined,
@@ -53,7 +53,7 @@ function newFrame() {
}
function isInViewPort() {
/* This function is usefull to know if the object who has this frame is currently appearing at least in part at the UI.projects.foundations.spaces.chartingSpace.viewport */
/* This function is useful to know if the object who has this frame is currently appearing at least in part at the UI.projects.foundations.spaces.chartingSpace.viewport */
point1 = {
x: 0,
@@ -78,7 +78,7 @@ function newFrame() {
}
function isCenterInViewPort() {
/* This function is usefull to know if the object who has this frame is currently appearing at least in part at the UI.projects.foundations.spaces.chartingSpace.viewport */
/* This function is useful to know if the object who has this frame is currently appearing at least in part at the UI.projects.foundations.spaces.chartingSpace.viewport */
point1 = {
x: thisObject.width * 40 / 100,
@@ -187,8 +187,8 @@ function newFrame() {
}
function isThisPointHere(point, outsideViewPort, dontTransform, padding) {
// The second parameter is usefull when you want to check a point that you already know is outside the viewport.
// The padding is a distance to the borders of the container. Can be either negative (outside, to increase the cointainer size) or positive (inside to decrease the cointainer size)
// The second parameter is useful when you want to check a point that you already know is outside the viewport.
// The padding is a distance to the borders of the container. Can be either negative (outside, to increase the container size) or positive (inside to decrease the cointainer size)
if (padding === undefined) { padding = 0 }
@@ -199,7 +199,7 @@ function newFrame() {
}
/* The point received is on the screen coordinates system, which already has zoom and displacement applied. We need to remove the zoom and displacement
in order to have the point on the containers coordinate system and be able to compare it with its dimmensions. */
in order to have the point on the containers coordinate system and be able to compare it with its dimensions. */
if (dontTransform === false || dontTransform === undefined) {
if (outsideViewPort === true) {
checkPoint = thisObject.container.frame.unframeThisPoint(checkPoint)
@@ -208,7 +208,7 @@ function newFrame() {
}
}
/* Now we check if the resulting point is whin the current Frame. */
/* Now we check if the resulting point is within the current Frame. */
if (isNaN(checkPoint.x) || isNaN(checkPoint.y)) { return false }
if (thisObject.type === 'Circle') {
let distance = Math.sqrt(Math.pow(thisObject.position.x - checkPoint.x, 2) + Math.pow(thisObject.position.y - checkPoint.y, 2))
@@ -244,7 +244,7 @@ function newFrame() {
thisPoint = thisObject.parentFrame.frameThisPoint(thisPoint)
}
/* Now we check if the resulting point is whin the current Frame. */
/* Now we check if the resulting point is within the current Frame. */
if (thisObject.type === 'Circle') {
let distance = Math.sqrt(Math.pow(thisPoint.x - checkPoint.x, 2) + Math.pow(thisPoint.y - checkPoint.y, 2))
+6 -5
View File
@@ -1,11 +1,12 @@
/* Global Constatns */
/* Global Constants */
let canvas
let PROJECTS_SCHEMA
let SCHEMAS_BY_PROJECT = new Map()
/* New Root object*/
let UI = {
projects: {}
projects: {},
environment: {}
}
/* User Interface Colors */
@@ -203,9 +204,9 @@ const _1_MINUTE_IN_MILISECONDS = 1 * 60 * 1000;
let NEW_SESSION_INITIAL_DATE = new Date(); // This value will be overwritten at the UI.projects.foundations.spaces.chartingSpace.viewport.initialize if the user had a prevous session with this same browser.
let NEW_SESSION_INITIAL_DATE = new Date(); // This value will be overwritten at the UI.projects.foundations.spaces.chartingSpace.viewport.initialize if the user had a previous session with this same browser.
let INITIAL_ZOOM_LEVEL = -28.25 // This is the zoom level at the view port in which the APP starts.
let INITIAL_TIME_PERIOD = ONE_DAY_IN_MILISECONDS // This value will be overwritten at the UI.projects.foundations.spaces.chartingSpace.viewport.initialize if the user had a prevous session with this same browser.
let INITIAL_TIME_PERIOD = ONE_DAY_IN_MILISECONDS // This value will be overwritten at the UI.projects.foundations.spaces.chartingSpace.viewport.initialize if the user had a previous session with this same browser.
let VERY_LARGE_NUMBER = 100000000000000
const TOP_MARGIN = 0
@@ -245,7 +246,7 @@ const PERIOD_05_MIN = "05-min";
const PERIOD_01_MIN = "01-min";
/*
We define here the size of the chartingSpace. It has to bee enough big in order to accomodate all the charts we expect to display in this space.
We define here the size of the chartingSpace. It has to bee enough big in order to accommodate all the charts we expect to display in this space.
*/
const TIME_MACHINE_WIDTH = 8;
+5 -5
View File
@@ -74,7 +74,7 @@ function newProductStorage(name) {
}
}
function initialize(mine, bot, session, product, exchange, market, pDatetime, pTimeFrame, host, port, eventsServerClient, callBackFunction) {
function initialize(mine, bot, session, product, exchange, market, pDatetime, pTimeFrame, host, port, eventsServerClient, callBackFunction, scheme='http') {
try {
datetime = pDatetime
timeFrame = pTimeFrame
@@ -90,7 +90,7 @@ function newProductStorage(name) {
dataSetsToLoad++
let marketFiles = newMarketFiles()
marketFiles.initialize(mine, bot, session, product, dataset, exchange, market, host, port, eventsServerClient, onMarketFileReady)
marketFiles.initialize(mine, bot, session, product, dataset, exchange, market, host, port, eventsServerClient, onMarketFileReady, scheme)
thisObject.marketFiles.push(marketFiles)
}
break
@@ -99,7 +99,7 @@ function newProductStorage(name) {
dataSetsToLoad++
let dailyFiles = newDailyFiles()
dailyFiles.initialize(mine, bot, session, product, dataset, exchange, market, pDatetime, pTimeFrame, host, port, eventsServerClient, onDailyFileReady)
dailyFiles.initialize(mine, bot, session, product, dataset, exchange, market, pDatetime, pTimeFrame, host, port, eventsServerClient, onDailyFileReady, scheme)
thisObject.dailyFiles.push(dailyFiles)
}
break
@@ -108,7 +108,7 @@ function newProductStorage(name) {
dataSetsToLoad++
let singleFile = newSingleFile()
singleFile.initialize(mine, bot, session, product, dataset, exchange, market, host, port, eventsServerClient, onSingleFileReady)
singleFile.initialize(mine, bot, session, product, dataset, exchange, market, host, port, eventsServerClient, onSingleFileReady, scheme)
thisObject.singleFile.push(singleFile)
}
break
@@ -117,7 +117,7 @@ function newProductStorage(name) {
dataSetsToLoad++
let fileSequences = newFileSequence()
fileSequences.initialize(mine, bot, session, product, dataset, exchange, market, host, port, eventsServerClient, onFileSequenceReady)
fileSequences.initialize(mine, bot, session, product, dataset, exchange, market, host, port, eventsServerClient, onFileSequenceReady, scheme)
thisObject.fileSequences.push(fileSequences)
}
break
+38 -13
View File
@@ -1,4 +1,4 @@
function getSchemaDocument (node, project) {
function getSchemaDocument(node, project) {
if (node === null || node === undefined) {
console.log('[ERROR] Can not get the schema document of a null or undefined node ')
return
@@ -7,13 +7,35 @@ function getSchemaDocument (node, project) {
let APP_SCHEMA = SCHEMAS_BY_PROJECT.get(project)
if (APP_SCHEMA !== undefined) {
return SCHEMAS_BY_PROJECT.get(project).map.appSchema.get(node.type)
let schemaDocument = SCHEMAS_BY_PROJECT.get(project).map.appSchema.get(node.type)
/*
As of today, we are still splitting the codebase into multiple projects and there are Menu Actions which do not
have a well defined relatedUIObjectProject. There are a few techniques in place to try to guess it, but
even those can fail. For that reason, we will temporally see if we can find the schema document at any of the
available projects.
TODO: We need to explictly declare the project of a relatedUIObject in order to avoid potential name collision
between nodes belonging to more than one project.
*/
if (schemaDocument === undefined) {
for (let j = 0; j < PROJECTS_SCHEMA.length; j++) {
let project = PROJECTS_SCHEMA[j].name
schemaDocument = SCHEMAS_BY_PROJECT.get(project).map.appSchema.get(node.type)
if (schemaDocument !== undefined) {
break
}
}
}
return schemaDocument
} else {
console.log('[ERROR] Could not get APP Scchema for project ' + node.project)
console.log('[ERROR] Could not get APP Schema for project ' + node.project)
}
}
function dynamicDecimals (value, minDecimals) {
function dynamicDecimals(value, minDecimals) {
if (minDecimals === undefined) {
minDecimals = 0
}
@@ -26,7 +48,7 @@ function dynamicDecimals (value, minDecimals) {
return returnValue
}
function convertTimeFrameToName (pTimeFrame) {
function convertTimeFrameToName(pTimeFrame) {
for (let i = 0; i < dailyTimeFramesArray.length; i++) {
let period = dailyTimeFramesArray[i]
if (period[0] === pTimeFrame) {
@@ -42,7 +64,7 @@ function convertTimeFrameToName (pTimeFrame) {
}
}
function nextPorwerOf10 (number) {
function nextPorwerOf10(number) {
for (let i = -10; i <= 10; i++) {
if (number < Math.pow(10, i)) {
return Math.pow(10, i)
@@ -50,18 +72,18 @@ function nextPorwerOf10 (number) {
}
}
function pad (str, max) {
function pad(str, max) {
str = str.toString()
return str.length < max ? pad('0' + str, max) : str
}
function moveToUserPosition (container, currentDate, currentRate, coordinateSystem, ignoreX, ignoreY, mousePosition, fitFunction) {
function moveToUserPosition(container, currentDate, currentRate, coordinateSystem, ignoreX, ignoreY, mousePosition, fitFunction) {
let targetPoint = {
x: currentDate.valueOf(),
y: currentRate
}
/* Put this point in the coordinate system of the UI.projects.foundations.spaces.chartingSpace.viewport */
/* Put this point in the coordinate system of the UI.projects.foundations.spaces.chartingSpace.viewport */
targetPoint = coordinateSystem.transformThisPoint(targetPoint)
targetPoint = UI.projects.foundations.utilities.coordinateTransformations.transformThisPoint(targetPoint, container)
@@ -81,7 +103,7 @@ function moveToUserPosition (container, currentDate, currentRate, coordinateSyst
container.displace(displaceVector)
}
function removeTime (datetime) {
function removeTime(datetime) {
if (datetime === undefined) { return }
let dateOnly = new Date(Math.trunc(datetime.valueOf() / ONE_DAY_IN_MILISECONDS) * ONE_DAY_IN_MILISECONDS)
@@ -89,15 +111,18 @@ function removeTime (datetime) {
return dateOnly
}
function newUniqueId () {
function newUniqueId() {
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8)
return v.toString(16)
})
}
function splitTextIntoPhrases (text, wordsPerLine) {
function splitTextIntoPhrases(text, wordsPerLine) {
try {
if (text.split === undefined) {
return []
}
let splittedLabel = text.split(' ')
let phrases = []
let phrase = ''
@@ -125,7 +150,7 @@ function splitTextIntoPhrases (text, wordsPerLine) {
}
}
function getTextWidth (text) {
function getTextWidth(text) {
var metrics = browserCanvasContext.measureText(text)
return metrics.width
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

+7
View File
@@ -826,6 +826,13 @@ display: table-cell;
width: 100%;
}
::placeholder, /* Chrome, Firefox, Opera, Safari 10.1+ */
:-ms-input-placeholder, /* Internet Explorer 10-11 */
::-ms-input-placeholder { /* Microsoft Edge */
color: #dbdbdb;
opacity: 1; /* Firefox */
}
.docs-search-results-header-tabs-container {
display: table;
text-align: right;
+2 -1
View File
@@ -888,7 +888,8 @@
#governance-tab13:checked ~ .governance-search-result-content #content13,
#governance-tab14:checked ~ .governance-search-result-content #content14,
#governance-tab15:checked ~ .governance-search-result-content #content15,
#governance-tab16:checked ~ .governance-search-result-content #content16 {
#governance-tab16:checked ~ .governance-search-result-content #content16,
#governance-tab17:checked ~ .governance-search-result-content #content17 {
display: block;
}
+21
View File
@@ -25,6 +25,27 @@ content: "Summary: ";
font-weight: bold;
}
.tutorial-content-div {
overflow-y: auto;
overflow-x: clip;
}
::-webkit-scrollbar {
width: 5px;
}
::-webkit-scrollbar-track {
background: #f1f1f1;
}
::-webkit-scrollbar-thumb {
background: #888;
}
::-webkit-scrollbar-thumb:hover {
background: #555;
}
.tutorial-definitionTable {
background-color: #f3f3f3;
border-top-color: #a6e1ec;
+1 -1
View File
@@ -58,7 +58,7 @@
"splashTextLine3Html": ''
},
{
"splashTextLine1Html": '<span class="credits-red">Superalgos is a community of algo traders, sharing knowleadge, experience, and tools.</span>'
"splashTextLine1Html": '<span class="credits-red">Superalgos is a community of algo traders, sharing knowledge, experience, and tools.</span>'
,
"splashTextLine2Html": 'We negotiate with exchanges and pass on benefits to all members. Become part of the Superalgos Community by making a small contribution to the open-source project!'
,
-3700
View File
File diff suppressed because it is too large. Load diff
-24
View File
@@ -1,24 +0,0 @@
{
"name": "Superalgos-Plarform",
"version": "0.0.11",
"description": "Superalgos Plarform",
"main": "PlatformApp.js",
"author": {
"name": "Luis-Fernando-Molina"
},
"dependencies": {
"@octokit/rest": "^18.9.0",
"ccxt": "^1.51.98",
"child_process": "^1.0.2",
"ethereumjs-common": "^1.5.2",
"ethereumjs-tx": "^2.1.2",
"ethers": "^5.4.4",
"lookpath": "^1.2.2",
"node-fetch": "^2.6.1",
"open": "^8.2.1",
"rimraf": "^3.0.2",
"simple-git": "^2.42.0",
"web3": "^1.5.2",
"ws": "^8.2.1"
}
}
+92
View File
@@ -0,0 +1,92 @@
/*
This module represents the execution root of the Platform App.
We use this module that is outside the Platform folder to
load all node dependencies and get them ready to the actual App.
*/
/*
The PL object is accesible everywhere at the Superalgos Platform Client.
It provides access to all modules built for this Client.
*/
global.PL = {}
/*
The SA object is accesible everywhere at the Superalgos Desktop App.
It provides access to all modules built for Superalgos in general.
*/
global.SA = {}
/* Load Environment Variables */
let ENVIRONMENT = require('./Environment.js');
let ENVIRONMENT_MODULE = ENVIRONMENT.newEnvironment()
global.env = ENVIRONMENT_MODULE
/*
First thing is to load the project schema file.
*/
global.PROJECTS_SCHEMA = require(global.env.PATH_TO_PROJECT_SCHEMA)
/*
Setting up the modules that will be available, defined at the Project Schema file.
*/
let MULTI_PROJECT = require('./MultiProject.js');
let MULTI_PROJECT_MODULE = MULTI_PROJECT.newMultiProject()
MULTI_PROJECT_MODULE.initialize(PL, 'PL')
MULTI_PROJECT_MODULE.initialize(SA, 'SA')
/*
Setting up external dependencies.
*/
SA.nodeModules = {
fs: require('fs'),
util: require('util'),
path: require('path'),
ws: require('ws'),
web3: require('web3'),
ethers: require('ethers'),
ethereumjsTx: require('ethereumjs-tx'),
ethereumjsCommon: require('ethereumjs-common'),
nodeFetch: require('node-fetch'),
open: require('open'),
http: require('http'),
ccxt: require('ccxt'),
octokit: require("@octokit/rest"),
graphql: require("@octokit/graphql"),
simpleGit: require('simple-git'),
lookpath: require('lookpath'),
process: require('process'),
childProcess: require('child_process')
}
/*
Check if we are starting from a particular workspace.
*/
let initialWorkspace = {}
for (let i = 0; i < process.argv.length; i++) {
let arg = process.argv[i]
if (arg === 'noBrowser') { continue }
if (arg === 'minMemo') { continue }
if (arg.indexOf(':') >= 0) { continue }
if (arg.indexOf('/') >= 0) { continue }
if (initialWorkspace.project === undefined) {
if (arg !== 'My-Workspaces') {
initialWorkspace.type = 'Plugin'
initialWorkspace.project = arg
} else {
initialWorkspace.type = 'My-Workspaces'
initialWorkspace.project = ''
}
} else {
initialWorkspace.name = arg
}
}
run(initialWorkspace)
async function run(initialWorkspace) {
PL.app = require('./Platform/PlatformApp.js').newPlatformApp()
await PL.app.run(initialWorkspace)
console.log('Superalgos Platform App is Running!')
if(process.send) {
process.send("Running")
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

@@ -0,0 +1,63 @@
{
"type": "Algorithmic-Trading Project",
"menuItems": [
{
"action": "Add Missing Children",
"label": "Add Missing Children",
"iconPathOn": "algorithmic-trading-project",
"iconPathOff": "algorithmic-trading-project",
"iconProject": "Algorithmic-Trading",
"actionFunction": "payload.executeAction",
"actionProject": "Visual-Scripting"
},
{
"action": "Add UI Object",
"label": "Add Trading Mine",
"relatedUiObject": "Trading Mine",
"relatedUiObjectProject": "Algorithmic-Trading",
"actionFunction": "payload.executeAction",
"actionProject": "Visual-Scripting"
},
{
"action": "Add UI Object",
"label": "Add Trading Engine",
"relatedUiObject": "Trading Engine",
"relatedUiObjectProject": "Algorithmic-Trading",
"actionFunction": "payload.executeAction",
"actionProject": "Visual-Scripting"
},
{
"action": "Add UI Object",
"label": "Add Trading System",
"relatedUiObject": "Trading System",
"relatedUiObjectProject": "Algorithmic-Trading",
"actionFunction": "payload.executeAction",
"actionProject": "Visual-Scripting"
},
{
"action": "Delete UI Object",
"actionProject": "Visual-Scripting",
"askConfirmation": true,
"confirmationLabel": "Confirm to Delete",
"actionFunction": "payload.executeAction",
"label": "Delete",
"iconPathOn": "delete-entity",
"iconPathOff": "delete-entity"
}
],
"isProjectHead": true,
"isTitleAllwaysVisible": false,
"addLeftIcons": true,
"isPinned": true,
"positionLocked": true,
"icon": "algorithmic-trading-project",
"childrenNodesProperties": [
{
"name": "projectDefinition",
"type": "node",
"childType": "Project Definition",
"project": "Foundations",
"autoAdd": true
}
]
}
@@ -7,28 +7,36 @@
"iconPathOn": "configuration",
"iconPathOff": "configuration",
"dontShowAtFullscreen": true,
"actionFunction": "uiObject.configEditor.activate"
"actionFunction": "uiObject.configEditor.activate",
"actionProject": "Foundations"
},
{
"action": "Add UI Object",
"label": "Add Process Definition",
"relatedUiObject": "Process Definition",
"actionFunction": "payload.executeAction"
"actionFunction": "payload.executeAction",
"actionProject": "Visual-Scripting",
"relatedUiObjectProject": "Foundations"
},
{
"action": "Add UI Object",
"label": "Add Product Definition",
"relatedUiObject": "Product Definition",
"actionFunction": "payload.executeAction"
"actionFunction": "payload.executeAction",
"actionProject": "Visual-Scripting",
"relatedUiObjectProject": "Foundations"
},
{
"action": "Add UI Object",
"label": "Add Product Definition Folder",
"relatedUiObject": "Product Definition Folder",
"actionFunction": "payload.executeAction"
"actionFunction": "payload.executeAction",
"actionProject": "Visual-Scripting",
"relatedUiObjectProject": "Foundations"
},
{
"action": "Delete UI Object",
"actionProject": "Visual-Scripting",
"askConfirmation": true,
"confirmationLabel": "Confirm to Delete",
"label": "Delete",
@@ -54,19 +62,22 @@
"name": "processes",
"type": "array",
"childType": "Process Definition",
"autoAdd": true
"autoAdd": true,
"project": "Foundations"
},
{
"name": "products",
"type": "array",
"childType": "Product Definition",
"autoAdd": true
"autoAdd": true,
"project": "Foundations"
},
{
"name": "productDefinitionFolders",
"type": "array",
"childType": "Product Definition Folder",
"autoAdd": true
"autoAdd": true,
"project": "Foundations"
}
],
"propertyNameAtParent": "tradingBots"
@@ -5,10 +5,13 @@
"action": "Add Missing Children",
"label": "Add Missing Children",
"relatedUiObject": "Trading Engine",
"actionFunction": "payload.executeAction"
"actionFunction": "payload.executeAction",
"actionProject": "Visual-Scripting",
"relatedUiObjectProject": "Algorithmic-Trading"
},
{
"action": "Delete UI Object",
"actionProject": "Visual-Scripting",
"askConfirmation": true,
"confirmationLabel": "Confirm to Delete",
"label": "Delete",
@@ -25,19 +28,22 @@
"name": "tradingCurrent",
"type": "node",
"childType": "Trading Current",
"autoAdd": true
"autoAdd": false,
"project": "Foundations"
},
{
"name": "tradingLast",
"type": "node",
"childType": "Trading Last",
"autoAdd": true
"autoAdd": false,
"project": "Foundations"
},
{
"name": "exchangeOrders",
"type": "node",
"childType": "Exchange Orders",
"autoAdd": true
"autoAdd": false,
"project": "Foundations"
}
]
}
@@ -6,23 +6,30 @@
"label": "Configure",
"iconPathOn": "configuration",
"iconPathOff": "configuration",
"iconProject": "Foundations",
"dontShowAtFullscreen": true,
"actionFunction": "uiObject.configEditor.activate"
"actionFunction": "uiObject.configEditor.activate",
"actionProject": "Foundations"
},
{
"action": "Add UI Object",
"label": "Add Trading Bot",
"relatedUiObject": "Trading Bot",
"actionFunction": "payload.executeAction"
"relatedUiObjectProject": "Algorithmic-Trading",
"actionFunction": "payload.executeAction",
"actionProject": "Visual-Scripting"
},
{
"action": "Add UI Object",
"label": "Add Plotter",
"relatedUiObject": "Plotter",
"actionFunction": "payload.executeAction"
"relatedUiObjectProject": "Foundations",
"actionFunction": "payload.executeAction",
"actionProject": "Visual-Scripting"
},
{
"action": "Delete UI Object",
"actionProject": "Visual-Scripting",
"askConfirmation": true,
"confirmationLabel": "Confirm to Delete",
"label": "Delete",
@@ -45,12 +52,14 @@
{
"name": "tradingBots",
"type": "array",
"childType": "Trading Bot"
"childType": "Trading Bot",
"project": "Algorithmic-Trading"
},
{
"name": "plotters",
"type": "array",
"childType": "Plotter"
"childType": "Plotter",
"project": "Foundations"
}
]
}
@@ -5,7 +5,9 @@
"action": "Add UI Object",
"label": "Add Trading Strategy",
"relatedUiObject": "Trading Strategy",
"actionFunction": "payload.executeAction"
"actionFunction": "payload.executeAction",
"actionProject": "Visual-Scripting",
"relatedUiObjectProject": "Foundations"
},
{
"action": "Add UI Object",
@@ -13,10 +15,13 @@
"propertyToCheckFor": "dynamicIndicators",
"label": "Add Dynamic Indicators",
"relatedUiObject": "Dynamic Indicators",
"actionFunction": "payload.executeAction"
"actionFunction": "payload.executeAction",
"actionProject": "Visual-Scripting",
"relatedUiObjectProject": "Foundations"
},
{
"action": "Delete UI Object",
"actionProject": "Visual-Scripting",
"askConfirmation": true,
"confirmationLabel": "Confirm to Delete",
"label": "Delete",
@@ -33,13 +38,15 @@
"name": "tradingStrategies",
"type": "array",
"childType": "Trading Strategy",
"autoAdd": true
"autoAdd": true,
"project": "Foundations"
},
{
"name": "dynamicIndicators",
"type": "node",
"childType": "Dynamic Indicators",
"autoAdd": true
"autoAdd": true,
"project": "Foundations"
}
]
}
@@ -1,4 +1,4 @@
exports.newFoundationsBotModulesExchangeAPI = function (processIndex) {
exports.newAlgorithmicTradingBotModulesExchangeAPI = function (processIndex) {
let MODULE_NAME = "Exchange API";
@@ -16,7 +16,7 @@
let options = {}
let exchange
const ccxt = require('ccxt')
const ccxt = SA.nodeModules.ccxt
return thisObject;
@@ -228,7 +228,7 @@
logError('key.length:' + exchangeApiKey.config.codeName.length)
logError('secret.length:' + exchangeApiKey.config.secret.length)
logError('Double check that you copied the key at the codeName property and the secret at secret property without bringing any invisible caracter from the exchange web site, or leaving any character from the sample text. Also check that the keys are not disabled at the exchange ot that they are not restricted by IP.')
logError('As a remainder. Binance key and secret are 64 bytes in lenght each one. ')
logError('As a remainder. Binance key and secret are 64 bytes in length each one. ')
}
}
}
@@ -1,8 +1,7 @@
exports.newFoundationsBotModulesOrdersCalculations = function (processIndex) {
exports.newAlgorithmicTradingBotModulesOrdersCalculations = function (processIndex) {
/*
When we are live trading, we need to syncronize with the exchange.
*/
const MODULE_NAME = 'Orders Calculations'
let thisObject = {
actualSizeCalculation: actualSizeCalculation,
@@ -1,8 +1,7 @@
exports.newFoundationsBotModulesOrdersSimulations = function (processIndex) {
exports.newAlgorithmicTradingBotModulesOrdersSimulations = function (processIndex) {
/*
When we are backtesting or paper trading, we need to simulate what would have happened at the exchange.
*/
const MODULE_NAME = 'Orders Simulations'
let thisObject = {
actualSizeSimulation: actualSizeSimulation,
@@ -0,0 +1,481 @@
exports.newAlgorithmicTradingBotModulesSnapshots = function(processIndex) {
/*
This module encapsulates the snapshots functionality.
*/
const MODULE_NAME = 'Snapshots'
let thisObject = {
updateChart: updateChart,
strategyEntry: strategyEntry,
strategyExit: strategyExit,
positionEntry: positionEntry,
positionExit: positionExit,
addCodeToSnapshot: addCodeToSnapshot,
initialize: initialize,
finalize: finalize
}
let tradingEngine
let tradingSystem
let sessionParameters
const SNAPSHOTS_FOLDER_NAME = 'Snapshots'
/* Snapshots of Strategies and Positions */
let snapshots = {
headers: [],
strategies: [],
positions: []
}
let positionKeys = new Map() // This is to prevent adding the same indicator / variable to the output collection.
let strategyKeys = new Map()
let createHeaders = true // This is going to be true only once
let createCloseHeaders = true // This is going to be true only once
let closeValues
let strategyValues
let addToStrategyValues
let positionValues
let addToPositionValues
let snapshotAvailable = false
/*
These 3 are the main data structures available to users
when writing conditions and formulas.
*/
let chart
let exchange
let market
return thisObject
function initialize() {
tradingEngine = TS.projects.foundations.globals.processVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).SIMULATION_STATE.tradingEngine
tradingSystem = TS.projects.foundations.globals.processVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).SIMULATION_STATE.tradingSystem
sessionParameters = TS.projects.foundations.globals.processConstants.CONSTANTS_BY_PROCESS_INDEX_MAP.get(processIndex).SESSION_NODE.tradingParameters
// first trade forces overwrite of the existing file
if (tradingEngine.tradingCurrent.tradingEpisode.tradingEpisodeCounters.positions.value > 1) {
snapshotAvailable = true
createHeaders = false // This is going to be true only once
createCloseHeaders = false
}
}
function finalize() {
//trigger exits added for extra save moment for datapreserve
if (tradingEngine.tradingCurrent.strategy.begin.value > 0) {
strategyExit()
positionExit()
}
writeSnapshotFiles()
tradingEngine = undefined
tradingSystem = undefined
sessionParameters = undefined
positionKeys = undefined
strategyKeys = undefined
chart = undefined
exchange = undefined
market = undefined
}
function updateChart(pChart, pExchange, pMarket) {
/*
We need these 3 data structures to be a local objects
accessible while evaluating conditions and formulas.
*/
chart = pChart
exchange = pExchange
market = pMarket
}
function strategyEntry() {
/*
We will record here a snapshot of all values used in conditions and formulas within the Trading System.
If the strategy exists with a trade, this information will be added to the snapshots file.
*/
strategyKeys = new Map()
strategyValues = []
addToStrategyValues = true
evalNode(tradingSystem)
/* Turn off this */
createHeaders = false
addToStrategyValues = false
}
function strategyExit() {
getResults(tradingEngine.tradingCurrent.strategy.begin.value, tradingEngine.tradingCurrent.strategy.end.value)
let valuesArray = closeValues.concat(strategyValues)
snapshots.strategies.push(valuesArray)
}
function positionEntry() {
positionKeys = new Map()
positionValues = []
addToPositionValues = true
evalNode(tradingSystem)
/* Turn off this */
createHeaders = false
addToPositionValues = false
}
function positionExit() {
getResults(tradingEngine.tradingCurrent.position.begin.value, tradingEngine.tradingCurrent.position.end.value)
let valuesArray = closeValues.concat(positionValues)
snapshots.positions.push(valuesArray)
}
function evalNode(node) {
if (node === undefined) { return }
/* Here we check if there is a codition to be evaluated */
if (node.type === 'Condition') {
/* We will eval this condition */
evalCondition(node)
}
/* Here we check if there is a formula to be evaluated */
if (node.type === 'Formula') {
if (node.code !== undefined) {
/* We will eval this formula */
evalFormula(node)
}
}
/* Now we go down through all this node children */
let schemaDocument = TS.projects.foundations.globals.taskConstants.APP_SCHEMA_MAP.get(node.project + '-' + node.type)
if (schemaDocument === undefined) { return }
if (schemaDocument.childrenNodesProperties !== undefined) {
let previousPropertyName // Since there are cases where there are many properties with the same name,because they can hold nodes of different types but only one at the time, we have to avoind counting each property of those as individual children.
for (let i = 0; i < schemaDocument.childrenNodesProperties.length; i++) {
let property = schemaDocument.childrenNodesProperties[i]
switch (property.type) {
case 'node':
{
if (property.name !== previousPropertyName) {
if (node[property.name] !== undefined) {
evalNode(node[property.name])
}
previousPropertyName = property.name
}
break
}
case 'array':
{
if (node[property.name] !== undefined) {
let nodePropertyArray = node[property.name]
for (let m = 0; m < nodePropertyArray.length; m++) {
evalNode(nodePropertyArray[m])
}
}
break
}
}
}
}
}
function evalCondition(node) {
/*
The code can be at the condition node if it was done with the Conditions Editor, or it can also be
at a Javascript Code node. If there is a Javascript object we will give it preference and take the code
from there. Otherwise we will take the code from the Condition node.
*/
let nodeWithCode = node
if (node.javascriptCode !== undefined) {
if (node.javascriptCode.code !== undefined) {
nodeWithCode = node.javascriptCode
}
}
addCodeToSnapshot(nodeWithCode)
}
function evalFormula(node) {
let nodeWithCode = node
addCodeToSnapshot(nodeWithCode)
}
function addCodeToSnapshot(nodeWithCode) {
if (nodeWithCode === undefined) { return }
if (nodeWithCode.code === undefined) { return }
try {
const code = nodeWithCode.code
let instructionsArray = code.split(' ')
for (let i = 0; i < instructionsArray.length; i++) {
let instruction = instructionsArray[i]
instruction = instruction.replace('(', '')
instruction = instruction.replace(')', '')
instruction = instruction.replace(/</g, '')
instruction = instruction.replace(/>/g, '')
instruction = instruction.replace(/<=/g, '')
instruction = instruction.replace(/>=/g, '')
instruction = instruction.replace(/!=/g, '')
instruction = instruction.replace(/!==/g, '')
instruction = instruction.replace(/==/g, '')
instruction = instruction.replace(/===/g, '')
instruction = instruction.replace(/{/g, '')
instruction = instruction.replace(/}/g, '')
if (instruction.indexOf('chart') >= 0) {
let parts = instruction.split('.')
let timeFrame = parts[1]
let product = parts[2]
let property
checkPrevious(3)
function checkPrevious(index) {
property = parts[index]
if (property === 'previous') {
product = product + '.previous'
checkPrevious(index + 1)
}
}
// Example: chart.at01hs.popularSMA.sma200 - chart.at01hs.popularSMA.sma100 < 10
if (timeFrame !== 'atAnyTimeFrame') {
timeFrame = timeFrame.substring(2, 4) + '-' + timeFrame.substring(4, 7)
}
let key = timeFrame + '-' + product + '-' + property
let existingKey
if (addToStrategyValues === true) {
addValues(strategyKeys, strategyValues)
}
if (addToPositionValues === true) {
addValues(positionKeys, positionValues)
}
function addValues(keys, values) {
existingKey = keys.get(key)
if (existingKey === undefined) { // means that at the current loop this property of this product was not used before.
keys.set(key, key)
if (createHeaders === true) {
snapshots.headers.push(key)
}
try {
let value = eval(instruction)
values.push(value)
} catch (err) {
const message = 'Snapshot Unexpected Error'
let docs = {
project: 'Foundations',
category: 'Topic',
type: 'TS LF Trading Bot Error - ' + message,
placeholder: {}
}
let contextInfo = {
instruction: instruction
}
TS.projects.education.utilities.docsFunctions.buildPlaceholder(docs, err, nodeWithCode.name, nodeWithCode.code, undefined, undefined, contextInfo)
tradingSystem.addError([nodeWithCode.id, message, docs])
values.push(0)
}
}
}
}
}
} catch (err) {
const message = 'Snapshot Unexpected Error'
let docs = {
project: 'Foundations',
category: 'Topic',
type: 'TS LF Trading Bot Error - ' + message,
placeholder: {}
}
TS.projects.education.utilities.docsFunctions.buildPlaceholder(docs, err, nodeWithCode.name, nodeWithCode.code, undefined)
tradingSystem.addError([nodeWithCode.id, message, docs])
TS.projects.foundations.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, '[ERROR] runSimulation -> addCodeToSnapshot -> nodeWithCode.code = ' + nodeWithCode.code)
TS.projects.foundations.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, '[ERROR] runSimulation -> addCodeToSnapshot -> err = ' + err.stack)
}
}
function getResults(openDatetime, closeDatetime) {
let baseOpen = tradingEngine.tradingCurrent.strategyCloseStage.stageBaseAsset.sizeFilled.value - tradingEngine.tradingCurrent.strategyCloseStage.stageBaseAsset.feesPaid.value
let baseClose = tradingEngine.tradingCurrent.strategyOpenStage.stageBaseAsset.sizeFilled.value - tradingEngine.tradingCurrent.strategyOpenStage.stageBaseAsset.feesPaid.value
let quoteOpen = tradingEngine.tradingCurrent.strategyOpenStage.stageQuotedAsset.sizeFilled.value - tradingEngine.tradingCurrent.strategyOpenStage.stageQuotedAsset.feesPaid.value
let quoteClose = tradingEngine.tradingCurrent.strategyCloseStage.stageQuotedAsset.sizeFilled.value - tradingEngine.tradingCurrent.strategyCloseStage.stageQuotedAsset.feesPaid.value
let qouteProfit = ((quoteClose / quoteOpen * 100) - 100)
let baseProfit = ((baseClose / baseOpen * 100) - 100)
let closeHeaders = ['Trade Number', 'Open Datetime', 'Close Datetime', 'Strategy Name', 'Trigger On Situation', 'Take Position Situation', 'Open Position in Base Asset', 'Close Position in Base Asset', 'Open Position in Quoted Asset', 'Close Position in Quoted Asset', 'Result In Base Asset', 'Result In Quoted Asset', 'ROI in Base Asset', '% P/L Base Asset', 'P/L Type Base Asset', 'ROI in Quoted Asset', '% P/L Quoted Asset', 'P/L Type Quoted Asset', 'Exit Type', '# Periods']
closeValues = [
tradingEngine.tradingCurrent.tradingEpisode.tradingEpisodeCounters.positions.value, // Position Number
(new Date(openDatetime)).toISOString(), // Open Datetime
(new Date(closeDatetime)).toISOString(), // Open Datetime
tradingEngine.tradingCurrent.strategy.strategyName.value, // Strategy Name
tradingEngine.tradingCurrent.strategy.situationName.value, // Trigger On Situation
tradingEngine.tradingCurrent.position.situationName.value, // Take Position Situation
baseOpen, // open position in base asset
baseClose, // close position in base asset
quoteOpen, //open quote in base asset
quoteClose, // close quote in base asset
tradingEngine.tradingCurrent.position.positionBaseAsset.hitFail.value, // Result in Base Asset
tradingEngine.tradingCurrent.position.positionQuotedAsset.hitFail.value, // Result in Base Asset
tradingEngine.tradingCurrent.position.positionBaseAsset.ROI.value, // ROI in Base Asset <- not sure this works as intended
baseProfit + '%', // % profit / loss in base Asset
baseProfit === 0 ? 'Even' : (baseProfit > 0 ? "Profit" : "Loss"),
tradingEngine.tradingCurrent.position.positionQuotedAsset.ROI.value, // ROI in Quoted Asset <- not sure this works as intended
qouteProfit + '%', // % profit loss in quoted Asset
qouteProfit === 0 ? 'Even' : (qouteProfit > 0 ? "Profit" : "Loss"),
tradingEngine.tradingCurrent.position.exitType.value, // Exit Type
tradingEngine.tradingCurrent.position.positionCounters.periods.value // periods counter
]
if (createCloseHeaders === true) {
snapshots.headers = closeHeaders.concat(JSON.parse(JSON.stringify(snapshots.headers)))
createCloseHeaders = false
}
}
function writeSnapshotFiles() {
if (sessionParameters.snapshots !== undefined) {
if (sessionParameters.snapshots.config.strategy === true) {
writeSnapshotFile(snapshots.strategies, 'Strategies')
}
}
if (sessionParameters.snapshots !== undefined) {
if (sessionParameters.snapshots.config.strategy === true) {
writeSnapshotFile(snapshots.positions, 'Positions')
}
}
}
function writeSnapshotFile(snapshotArray, pFileName) {
try {
let fileStorage = TS.projects.foundations.taskModules.fileStorage.newFileStorage(processIndex);
let fileName = pFileName + '.csv'
let filePath = TS.projects.foundations.globals.processVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).FILE_PATH_ROOT + '/Output/' + TS.projects.foundations.globals.processVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).SESSION_FOLDER_NAME + '/' + SNAPSHOTS_FOLDER_NAME;
filePath += '/' + fileName
//Get contents of current file if available, otherwise start empty file
if (snapshotAvailable) {
getSnapShotFile(filePath)
} else {
writeOutput('')
}
function writeOutput(fileContent) {
let separator = '\r\n';
let contentArray = [];
// if we have file content extract rows
if (fileContent != '') {
contentArray = fileContent.split(separator)
}
parseRecord(snapshots.headers)
for (let i = 0; i < snapshotArray.length; i++) {
let record = snapshotArray[i];
if (record.length > 0) {
parseRecord(record)
}
}
function parseRecord(record) {
// if we have undefined values, we need to extract the previous stored values for this trade and append them to the new record for completion
if (record[record.length - 1] === undefined && contentArray.length > 0) {
let rowToMutateArray = contentArray[contentArray.length - 1].split(',')
// check if are for sure on the same tradenumber and merge the data and remove previous line incl separator
if (rowToMutateArray[0] == record[0]) {
record.pop()
rowToMutateArray.splice(0, record.length)
record = record.concat(rowToMutateArray)
fileContent = fileContent.replace(contentArray[contentArray.length - 1], '')
fileContent = fileContent.replace(/\r\n$/, '')
}
}
for (let j = 0; j < record.length; j++) {
let property = record[j]
fileContent = fileContent + '' + property
if (j !== record.length - 1) {
fileContent = fileContent + ","
}
}
fileContent = fileContent + separator
}
fileContent = "" + fileContent + "";
fileStorage.createTextFile(filePath, fileContent + '\n', onFileCreated)
function onFileCreated(err) {
if (err.result !== TS.projects.foundations.globals.standardResponses.DEFAULT_OK_RESPONSE.result) {
TS.projects.foundations.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, '[ERROR] writeSnapshotFile -> onFileCreated -> err = ' + err.stack);
TS.projects.foundations.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, '[ERROR] writeSnapshotFile -> onFileCreated -> filePath = ' + filePath);
TS.projects.foundations.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, '[ERROR] writeSnapshotFile -> onFileCreated -> market = ' + TS.projects.foundations.globals.taskConstants.TASK_NODE.parentNode.parentNode.parentNode.referenceParent.baseAsset.referenceParent.config.codeName + '_' + TS.projects.foundations.globals.taskConstants.TASK_NODE.parentNode.parentNode.parentNode.referenceParent.quotedAsset.referenceParent.config.codeName);
}
}
}
} catch (err) {
TS.projects.foundations.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(
processIndex
).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(
MODULE_NAME,
'[ERROR] writeSnapshotFile -> err = ' + err.stack
)
}
//get file contents
function getSnapShotFile(filePath) {
try {
let fileStorage = TS.projects.foundations.taskModules.fileStorage.newFileStorage(processIndex);
fileStorage.getTextFile(filePath, onFileReceived)
function onFileReceived(err, text) {
if (err.result === TS.projects.foundations.globals.standardResponses.DEFAULT_OK_RESPONSE.result) {
try {
// remove the last linebreak and seperator which is introduced extra during save
text = text.replace(/\n$/, '')
text = text.replace(/\r\n$/, '')
writeOutput(text)
} catch (err) {
TS.projects.foundations.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, '[ERROR] start -> loadExistingFiles -> loopBody -> readExistingFile -> onFileReceived -> fileName = ' + filePath);
TS.projects.foundations.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, '[ERROR] start -> loadExistingFiles -> loopBody -> readExistingFile -> onFileReceived -> filePath = ' + filePath);
TS.projects.foundations.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, '[ERROR] start -> loadExistingFiles -> loopBody -> readExistingFile -> onFileReceived -> err = ' + err.stack);
TS.projects.foundations.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, '[ERROR] start -> loadExistingFiles -> loopBody -> readExistingFile -> onFileReceived -> Asuming this is a temporary situation. Requesting a Retry.');
callBackFunction(TS.projects.foundations.globals.standardResponses.DEFAULT_RETRY_RESPONSE)
}
} else {
TS.projects.foundations.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, '[ERROR] start -> loadExistingFiles -> loopBody -> readExistingFile -> onFileReceived -> err = ' + err.stack);
TS.projects.foundations.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, '[ERROR] start -> loadExistingFiles -> loopBody -> readExistingFile -> onFileReceived -> filePath = ' + filePath);
TS.projects.foundations.globals.processVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).UNEXPECTED_ERROR = err;
callBackFunction(err)
}
}
} catch (error) {
TS.projects.foundations.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, '[ERROR] start -> loadExistingFiles -> loopBody -> readExistingFile -> onFileReceived -> err = ' + err.stack);
TS.projects.foundations.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, '[ERROR] start -> loadExistingFiles -> loopBody -> readExistingFile -> onFileReceived -> filePath = ' + filePath);
TS.projects.foundations.globals.processVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).UNEXPECTED_ERROR = err;
callBackFunction(err);
}
}
}
}
@@ -1,9 +1,9 @@
exports.newFoundationsBotModulesTradingEngine = function (processIndex) {
exports.newAlgorithmicTradingBotModulesTradingEngine = function (processIndex) {
/*
We call the Trading Engine to the data structure that is needed in order to exevute the
trading protocol with the specific rules defined at the Trading System.
*/
const MODULE_NAME = 'Trading Engine'
let thisObject = {
mantain: mantain,
reset: reset,
@@ -1,8 +1,7 @@
exports.newFoundationsBotModulesTradingEpisode = function (processIndex) {
exports.newAlgorithmicTradingBotModulesTradingEpisode = function (processIndex) {
/*
This module packages all functions related to Episodes.
*/
const MODULE_NAME = 'Trading Episode'
let thisObject = {
mantain: mantain,
reset: reset,
@@ -113,7 +112,7 @@ exports.newFoundationsBotModulesTradingEpisode = function (processIndex) {
tradingEngine.tradingCurrent.tradingEpisode.tradingEpisodeStatistics.days.value =
tradingEngine.tradingCurrent.tradingEpisode.tradingEpisodeCounters.periods.value *
sessionParameters.timeFrame.config.value /
TS.projects.foundations.globals.timeConstants.ONE_DAY_IN_MILISECONDS
SA.projects.foundations.globals.timeConstants.ONE_DAY_IN_MILISECONDS
}
function cycleBasedStatistics() {
@@ -1,4 +1,4 @@
exports.newFoundationsBotModulesTradingExecution = function (processIndex) {
exports.newAlgorithmicTradingBotModulesTradingExecution = function (processIndex) {
/*
The Trading Execution modules manages the execution nodes and execution algoritms.
*/
@@ -16,7 +16,7 @@ exports.newFoundationsBotModulesTradingExecution = function (processIndex) {
let tradingSystem
let sessionParameters
let tradingOrdersModuleObject = TS.projects.foundations.botModules.tradingOrders.newFoundationsBotModulesTradingOrders(processIndex)
let tradingOrdersModuleObject = TS.projects.algorithmicTrading.botModules.tradingOrders.newAlgorithmicTradingBotModulesTradingOrders(processIndex)
return thisObject
@@ -1,4 +1,4 @@
exports.newFoundationsBotModulesTradingOrders = function (processIndex) {
exports.newAlgorithmicTradingBotModulesTradingOrders = function (processIndex) {
/*
The Trading Orders modules manages the execution of orders against the exchanges.
*/
@@ -16,8 +16,8 @@ exports.newFoundationsBotModulesTradingOrders = function (processIndex) {
let tradingSystem
let sessionParameters
let exchangeAPIModuleObject = TS.projects.foundations.botModules.exchangeAPI.newFoundationsBotModulesExchangeAPI(processIndex)
let announcementsModuleObject = TS.projects.foundations.botModules.announcements.newFoundationsBotModulesAnnouncements(processIndex)
let exchangeAPIModuleObject = TS.projects.algorithmicTrading.botModules.exchangeAPI.newAlgorithmicTradingBotModulesExchangeAPI(processIndex)
let announcementsModuleObject = TS.projects.socialBots.botModules.announcements.newSocialBotsBotModulesAnnouncements(processIndex)
return thisObject
@@ -843,7 +843,7 @@ exports.newFoundationsBotModulesTradingOrders = function (processIndex) {
let previousBaseAssetFeesPaid = tradingEngineOrder.orderBaseAsset.feesPaid.value
let previousQuotedAssetFeesPaid = tradingEngineOrder.orderQuotedAsset.feesPaid.value
let ordersSimulationsModuleObject = TS.projects.foundations.botModules.ordersSimulations.newFoundationsBotModulesOrdersSimulations(processIndex)
let ordersSimulationsModuleObject = TS.projects.algorithmicTrading.botModules.ordersSimulations.newAlgorithmicTradingBotModulesOrdersSimulations(processIndex)
ordersSimulationsModuleObject.initialize()
ordersSimulationsModuleObject.actualSizeSimulation(tradingEngineStage, tradingSystemOrder, tradingEngineOrder, applyFeePercentage)
@@ -874,7 +874,7 @@ exports.newFoundationsBotModulesTradingOrders = function (processIndex) {
let previousBaseAssetFeesPaid = tradingEngineOrder.orderBaseAsset.feesPaid.value
let previousQuotedAssetFeesPaid = tradingEngineOrder.orderQuotedAsset.feesPaid.value
let ordersCalculationsModuleObject = TS.projects.foundations.botModules.ordersCalculations.newFoundationsBotModulesOrdersCalculations(processIndex)
let ordersCalculationsModuleObject = TS.projects.algorithmicTrading.botModules.ordersCalculations.newAlgorithmicTradingBotModulesOrdersCalculations(processIndex)
ordersCalculationsModuleObject.initialize()
await ordersCalculationsModuleObject.actualSizeCalculation(tradingEngineStage, tradingSystemOrder, tradingEngineOrder, order, applyFeePercentage)
@@ -1262,7 +1262,7 @@ exports.newFoundationsBotModulesTradingOrders = function (processIndex) {
tradingSystem.highlights.push(executionAlgorithm.id)
tradingSystem.highlights.push(executionNode.id)
announcementsModuleObject.makeAnnoucements(event)
announcementsModuleObject.makeAnnouncements(event)
return situation.name // if the event is triggered, we return the name of the situation that passed
}
}
@@ -1286,7 +1286,7 @@ exports.newFoundationsBotModulesTradingOrders = function (processIndex) {
}
function updateStatistics(tradingEngineOrder) {
tradingEngineOrder.orderStatistics.days.value = tradingEngineOrder.orderCounters.periods.value * sessionParameters.timeFrame.config.value / TS.projects.foundations.globals.timeConstants.ONE_DAY_IN_MILISECONDS
tradingEngineOrder.orderStatistics.days.value = tradingEngineOrder.orderCounters.periods.value * sessionParameters.timeFrame.config.value / SA.projects.foundations.globals.timeConstants.ONE_DAY_IN_MILISECONDS
tradingEngineOrder.orderStatistics.days.value = TS.projects.foundations.utilities.miscellaneousFunctions.truncateToThisPrecision(tradingEngineOrder.orderStatistics.days.value, 10)
}
@@ -1,4 +1,4 @@
exports.newFoundationsBotModulesTradingOutput = function (processIndex) {
exports.newAlgorithmicTradingBotModulesTradingOutput = function (processIndex) {
/*
This module will load if necesary all the data outputs so that they can be appended with new
records if needed. After running the simulation, it will save all the data outputs.
@@ -29,9 +29,9 @@ exports.newFoundationsBotModulesTradingOutput = function (processIndex) {
}
/* Preparing everything for the Simulation */
let tradingSimulationModuleObject = TS.projects.foundations.botModules.tradingSimulation.newFoundationsBotModulesTradingSimulation(processIndex)
let tradingSimulationModuleObject = TS.projects.algorithmicTrading.botModules.tradingSimulation.newAlgorithmicTradingBotModulesTradingSimulation(processIndex)
let outputDatasets = TS.projects.foundations.utilities.nodeFunctions.nodeBranchToArray(TS.projects.foundations.globals.taskConstants.TASK_NODE.bot.processes[processIndex].referenceParent.processOutput, 'Output Dataset')
let outputDatasets = TS.projects.visualScripting.utilities.nodeFunctions.nodeBranchToArray(TS.projects.foundations.globals.taskConstants.TASK_NODE.bot.processes[processIndex].referenceParent.processOutput, 'Output Dataset')
let outputDatasetsMap = new Map()
await TS.projects.foundations.functionLibraries.outputManagementFunctions.readFiles(
@@ -1,4 +1,4 @@
exports.newFoundationsBotModulesTradingPosition = function (processIndex) {
exports.newAlgorithmicTradingBotModulesTradingPosition = function (processIndex) {
/*
This module packages all functions related to Positions.
*/
@@ -513,7 +513,7 @@ exports.newFoundationsBotModulesTradingPosition = function (processIndex) {
/* Days Calculation */
tradingEngine.tradingCurrent.position.positionStatistics.days.value =
tradingEngine.tradingCurrent.position.positionCounters.periods.value *
sessionParameters.timeFrame.config.value / TS.projects.foundations.globals.timeConstants.ONE_DAY_IN_MILISECONDS
sessionParameters.timeFrame.config.value / SA.projects.foundations.globals.timeConstants.ONE_DAY_IN_MILISECONDS
tradingEngine.tradingCurrent.position.positionStatistics.days.value = TS.projects.foundations.utilities.miscellaneousFunctions.truncateToThisPrecision(tradingEngine.tradingCurrent.position.positionStatistics.days.value, 10)
}
@@ -1,4 +1,4 @@
exports.newFoundationsBotModulesTradingProcess = function (processIndex) {
exports.newAlgorithmicTradingBotModulesTradingProcess = function (processIndex) {
/*
This Module will load all the process data dependencies from files and send them downstream.
After execution, will save the time range and status report of the process.
@@ -16,8 +16,8 @@
let dataFiles = new Map()
let multiTimeFrameDataFiles = new Map()
TS.projects.foundations.globals.processModuleObjects.MODULE_OBJECTS_BY_PROCESS_INDEX_MAP.get(processIndex).TRADING_ENGINE_MODULE_OBJECT = TS.projects.foundations.botModules.tradingEngine.newFoundationsBotModulesTradingEngine(processIndex)
let tradingOutputModuleObject = TS.projects.foundations.botModules.tradingOutput.newFoundationsBotModulesTradingOutput(processIndex)
TS.projects.foundations.globals.processModuleObjects.MODULE_OBJECTS_BY_PROCESS_INDEX_MAP.get(processIndex).TRADING_ENGINE_MODULE_OBJECT = TS.projects.algorithmicTrading.botModules.tradingEngine.newAlgorithmicTradingBotModulesTradingEngine(processIndex)
let tradingOutputModuleObject = TS.projects.algorithmicTrading.botModules.tradingOutput.newAlgorithmicTradingBotModulesTradingOutput(processIndex)
let currentTimeFrame = {}
@@ -290,7 +290,7 @@
}
}
catch (err) {
/* An unhandled exception occured. in this case we return Fail and log the stack. */
/* An unhandled exception occurred. in this case we return Fail and log the stack. */
if (err.stack) {
TS.projects.foundations.globals.processVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).UNEXPECTED_ERROR = err
TS.projects.foundations.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME,
@@ -307,7 +307,7 @@
return
}
/* Some other handled exception occured. We return Fail and move on. */
/* Some other handled exception occurred. We return Fail and move on. */
if (err.result !== TS.projects.foundations.globals.standardResponses.DEFAULT_OK_RESPONSE.result) {
TS.projects.foundations.globals.processVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).UNEXPECTED_ERROR = err
TS.projects.foundations.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME,
@@ -1,4 +1,4 @@
exports.newFoundationsBotModulesTradingRecords = function (processIndex) {
exports.newAlgorithmicTradingBotModulesTradingRecords = function (processIndex) {
/*
This module facilitates the appending of records to the output of the process.
*/
@@ -37,7 +37,7 @@ exports.newFoundationsBotModulesTradingRecords = function (processIndex) {
we have a pointer to the node that have the information we need to extract.
Later, based on the product record definition we will extract each individual value.
*/
let outputDatasets = TS.projects.foundations.utilities.nodeFunctions.nodeBranchToArray(TS.projects.foundations.globals.taskConstants.TASK_NODE.bot.processes[processIndex].referenceParent.processOutput, 'Output Dataset')
let outputDatasets = TS.projects.visualScripting.utilities.nodeFunctions.nodeBranchToArray(TS.projects.foundations.globals.taskConstants.TASK_NODE.bot.processes[processIndex].referenceParent.processOutput, 'Output Dataset')
for (let i = 0; i < outputDatasets.length; i++) {
let outputDatasetNode = outputDatasets[i]
@@ -1,4 +1,4 @@
exports.newFoundationsBotModulesTradingSimulation = function (processIndex) {
exports.newAlgorithmicTradingBotModulesTradingSimulation = function (processIndex) {
/*
This Module represents the trading simulacion. Escentially a loop through a set of candles and
the execution at each loop cycle of the Trading System Protocol.
@@ -34,13 +34,13 @@ exports.newFoundationsBotModulesTradingSimulation = function (processIndex) {
'[INFO] runSimulation -> finalDatetime = ' + sessionParameters.timeRange.config.finalDatetime)
/* These are the Modules we will need to run the Simulation */
let tradingRecordsModuleObject = TS.projects.foundations.botModules.tradingRecords.newFoundationsBotModulesTradingRecords(processIndex)
let tradingRecordsModuleObject = TS.projects.algorithmicTrading.botModules.tradingRecords.newAlgorithmicTradingBotModulesTradingRecords(processIndex)
tradingRecordsModuleObject.initialize(outputDatasetsMap)
let tradingSystemModuleObject = TS.projects.foundations.botModules.tradingSystem.newFoundationsBotModulesTradingSystem(processIndex)
let tradingSystemModuleObject = TS.projects.algorithmicTrading.botModules.tradingSystem.newAlgorithmicTradingBotModulesTradingSystem(processIndex)
tradingSystemModuleObject.initialize()
let tradingEpisodeModuleObject = TS.projects.foundations.botModules.tradingEpisode.newFoundationsBotModulesTradingEpisode(processIndex)
let tradingEpisodeModuleObject = TS.projects.algorithmicTrading.botModules.tradingEpisode.newAlgorithmicTradingBotModulesTradingEpisode(processIndex)
tradingEpisodeModuleObject.initialize()
/* Setting up the candles array: The whole simulation is based on the array of candles at the time-frame defined at the session parameters. */
@@ -88,7 +88,8 @@ exports.newFoundationsBotModulesTradingSimulation = function (processIndex) {
This will happen when the sessionParameters.timeRange.config.initialDatetime is beyond the last candle available,
meaning that the dataSet needs to be updated with more up-to-date data.
*/
TS.projects.foundations.functionLibraries.sessionFunctions.stopSession(processIndex, 'Data is not up-to-date enough. Please start the Masters Data Mining Operation.')
console.log('DEBUGGING ..................', initialCandle, candles.length)
TS.projects.foundations.functionLibraries.sessionFunctions.stopSession(processIndex, 'Data is not up-to-date enough. Please start the Data Mining Operation.')
TS.projects.foundations.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME,
'[IMPORTANT] runSimulation -> Data is not up-to-date enough. Stopping the Session now. ')
return
@@ -302,12 +303,12 @@ exports.newFoundationsBotModulesTradingSimulation = function (processIndex) {
if (sessionParameters.heartbeats.config.date === true || sessionParameters.heartbeats.config.candleIndex === true) {
/* We will produce a simulation level heartbeat in order to inform the user this is running. */
heartBeatDate = new Date(Math.trunc(tradingEngine.tradingCurrent.tradingEpisode.candle.begin.value / TS.projects.foundations.globals.timeConstants.ONE_DAY_IN_MILISECONDS) * TS.projects.foundations.globals.timeConstants.ONE_DAY_IN_MILISECONDS + TS.projects.foundations.globals.timeConstants.ONE_DAY_IN_MILISECONDS)
heartBeatDate = new Date(Math.trunc(tradingEngine.tradingCurrent.tradingEpisode.candle.begin.value / SA.projects.foundations.globals.timeConstants.ONE_DAY_IN_MILISECONDS) * SA.projects.foundations.globals.timeConstants.ONE_DAY_IN_MILISECONDS + SA.projects.foundations.globals.timeConstants.ONE_DAY_IN_MILISECONDS)
let fromDate = new Date(sessionParameters.timeRange.config.initialDatetime)
let lastDate = new Date(sessionParameters.timeRange.config.finalDatetime)
let currentDateString = heartBeatDate.getUTCFullYear() + '-' + TS.projects.foundations.utilities.miscellaneousFunctions.pad(heartBeatDate.getUTCMonth() + 1, 2) + '-' + TS.projects.foundations.utilities.miscellaneousFunctions.pad(heartBeatDate.getUTCDate(), 2)
let currentDateString = heartBeatDate.getUTCFullYear() + '-' + SA.projects.foundations.utilities.miscellaneousFunctions.pad(heartBeatDate.getUTCMonth() + 1, 2) + '-' + SA.projects.foundations.utilities.miscellaneousFunctions.pad(heartBeatDate.getUTCDate(), 2)
let currentDate = new Date(heartBeatDate)
let percentage = TS.projects.foundations.utilities.dateTimeFunctions.getPercentage(fromDate, currentDate, lastDate)
/*
@@ -317,7 +318,7 @@ exports.newFoundationsBotModulesTradingSimulation = function (processIndex) {
if (heartBeatDate.valueOf() !== previousHeartBeatDate) {
previousHeartBeatDate = heartBeatDate.valueOf()
let processingDate = heartBeatDate.getUTCFullYear() + '-' + TS.projects.foundations.utilities.miscellaneousFunctions.pad(heartBeatDate.getUTCMonth() + 1, 2) + '-' + TS.projects.foundations.utilities.miscellaneousFunctions.pad(heartBeatDate.getUTCDate(), 2)
let processingDate = heartBeatDate.getUTCFullYear() + '-' + SA.projects.foundations.utilities.miscellaneousFunctions.pad(heartBeatDate.getUTCMonth() + 1, 2) + '-' + SA.projects.foundations.utilities.miscellaneousFunctions.pad(heartBeatDate.getUTCDate(), 2)
TS.projects.foundations.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME,
'[INFO] runSimulation -> loop -> Simulation ' + TS.projects.foundations.globals.processVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).SESSION_KEY + ' Loop # ' + tradingEngine.tradingCurrent.tradingEpisode.candle.index.value + ' @ ' + processingDate)
@@ -371,8 +372,8 @@ exports.newFoundationsBotModulesTradingSimulation = function (processIndex) {
}
function positionChart(chart) {
let dataDependencies = TS.projects.foundations.utilities.nodeFunctions.nodeBranchToArray(TS.projects.foundations.globals.taskConstants.TASK_NODE.bot.processes[processIndex].referenceParent.processDependencies, 'Data Dependency')
dataDependencies = TS.projects.foundations.utilities.nodeFunctions.filterOutNodeWihtoutReferenceParentFromNodeArray(dataDependencies)
let dataDependencies = TS.projects.visualScripting.utilities.nodeFunctions.nodeBranchToArray(TS.projects.foundations.globals.taskConstants.TASK_NODE.bot.processes[processIndex].referenceParent.processDependencies, 'Data Dependency')
dataDependencies = TS.projects.visualScripting.utilities.nodeFunctions.filterOutNodeWihtoutReferenceParentFromNodeArray(dataDependencies)
/* Finding the Current Element on Daily Files */
if (TS.projects.foundations.globals.processVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).TRADING_PROCESSING_DAILY_FILES) {
@@ -492,7 +493,7 @@ exports.newFoundationsBotModulesTradingSimulation = function (processIndex) {
the day, we will advance current process day one day. By doing so, during the next execution, the
simulation will receive the candles and indicators files of the next day.
*/
let candlesPerDay = TS.projects.foundations.globals.timeConstants.ONE_DAY_IN_MILISECONDS / sessionParameters.timeFrame.config.value
let candlesPerDay = SA.projects.foundations.globals.timeConstants.ONE_DAY_IN_MILISECONDS / sessionParameters.timeFrame.config.value
if (
TS.projects.foundations.globals.processVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).TRADING_PROCESSING_DAILY_FILES &&
tradingEngine.tradingCurrent.tradingEpisode.candle.index.value + 1 + 1 === candlesPerDay
@@ -506,7 +507,7 @@ exports.newFoundationsBotModulesTradingSimulation = function (processIndex) {
*/
tradingEngine.tradingCurrent.tradingEpisode.candle.index.value = 0
tradingEngine.tradingCurrent.tradingEpisode.processDate.value =
tradingEngine.tradingCurrent.tradingEpisode.processDate.value + TS.projects.foundations.globals.timeConstants.ONE_DAY_IN_MILISECONDS
tradingEngine.tradingCurrent.tradingEpisode.processDate.value + SA.projects.foundations.globals.timeConstants.ONE_DAY_IN_MILISECONDS
return false
}
@@ -1,4 +1,4 @@
exports.newFoundationsBotModulesTradingStages = function (processIndex) {
exports.newAlgorithmicTradingBotModulesTradingStages = function (processIndex) {
/*
This module packages all functions related to Stages.
*/
@@ -21,12 +21,12 @@ exports.newFoundationsBotModulesTradingStages = function (processIndex) {
finalize: finalize
}
let tradingStrategyModuleObject = TS.projects.foundations.botModules.tradingStrategy.newFoundationsBotModulesTradingStrategy(processIndex)
let tradingPositionModuleObject = TS.projects.foundations.botModules.tradingPosition.newFoundationsBotModulesTradingPosition(processIndex)
let tradingExecutionModuleObject = TS.projects.foundations.botModules.tradingExecution.newFoundationsBotModulesTradingExecution(processIndex)
let announcementsModuleObject = TS.projects.foundations.botModules.announcements.newFoundationsBotModulesAnnouncements(processIndex)
let snapshotsModuleObject = TS.projects.foundations.botModules.snapshots.newFoundationsBotModulesSnapshots(processIndex)
let tradingEpisodeModuleObject = TS.projects.foundations.botModules.tradingEpisode.newFoundationsBotModulesTradingEpisode(processIndex)
let tradingStrategyModuleObject = TS.projects.algorithmicTrading.botModules.tradingStrategy.newAlgorithmicTradingBotModulesTradingStrategy(processIndex)
let tradingPositionModuleObject = TS.projects.algorithmicTrading.botModules.tradingPosition.newAlgorithmicTradingBotModulesTradingPosition(processIndex)
let tradingExecutionModuleObject = TS.projects.algorithmicTrading.botModules.tradingExecution.newAlgorithmicTradingBotModulesTradingExecution(processIndex)
let announcementsModuleObject = TS.projects.socialBots.botModules.announcements.newSocialBotsBotModulesAnnouncements(processIndex)
let snapshotsModuleObject = TS.projects.algorithmicTrading.botModules.snapshots.newAlgorithmicTradingBotModulesSnapshots(processIndex)
let tradingEpisodeModuleObject = TS.projects.algorithmicTrading.botModules.tradingEpisode.newAlgorithmicTradingBotModulesTradingEpisode(processIndex)
let tradingEngine
let tradingSystem
@@ -147,8 +147,7 @@ exports.newFoundationsBotModulesTradingStages = function (processIndex) {
/* Initialize this */
tradingEngine.tradingCurrent.tradingEpisode.distanceToTradingEvent.triggerOn.value = 1
announcementsModuleObject.makeAnnoucements(triggerStage.triggerOn)
announcementsModuleObject.makeAnnoucements(triggerStage)
announcementsModuleObject.makeAnnouncements(triggerStage.triggerOn)
if (TS.projects.foundations.globals.processConstants.CONSTANTS_BY_PROCESS_INDEX_MAP.get(processIndex).SESSION_NODE.type === 'Backtesting Session') {
if (sessionParameters.snapshots !== undefined) {
@@ -159,6 +158,7 @@ exports.newFoundationsBotModulesTradingStages = function (processIndex) {
}
changeStageStatus('Trigger Stage', 'Open')
}
}
}
@@ -194,7 +194,7 @@ exports.newFoundationsBotModulesTradingStages = function (processIndex) {
tradingSystem.highlights.push(triggerStage.id)
tradingEngine.tradingCurrent.tradingEpisode.distanceToTradingEvent.triggerOff.value = 1
announcementsModuleObject.makeAnnoucements(triggerStage.triggerOff)
announcementsModuleObject.makeAnnouncements(triggerStage.triggerOff)
changeStageStatus('Trigger Stage', 'Closed', 'Trigger Off Event')
tradingStrategyModuleObject.closeStrategy('Trigger Off')
}
@@ -233,8 +233,7 @@ exports.newFoundationsBotModulesTradingStages = function (processIndex) {
tradingPositionModuleObject.openPosition(situation.name)
announcementsModuleObject.makeAnnoucements(triggerStage.takePosition)
announcementsModuleObject.makeAnnoucements(strategy.openStage)
announcementsModuleObject.makeAnnouncements(triggerStage.takePosition)
if (TS.projects.foundations.globals.processConstants.CONSTANTS_BY_PROCESS_INDEX_MAP.get(processIndex).SESSION_NODE.type === 'Backtesting Session') {
if (sessionParameters.snapshots !== undefined) {
@@ -436,7 +435,6 @@ exports.newFoundationsBotModulesTradingStages = function (processIndex) {
/* Now we switch to the Open status. */
changeStageStatus('Manage Stage', 'Open')
announcementsModuleObject.makeAnnoucements(manageStage)
}
}
@@ -487,7 +485,7 @@ exports.newFoundationsBotModulesTradingStages = function (processIndex) {
tradingPositionModuleObject.applyStopLossFormula(tradingSystem.formulas, phase.formula.id)
if (tradingEngine.tradingCurrent.position.stopLoss.value !== previousValue) {
announcementsModuleObject.makeAnnoucements(phase)
announcementsModuleObject.makeAnnouncements(phase)
}
}
}
@@ -510,7 +508,7 @@ exports.newFoundationsBotModulesTradingStages = function (processIndex) {
tradingPositionModuleObject.applyTakeProfitFormula(tradingSystem.formulas, phase.formula.id)
if (tradingEngine.tradingCurrent.position.takeProfit.value !== previousValue) {
announcementsModuleObject.makeAnnoucements(phase)
announcementsModuleObject.makeAnnouncements(phase)
}
}
}
@@ -591,7 +589,7 @@ exports.newFoundationsBotModulesTradingStages = function (processIndex) {
tradingPositionModuleObject.updateStopLoss(tradingEngine.tradingCurrent.position.stopLoss.stopLossPhase.value + 1)
announcementsModuleObject.makeAnnoucements(nextPhaseEvent)
announcementsModuleObject.makeAnnouncements(nextPhaseEvent)
/* Reset this counter */
tradingEngine.tradingCurrent.tradingEpisode.distanceToTradingEvent.nextPhase.value = 1
@@ -642,7 +640,7 @@ exports.newFoundationsBotModulesTradingStages = function (processIndex) {
continue
}
announcementsModuleObject.makeAnnoucements(moveToPhaseEvent)
announcementsModuleObject.makeAnnouncements(moveToPhaseEvent)
/* Reset this counter */
tradingEngine.tradingCurrent.tradingEpisode.distanceToTradingEvent.moveToPhase.value = 1
@@ -698,7 +696,7 @@ exports.newFoundationsBotModulesTradingStages = function (processIndex) {
tradingPositionModuleObject.updateTakeProfit(tradingEngine.tradingCurrent.position.takeProfit.takeProfitPhase.value + 1)
announcementsModuleObject.makeAnnoucements(nextPhaseEvent)
announcementsModuleObject.makeAnnouncements(nextPhaseEvent)
/* Reset this counter */
tradingEngine.tradingCurrent.tradingEpisode.distanceToTradingEvent.nextPhase.value = 1
@@ -749,7 +747,7 @@ exports.newFoundationsBotModulesTradingStages = function (processIndex) {
continue
}
announcementsModuleObject.makeAnnoucements(moveToPhaseEvent)
announcementsModuleObject.makeAnnouncements(moveToPhaseEvent)
/* Reset this counter */
tradingEngine.tradingCurrent.tradingEpisode.distanceToTradingEvent.moveToPhase.value = 1
@@ -762,54 +760,50 @@ exports.newFoundationsBotModulesTradingStages = function (processIndex) {
}
function checkStopLossOrTakeProfitWasHit() {
{
let strategy = tradingSystem.tradingStrategies[tradingEngine.tradingCurrent.strategy.index.value]
/*
Checking what happened since the last execution. We need to know if the Stop Loss
or our Take Profit were hit.
*/
let strategy = tradingSystem.tradingStrategies[tradingEngine.tradingCurrent.strategy.index.value]
/*
Checking what happened since the last execution. We need to know if the Stop Loss
or our Take Profit were hit.
*/
/* Stop Loss condition: Here we verify if the Stop Loss was hit or not. */
if (
(
tradingEngine.tradingCurrent.position.stopLoss.stopLossPosition.value === 'Above' &&
tradingEngine.tradingCurrent.tradingEpisode.candle.max.value >= tradingEngine.tradingCurrent.position.stopLoss.value
) ||
(
tradingEngine.tradingCurrent.position.stopLoss.stopLossPosition.value === 'Below' &&
tradingEngine.tradingCurrent.tradingEpisode.candle.min.value <= tradingEngine.tradingCurrent.position.stopLoss.value
)
) {
TS.projects.foundations.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, '[INFO] checkStopLossOrTakeProfitWasHit -> Stop Loss was hit.')
/* Stop Loss condition: Here we verify if the Stop Loss was hit or not. */
if (
(
tradingEngine.tradingCurrent.position.stopLoss.stopLossPosition.value === 'Above' &&
tradingEngine.tradingCurrent.tradingEpisode.candle.max.value >= tradingEngine.tradingCurrent.position.stopLoss.value
) ||
(
tradingEngine.tradingCurrent.position.stopLoss.stopLossPosition.value === 'Below' &&
tradingEngine.tradingCurrent.tradingEpisode.candle.min.value <= tradingEngine.tradingCurrent.position.stopLoss.value
)
) {
TS.projects.foundations.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, '[INFO] checkStopLossOrTakeProfitWasHit -> Stop Loss was hit.')
tradingPositionModuleObject.closingPosition('Stop Loss')
changeStageStatus('Close Stage', 'Opening')
changeStageStatus('Manage Stage', 'Closed', 'Stop Loss Hit')
announcementsModuleObject.makeAnnoucements(strategy.closeStage)
return
}
/* Take Profit condition: Here we verify if the Take Profit was hit or not. */
if (
(
tradingEngine.tradingCurrent.position.takeProfit.takeProfitPosition.value === 'Below' &&
tradingEngine.tradingCurrent.tradingEpisode.candle.min.value <= tradingEngine.tradingCurrent.position.takeProfit.value
) ||
(
tradingEngine.tradingCurrent.position.takeProfit.takeProfitPosition.value === 'Above' &&
tradingEngine.tradingCurrent.tradingEpisode.candle.max.value >= tradingEngine.tradingCurrent.position.takeProfit.value
)
) {
TS.projects.foundations.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, '[INFO] checkStopLossOrTakeProfitWasHit -> Take Profit was hit.')
tradingPositionModuleObject.closingPosition('Take Profit')
changeStageStatus('Close Stage', 'Opening')
changeStageStatus('Manage Stage', 'Closed', 'Take Profit Hit')
announcementsModuleObject.makeAnnoucements(strategy.closeStage)
return
}
tradingPositionModuleObject.closingPosition('Stop Loss')
changeStageStatus('Close Stage', 'Opening')
changeStageStatus('Manage Stage', 'Closed', 'Stop Loss Hit')
return
}
/* Take Profit condition: Here we verify if the Take Profit was hit or not. */
if (
(
tradingEngine.tradingCurrent.position.takeProfit.takeProfitPosition.value === 'Below' &&
tradingEngine.tradingCurrent.tradingEpisode.candle.min.value <= tradingEngine.tradingCurrent.position.takeProfit.value
) ||
(
tradingEngine.tradingCurrent.position.takeProfit.takeProfitPosition.value === 'Above' &&
tradingEngine.tradingCurrent.tradingEpisode.candle.max.value >= tradingEngine.tradingCurrent.position.takeProfit.value
)
) {
TS.projects.foundations.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, '[INFO] checkStopLossOrTakeProfitWasHit -> Take Profit was hit.')
tradingPositionModuleObject.closingPosition('Take Profit')
changeStageStatus('Close Stage', 'Opening')
changeStageStatus('Manage Stage', 'Closed', 'Take Profit Hit')
return
}
return
}
}
}
@@ -1114,7 +1108,7 @@ exports.newFoundationsBotModulesTradingStages = function (processIndex) {
tradingSystem.highlights.push(closeStageEvent.id)
tradingSystem.highlights.push(stage.id)
announcementsModuleObject.makeAnnoucements(closeStageEvent)
announcementsModuleObject.makeAnnouncements(closeStageEvent)
return true
}
}
@@ -1148,10 +1142,12 @@ exports.newFoundationsBotModulesTradingStages = function (processIndex) {
if (stage.status.value === 'Open') {
openStage(stage)
checkUserDefinedCode(stageName, 'Open')
checkAnnounce(stageName, stage.status.value)
}
if (stage.status.value === 'Closed') {
checkUserDefinedCode(stageName, 'Closed')
closeStage(stage, stageName)
checkAnnounce(stageName, stage.status.value)
}
/*
@@ -1186,7 +1182,6 @@ exports.newFoundationsBotModulesTradingStages = function (processIndex) {
if (stageName === 'Close Stage') {
if (tradingEngine.tradingCurrent.position.status.value === 'Open') {
tradingPositionModuleObject.closingPosition('Close Stage Closed')
/* NOTE:TODO: Announcement May need added Here */
}
}
}
@@ -1271,33 +1266,41 @@ exports.newFoundationsBotModulesTradingStages = function (processIndex) {
/* checkUserDefinedCode(): Checks if User Defined Code exists and processes if applicable. */
function checkUserDefinedCode(stage, status, when) {
let tradingSystemStage = getTradingSystemStage(stage);
let tradingSystemStage = getTradingSystemStage(stage);
if (tradingSystemStage !== undefined &&
tradingSystemStage.userDefinedCode !== undefined) {
if (status === 'Running' && when !== tradingSystemStage.userDefinedCode.config.whileAtStageWhenToRun) { return; }
if (tradingSystemStage !== undefined &&
tradingSystemStage.userDefinedCode !== undefined) {
if (status === 'Running' && when !== tradingSystemStage.userDefinedCode.config.whileAtStageWhenToRun) { return; }
switch(status) {
case 'Open' : {
if (tradingSystemStage.userDefinedCode.config.runWhenEnteringStage) {
tradingSystem.evalUserCode(tradingSystemStage, 'User Defined Code');
switch(status) {
case 'Open' : {
if (tradingSystemStage.userDefinedCode.config.runWhenEnteringStage) {
tradingSystem.evalUserCode(tradingSystemStage, 'User Defined Code');
}
break;
}
case 'Running' : {
if (tradingSystemStage.userDefinedCode.config.runWhileAtStage) {
tradingSystem.evalUserCode(tradingSystemStage, 'User Defined Code');
}
break;
}
case 'Closed' : {
if (tradingSystemStage.userDefinedCode.config.runWhenExitingStage) {
tradingSystem.evalUserCode(tradingSystemStage, 'User Defined Code');
}
break;
}
}
break;
}
case 'Running' : {
if (tradingSystemStage.userDefinedCode.config.runWhileAtStage) {
tradingSystem.evalUserCode(tradingSystemStage, 'User Defined Code');
}
break;
}
case 'Closed' : {
if (tradingSystemStage.userDefinedCode.config.runWhenExitingStage) {
tradingSystem.evalUserCode(tradingSystemStage, 'User Defined Code');
}
break;
}
}
}
}
// checkAnnounce(): Check if stage announcement should be made
function checkAnnounce(stage, status) {
let tradingSystemStage = getTradingSystemStage(stage);
if (status === 'Open' || status === 'Closed') {
announcementsModuleObject.makeAnnouncements(tradingSystemStage, status)
}
}
/* getTradingSystemStage(): takes stage name returns stage object. */
@@ -1321,4 +1324,4 @@ exports.newFoundationsBotModulesTradingStages = function (processIndex) {
}
}
}
}
}
@@ -1,8 +1,8 @@
exports.newFoundationsBotModulesTradingStrategy = function (processIndex) {
exports.newAlgorithmicTradingBotModulesTradingStrategy = function (processIndex) {
/*
This module packages all functions related to Strategies.
*/
const MODULE_NAME = 'Trading Strategy'
let thisObject = {
mantain: mantain,
reset: reset,
Loaded 100 of 2030 files, more files were not shown because too many files have changed in this diff. Show more